[Intel-gfx] [PATCH] drm/i915/bxt: Fix irq_port for eDP
Jindal, Sonika
sonika.jindal at intel.com
Wed Sep 2 04:48:36 PDT 2015
:( This had a hole..
Please drop this patch..
I am going to send another patch tested with hdmi optimization series for bxt.
Regards,
Sonika
-----Original Message-----
From: Daniel Vetter [mailto:daniel.vetter at ffwll.ch] On Behalf Of Daniel Vetter
Sent: Wednesday, September 2, 2015 5:17 PM
To: Jindal, Sonika
Cc: intel-gfx at lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH] drm/i915/bxt: Fix irq_port for eDP
On Mon, Aug 31, 2015 at 02:35:32PM +0530, Sonika Jindal wrote:
> From: Durgadoss R <durgadoss.r at intel.com>
>
> Currently, HDMI hotplug with eDP as local panel is failing because the
> HDMI hpd is detected as a long hpd for eDP; and is thus rightfully
> ignored. But, it should really be handled as an interrupt on port B
> for HDMI (due to BXT A1 platform having HPD pins A and B swapped).
> This patch sets the irq_port[PORT_A] to NULL in case eDP is on port A
> so that irq handler does not treat it as a 'dig_port' interrupt.
>
> v2 (Sonika): Moving the setting of irq_port for BXT WA outside so that
> this can be set for both hdmi or dp ports. For HDMI this is required
> because we get interrupts for portB on the hpd line of portA for BXT
> A0/A1.
> This issue occurred because hpd on edp was not disabled which was done
> as part of "drm/i915: Dont enable hpd for eDP" from the series:
> http://lists.freedesktop.org/archives/intel-gfx/2015-August/073266.htm
> l
>
> This patch can be squashed to :
> commit cf1d58833f07afbb4534b15caa3fd48baa313b2c
> Author: Sonika Jindal <sonika.jindal at intel.com>
> Date: Mon Aug 10 10:35:36 2015 +0530
>
> drm/i915/bxt: WA for swapped HPD pins in A stepping
>
> Signed-off-by: Durgadoss R <durgadoss.r at intel.com>
> Signed-off-by: Sonika Jindal <sonika.jindal at intel.com>
Queued for -next, thanks for the patch.
-Daniel
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c
> b/drivers/gpu/drm/i915/intel_ddi.c
> index 56d778f..bba0cb6 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -3242,15 +3242,7 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
> goto err;
>
> intel_dig_port->hpd_pulse = intel_dp_hpd_pulse;
> - /*
> - * On BXT A0/A1, sw needs to activate DDIA HPD logic and
> - * interrupts to check the external panel connection.
> - */
> - if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0)
> - && port == PORT_B)
> - dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
> - else
> - dev_priv->hotplug.irq_port[port] = intel_dig_port;
> + dev_priv->hotplug.irq_port[port] = intel_dig_port;
> }
>
> /* In theory we don't need the encoder->type check, but leave it
> just in @@ -3259,6 +3251,17 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
> if (!intel_ddi_init_hdmi_connector(intel_dig_port))
> goto err;
> }
> + /*
> + * On BXT A0/A1, sw needs to activate DDIA HPD logic and
> + * interrupts to check the external panel connection.
> + */
> + if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0)) {
> + if (port == PORT_B) {
> + dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
> + intel_dig_port->hpd_pulse = intel_dp_hpd_pulse;
> + } else if (intel_encoder->type == INTEL_OUTPUT_EDP)
> + dev_priv->hotplug.irq_port[port] = NULL;
> + }
>
> return;
>
> --
> 1.7.10.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list