Re: [PATCH v2 4/4] drm/i915: Enable lspcon initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Regards
Shashank

On 7/1/2016 4:23 AM, Rodrigo Vivi wrote:
On Tue, Jun 21, 2016 at 8:00 AM, Shashank Sharma
<shashank.sharma@xxxxxxxxx> wrote:
This patch adds initialization code for lspcon.
What we are doing here is:
         - Check if lspcon is configured in VBT for this port
         - If lspcon is configured, initialize it and configure it
           as DP port.

V2: Addressed Ville's review comments:
- Not adding AVI IF functions for LSPCON display now.
   This part will be added once the dig_port level AVI-IF series
   gets merged.

Signed-off-by: Shashank Sharma <shashank.sharma@xxxxxxxxx>
---
  drivers/gpu/drm/i915/intel_ddi.c | 29 ++++++++++++++++++++++++++++-
  1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index ad3b0ee..208a1ff 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2323,7 +2323,7 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
         struct intel_digital_port *intel_dig_port;
         struct intel_encoder *intel_encoder;
         struct drm_encoder *encoder;
-       bool init_hdmi, init_dp;
+       bool init_hdmi, init_dp, init_lspcon = false;
         int max_lanes;

         if (I915_READ(DDI_BUF_CTL(PORT_A)) & DDI_A_4_LANES) {
@@ -2355,6 +2355,19 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
         init_hdmi = (dev_priv->vbt.ddi_port_info[port].supports_dvi ||
                      dev_priv->vbt.ddi_port_info[port].supports_hdmi);
         init_dp = dev_priv->vbt.ddi_port_info[port].supports_dp;
+
+       if (intel_bios_is_lspcon_present(dev_priv, port)) {
+               /*
+                * Lspcon device needs to be driven with DP connector
+                * with special detection sequence. So make sure DP
+                * is initialized before lspcon.
+                */
+               init_dp = true;
+               init_lspcon = true;
+               init_hdmi = false;
+               DRM_DEBUG_KMS("VBT says port %c has lspcon\n", port_name(port));
+       }
+
         if (!init_dp && !init_hdmi) {
                 DRM_DEBUG_KMS("VBT says port %c is not DVI/HDMI/DP compatible, respect it\n",
                               port_name(port));
@@ -2430,6 +2443,20 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
                         goto err;
         }

+       if (init_lspcon) {
+               if (lspcon_init(intel_dig_port))
+                       /* TODO: handle hdmi info frame part */

Does it work without handling it? What are we missing here?
Is this related to "drm/i915: Allow DP ports to set/readout infoframe
state (WIP)"
Yes, Ville suggested not to handle AVI IF in LSPCON specifically, but he gave this patch set where its being handled for DDI displays.
shouldn't it be part of a same series?

I am not sure, they are two different threads going on, you can suggest how to go for this.

Shashank

+                       DRM_DEBUG_KMS("LSPCON init success on port %c\n",
+                               port_name(port));
+               else
+                       /*
+                        * LSPCON init faied, but DP init was success, so
+                        * lets try to drive as DP++ port.
+                        */
+                       DRM_ERROR("LSPCON init failed on port %c\n",
+                               port_name(port));
+       }
+
         return;

  err:
--
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx



_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux