Re: [PATCH] [RFC] drm/i915: Handle HPD when it has actually occurred

Daniel Vetter
2015-07-06T12:22:09Z

On Mon, Jul 06, 2015 at 02:11:12PM +0530, Jindal, Sonika wrote:
>
>
> On 7/6/2015 2:06 PM, Daniel Vetter wrote:
> >On Mon, Jul 06, 2015 at 11:23:53AM +0530, Sonika Jindal wrote:
> >>Writing to PCH_PORT_HOTPLUG for each interrupt is not required.
> >>Handle it only if hpd has actually occurred like we handle other
> >>interrupts.
> >>
> >>Signed-off-by: Sonika Jindal <sonika.jindal@intel.com>
> >>---
> >>Hi,
> >>
> >>I see we don't check for hotplug_trigger before processing the HPD for any of the platform. Is there any reason for this?
> >>For SKL, if I let write to PCH_PORT_HOTPLUG happen for all interrupts, somehow this register gets an invalid value at one point and it zeroes it out.
> >>If I put this check before handling HPD, hotplug behaves fine.
> >>Please let me know if you see any issue with this approach.
> >
> >Nice find, this sounds really intrigueing, at least for cpt/ibx platforms.
> >I'm not sure whether what will happen with atom/i9xx platforms though
> >since the irq bits are different there. But at least bxt has a FIXME
> >comment that suggest we do need to save the sticky bits on those platforms
> >too.
> >
> >If we can fix this up for all platforms then I think a subsequent patch
> >could try to re-enable the hpd checks in the hdmi ->detect function and
> >make use spec compliant. Then after maybe 1-2 kernel releases of testing
> >we'll know whether it really works.
> >
> >But I'd really want to enable this everywhere just to have maximal test
> >coverage - we did have reports on all platforms so it seems a generic
> >issue.
> >
> I think only cpt/ibx suffer from this. Bxt already set port_hotplug_stat
> only when hpd occurs.
> Is there a process to get this checked on all platforms, which the fix I
> suggested?
> I can only test on SKL as of now.

Right I was looking at an older version of the bxt hpd handler which still
had a FIXME. But we probably still have an issue on bxt/i9xx interrupt
handlers since when we've done the original revert to stop looking at the
hpd live status bits in

commit 202adf4b9f5957b26a1cb97267d78e0edb319c5e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Fri Feb 22 00:53:04 2013 +0100

drm/i915: Revert hdmi HDP pin checks

we had reports from both ibx/cpt systems and g4x. And vlv/chv/bxt hpd
seems derived from that (with live status, enable and status all smashed
into one register).

Therefore I guess that we need a similar fix of only carefully clearing
status bits on these platforms too. I have no idea what it is though,
might be good to check how exactly windows is handling hpd on these atom
platfroms.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation