[Intel-gfx] [PATCH v4] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
Daniel Scheller
d.scheller.oss at gmail.com
Wed Jul 4 21:28:26 UTC 2018
Hi Imre, Clinton,
Am Wed, 4 Jul 2018 13:05:59 +0300
schrieb Imre Deak <imre.deak at intel.com>:
> On Tue, Jul 03, 2018 at 01:16:40PM -0700, clinton.a.taylor at intel.com wrote:
> > From: Clint Taylor <clinton.a.taylor at intel.com>
> >
> > On GLK NUC platforms the HDMI retiming buffer needs additional disabled
> > time to correctly sync to a faster incoming signal.
> >
> > When measured on a scope the highspeed lines of the HDMI clock turn off
> > for ~400uS during a normal resolution change. The HDMI retimer on the
> > GLK NUC appears to require at least a full frame of quiet time before a
> > new faster clock can be correctly sync'd. Wait 100ms due to msleep
> > inaccuracies while waiting for a completed frame. Add a quirk to the
> > driver for GLK boards that use ITE66317 HDMI retimers.
> >
> > V2: Add more devices to the quirk list
> > V3: Delay increased to 100ms, check to confirm crtc type is HDMI.
> > V4: crtc type check extended to include _DDI and whitespace fixes
> >
> > Cc: Imre Deak <imre.deak at intel.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105887
> > Signed-off-by: Clint Taylor <clinton.a.taylor at intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_drv.h | 1 +
> > drivers/gpu/drm/i915/intel_ddi.c | 18 +++++++++++++++---
> > drivers/gpu/drm/i915/intel_display.c | 20 +++++++++++++++++++-
> > drivers/gpu/drm/i915/intel_drv.h | 3 +--
> > 4 files changed, 36 insertions(+), 6 deletions(-)
> >
> > [...]
> > val &= ~(TRANS_DDI_FUNC_ENABLE | TRANS_DDI_PORT_MASK | TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
> > val |= TRANS_DDI_PORT_NONE;
> > I915_WRITE(reg, val);
> > +
> > + if (dev_priv->quirks & QUIRK_INCREASE_DDI_DISABLED_TIME &&
> > + (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI) ||
> > + intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DDI))) {
>
> Hm, INTEL_OUTPUT_DDI is not a possible output type, the whole encoder
> enable/disable sequence would be broken with that. Even during module
> loading/HW readout we should already set the proper HDMI/DP type in
> intel_modeset_pipe_config().
>
> Looking now at the bug report [1], the reporter is using an old kernel,
> where we left encoder->type at INTEL_OUTPUT_UNKNOWN during HW readout
> and set it correctly only after the first modeset. That could be
> addressed by adding INTEL_OUTPUT_UNKNOWN when backporting the workaround,
> but in this patch we should only check for INTEL_OUTPUT_HDMI.
>
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=105887#c110
You're correct, this (INTEL_OUTPUT_UNKNOWN being set) indeed seems to
be something with the i915 driver in kernel 4.15. I've just built a
Kernel image/package from 4.17.4 with this patch applied, plus the
DRM_ERROR print that logs the connector to the kernel log, and in fact
on 4.17.x it's already on INTEL_OUTPUT_HDMI right after boot/driver
load/hwinit (always 64), so for upstream the _UNKNOWN or _DDI check
probably really isn't necessary. Posting links to the bug report in a
second.
Sorry for any troubles or additional work the _UNKNOWN
report/suggestion might have caused.
For v5, given that the logic won't change, feel free to add my
Tested-by: Daniel Scheller <d.scheller.oss at gmail.com>
Best regards,
Daniel Scheller
--
https://github.com/herrnst
More information about the Intel-gfx
mailing list