All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
@ 2018-06-07 23:12 clinton.a.taylor
  2018-06-07 23:47 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (17 more replies)
  0 siblings, 18 replies; 30+ messages in thread
From: clinton.a.taylor @ 2018-06-07 23:12 UTC (permalink / raw)
  To: Intel-gfx

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.

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>
---
 drivers/gpu/drm/i915/i915_drv.h      |  1 +
 drivers/gpu/drm/i915/intel_ddi.c     |  8 ++++++++
 drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index c407366..628491d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -645,6 +645,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 b344e0f..61b41c3 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1784,6 +1784,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)
 {
@@ -1793,6 +1796,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 ed29219..0d07c37 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14740,6 +14740,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;
@@ -14826,6 +14837,9 @@ 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 },
 };
 
 static void intel_init_quirks(struct drm_device *dev)
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  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 ` Patchwork
  2018-06-07 23:48 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-07 23:47 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
60f585b542bc drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-:28: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#28: FILE: drivers/gpu/drm/i915/i915_drv.h:648:
+#define QUIRK_INCREASE_DDI_DISABLED_TIME (1<<7)
                                            ^

total: 0 errors, 0 warnings, 1 checks, 53 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  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 ` Patchwork
  2018-06-08  0:06 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-07 23:48 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3669:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3670:16: warning: expression using sizeof(void)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  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 ` Patchwork
  2018-06-08  2:46 ` ✓ Fi.CI.IGT: " Patchwork
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-08  0:06 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4291 -> Patchwork_9237 =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9237 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9237, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44446/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9237:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_exec_gttfill@basic:
      fi-pnv-d510:        SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_9237 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_module_reload@basic-reload-inject:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106248, fdo#106725)

    igt@gem_sync@basic-many-each:
      fi-cnl-y3:          PASS -> INCOMPLETE (fdo#105086)

    igt@kms_flip@basic-flip-vs-dpms:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106000)

    
    ==== Possible fixes ====

    igt@gem_ctx_switch@basic-default-heavy:
      fi-glk-j4005:       DMESG-WARN (fdo#106000) -> PASS +1

    igt@gem_exec_flush@basic-uc-set-default:
      fi-glk-j4005:       DMESG-WARN (fdo#105719) -> PASS

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       DMESG-WARN (fdo#105128) -> PASS

    
  fdo#105086 https://bugs.freedesktop.org/show_bug.cgi?id=105086
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#105719 https://bugs.freedesktop.org/show_bug.cgi?id=105719
  fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
  fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
  fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725


== Participating hosts (39 -> 36) ==

  Missing    (3): fi-ilk-m540 fi-byt-squawks fi-skl-6700hq 


== Build changes ==

    * Linux: CI_DRM_4291 -> Patchwork_9237

  CI_DRM_4291: 1d2b97e15aaf8a354a58904dc6c4ca7366f78ed1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4510: d1a93aa7e1507de76c6c71be15931cc4b90111bb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9237: 60f585b542bcaa77ca0a7356de85a174bad33d6e @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

60f585b542bc drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9237/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (2 preceding siblings ...)
  2018-06-08  0:06 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-06-08  2:46 ` Patchwork
  2018-06-08 13:31 ` [PATCH] " Imre Deak
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-08  2:46 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4291_full -> Patchwork_9237_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9237_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9237_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9237_full:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-dirty-render:
      shard-kbl:          SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_9237_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_gtt:
      shard-kbl:          PASS -> FAIL (fdo#105347)
      shard-apl:          PASS -> INCOMPLETE (fdo#103927)

    igt@gem_exec_big:
      shard-hsw:          PASS -> INCOMPLETE (fdo#103540)

    igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
      shard-glk:          PASS -> INCOMPLETE (fdo#103359, k.org#198133) +1

    igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          PASS -> FAIL (fdo#105454, fdo#106509)

    igt@kms_cursor_legacy@cursor-vs-flip-toggle:
      shard-hsw:          PASS -> FAIL (fdo#103355)

    igt@kms_flip@plain-flip-fb-recreate:
      shard-hsw:          PASS -> FAIL (fdo#103928)

    igt@kms_setmode@basic:
      shard-kbl:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@gem_eio@hibernate:
      shard-snb:          INCOMPLETE (fdo#105411) -> PASS

    igt@kms_atomic_transition@1x-modeset-transitions-nonblocking-fencing:
      shard-glk:          FAIL (fdo#105703) -> PASS

    igt@kms_flip@flip-vs-expired-vblank:
      shard-glk:          FAIL (fdo#105363) -> PASS

    igt@kms_flip@flip-vs-expired-vblank-interruptible:
      shard-apl:          FAIL (fdo#102887, fdo#105363) -> PASS

    igt@kms_flip@modeset-vs-vblank-race-interruptible:
      shard-hsw:          FAIL (fdo#103060) -> PASS

    igt@kms_flip@plain-flip-ts-check-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip_tiling@flip-to-x-tiled:
      shard-glk:          FAIL (fdo#103822, fdo#104724) -> PASS

    igt@kms_setmode@basic:
      shard-hsw:          FAIL (fdo#99912) -> PASS

    igt@kms_vblank@pipe-c-ts-continuation-modeset:
      shard-glk:          DMESG-WARN (fdo#106247) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
  fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
  fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
  fdo#105703 https://bugs.freedesktop.org/show_bug.cgi?id=105703
  fdo#106247 https://bugs.freedesktop.org/show_bug.cgi?id=106247
  fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4291 -> Patchwork_9237

  CI_DRM_4291: 1d2b97e15aaf8a354a58904dc6c4ca7366f78ed1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4510: d1a93aa7e1507de76c6c71be15931cc4b90111bb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9237: 60f585b542bcaa77ca0a7356de85a174bad33d6e @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9237/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (3 preceding siblings ...)
  2018-06-08  2:46 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-06-08 13:31 ` Imre Deak
  2018-06-08 15:48   ` Clint Taylor
  2018-06-13 21:48 ` [PATCH V2] " clinton.a.taylor
                   ` (12 subsequent siblings)
  17 siblings, 1 reply; 30+ messages in thread
From: Imre Deak @ 2018-06-08 13:31 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

Hi Clint,

nice debugging!

On Thu, Jun 07, 2018 at 04:12:39PM -0700, clinton.a.taylor@intel.com wrote:
> 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.

Just to understand better the failure mode: IIUC without the WA the HDMI
clock line is inactive for ~400us when switching modes (which would
depend on kernel timing) and the retimer chip needs at least 42ms idle
time at least when switching to certain modes.

Is there a way to recover the chip from the bad state? By doing a new
off/on modeset with enough idle time, or resetting the chip?

--Imre

> 
> 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>
> ---
>  drivers/gpu/drm/i915/i915_drv.h      |  1 +
>  drivers/gpu/drm/i915/intel_ddi.c     |  8 ++++++++
>  drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++++++
>  3 files changed, 23 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index c407366..628491d 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -645,6 +645,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 b344e0f..61b41c3 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1784,6 +1784,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)
>  {
> @@ -1793,6 +1796,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 ed29219..0d07c37 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14740,6 +14740,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;
> @@ -14826,6 +14837,9 @@ 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 },
>  };
>  
>  static void intel_init_quirks(struct drm_device *dev)
> -- 
> 1.9.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-08 13:31 ` [PATCH] " Imre Deak
@ 2018-06-08 15:48   ` Clint Taylor
  0 siblings, 0 replies; 30+ messages in thread
From: Clint Taylor @ 2018-06-08 15:48 UTC (permalink / raw)
  To: imre.deak; +Cc: Intel-gfx



On 06/08/2018 06:31 AM, Imre Deak wrote:
> Hi Clint,
>
> nice debugging!
>
> On Thu, Jun 07, 2018 at 04:12:39PM -0700, clinton.a.taylor@intel.com wrote:
>> 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.
> Just to understand better the failure mode: IIUC without the WA the HDMI
> clock line is inactive for ~400us when switching modes (which would
> depend on kernel timing) and the retimer chip needs at least 42ms idle
> time at least when switching to certain modes.
If switching from 30Hz to 50/60Hz you would only need a delay of 34ms, 
but I chose to keep the quirk simple and use the worst case (23.98Hz) 
delay of 42ms.
>
> Is there a way to recover the chip from the bad state? By doing a new
> off/on modeset with enough idle time, or resetting the chip?
Just an off/on mode set with enough delay will bring the chip out of the 
bad state.

-Clint
>
> --Imre
>
>> 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>
>> ---
>>   drivers/gpu/drm/i915/i915_drv.h      |  1 +
>>   drivers/gpu/drm/i915/intel_ddi.c     |  8 ++++++++
>>   drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++++++
>>   3 files changed, 23 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index c407366..628491d 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -645,6 +645,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 b344e0f..61b41c3 100644
>> --- a/drivers/gpu/drm/i915/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> @@ -1784,6 +1784,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)
>>   {
>> @@ -1793,6 +1796,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 ed29219..0d07c37 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -14740,6 +14740,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;
>> @@ -14826,6 +14837,9 @@ 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 },
>>   };
>>   
>>   static void intel_init_quirks(struct drm_device *dev)
>> -- 
>> 1.9.1
>>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH V2] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (4 preceding siblings ...)
  2018-06-08 13:31 ` [PATCH] " Imre Deak
@ 2018-06-13 21:48 ` clinton.a.taylor
  2018-06-17 17:16   ` Daniel Scheller
  2018-06-25 10:33   ` Imre Deak
  2018-06-13 21:53 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2) Patchwork
                   ` (11 subsequent siblings)
  17 siblings, 2 replies; 30+ messages in thread
From: clinton.a.taylor @ 2018-06-13 21:48 UTC (permalink / raw)
  To: Intel-gfx

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>
---
 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)
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (5 preceding siblings ...)
  2018-06-13 21:48 ` [PATCH V2] " clinton.a.taylor
@ 2018-06-13 21:53 ` Patchwork
  2018-06-13 21:54 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-13 21:53 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
40e1ef81c43c drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-:30: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#30: FILE: drivers/gpu/drm/i915/i915_drv.h:659:
+#define QUIRK_INCREASE_DDI_DISABLED_TIME (1<<7)
                                            ^

total: 0 errors, 0 warnings, 1 checks, 58 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (6 preceding siblings ...)
  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 ` Patchwork
  2018-06-13 22:13 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-13 21:54 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3681:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3682:16: warning: expression using sizeof(void)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (7 preceding siblings ...)
  2018-06-13 21:54 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2018-06-13 22:13 ` Patchwork
  2018-06-14  2:36 ` ✓ Fi.CI.IGT: " Patchwork
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-13 22:13 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4311 -> Patchwork_9296 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44446/revisions/2/mbox/

== Known issues ==

  Here are the changes found in Patchwork_9296 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       PASS -> DMESG-WARN (fdo#105128)

    igt@kms_flip@basic-flip-vs-dpms:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106000)

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-peppy:       PASS -> DMESG-FAIL (fdo#106103, fdo#102614)

    igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence:
      fi-glk-j4005:       PASS -> FAIL (fdo#103481)

    
    ==== Possible fixes ====

    igt@gem_ctx_create@basic-files:
      fi-glk-j4005:       DMESG-WARN (fdo#105719) -> PASS

    igt@gem_exec_gttfill@basic:
      fi-byt-n2820:       FAIL (fdo#106744) -> PASS

    igt@gem_exec_suspend@basic-s4-devices:
      fi-glk-j4005:       DMESG-WARN (fdo#106097) -> PASS

    igt@kms_flip@basic-flip-vs-modeset:
      fi-skl-6700hq:      DMESG-WARN (fdo#105998) -> PASS +1

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-cnl-psr:         FAIL (fdo#100368) -> PASS
      fi-glk-j4005:       FAIL (fdo#100368) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-bxt-dsi:         INCOMPLETE (fdo#103927) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#105719 https://bugs.freedesktop.org/show_bug.cgi?id=105719
  fdo#105998 https://bugs.freedesktop.org/show_bug.cgi?id=105998
  fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
  fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
  fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
  fdo#106744 https://bugs.freedesktop.org/show_bug.cgi?id=106744


== Participating hosts (43 -> 39) ==

  Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


== Build changes ==

    * Linux: CI_DRM_4311 -> Patchwork_9296

  CI_DRM_4311: 875eebee4a444f5b7ba146754e91118ff3c11ad5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4518: e4908004547b63131352fbc0ddcdb1d3d55480e0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9296: 40e1ef81c43c81cb2c4b0306dbf1b4705e5f4e76 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

40e1ef81c43c drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9296/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (8 preceding siblings ...)
  2018-06-13 22:13 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-06-14  2:36 ` Patchwork
  2018-06-28 18:43 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3) Patchwork
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-14  2:36 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev2)
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4311_full -> Patchwork_9296_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9296_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9296_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9296_full:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_exec_schedule@deep-vebox:
      shard-kbl:          PASS -> SKIP +2

    igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render:
      shard-kbl:          SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_9296_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_hangcheck:
      shard-kbl:          PASS -> DMESG-FAIL (fdo#106560)

    igt@gem_exec_big:
      shard-hsw:          PASS -> INCOMPLETE (fdo#103540)

    igt@gem_wait@await-bsd2:
      shard-snb:          SKIP -> INCOMPLETE (fdo#105411)

    igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
      shard-glk:          PASS -> INCOMPLETE (k.org#198133, fdo#103359) +1

    igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          PASS -> FAIL (fdo#105454, fdo#106509)

    igt@kms_cursor_legacy@flip-vs-cursor-atomic:
      shard-hsw:          PASS -> FAIL (fdo#102670)

    igt@kms_flip@2x-flip-vs-expired-vblank:
      shard-hsw:          PASS -> FAIL (fdo#102887)

    igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
      shard-hsw:          PASS -> FAIL (fdo#103928)

    igt@kms_flip@2x-plain-flip-ts-check:
      shard-glk:          PASS -> FAIL (fdo#100368)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_gtt:
      shard-kbl:          FAIL (fdo#105347) -> PASS

    igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS +1

    igt@kms_flip@2x-plain-flip-ts-check:
      shard-hsw:          FAIL (fdo#100368) -> PASS

    igt@kms_flip_tiling@flip-x-tiled:
      shard-glk:          FAIL (fdo#103822, fdo#104724) -> PASS

    igt@kms_setmode@basic:
      shard-apl:          FAIL (fdo#99912) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
  fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
  fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
  fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4311 -> Patchwork_9296

  CI_DRM_4311: 875eebee4a444f5b7ba146754e91118ff3c11ad5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4518: e4908004547b63131352fbc0ddcdb1d3d55480e0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9296: 40e1ef81c43c81cb2c4b0306dbf1b4705e5f4e76 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9296/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH V2] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-13 21:48 ` [PATCH V2] " clinton.a.taylor
@ 2018-06-17 17:16   ` Daniel Scheller
  2018-06-25 10:33   ` Imre Deak
  1 sibling, 0 replies; 30+ messages in thread
From: Daniel Scheller @ 2018-06-17 17:16 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

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

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH V2] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-13 21:48 ` [PATCH V2] " clinton.a.taylor
  2018-06-17 17:16   ` Daniel Scheller
@ 2018-06-25 10:33   ` Imre Deak
  2018-06-27 22:26     ` Clint Taylor
  1 sibling, 1 reply; 30+ messages in thread
From: Imre Deak @ 2018-06-25 10:33 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

On Wed, Jun 13, 2018 at 02:48:49PM -0700, clinton.a.taylor@intel.com wrote:
> 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>
> ---
>  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");

No need for the define or the debug message here imo. msleep() can be
inaccurate (even sleeping less than expected), so I'd use a bigger
margin, sleeping say 100ms.

If the problem is with the HDMI retimer chip, we should limit the quirk
to HDMI outputs. 

> +	}
>  }
>  
>  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 },
> +

Extra w/s. A quirk list looks ok for now since we can't identify the
retimer chip in any other way.

>  };
>  
>  static void intel_init_quirks(struct drm_device *dev)
> -- 
> 1.9.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH V2] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-25 10:33   ` Imre Deak
@ 2018-06-27 22:26     ` Clint Taylor
  2018-06-28 10:05       ` Imre Deak
  0 siblings, 1 reply; 30+ messages in thread
From: Clint Taylor @ 2018-06-27 22:26 UTC (permalink / raw)
  To: imre.deak; +Cc: Intel-gfx



On 06/25/2018 03:33 AM, Imre Deak wrote:
> On Wed, Jun 13, 2018 at 02:48:49PM -0700, clinton.a.taylor@intel.com wrote:
>> 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>
>> ---
>>   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");
> No need for the define or the debug message here imo. msleep() can be
> inaccurate (even sleeping less than expected), so I'd use a bigger
> margin, sleeping say 100ms.

Easy to do and I can submit v3.

>
> If the problem is with the HDMI retimer chip, we should limit the quirk
> to HDMI outputs.
Output type is not available in intel_disable_ddi() and I would prefer 
not to change the interface only for the quirk. I could move the quirk 
execution up a level to haswell_crtc_disable() and detect the 
old_crtc_state->type before executing the quirk. However, the quirk is 
only being detected for certain boards that only have HDMI outputs. 
Unless more boards are added to the quirk_list[] we really don't need 
logic to detect HDMI outputs.

-Clint

>> +	}
>>   }
>>   
>>   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 },
>> +
> Extra w/s. A quirk list looks ok for now since we can't identify the
> retimer chip in any other way.
>
>>   };
>>   
>>   static void intel_init_quirks(struct drm_device *dev)
>> -- 
>> 1.9.1
>>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH V2] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  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-07-03 20:16         ` [PATCH v4] " clinton.a.taylor
  0 siblings, 2 replies; 30+ messages in thread
From: Imre Deak @ 2018-06-28 10:05 UTC (permalink / raw)
  To: Clint Taylor; +Cc: Intel-gfx

On Wed, Jun 27, 2018 at 03:26:54PM -0700, Clint Taylor wrote:
> 
> 
> On 06/25/2018 03:33 AM, Imre Deak wrote:
> > On Wed, Jun 13, 2018 at 02:48:49PM -0700, clinton.a.taylor@intel.com wrote:
> > > 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>
> > > ---
> > >   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");
> > No need for the define or the debug message here imo. msleep() can be
> > inaccurate (even sleeping less than expected), so I'd use a bigger
> > margin, sleeping say 100ms.
> 
> Easy to do and I can submit v3.
> 
> > 
> > If the problem is with the HDMI retimer chip, we should limit the quirk
> > to HDMI outputs.
> Output type is not available in intel_disable_ddi() and I would prefer not
> to change the interface only for the quirk. I could move the quirk execution
> up a level to haswell_crtc_disable() and detect the old_crtc_state->type
> before executing the quirk. However, the quirk is only being detected for
> certain boards that only have HDMI outputs. Unless more boards are added to
> the quirk_list[] we really don't need logic to detect HDMI outputs.

Ok, but I'm sure we'll forget about this detail once we have to update
the list with a GLK having a DP output too. OTOH, changing
intel_ddi_disable_transcoder_func() to accept
struct intel_crtc_state *crtc_state would make it symmetric with
intel_ddi_enable_transcoder_func(), so imo a good change on its own.

--Imre

> 
> -Clint
> 
> > > +	}
> > >   }
> > >   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 },
> > > +
> > Extra w/s. A quirk list looks ok for now since we can't identify the
> > retimer chip in any other way.
> > 
> > >   };
> > >   static void intel_init_quirks(struct drm_device *dev)
> > > -- 
> > > 1.9.1
> > > 
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v3] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-28 10:05       ` Imre Deak
@ 2018-06-28 18:14         ` clinton.a.taylor
  2018-06-29  9:09           ` Imre Deak
  2018-07-03 20:16         ` [PATCH v4] " clinton.a.taylor
  1 sibling, 1 reply; 30+ messages in thread
From: clinton.a.taylor @ 2018-06-28 18:14 UTC (permalink / raw)
  To: Intel-gfx

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. 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.

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>
---
 drivers/gpu/drm/i915/i915_drv.h      |  1 +
 drivers/gpu/drm/i915/intel_ddi.c     | 16 ++++++++++++++--
 drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_drv.h     |  3 +--
 4 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 2b684f4..6c5a679 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -655,6 +655,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 0319825..89bb5ce 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1807,15 +1807,27 @@ void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state)
 	I915_WRITE(TRANS_DDI_FUNC_CTL(cpu_transcoder), temp);
 }
 
-void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
-				       enum transcoder cpu_transcoder)
+/* Quirk time at 100ms for reliable operation */
+#define DDI_DISABLED_QUIRK_TIME 100
+
+void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state)
 {
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+
 	i915_reg_t reg = TRANS_DDI_FUNC_CTL(cpu_transcoder);
 	uint32_t val = I915_READ(reg);
 
 	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)) {
+		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 eaa0663..ff42268 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5837,7 +5837,7 @@ static void haswell_crtc_disable(struct intel_crtc_state *old_crtc_state,
 		intel_ddi_set_vc_payload_alloc(old_crtc_state, false);
 
 	if (!transcoder_is_dsi(cpu_transcoder))
-		intel_ddi_disable_transcoder_func(dev_priv, cpu_transcoder);
+		intel_ddi_disable_transcoder_func(old_crtc_state);
 
 	if (INTEL_GEN(dev_priv) >= 9)
 		skylake_scaler_disable(intel_crtc);
@@ -14852,6 +14852,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;
@@ -14938,6 +14949,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)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index a6ff260..9c3a3d6 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1384,8 +1384,7 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
 void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port);
 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
 void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state);
-void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
-				       enum transcoder cpu_transcoder);
+void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state);
 void intel_ddi_enable_pipe_clock(const struct intel_crtc_state *crtc_state);
 void intel_ddi_disable_pipe_clock(const  struct intel_crtc_state *crtc_state);
 void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (9 preceding siblings ...)
  2018-06-14  2:36 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-06-28 18:43 ` Patchwork
  2018-06-28 18:44 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-28 18:43 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d4f58a865a45 drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-:31: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#31: FILE: drivers/gpu/drm/i915/i915_drv.h:658:
+#define QUIRK_INCREASE_DDI_DISABLED_TIME (1<<7)
                                            ^

total: 0 errors, 0 warnings, 1 checks, 84 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (10 preceding siblings ...)
  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 ` Patchwork
  2018-06-28 18:59 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-28 18:44 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3672:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3673:16: warning: expression using sizeof(void)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (11 preceding siblings ...)
  2018-06-28 18:44 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2018-06-28 18:59 ` Patchwork
  2018-06-28 22:05 ` ✓ Fi.CI.IGT: " Patchwork
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-28 18:59 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4398 -> Patchwork_9475 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44446/revisions/3/mbox/

== Known issues ==

  Here are the changes found in Patchwork_9475 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         PASS -> FAIL (fdo#104008)

    
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008


== Participating hosts (44 -> 38) ==

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-glk-j4005 


== Build changes ==

    * Linux: CI_DRM_4398 -> Patchwork_9475

  CI_DRM_4398: 66df3b4e8f63d2918d202cd0802ce389cfe36b0e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4530: 0e98bf69f146eb72fe3a7c3b19a049b5786f0ca3 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9475: d4f58a865a45654bdb0c6b2742430bb06328e521 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

d4f58a865a45 drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9475/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (12 preceding siblings ...)
  2018-06-28 18:59 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-06-28 22:05 ` Patchwork
  2018-07-03 20:26 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4) Patchwork
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-06-28 22:05 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev3)
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4398_full -> Patchwork_9475_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9475_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9475_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9475_full:

  === IGT changes ===

    ==== Warnings ====

    igt@perf_pmu@rc6:
      shard-kbl:          SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_9475_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_hangcheck:
      shard-glk:          NOTRUN -> DMESG-FAIL (fdo#106947, fdo#106560)

    igt@gem_softpin@noreloc-s3:
      shard-kbl:          NOTRUN -> INCOMPLETE (fdo#103665)

    igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
      shard-glk:          PASS -> INCOMPLETE (fdo#103359, k.org#198133) +1

    igt@kms_flip@flip-vs-expired-vblank:
      shard-glk:          PASS -> FAIL (fdo#105189)

    igt@kms_setmode@basic:
      shard-apl:          PASS -> FAIL (fdo#99912)
      shard-kbl:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_gtt:
      shard-glk:          INCOMPLETE (fdo#103359, k.org#198133) -> PASS

    igt@drv_selftest@live_hangcheck:
      shard-apl:          DMESG-FAIL (fdo#106947, fdo#106560) -> PASS

    igt@gem_ctx_isolation@rcs0-s3:
      shard-kbl:          INCOMPLETE (fdo#103665) -> PASS

    igt@kms_flip@plain-flip-ts-check-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip_tiling@flip-x-tiled:
      shard-glk:          FAIL (fdo#104724, fdo#103822) -> PASS +1

    igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt:
      shard-glk:          FAIL (fdo#103167, fdo#104724) -> PASS

    igt@kms_rotation_crc@primary-rotation-90:
      shard-kbl:          FAIL (fdo#104724, fdo#103925) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
  fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
  fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
  fdo#105189 https://bugs.freedesktop.org/show_bug.cgi?id=105189
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4398 -> Patchwork_9475

  CI_DRM_4398: 66df3b4e8f63d2918d202cd0802ce389cfe36b0e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4530: 0e98bf69f146eb72fe3a7c3b19a049b5786f0ca3 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9475: d4f58a865a45654bdb0c6b2742430bb06328e521 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9475/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v3] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-28 18:14         ` [PATCH v3] " clinton.a.taylor
@ 2018-06-29  9:09           ` Imre Deak
  2018-07-03 20:26             ` Clint Taylor
  0 siblings, 1 reply; 30+ messages in thread
From: Imre Deak @ 2018-06-29  9:09 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

On Thu, Jun 28, 2018 at 11:14:30AM -0700, clinton.a.taylor@intel.com wrote:
> 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. 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.
> 
> 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>
> ---
>  drivers/gpu/drm/i915/i915_drv.h      |  1 +
>  drivers/gpu/drm/i915/intel_ddi.c     | 16 ++++++++++++++--
>  drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++++++++++++-
>  drivers/gpu/drm/i915/intel_drv.h     |  3 +--
>  4 files changed, 36 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 2b684f4..6c5a679 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -655,6 +655,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 0319825..89bb5ce 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1807,15 +1807,27 @@ void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state)
>  	I915_WRITE(TRANS_DDI_FUNC_CTL(cpu_transcoder), temp);
>  }
>  
> -void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
> -				       enum transcoder cpu_transcoder)
> +/* Quirk time at 100ms for reliable operation */
> +#define DDI_DISABLED_QUIRK_TIME 100
> +
> +void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state)
>  {
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> +

Extra w/s.

>  	i915_reg_t reg = TRANS_DDI_FUNC_CTL(cpu_transcoder);
>  	uint32_t val = I915_READ(reg);
>  
>  	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)) {
> +		msleep(DDI_DISABLED_QUIRK_TIME);
> +		DRM_DEBUG_KMS("Quirk Increase DDI disabled time\n");
> +	}

I still think the macro is redundant, but I'd put here your comment
about the worst case mode and delay. The debug print should come before
the wait.

>  }
>  
>  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 eaa0663..ff42268 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5837,7 +5837,7 @@ static void haswell_crtc_disable(struct intel_crtc_state *old_crtc_state,
>  		intel_ddi_set_vc_payload_alloc(old_crtc_state, false);
>  
>  	if (!transcoder_is_dsi(cpu_transcoder))
> -		intel_ddi_disable_transcoder_func(dev_priv, cpu_transcoder);
> +		intel_ddi_disable_transcoder_func(old_crtc_state);
>  
>  	if (INTEL_GEN(dev_priv) >= 9)
>  		skylake_scaler_disable(intel_crtc);
> @@ -14852,6 +14852,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;
> @@ -14938,6 +14949,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 },
> +

Extra w/s.

With the above fixed:
Reviewed-by: Imre Deak <imre.deak@intel.com>

>  };
>  
>  static void intel_init_quirks(struct drm_device *dev)
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index a6ff260..9c3a3d6 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1384,8 +1384,7 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
>  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port);
>  bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
>  void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state);
> -void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
> -				       enum transcoder cpu_transcoder);
> +void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state);
>  void intel_ddi_enable_pipe_clock(const struct intel_crtc_state *crtc_state);
>  void intel_ddi_disable_pipe_clock(const  struct intel_crtc_state *crtc_state);
>  void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state);
> -- 
> 1.9.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v4] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-28 10:05       ` Imre Deak
  2018-06-28 18:14         ` [PATCH v3] " clinton.a.taylor
@ 2018-07-03 20:16         ` clinton.a.taylor
  2018-07-04 10:05           ` Imre Deak
  1 sibling, 1 reply; 30+ messages in thread
From: clinton.a.taylor @ 2018-07-03 20:16 UTC (permalink / raw)
  To: Intel-gfx

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. 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@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105887
Signed-off-by: Clint Taylor <clinton.a.taylor@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(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 2cefe4c..c1526ea 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -650,6 +650,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 0319825..6d33010 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1807,15 +1807,27 @@ void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state)
 	I915_WRITE(TRANS_DDI_FUNC_CTL(cpu_transcoder), temp);
 }
 
-void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
-				       enum transcoder cpu_transcoder)
+/* Quirk time at 100ms for reliable operation */
+#define DDI_DISABLED_QUIRK_TIME 100
+
+void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state)
 {
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+
 	i915_reg_t reg = TRANS_DDI_FUNC_CTL(cpu_transcoder);
 	uint32_t val = I915_READ(reg);
-
 	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))) {
+		DRM_DEBUG_KMS("Quirk Increase DDI disabled time\n");
+		msleep(DDI_DISABLED_QUIRK_TIME);
+	}
 }
 
 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 681e071..8d31ff3 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5837,7 +5837,7 @@ static void haswell_crtc_disable(struct intel_crtc_state *old_crtc_state,
 		intel_ddi_set_vc_payload_alloc(old_crtc_state, false);
 
 	if (!transcoder_is_dsi(cpu_transcoder))
-		intel_ddi_disable_transcoder_func(dev_priv, cpu_transcoder);
+		intel_ddi_disable_transcoder_func(old_crtc_state);
 
 	if (INTEL_GEN(dev_priv) >= 9)
 		skylake_scaler_disable(intel_crtc);
@@ -14847,6 +14847,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;
@@ -14933,6 +14944,13 @@ 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)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index b9b7032..2490221 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1384,8 +1384,7 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
 void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port);
 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
 void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state);
-void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
-				       enum transcoder cpu_transcoder);
+void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state);
 void intel_ddi_enable_pipe_clock(const struct intel_crtc_state *crtc_state);
 void intel_ddi_disable_pipe_clock(const  struct intel_crtc_state *crtc_state);
 void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH v3] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-06-29  9:09           ` Imre Deak
@ 2018-07-03 20:26             ` Clint Taylor
  0 siblings, 0 replies; 30+ messages in thread
From: Clint Taylor @ 2018-07-03 20:26 UTC (permalink / raw)
  To: imre.deak; +Cc: Intel-gfx



On 06/29/2018 02:09 AM, Imre Deak wrote:
> On Thu, Jun 28, 2018 at 11:14:30AM -0700, clinton.a.taylor@intel.com wrote:
>> 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. 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.
>>
>> 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>
>> ---
>>   drivers/gpu/drm/i915/i915_drv.h      |  1 +
>>   drivers/gpu/drm/i915/intel_ddi.c     | 16 ++++++++++++++--
>>   drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++++++++++++-
>>   drivers/gpu/drm/i915/intel_drv.h     |  3 +--
>>   4 files changed, 36 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 2b684f4..6c5a679 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -655,6 +655,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 0319825..89bb5ce 100644
>> --- a/drivers/gpu/drm/i915/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> @@ -1807,15 +1807,27 @@ void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state)
>>   	I915_WRITE(TRANS_DDI_FUNC_CTL(cpu_transcoder), temp);
>>   }
>>   
>> -void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
>> -				       enum transcoder cpu_transcoder)
>> +/* Quirk time at 100ms for reliable operation */
>> +#define DDI_DISABLED_QUIRK_TIME 100
>> +
>> +void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state)
>>   {
>> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
>> +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> +
> Extra w/s.
>
>>   	i915_reg_t reg = TRANS_DDI_FUNC_CTL(cpu_transcoder);
>>   	uint32_t val = I915_READ(reg);
>>   
>>   	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)) {
>> +		msleep(DDI_DISABLED_QUIRK_TIME);
>> +		DRM_DEBUG_KMS("Quirk Increase DDI disabled time\n");
>> +	}
> I still think the macro is redundant, but I'd put here your comment
> about the worst case mode and delay. The debug print should come before
> the wait.
>
>>   }
>>   
>>   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 eaa0663..ff42268 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -5837,7 +5837,7 @@ static void haswell_crtc_disable(struct intel_crtc_state *old_crtc_state,
>>   		intel_ddi_set_vc_payload_alloc(old_crtc_state, false);
>>   
>>   	if (!transcoder_is_dsi(cpu_transcoder))
>> -		intel_ddi_disable_transcoder_func(dev_priv, cpu_transcoder);
>> +		intel_ddi_disable_transcoder_func(old_crtc_state);
>>   
>>   	if (INTEL_GEN(dev_priv) >= 9)
>>   		skylake_scaler_disable(intel_crtc);
>> @@ -14852,6 +14852,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;
>> @@ -14938,6 +14949,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 },
>> +
> Extra w/s.
>
> With the above fixed:
> Reviewed-by: Imre Deak <imre.deak@intel.com>

Can't accept the R-B yet as the patch failed testing. Added another 
conditional check for INTEL_OUTPUT_DDI as some devices return this 
output type during a cold boot.

Submitted v4 with the changes.

-Clint

>
>>   };
>>   
>>   static void intel_init_quirks(struct drm_device *dev)
>> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>> index a6ff260..9c3a3d6 100644
>> --- a/drivers/gpu/drm/i915/intel_drv.h
>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>> @@ -1384,8 +1384,7 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
>>   void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port);
>>   bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
>>   void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state);
>> -void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
>> -				       enum transcoder cpu_transcoder);
>> +void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state);
>>   void intel_ddi_enable_pipe_clock(const struct intel_crtc_state *crtc_state);
>>   void intel_ddi_disable_pipe_clock(const  struct intel_crtc_state *crtc_state);
>>   void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state);
>> -- 
>> 1.9.1
>>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (13 preceding siblings ...)
  2018-06-28 22:05 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-07-03 20:26 ` Patchwork
  2018-07-03 20:27 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-07-03 20:26 UTC (permalink / raw)
  To: Clint Taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5f7ac64538c1 drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-:32: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#32: FILE: drivers/gpu/drm/i915/i915_drv.h:653:
+#define QUIRK_INCREASE_DDI_DISABLED_TIME (1<<7)
                                            ^

total: 0 errors, 0 warnings, 1 checks, 84 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (14 preceding siblings ...)
  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 ` Patchwork
  2018-07-03 20:43 ` ✓ Fi.CI.BAT: success " Patchwork
  2018-07-04  3:13 ` ✓ Fi.CI.IGT: " Patchwork
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-07-03 20:27 UTC (permalink / raw)
  To: Clint Taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
URL   : https://patchwork.freedesktop.org/series/44446/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3664:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3665:16: warning: expression using sizeof(void)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (15 preceding siblings ...)
  2018-07-03 20:27 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2018-07-03 20:43 ` Patchwork
  2018-07-04  3:13 ` ✓ Fi.CI.IGT: " Patchwork
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-07-03 20:43 UTC (permalink / raw)
  To: Clint Taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4423 -> Patchwork_9514 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44446/revisions/4/mbox/

== Known issues ==

  Here are the changes found in Patchwork_9514 that come from known issues:

  === IGT changes ===

    ==== Possible fixes ====

    igt@gem_exec_suspend@basic-s3:
      {fi-cfl-8109u}:     INCOMPLETE -> PASS

    igt@kms_chamelium@dp-edid-read:
      fi-kbl-7500u:       FAIL (fdo#103841) -> PASS

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841


== Participating hosts (45 -> 41) ==

  Additional (1): fi-bxt-dsi 
  Missing    (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4423 -> Patchwork_9514

  CI_DRM_4423: 9b9b45349fe3a36d41586992426d03a238396531 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4533: 199220052af977598033d3810ffb4cc32d377522 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9514: 5f7ac64538c16db5cfd2371bfdad1b9d7e1564f8 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

5f7ac64538c1 drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9514/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
  2018-06-07 23:12 [PATCH] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues clinton.a.taylor
                   ` (16 preceding siblings ...)
  2018-07-03 20:43 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-07-04  3:13 ` Patchwork
  17 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2018-07-04  3:13 UTC (permalink / raw)
  To: Clint Taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/glk: Add Quirk for GLK NUC HDMI port issues. (rev4)
URL   : https://patchwork.freedesktop.org/series/44446/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4423_full -> Patchwork_9514_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9514_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9514_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9514_full:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_exec_schedule@deep-blt:
      shard-kbl:          SKIP -> PASS +1

    igt@perf_pmu@rc6:
      shard-kbl:          PASS -> SKIP

    
== Known issues ==

  Here are the changes found in Patchwork_9514_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_gtt:
      shard-kbl:          PASS -> FAIL (fdo#105347)

    igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
      shard-glk:          PASS -> INCOMPLETE (k.org#198133, fdo#103359)

    igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          PASS -> FAIL (fdo#106509, fdo#105454)

    igt@kms_setmode@basic:
      shard-apl:          PASS -> FAIL (fdo#99912)
      shard-kbl:          PASS -> FAIL (fdo#99912)

    igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665) +1

    
    ==== Possible fixes ====

    igt@kms_vblank@pipe-a-ts-continuation-suspend:
      shard-hsw:          FAIL (fdo#104894) -> PASS

    igt@perf@polling:
      shard-hsw:          FAIL (fdo#102252) -> PASS

    
    ==== Warnings ====

    igt@drv_selftest@live_gtt:
      shard-glk:          INCOMPLETE (k.org#198133, fdo#103359) -> FAIL (fdo#105347)

    
  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#104894 https://bugs.freedesktop.org/show_bug.cgi?id=104894
  fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
  fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
  fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4423 -> Patchwork_9514

  CI_DRM_4423: 9b9b45349fe3a36d41586992426d03a238396531 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4533: 199220052af977598033d3810ffb4cc32d377522 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9514: 5f7ac64538c16db5cfd2371bfdad1b9d7e1564f8 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9514/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-07-03 20:16         ` [PATCH v4] " clinton.a.taylor
@ 2018-07-04 10:05           ` Imre Deak
  2018-07-04 21:28             ` Daniel Scheller
  0 siblings, 1 reply; 30+ messages in thread
From: Imre Deak @ 2018-07-04 10:05 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

On Tue, Jul 03, 2018 at 01:16:40PM -0700, clinton.a.taylor@intel.com wrote:
> 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. 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@intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105887
> Signed-off-by: Clint Taylor <clinton.a.taylor@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(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 2cefe4c..c1526ea 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -650,6 +650,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 0319825..6d33010 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1807,15 +1807,27 @@ void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state)
>  	I915_WRITE(TRANS_DDI_FUNC_CTL(cpu_transcoder), temp);
>  }
>  
> -void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
> -				       enum transcoder cpu_transcoder)
> +/* Quirk time at 100ms for reliable operation */
> +#define DDI_DISABLED_QUIRK_TIME 100

No need for this define as I commented earlier.

> +
> +void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state)
>  {
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> +
>  	i915_reg_t reg = TRANS_DDI_FUNC_CTL(cpu_transcoder);
>  	uint32_t val = I915_READ(reg);
> -

Removed w/s from the wrong spot.

>  	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.

> +		DRM_DEBUG_KMS("Quirk Increase DDI disabled time\n");
> +		msleep(DDI_DISABLED_QUIRK_TIME);

Just msleep(100); as I commented earlier.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=105887#c110

> +	}
>  }
>  
>  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 681e071..8d31ff3 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5837,7 +5837,7 @@ static void haswell_crtc_disable(struct intel_crtc_state *old_crtc_state,
>  		intel_ddi_set_vc_payload_alloc(old_crtc_state, false);
>  
>  	if (!transcoder_is_dsi(cpu_transcoder))
> -		intel_ddi_disable_transcoder_func(dev_priv, cpu_transcoder);
> +		intel_ddi_disable_transcoder_func(old_crtc_state);
>  
>  	if (INTEL_GEN(dev_priv) >= 9)
>  		skylake_scaler_disable(intel_crtc);
> @@ -14847,6 +14847,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;
> @@ -14933,6 +14944,13 @@ 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)
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index b9b7032..2490221 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1384,8 +1384,7 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
>  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port);
>  bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
>  void intel_ddi_enable_transcoder_func(const struct intel_crtc_state *crtc_state);
> -void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv,
> -				       enum transcoder cpu_transcoder);
> +void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state);
>  void intel_ddi_enable_pipe_clock(const struct intel_crtc_state *crtc_state);
>  void intel_ddi_disable_pipe_clock(const  struct intel_crtc_state *crtc_state);
>  void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state);
> -- 
> 1.9.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
  2018-07-04 10:05           ` Imre Deak
@ 2018-07-04 21:28             ` Daniel Scheller
  0 siblings, 0 replies; 30+ messages in thread
From: Daniel Scheller @ 2018-07-04 21:28 UTC (permalink / raw)
  To: imre.deak, clinton.a.taylor; +Cc: Intel-gfx

Hi Imre, Clinton,

Am Wed, 4 Jul 2018 13:05:59 +0300
schrieb Imre Deak <imre.deak@intel.com>:

> On Tue, Jul 03, 2018 at 01:16:40PM -0700, clinton.a.taylor@intel.com wrote:
> > 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. 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@intel.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105887
> > Signed-off-by: Clint Taylor <clinton.a.taylor@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@gmail.com>

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

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2018-07-04 21:28 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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.