All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Scheller <d.scheller.oss@gmail.com>
To: clinton.a.taylor@intel.com
Cc: Intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH V2] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
Date: Sun, 17 Jun 2018 19:16:59 +0200	[thread overview]
Message-ID: <20180617191659.020cd839@lt530> (raw)
In-Reply-To: <1528926529-28676-1-git-send-email-clinton.a.taylor@intel.com>

Am Wed, 13 Jun 2018 14:48:49 -0700
schrieb clinton.a.taylor@intel.com:

> From: Clint Taylor <clinton.a.taylor@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. The worst case scenario appears
> to be 23.98Hz modes which requires a wait of 41.25ms. Add a quirk to the
> driver for GLK NUC that waits 42ms.
> 
> V2: Add more devices to the quirk list
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105887
> Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com>

Tested-by: Daniel Scheller <d.scheller.oss@gmail.com>

on an ASRock J5005-ITX with a 0x3184 GLK GPU for the last five days,
HDMI signal issues when the pixel clock goes up are gone.

> ---
>  drivers/gpu/drm/i915/i915_drv.h      |  1 +
>  drivers/gpu/drm/i915/intel_ddi.c     |  8 ++++++++
>  drivers/gpu/drm/i915/intel_display.c | 19 +++++++++++++++++++
>  3 files changed, 28 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index be8c2f0..da196b4 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -656,6 +656,7 @@ enum intel_sbi_destination {
>  #define QUIRK_BACKLIGHT_PRESENT (1<<3)
>  #define QUIRK_PIN_SWIZZLED_PAGES (1<<5)
>  #define QUIRK_INCREASE_T12_DELAY (1<<6)
> +#define QUIRK_INCREASE_DDI_DISABLED_TIME (1<<7)
>  
>  struct intel_fbdev;
>  struct intel_fbc_work;
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index ca73387..bc3d012 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1791,6 +1791,9 @@ void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state)
>  	I915_WRITE(TRANS_DDI_FUNC_CTL(cpu_transcoder), temp);
>  }
>  
> +/* Quirk time computed based on 24fps frame time of 41.25ms */
> +#define DDI_DISABLED_QUIRK_TIME 42
> +
>  void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
>  				       enum transcoder cpu_transcoder)
>  {
> @@ -1800,6 +1803,11 @@ void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
>  	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) {
> +		msleep(DDI_DISABLED_QUIRK_TIME);
> +		DRM_DEBUG_KMS("Quirk Increase DDI disabled time\n");
> +	}
>  }
>  
>  int intel_ddi_toggle_hdcp_signalling(struct intel_encoder *intel_encoder,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 8251e18..40e0306 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14749,6 +14749,17 @@ static void quirk_increase_t12_delay(struct drm_device *dev)
>  	DRM_INFO("Applying T12 delay quirk\n");
>  }
>  
> +/* GeminiLake NUC HDMI outputs require additional off time
> + * this allows the onboard retimer to correctly sync to signal
> + */
> +static void quirk_increase_ddi_disabled_time(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = to_i915(dev);
> +
> +	dev_priv->quirks |= QUIRK_INCREASE_DDI_DISABLED_TIME;
> +	DRM_INFO("Applying Increase DDI Disabled quirk\n");
> +}
> +
>  struct intel_quirk {
>  	int device;
>  	int subsystem_vendor;
> @@ -14835,6 +14846,14 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
>  
>  	/* Toshiba Satellite P50-C-18C */
>  	{ 0x191B, 0x1179, 0xF840, quirk_increase_t12_delay },
> +
> +	/* GeminiLake NUC */
> +	{ 0x3185, 0x8086, 0x2072, quirk_increase_ddi_disabled_time },
> +	{ 0x3184, 0x8086, 0x2072, quirk_increase_ddi_disabled_time },
> +	/* ASRock ITX*/
> +	{ 0x3185, 0x1849, 0x2212, quirk_increase_ddi_disabled_time },
> +	{ 0x3184, 0x1849, 0x2212, quirk_increase_ddi_disabled_time },
> +
>  };
>  
>  static void intel_init_quirks(struct drm_device *dev)

Best regards,
Daniel Scheller
-- 
https://github.com/herrnst
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-06-17 17:17 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
2018-06-07 23:47 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-06-07 23:48 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-06-08  0:06 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-08  2:46 ` ✓ Fi.CI.IGT: " Patchwork
2018-06-08 13:31 ` [PATCH] " Imre Deak
2018-06-08 15:48   ` Clint Taylor
2018-06-13 21:48 ` [PATCH V2] " clinton.a.taylor
2018-06-17 17:16   ` Daniel Scheller [this message]
2018-06-25 10:33   ` Imre Deak
2018-06-27 22:26     ` Clint Taylor
2018-06-28 10:05       ` Imre Deak
2018-06-28 18:14         ` [PATCH v3] " clinton.a.taylor
2018-06-29  9:09           ` Imre Deak
2018-07-03 20:26             ` Clint Taylor
2018-07-03 20:16         ` [PATCH v4] " clinton.a.taylor
2018-07-04 10:05           ` Imre Deak
2018-07-04 21:28             ` Daniel Scheller
2018-06-13 21:53 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2) Patchwork
2018-06-13 21:54 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-06-13 22:13 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-14  2:36 ` ✓ Fi.CI.IGT: " Patchwork
2018-06-28 18:43 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3) Patchwork
2018-06-28 18:44 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-06-28 18:59 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-28 22:05 ` ✓ Fi.CI.IGT: " Patchwork
2018-07-03 20:26 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4) Patchwork
2018-07-03 20:27 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-07-03 20:43 ` ✓ Fi.CI.BAT: success " Patchwork
2018-07-04  3:13 ` ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180617191659.020cd839@lt530 \
    --to=d.scheller.oss@gmail.com \
    --cc=Intel-gfx@lists.freedesktop.org \
    --cc=clinton.a.taylor@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.