:( 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@xxxxxxxx] On Behalf Of Daniel Vetter Sent: Wednesday, September 2, 2015 5:17 PM To: Jindal, Sonika Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx Subject: Re: [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@xxxxxxxxx> > > 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@xxxxxxxxx> > 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@xxxxxxxxx> > Signed-off-by: Sonika Jindal <sonika.jindal@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx