Regards
Shashank

On 7/1/2016 4:23 AM, Rodrigo Vivi wrote:
On Tue, Jun 21, 2016 at 8:00 AM, Shashank Sharma
<[email protected]> 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 <[email protected]>
---
  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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx



_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to