[Intel-gfx] [PATCH] drm/i915: revert intel_dp_probe_oui call during HPD interrupt handler

Daniel Vetter daniel at ffwll.ch
Fri Jun 6 19:24:32 CEST 2014


On Thu, Jun 05, 2014 at 10:40:29AM -0700, Clint Taylor wrote:
> On 06/05/2014 02:26 AM, Daniel Vetter wrote:
> >On Wed, Jun 04, 2014 at 03:29:41PM -0700, clinton.a.taylor at intel.com wrote:
> >>From: Clint Taylor <clinton.a.taylor at intel.com>
> >>
> >>Remove OUI read function from the lower half interrupt handler. Upon
> >>closing the eDP panel lid an HPD interrupt is generated. The lower half
> >>handler calls intel_dp_probe_oui() as part of intel_dp_detect().
> >>intel_dp_probe_oui() enables eDP VDD and subsequently disables eDP VDD
> >>causing another HPD interrupt. This cycle repeats every 3.6 seconds with
> >>VDD asserted for 3.5 of those seconds until the lid is opened again.
> >>
> >>Revert of 0d198328538276c4459ef5de081e68ae60e6c4c2
> >>Revert of 351cfc34db8decb0c5cc1aac7cf1780a0e45c8b1
> >>
> >>Signed-off-by: Clint Taylor <clinton.a.taylor at intel.com>
> >
> >Hm, this is funky ... we currently don't handle port A hotplug events, and
> >we filter hotplug events properly.
> 
> This is a Port A panel on ValleyView.

Ah, that might actually be wired up hdp-wise. edp on big core (well at
least on port A) definitely isn't.

> >How does this exactly blow up for you? Or is this port D?
> >
> 
> [  219.723752] [drm:ironlake_panel_vdd_off_sync], PP_STATUS: 0x00000000
> PP_CONTROL: 0xabcd0000
> [  219.823937] [drm:valleyview_irq_handler], hotplug event received, stat
> 0x20100000
> [  219.823964] [drm:intel_hpd_irq_handler], Received HPD interrupt on PIN 5
> - cnt: 0
> [  219.824153] [drm:i915_hotplug_work_func], running encoder hotplug
> functions
> [  219.824175] [drm:i915_hotplug_work_func], Connector eDP-1 (pin 5)
> received hotplug event.
> [  219.824193] [drm:i915_hotplug_work_func], Connector HDMI-A-1 (pin 5)
> received hotplug event.
> [  219.824213] [drm:intel_dp_detect], [CONNECTOR:14:eDP-1]
> [  219.824229] [drm:ironlake_edp_panel_vdd_on], Turn eDP VDD on
> 
> The valleyview_irq_handler() is receiving the HPD event and
> i915_hotplug_work_func() is calling intel_dp_detect().
> 
> >We might want to have some filtering here checking whether the edp panel
> >is on or off. Also the delayed work is _way_ too long.
> 
> We could filter if the lid is closed, but it seemed a lot safer to remove
> the function. Is reading the OUI required as part of MST for DP?

I think we should filter the OUI read if it's an eDP panel since we might
wake those up. With a comment ofc why we do that special-cases. Checking
for edp will also catch all-in-ones where edp is on port D.

And yeah, we need OUI for a bunch of things apparently ...
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list