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