* [Intel-gfx] [PATCH 1/2] drm/i915: Add a retry counter for hotplug detect retries
@ 2020-03-30 9:54 Imre Deak
2020-03-30 9:54 ` [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds Imre Deak
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Imre Deak @ 2020-03-30 9:54 UTC (permalink / raw)
To: intel-gfx
On TypeC connectors we need to retry the detection after hotplug events
for a longer time, so add a retry counter to support this. The next
patch will add detection retries on TypeC ports needing this.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 7 +++----
.../gpu/drm/i915/display/intel_display_types.h | 6 ++++--
drivers/gpu/drm/i915/display/intel_dp.c | 7 +++----
drivers/gpu/drm/i915/display/intel_hdmi.c | 6 +++---
drivers/gpu/drm/i915/display/intel_hotplug.c | 16 ++++++++++------
drivers/gpu/drm/i915/display/intel_hotplug.h | 3 +--
drivers/gpu/drm/i915/display/intel_sdvo.c | 5 ++---
7 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 916a802af788..4f508bf70f3b 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4369,15 +4369,14 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
static enum intel_hotplug_state
intel_ddi_hotplug(struct intel_encoder *encoder,
- struct intel_connector *connector,
- bool irq_received)
+ struct intel_connector *connector)
{
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
struct drm_modeset_acquire_ctx ctx;
enum intel_hotplug_state state;
int ret;
- state = intel_encoder_hotplug(encoder, connector, irq_received);
+ state = intel_encoder_hotplug(encoder, connector);
drm_modeset_acquire_init(&ctx, 0);
@@ -4416,7 +4415,7 @@ intel_ddi_hotplug(struct intel_encoder *encoder,
* time around we didn't detect any change in the sink's connection
* status.
*/
- if (state == INTEL_HOTPLUG_UNCHANGED && irq_received &&
+ if (state == INTEL_HOTPLUG_UNCHANGED && !connector->hotplug_retries &&
!dig_port->dp.is_mst)
state = INTEL_HOTPLUG_RETRY;
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 176ab5f1e867..671721e74075 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -132,8 +132,7 @@ struct intel_encoder {
u16 cloneable;
u8 pipe_mask;
enum intel_hotplug_state (*hotplug)(struct intel_encoder *encoder,
- struct intel_connector *connector,
- bool irq_received);
+ struct intel_connector *connector);
enum intel_output_type (*compute_output_type)(struct intel_encoder *,
struct intel_crtc_state *,
struct drm_connector_state *);
@@ -425,6 +424,9 @@ struct intel_connector {
struct edid *edid;
struct edid *detect_edid;
+ /* Number of times hotplug detection was tried after an HPD interrupt */
+ int hotplug_retries;
+
/* since POLL and HPD connectors may use the same HPD line keep the native
state of connector->polled in case hotplug storm detection changes it */
u8 polled;
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 2e715e6d7bb4..ab676d5b389b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5556,14 +5556,13 @@ int intel_dp_retrain_link(struct intel_encoder *encoder,
*/
static enum intel_hotplug_state
intel_dp_hotplug(struct intel_encoder *encoder,
- struct intel_connector *connector,
- bool irq_received)
+ struct intel_connector *connector)
{
struct drm_modeset_acquire_ctx ctx;
enum intel_hotplug_state state;
int ret;
- state = intel_encoder_hotplug(encoder, connector, irq_received);
+ state = intel_encoder_hotplug(encoder, connector);
drm_modeset_acquire_init(&ctx, 0);
@@ -5587,7 +5586,7 @@ intel_dp_hotplug(struct intel_encoder *encoder,
* Keeping it consistent with intel_ddi_hotplug() and
* intel_hdmi_hotplug().
*/
- if (state == INTEL_HOTPLUG_UNCHANGED && irq_received)
+ if (state == INTEL_HOTPLUG_UNCHANGED && !connector->hotplug_retries)
state = INTEL_HOTPLUG_RETRY;
return state;
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 0076abc63851..74ee7b2d83ce 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -3262,11 +3262,11 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
static enum intel_hotplug_state
intel_hdmi_hotplug(struct intel_encoder *encoder,
- struct intel_connector *connector, bool irq_received)
+ struct intel_connector *connector)
{
enum intel_hotplug_state state;
- state = intel_encoder_hotplug(encoder, connector, irq_received);
+ state = intel_encoder_hotplug(encoder, connector);
/*
* On many platforms the HDMI live state signal is known to be
@@ -3280,7 +3280,7 @@ intel_hdmi_hotplug(struct intel_encoder *encoder,
* time around we didn't detect any change in the sink's connection
* status.
*/
- if (state == INTEL_HOTPLUG_UNCHANGED && irq_received)
+ if (state == INTEL_HOTPLUG_UNCHANGED && !connector->hotplug_retries)
state = INTEL_HOTPLUG_RETRY;
return state;
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
index a091442efba4..4f6f560e093e 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -270,8 +270,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
enum intel_hotplug_state
intel_encoder_hotplug(struct intel_encoder *encoder,
- struct intel_connector *connector,
- bool irq_received)
+ struct intel_connector *connector)
{
struct drm_device *dev = connector->base.dev;
enum drm_connector_status old_status;
@@ -392,12 +391,17 @@ static void i915_hotplug_work_func(struct work_struct *work)
struct intel_encoder *encoder =
intel_attached_encoder(connector);
+ if (hpd_event_bits & hpd_bit)
+ connector->hotplug_retries = 0;
+ else
+ connector->hotplug_retries++;
+
drm_dbg_kms(&dev_priv->drm,
- "Connector %s (pin %i) received hotplug event.\n",
- connector->base.name, pin);
+ "Connector %s (pin %i) received hotplug event. (retry %d)\n",
+ connector->base.name, pin,
+ connector->hotplug_retries);
- switch (encoder->hotplug(encoder, connector,
- hpd_event_bits & hpd_bit)) {
+ switch (encoder->hotplug(encoder, connector)) {
case INTEL_HOTPLUG_UNCHANGED:
break;
case INTEL_HOTPLUG_CHANGED:
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.h b/drivers/gpu/drm/i915/display/intel_hotplug.h
index 1e6b4fda2900..777b0743257e 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.h
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.h
@@ -15,8 +15,7 @@ enum port;
void intel_hpd_poll_init(struct drm_i915_private *dev_priv);
enum intel_hotplug_state intel_encoder_hotplug(struct intel_encoder *encoder,
- struct intel_connector *connector,
- bool irq_received);
+ struct intel_connector *connector);
void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
u32 pin_mask, u32 long_mask);
void intel_hpd_init(struct drm_i915_private *dev_priv);
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 637d8fe2f8c2..8e0eb46871f9 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -1934,12 +1934,11 @@ static void intel_sdvo_enable_hotplug(struct intel_encoder *encoder)
static enum intel_hotplug_state
intel_sdvo_hotplug(struct intel_encoder *encoder,
- struct intel_connector *connector,
- bool irq_received)
+ struct intel_connector *connector)
{
intel_sdvo_enable_hotplug(encoder);
- return intel_encoder_hotplug(encoder, connector, irq_received);
+ return intel_encoder_hotplug(encoder, connector);
}
static bool
--
2.23.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds
2020-03-30 9:54 [Intel-gfx] [PATCH 1/2] drm/i915: Add a retry counter for hotplug detect retries Imre Deak
@ 2020-03-30 9:54 ` Imre Deak
2020-03-30 19:13 ` Souza, Jose
2020-04-01 11:20 ` Anshuman Gupta
2020-03-30 12:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries Patchwork
2020-03-31 3:02 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2 siblings, 2 replies; 8+ messages in thread
From: Imre Deak @ 2020-03-30 9:54 UTC (permalink / raw)
To: intel-gfx
On TypeC ports if a sink deasserts/reasserts its HPD signal, generating
a hotplug interrupt without the sink getting unplugged/replugged from
the connector, there can be an up to 3 seconds delay until the AUX
channel gets functional. To avoid detection failures this delay causes
retry the detection for 5 seconds.
I noticed this on ICL/TGL RVPs and a DELL XPS 13 7390 ICL laptop.
References: https://gitlab.freedesktop.org/drm/intel/issues/1067
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 4f508bf70f3b..2d947ff83488 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4371,7 +4371,10 @@ static enum intel_hotplug_state
intel_ddi_hotplug(struct intel_encoder *encoder,
struct intel_connector *connector)
{
+ struct drm_i915_private *i915 = to_i915(encoder->base.dev);
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
+ enum phy phy = intel_port_to_phy(i915, encoder->port);
+ bool is_tc = intel_phy_is_tc(i915, phy);
struct drm_modeset_acquire_ctx ctx;
enum intel_hotplug_state state;
int ret;
@@ -4414,8 +4417,15 @@ intel_ddi_hotplug(struct intel_encoder *encoder,
* valid EDID. To solve this schedule another detection cycle if this
* time around we didn't detect any change in the sink's connection
* status.
+ *
+ * Type-c connectors which get their HPD signal deasserted then
+ * reasserted, without unplugging/replugging the sink from the
+ * connector, introduce a delay until the AUX channel communication
+ * becomes functional. Retry the detection for 5 seconds on type-c
+ * connectors to account for this delay.
*/
- if (state == INTEL_HOTPLUG_UNCHANGED && !connector->hotplug_retries &&
+ if (state == INTEL_HOTPLUG_UNCHANGED &&
+ connector->hotplug_retries < (is_tc ? 5 : 1) &&
!dig_port->dp.is_mst)
state = INTEL_HOTPLUG_RETRY;
--
2.23.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries
2020-03-30 9:54 [Intel-gfx] [PATCH 1/2] drm/i915: Add a retry counter for hotplug detect retries Imre Deak
2020-03-30 9:54 ` [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds Imre Deak
@ 2020-03-30 12:33 ` Patchwork
2020-03-31 3:02 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2020-03-30 12:33 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries
URL : https://patchwork.freedesktop.org/series/75224/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8213 -> Patchwork_17125
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/index.html
Known issues
------------
Here are the changes found in Patchwork_17125 that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@i915_selftest@live@execlists:
- fi-bxt-dsi: [INCOMPLETE][1] ([i915#656]) -> [PASS][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/fi-bxt-dsi/igt@i915_selftest@live@execlists.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/fi-bxt-dsi/igt@i915_selftest@live@execlists.html
[i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656
Participating hosts (47 -> 43)
------------------------------
Additional (4): fi-hsw-4770r fi-byt-j1900 fi-glk-dsi fi-bsw-n3050
Missing (8): fi-ilk-m540 fi-hsw-4200u fi-skl-6770hq fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_8213 -> Patchwork_17125
CI-20190529: 20190529
CI_DRM_8213: 3cebf14c87d0d4508d4cc9c49db14061af752c37 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5544: 477c562fc9932939083d732b77dd7b083c6bc0a1 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_17125: fa5ee4c1786539998360fd6f6f4796fdb26882ed @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
fa5ee4c17865 drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds
a05d922e417e drm/i915: Add a retry counter for hotplug detect retries
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds
2020-03-30 9:54 ` [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds Imre Deak
@ 2020-03-30 19:13 ` Souza, Jose
2020-04-06 15:02 ` Imre Deak
2020-04-01 11:20 ` Anshuman Gupta
1 sibling, 1 reply; 8+ messages in thread
From: Souza, Jose @ 2020-03-30 19:13 UTC (permalink / raw)
To: intel-gfx, Deak, Imre
On Mon, 2020-03-30 at 12:54 +0300, Imre Deak wrote:
> On TypeC ports if a sink deasserts/reasserts its HPD signal,
> generating
> a hotplug interrupt without the sink getting unplugged/replugged from
> the connector, there can be an up to 3 seconds delay until the AUX
> channel gets functional. To avoid detection failures this delay
> causes
> retry the detection for 5 seconds.
5 seconds? would it be 5 tries?
Other than that both patches looks good.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
>
> I noticed this on ICL/TGL RVPs and a DELL XPS 13 7390 ICL laptop.
>
> References: https://gitlab.freedesktop.org/drm/intel/issues/1067
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_ddi.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 4f508bf70f3b..2d947ff83488 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4371,7 +4371,10 @@ static enum intel_hotplug_state
> intel_ddi_hotplug(struct intel_encoder *encoder,
> struct intel_connector *connector)
> {
> + struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> + enum phy phy = intel_port_to_phy(i915, encoder->port);
> + bool is_tc = intel_phy_is_tc(i915, phy);
> struct drm_modeset_acquire_ctx ctx;
> enum intel_hotplug_state state;
> int ret;
> @@ -4414,8 +4417,15 @@ intel_ddi_hotplug(struct intel_encoder
> *encoder,
> * valid EDID. To solve this schedule another detection cycle
> if this
> * time around we didn't detect any change in the sink's
> connection
> * status.
> + *
> + * Type-c connectors which get their HPD signal deasserted then
> + * reasserted, without unplugging/replugging the sink from the
> + * connector, introduce a delay until the AUX channel
> communication
> + * becomes functional. Retry the detection for 5 seconds on
> type-c
> + * connectors to account for this delay.
> */
> - if (state == INTEL_HOTPLUG_UNCHANGED && !connector-
> >hotplug_retries &&
> + if (state == INTEL_HOTPLUG_UNCHANGED &&
> + connector->hotplug_retries < (is_tc ? 5 : 1) &&
> !dig_port->dp.is_mst)
> state = INTEL_HOTPLUG_RETRY;
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries
2020-03-30 9:54 [Intel-gfx] [PATCH 1/2] drm/i915: Add a retry counter for hotplug detect retries Imre Deak
2020-03-30 9:54 ` [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds Imre Deak
2020-03-30 12:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries Patchwork
@ 2020-03-31 3:02 ` Patchwork
2 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2020-03-31 3:02 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries
URL : https://patchwork.freedesktop.org/series/75224/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8213_full -> Patchwork_17125_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_17125_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_schedule@implicit-read-write-bsd1:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#109276] / [i915#677]) +2 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb1/igt@gem_exec_schedule@implicit-read-write-bsd1.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb3/igt@gem_exec_schedule@implicit-read-write-bsd1.html
* igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112146]) +5 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb3/igt@gem_exec_schedule@preemptive-hang-bsd.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb2/igt@gem_exec_schedule@preemptive-hang-bsd.html
* igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +17 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb4/igt@gem_exec_schedule@promotion-bsd1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb8/igt@gem_exec_schedule@promotion-bsd1.html
* igt@gem_workarounds@suspend-resume-context:
- shard-skl: [PASS][7] -> [INCOMPLETE][8] ([i915#69])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-skl10/igt@gem_workarounds@suspend-resume-context.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-skl8/igt@gem_workarounds@suspend-resume-context.html
* igt@gen9_exec_parse@allowed-all:
- shard-glk: [PASS][9] -> [DMESG-WARN][10] ([i915#716])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-glk7/igt@gen9_exec_parse@allowed-all.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-glk3/igt@gen9_exec_parse@allowed-all.html
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-snb: [PASS][11] -> [TIMEOUT][12] ([i915#1526])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-snb6/igt@i915_pm_rc6_residency@rc6-idle.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-snb1/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@i915_selftest@live@execlists:
- shard-apl: [PASS][13] -> [INCOMPLETE][14] ([i915#656])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-apl2/igt@i915_selftest@live@execlists.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-apl3/igt@i915_selftest@live@execlists.html
* igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#180])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-kbl1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
* igt@kms_cursor_crc@pipe-c-cursor-64x21-random:
- shard-skl: [PASS][17] -> [FAIL][18] ([i915#54])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-skl7/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-skl5/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
* igt@kms_flip@flip-vs-suspend:
- shard-skl: [PASS][19] -> [INCOMPLETE][20] ([i915#221])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-skl7/igt@kms_flip@flip-vs-suspend.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-skl5/igt@kms_flip@flip-vs-suspend.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-skl: [PASS][21] -> [FAIL][22] ([i915#1188])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-skl6/igt@kms_hdr@bpc-switch-suspend.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-skl3/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl: [PASS][23] -> [FAIL][24] ([fdo#108145])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-skl10/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-skl5/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
* igt@kms_psr@psr2_sprite_render:
- shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441]) +2 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb2/igt@kms_psr@psr2_sprite_render.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb5/igt@kms_psr@psr2_sprite_render.html
* igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-apl: [PASS][27] -> [DMESG-WARN][28] ([i915#180]) +3 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-apl6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-apl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
* igt@perf_pmu@busy-no-semaphores-vcs1:
- shard-iclb: [PASS][29] -> [SKIP][30] ([fdo#112080]) +9 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb4/igt@perf_pmu@busy-no-semaphores-vcs1.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb6/igt@perf_pmu@busy-no-semaphores-vcs1.html
#### Possible fixes ####
* igt@gem_exec_parallel@vcs1-fds:
- shard-iclb: [SKIP][31] ([fdo#112080]) -> [PASS][32] +14 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb7/igt@gem_exec_parallel@vcs1-fds.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb4/igt@gem_exec_parallel@vcs1-fds.html
* igt@gem_exec_schedule@implicit-read-write-bsd2:
- shard-iclb: [SKIP][33] ([fdo#109276] / [i915#677]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb8/igt@gem_exec_schedule@implicit-read-write-bsd2.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb1/igt@gem_exec_schedule@implicit-read-write-bsd2.html
* igt@gem_exec_schedule@pi-common-bsd:
- shard-iclb: [SKIP][35] ([i915#677]) -> [PASS][36] +2 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb4/igt@gem_exec_schedule@pi-common-bsd.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb8/igt@gem_exec_schedule@pi-common-bsd.html
* igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [SKIP][37] ([fdo#112146]) -> [PASS][38] +5 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb1/igt@gem_exec_schedule@reorder-wide-bsd.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb6/igt@gem_exec_schedule@reorder-wide-bsd.html
* igt@gem_workarounds@suspend-resume-fd:
- shard-kbl: [DMESG-WARN][39] ([i915#180]) -> [PASS][40] +5 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-kbl1/igt@gem_workarounds@suspend-resume-fd.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html
* igt@i915_selftest@live@requests:
- shard-iclb: [INCOMPLETE][41] ([i915#1505]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb6/igt@i915_selftest@live@requests.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb7/igt@i915_selftest@live@requests.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl: [DMESG-WARN][43] ([i915#180]) -> [PASS][44] +2 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-apl6/igt@i915_suspend@fence-restore-tiled2untiled.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-apl2/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_cursor_crc@pipe-a-cursor-64x64-random:
- shard-apl: [FAIL][45] ([i915#54] / [i915#95]) -> [PASS][46] +1 similar issue
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-apl3/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-apl8/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [SKIP][47] ([fdo#109349]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb3/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
- shard-skl: [FAIL][49] ([fdo#108145]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-skl5/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-skl9/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
* igt@kms_psr@no_drrs:
- shard-iclb: [FAIL][51] ([i915#173]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb1/igt@kms_psr@no_drrs.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb3/igt@kms_psr@no_drrs.html
* igt@kms_psr@psr2_cursor_render:
- shard-iclb: [SKIP][53] ([fdo#109441]) -> [PASS][54] +2 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb3/igt@kms_psr@psr2_cursor_render.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
* igt@kms_setmode@basic:
- shard-hsw: [FAIL][55] ([i915#31]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-hsw1/igt@kms_setmode@basic.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-hsw2/igt@kms_setmode@basic.html
* igt@kms_vblank@pipe-a-query-forked-hang:
- shard-snb: [SKIP][57] ([fdo#109271]) -> [PASS][58] +5 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-snb1/igt@kms_vblank@pipe-a-query-forked-hang.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-snb4/igt@kms_vblank@pipe-a-query-forked-hang.html
* {igt@perf@polling-parameterized}:
- shard-iclb: [FAIL][59] ([i915#1542]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb5/igt@perf@polling-parameterized.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb4/igt@perf@polling-parameterized.html
- shard-hsw: [FAIL][61] ([i915#1542]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-hsw6/igt@perf@polling-parameterized.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-hsw1/igt@perf@polling-parameterized.html
- shard-tglb: [FAIL][63] ([i915#1542]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-tglb5/igt@perf@polling-parameterized.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-tglb3/igt@perf@polling-parameterized.html
* igt@prime_busy@hang-bsd2:
- shard-iclb: [SKIP][65] ([fdo#109276]) -> [PASS][66] +18 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-iclb5/igt@prime_busy@hang-bsd2.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-iclb4/igt@prime_busy@hang-bsd2.html
#### Warnings ####
* igt@runner@aborted:
- shard-apl: [FAIL][67] ([i915#1423] / [i915#1485]) -> ([FAIL][68], [FAIL][69]) ([i915#1423] / [i915#1485] / [i915#529])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8213/shard-apl3/igt@runner@aborted.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-apl3/igt@runner@aborted.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17125/shard-apl8/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#1423]: https://gitlab.freedesktop.org/drm/intel/issues/1423
[i915#1485]: https://gitlab.freedesktop.org/drm/intel/issues/1485
[i915#1505]: https://gitlab.freedesktop.org/drm/intel/issues/1505
[i915#1526]: https://gitlab.freedesktop.org/drm/intel/issues/1526
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#221]: https://gitlab.freedesktop.org/drm/intel/issues/221
[i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
[i915#529]: https://gitlab.freedesktop.org/drm/intel/issues/529
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_8213 -> Patchwork_17125
CI-20190529: 20190529
CI_DRM_8213: 3cebf14c87d0d4508d4cc9c49db14061af752c37 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5544: 477c562fc9932939083d732b77dd7b083c6bc0a1 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_17125: fa5ee4c1786539998360fd6f6f4796fdb26882ed @ 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_17125/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds
2020-03-30 9:54 ` [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds Imre Deak
2020-03-30 19:13 ` Souza, Jose
@ 2020-04-01 11:20 ` Anshuman Gupta
2020-04-01 11:54 ` Imre Deak
1 sibling, 1 reply; 8+ messages in thread
From: Anshuman Gupta @ 2020-04-01 11:20 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
On 2020-03-30 at 15:24:25 +0530, Imre Deak wrote:
> On TypeC ports if a sink deasserts/reasserts its HPD signal, generating
> a hotplug interrupt without the sink getting unplugged/replugged from
> the connector, there can be an up to 3 seconds delay until the AUX
> channel gets functional. To avoid detection failures this delay causes
> retry the detection for 5 seconds.
>
> I noticed this on ICL/TGL RVPs and a DELL XPS 13 7390 ICL laptop.
>
> References: https://gitlab.freedesktop.org/drm/intel/issues/1067
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_ddi.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 4f508bf70f3b..2d947ff83488 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4371,7 +4371,10 @@ static enum intel_hotplug_state
> intel_ddi_hotplug(struct intel_encoder *encoder,
> struct intel_connector *connector)
> {
> + struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> + enum phy phy = intel_port_to_phy(i915, encoder->port);
> + bool is_tc = intel_phy_is_tc(i915, phy);
> struct drm_modeset_acquire_ctx ctx;
> enum intel_hotplug_state state;
> int ret;
> @@ -4414,8 +4417,15 @@ intel_ddi_hotplug(struct intel_encoder *encoder,
> * valid EDID. To solve this schedule another detection cycle if this
> * time around we didn't detect any change in the sink's connection
> * status.
> + *
> + * Type-c connectors which get their HPD signal deasserted then
> + * reasserted, without unplugging/replugging the sink from the
> + * connector, introduce a delay until the AUX channel communication
> + * becomes functional. Retry the detection for 5 seconds on type-c
> + * connectors to account for this delay.
> */
> - if (state == INTEL_HOTPLUG_UNCHANGED && !connector->hotplug_retries &&
> + if (state == INTEL_HOTPLUG_UNCHANGED &&
> + connector->hotplug_retries < (is_tc ? 5 : 1) &&
I had observed that intel_dp_detect may race between user spece invoked
get connector call and intel_encoder_hotplug(), that may leave connector status
to be UNCHANGED in actual hotplug flow as intel_dp_detect() already called from
drm_helper_probe_single_connector_modes(), this may results in 5 retries for
type-C ports for normal HPD assertion.
Please correct me if i am wrong.
Thanks,
Anshuman Gupta.
> !dig_port->dp.is_mst)
> state = INTEL_HOTPLUG_RETRY;
>
> --
> 2.23.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds
2020-04-01 11:20 ` Anshuman Gupta
@ 2020-04-01 11:54 ` Imre Deak
0 siblings, 0 replies; 8+ messages in thread
From: Imre Deak @ 2020-04-01 11:54 UTC (permalink / raw)
To: Anshuman Gupta; +Cc: intel-gfx
On Wed, Apr 01, 2020 at 04:50:23PM +0530, Anshuman Gupta wrote:
> On 2020-03-30 at 15:24:25 +0530, Imre Deak wrote:
> > On TypeC ports if a sink deasserts/reasserts its HPD signal, generating
> > a hotplug interrupt without the sink getting unplugged/replugged from
> > the connector, there can be an up to 3 seconds delay until the AUX
> > channel gets functional. To avoid detection failures this delay causes
> > retry the detection for 5 seconds.
> >
> > I noticed this on ICL/TGL RVPs and a DELL XPS 13 7390 ICL laptop.
> >
> > References: https://gitlab.freedesktop.org/drm/intel/issues/1067
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_ddi.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 4f508bf70f3b..2d947ff83488 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -4371,7 +4371,10 @@ static enum intel_hotplug_state
> > intel_ddi_hotplug(struct intel_encoder *encoder,
> > struct intel_connector *connector)
> > {
> > + struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> > struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> > + enum phy phy = intel_port_to_phy(i915, encoder->port);
> > + bool is_tc = intel_phy_is_tc(i915, phy);
> > struct drm_modeset_acquire_ctx ctx;
> > enum intel_hotplug_state state;
> > int ret;
> > @@ -4414,8 +4417,15 @@ intel_ddi_hotplug(struct intel_encoder *encoder,
> > * valid EDID. To solve this schedule another detection cycle if this
> > * time around we didn't detect any change in the sink's connection
> > * status.
> > + *
> > + * Type-c connectors which get their HPD signal deasserted then
> > + * reasserted, without unplugging/replugging the sink from the
> > + * connector, introduce a delay until the AUX channel communication
> > + * becomes functional. Retry the detection for 5 seconds on type-c
> > + * connectors to account for this delay.
> > */
> > - if (state == INTEL_HOTPLUG_UNCHANGED && !connector->hotplug_retries &&
> > + if (state == INTEL_HOTPLUG_UNCHANGED &&
> > + connector->hotplug_retries < (is_tc ? 5 : 1) &&
>
> I had observed that intel_dp_detect may race between user spece
> invoked get connector call and intel_encoder_hotplug(), that may leave
> connector status to be UNCHANGED in actual hotplug flow as
> intel_dp_detect() already called from
> drm_helper_probe_single_connector_modes(), this may results in 5
> retries for type-C ports for normal HPD assertion. Please correct me
> if i am wrong.
Yes, it's possible the retries will be unneccessary, but I don't think
we can do much about avoiding a race between a hotplug event and a
detect call.
> Thanks,
> Anshuman Gupta.
> > !dig_port->dp.is_mst)
> > state = INTEL_HOTPLUG_RETRY;
> >
> > --
> > 2.23.1
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds
2020-03-30 19:13 ` Souza, Jose
@ 2020-04-06 15:02 ` Imre Deak
0 siblings, 0 replies; 8+ messages in thread
From: Imre Deak @ 2020-04-06 15:02 UTC (permalink / raw)
To: Souza, Jose, Anshuman Gupta; +Cc: intel-gfx
On Mon, Mar 30, 2020 at 10:13:02PM +0300, Souza, Jose wrote:
> On Mon, 2020-03-30 at 12:54 +0300, Imre Deak wrote:
> > On TypeC ports if a sink deasserts/reasserts its HPD signal,
> > generating
> > a hotplug interrupt without the sink getting unplugged/replugged from
> > the connector, there can be an up to 3 seconds delay until the AUX
> > channel gets functional. To avoid detection failures this delay
> > causes
> > retry the detection for 5 seconds.
>
> 5 seconds? would it be 5 tries?
Yes, 5 tries with a 1 second delay in-between them.
Thanks for the review, patchset pushed to -dinq.
> Other than that both patches looks good.
>
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
>
> >
> > I noticed this on ICL/TGL RVPs and a DELL XPS 13 7390 ICL laptop.
> >
> > References: https://gitlab.freedesktop.org/drm/intel/issues/1067
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_ddi.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 4f508bf70f3b..2d947ff83488 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -4371,7 +4371,10 @@ static enum intel_hotplug_state
> > intel_ddi_hotplug(struct intel_encoder *encoder,
> > struct intel_connector *connector)
> > {
> > + struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> > struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> > + enum phy phy = intel_port_to_phy(i915, encoder->port);
> > + bool is_tc = intel_phy_is_tc(i915, phy);
> > struct drm_modeset_acquire_ctx ctx;
> > enum intel_hotplug_state state;
> > int ret;
> > @@ -4414,8 +4417,15 @@ intel_ddi_hotplug(struct intel_encoder
> > *encoder,
> > * valid EDID. To solve this schedule another detection cycle
> > if this
> > * time around we didn't detect any change in the sink's
> > connection
> > * status.
> > + *
> > + * Type-c connectors which get their HPD signal deasserted then
> > + * reasserted, without unplugging/replugging the sink from the
> > + * connector, introduce a delay until the AUX channel
> > communication
> > + * becomes functional. Retry the detection for 5 seconds on
> > type-c
> > + * connectors to account for this delay.
> > */
> > - if (state == INTEL_HOTPLUG_UNCHANGED && !connector-
> > >hotplug_retries &&
> > + if (state == INTEL_HOTPLUG_UNCHANGED &&
> > + connector->hotplug_retries < (is_tc ? 5 : 1) &&
> > !dig_port->dp.is_mst)
> > state = INTEL_HOTPLUG_RETRY;
> >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-04-06 15:02 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-30 9:54 [Intel-gfx] [PATCH 1/2] drm/i915: Add a retry counter for hotplug detect retries Imre Deak
2020-03-30 9:54 ` [Intel-gfx] [PATCH 2/2] drm/i915: Extend hotplug detect retry on TypeC connectors to 5 seconds Imre Deak
2020-03-30 19:13 ` Souza, Jose
2020-04-06 15:02 ` Imre Deak
2020-04-01 11:20 ` Anshuman Gupta
2020-04-01 11:54 ` Imre Deak
2020-03-30 12:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Add a retry counter for hotplug detect retries Patchwork
2020-03-31 3:02 ` [Intel-gfx] ✓ 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.