drm/i915/display: Fixed the main link lost in MST (rev6)

2024-05-29 Thread gareth . yu
Please Ignore the last message.

Hi, may I know the status of this change? What is the next steps?

Thanks,
Gareth


[PATCH v2 12/21] drm/i915/dp: Use check link state work in the detect handler

2024-05-29 Thread gareth . yu
A bad link in MST is not retrained. Please also consider MST.
The issue ticket is 
https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10902.

if (intel_dp->is_mst) {
/*
 * If we are in MST mode then this connector
 * won't appear connected or have anything
 * with EDID on it
 */
status = connector_status_disconnected;
goto out;
}

/*
 * Some external monitors do not signal loss of link synchronization
 * with an IRQ_HPD, so force a link status check.
 */
if (!intel_dp_is_edp(intel_dp)) {
ret = intel_dp_retrain_link(encoder, ctx);
if (ret)
return ret;
}


[PATCH v2 12/21] drm/i915/dp: Use check link state work in the detect handler

2024-05-26 Thread gareth . yu
A bad link in MST is not retrained. Please also consider MST.
The issue ticket is 
https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10902.

if (intel_dp->is_mst) {
/*
 * If we are in MST mode then this connector
 * won't appear connected or have anything
 * with EDID on it
 */
status = connector_status_disconnected;
goto out;
}

/*
 * Some external monitors do not signal loss of link synchronization
 * with an IRQ_HPD, so force a link status check.
 */
if (!intel_dp_is_edp(intel_dp)) {
ret = intel_dp_retrain_link(encoder, ctx);
if (ret)
return ret;
}


[PATCH] drm/i915/display: Fixed the main link lost in MST

2024-04-30 Thread gareth . yu
From: Gareth Yu 

Re-train the main link for the main link lost in MST. The previous
version doesn't cover MST mode.

v5: Move link status check to the location which covers MST mode
v6: Correct Tejas' email address in cc

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10902
Cc: Tejas Upadhyay 
Cc: Matt Roper 
Cc: Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_dp.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..8043740b4233 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5891,16 +5891,6 @@ intel_dp_detect(struct drm_connector *connector,
 
intel_dp_print_rates(intel_dp);
 
-   if (intel_dp->is_mst) {
-   /*
-* If we are in MST mode then this connector
-* won't appear connected or have anything
-* with EDID on it
-*/
-   status = connector_status_disconnected;
-   goto out;
-   }
-
/*
 * Some external monitors do not signal loss of link synchronization
 * with an IRQ_HPD, so force a link status check.
@@ -5911,6 +5901,16 @@ intel_dp_detect(struct drm_connector *connector,
return ret;
}
 
+   if (intel_dp->is_mst) {
+   /*
+* If we are in MST mode then this connector
+* won't appear connected or have anything
+* with EDID on it
+*/
+   status = connector_status_disconnected;
+   goto out;
+   }
+
/*
 * Clearing NACK and defer counts to get their exact values
 * while reading EDID which are required by Compliance tests
-- 
2.25.1



[PATCH] drm/i915/display: Fixed the main link lost in MST

2024-04-25 Thread gareth . yu
From: Gareth Yu 

Re-train the main link for the main link lost in MST. The previous
version doesn't cover MST mode.

v5: Move link status check to the location which covers MST mode

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10902
Cc: Tejas Upadhyay 
Cc: Matt Roper 
Cc: Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_dp.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..8043740b4233 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5891,16 +5891,6 @@ intel_dp_detect(struct drm_connector *connector,
 
intel_dp_print_rates(intel_dp);
 
-   if (intel_dp->is_mst) {
-   /*
-* If we are in MST mode then this connector
-* won't appear connected or have anything
-* with EDID on it
-*/
-   status = connector_status_disconnected;
-   goto out;
-   }
-
/*
 * Some external monitors do not signal loss of link synchronization
 * with an IRQ_HPD, so force a link status check.
@@ -5911,6 +5901,16 @@ intel_dp_detect(struct drm_connector *connector,
return ret;
}
 
+   if (intel_dp->is_mst) {
+   /*
+* If we are in MST mode then this connector
+* won't appear connected or have anything
+* with EDID on it
+*/
+   status = connector_status_disconnected;
+   goto out;
+   }
+
/*
 * Clearing NACK and defer counts to get their exact values
 * while reading EDID which are required by Compliance tests
-- 
2.25.1



[PATCH] drm/i915/display: Fixed the main link lost in MST

2024-04-24 Thread gareth . yu
From: Gareth Yu 

Re-train the main link when the sink asserts a HPD for the main lnk
lost.

v4:  detect the main link state by intel_dp_needs_link_retrain
 instead of intel_dp_mst_link_status because the main link
 state can't detect correctly sometimes by
 intel_dp_mst_link_status

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_dp.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..e1b60303b256 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5849,8 +5849,14 @@ intel_dp_detect(struct drm_connector *connector,
/* Can't disconnect eDP */
if (intel_dp_is_edp(intel_dp))
status = edp_detect(intel_dp);
-   else if (intel_digital_port_connected(encoder))
+   else if (intel_digital_port_connected(encoder)) {
status = intel_dp_detect_dpcd(intel_dp);
+   if (status == connector_status_connected && intel_dp->is_mst &&
+   intel_dp_needs_link_retrain(intel_dp)) {
+   if (intel_dp_retrain_link(encoder, ctx))
+   status = connector_status_disconnected;
+   }
+   }
else
status = connector_status_disconnected;
 
-- 
2.25.1



[PATCH] drm/i915/display: Fixed HDMI can't show up behind a USB-C dock station

2024-04-22 Thread gareth . yu
From: Gareth Yu 

Re-train the main link once HPD happens without link status

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10902
Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_dp.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..52ab549e6d08 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5849,8 +5849,13 @@ intel_dp_detect(struct drm_connector *connector,
/* Can't disconnect eDP */
if (intel_dp_is_edp(intel_dp))
status = edp_detect(intel_dp);
-   else if (intel_digital_port_connected(encoder))
+   else if (intel_digital_port_connected(encoder)) {
status = intel_dp_detect_dpcd(intel_dp);
+   if (status == connector_status_connected && intel_dp->is_mst &&
+   !intel_dp_mst_link_status(intel_dp))
+   if (intel_dp_retrain_link(encoder, ctx))
+   status = connector_status_disconnected;
+   }
else
status = connector_status_disconnected;
 
-- 
2.25.1



[PATCH] drm/i915/display: Fixed the main link lost in MST

2024-04-22 Thread gareth . yu
From: Gareth Yu 

Re-train the main link when the sink asserts a HPD for the main lnk 
lost.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_dp.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..db5d4fa8340b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5849,8 +5849,13 @@ intel_dp_detect(struct drm_connector *connector,
/* Can't disconnect eDP */
if (intel_dp_is_edp(intel_dp))
status = edp_detect(intel_dp);
-   else if (intel_digital_port_connected(encoder))
+   else if (intel_digital_port_connected(encoder)) {
status = intel_dp_detect_dpcd(intel_dp);
+   if (status == connector_status_connected && intel_dp->is_mst &&
+   !intel_dp_mst_link_status(intel_dp))
+   if (intel_dp_retrain_link(encoder, ctx))
+   status = connector_status_disconnected;
+   }
else
status = connector_status_disconnected;
 
-- 
2.25.1



[PATCH] drm/i915/display: Fixed the main link lost in MST

2024-04-22 Thread gareth . yu
From: Gareth Yu 

Re-train the main link when the sink asserts a HPD for the main lnk 
lost.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_dp.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index e05e25cd4a94..db5d4fa8340b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5849,8 +5849,13 @@ intel_dp_detect(struct drm_connector *connector,
/* Can't disconnect eDP */
if (intel_dp_is_edp(intel_dp))
status = edp_detect(intel_dp);
-   else if (intel_digital_port_connected(encoder))
+   else if (intel_digital_port_connected(encoder)) {
status = intel_dp_detect_dpcd(intel_dp);
+   if (status == connector_status_connected && intel_dp->is_mst &&
+   !intel_dp_mst_link_status(intel_dp))
+   if (intel_dp_retrain_link(encoder, ctx))
+   status = connector_status_disconnected;
+   }
else
status = connector_status_disconnected;
 
-- 
2.25.1



[PATCH] drm/i915/display: Fixed a screen flickering when turning on display from off

2024-03-20 Thread gareth . yu
From: Gareth Yu 

Turn on the panel from zero brightness of the last state, the panel was
set a maximum PWM in the flow. Once the panel initialization is completed,
the backlight is restored to xero brightness. There is a flckering
generated. This flicker happens in "Screen dimming and power off" of
Google's design and resume from sleep. The sample of DMESG is below.

(suspend)
[53949.248875] i915 :00:02.0: [drm:intel_edp_backlight_off]
[53949.452046] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 0

(wakeup)
[53986.067356] i915 :00:02.0: [drm:intel_edp_backlight_on]
[53986.067367] i915 :00:02.0: [drm:intel_backlight_enable] pipe A
[53986.067476] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 96000
[53986.119766] backlight intel_backlight: PM: calling backlight_resume+0x0/0x7a 
@ 4916, parent: card0-eDP-1
[53986.119781] backlight intel_backlight: PM: backlight_resume+0x0/0x7a 
returned 0 after 0 usecs
[53986.220068] [drm:intel_backlight_device_update_status] updating 
intel_backlight, brightness=26321/96000
[53986.220086] i915 :00:02.0: [drm:intel_panel_actually_set_backlight] set 
backlight level = 27961

Set the brightness to the minimum value when the new brightness is less
or equal to the minimum value to mitigate this flickering.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_backlight.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c 
b/drivers/gpu/drm/i915/display/intel_backlight.c
index 3f3cd944a1c5..23fd011b6bfb 100644
--- a/drivers/gpu/drm/i915/display/intel_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_backlight.c
@@ -761,8 +761,8 @@ static void __intel_backlight_enable(const struct 
intel_crtc_state *crtc_state,
 
WARN_ON(panel->backlight.max == 0);
 
-   if (panel->backlight.level <= panel->backlight.min) {
-   panel->backlight.level = panel->backlight.max;
+   if (panel->backlight.level < panel->backlight.min) {
+   panel->backlight.level = panel->backlight.min;
if (panel->backlight.device)
panel->backlight.device->props.brightness =
scale_hw_to_user(connector,
-- 
2.25.1



[PATCH] drm/i915/display: Fixed a screen flickering when turning on display from off

2024-03-17 Thread gareth . yu
From: Gareth Yu 

Turn on the panel from zero brightness of the last state, the panel was
set a maximum PWM in the flow. Once the panel initialization is completed,
the backlight is restored to xero brightness. There is a flckering
generated. This flicker happens in "Screen dimming and power off" of
Google's design and resume from sleep. The sample of DMESG is below.

(suspend)
[53949.248875] i915 :00:02.0: [drm:intel_edp_backlight_off]
[53949.452046] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 0

(wakeup)
[53986.067356] i915 :00:02.0: [drm:intel_edp_backlight_on]
[53986.067367] i915 :00:02.0: [drm:intel_backlight_enable] pipe A
[53986.067476] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 96000
[53986.119766] backlight intel_backlight: PM: calling backlight_resume+0x0/0x7a 
@ 4916, parent: card0-eDP-1
[53986.119781] backlight intel_backlight: PM: backlight_resume+0x0/0x7a 
returned 0 after 0 usecs
[53986.220068] [drm:intel_backlight_device_update_status] updating 
intel_backlight, brightness=26321/96000
[53986.220086] i915 :00:02.0: [drm:intel_panel_actually_set_backlight] set 
backlight level = 27961

Set the brightness to the minimum value when the brightness is less or
equal to the minimum value to mitigate this flickering.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_backlight.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c 
b/drivers/gpu/drm/i915/display/intel_backlight.c
index 3f3cd944a1c5..1cfac72aacc6 100644
--- a/drivers/gpu/drm/i915/display/intel_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_backlight.c
@@ -761,7 +761,7 @@ static void __intel_backlight_enable(const struct 
intel_crtc_state *crtc_state,
 
WARN_ON(panel->backlight.max == 0);
 
-   if (panel->backlight.level <= panel->backlight.min) {
+   if (panel->backlight.level < panel->backlight.min) {
panel->backlight.level = panel->backlight.max;
if (panel->backlight.device)
panel->backlight.device->props.brightness =
-- 
2.25.1



[PATCH] drm/i915/display: Fixed a screen flickering when turning on display from off

2024-03-15 Thread gareth . yu
From: Gareth Yu 

Turn on the panel from zero brightness of the last state, the panel was
set a maximum PWM in the flow. Once the panel initialization is completed,
the backlight is restored to xero brightness. There is a flckering
generated. This flicker happens in "Screen dimming and power off" of
Google's design and resume from sleep. The sample of DMESG is below.

(suspend)
[53949.248875] i915 :00:02.0: [drm:intel_edp_backlight_off]
[53949.452046] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 0

(wakeup)
[53986.067356] i915 :00:02.0: [drm:intel_edp_backlight_on]
[53986.067367] i915 :00:02.0: [drm:intel_backlight_enable] pipe A
[53986.067476] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 96000
[53986.119766] backlight intel_backlight: PM: calling backlight_resume+0x0/0x7a 
@ 4916, parent: card0-eDP-1
[53986.119781] backlight intel_backlight: PM: backlight_resume+0x0/0x7a 
returned 0 after 0 usecs
[53986.220068] [drm:intel_backlight_device_update_status] updating 
intel_backlight, brightness=26321/96000
[53986.220086] i915 :00:02.0: [drm:intel_panel_actually_set_backlight] set 
backlight level = 27961

Set the brightness to the minimum value when the brightness is less or
equal to the minimum value to mitigate this flickering.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_backlight.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c 
b/drivers/gpu/drm/i915/display/intel_backlight.c
index 3f3cd944a1c5..c7a314b624fc 100644
--- a/drivers/gpu/drm/i915/display/intel_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_backlight.c
@@ -761,7 +761,7 @@ static void __intel_backlight_enable(const struct 
intel_crtc_state *crtc_state,
 
WARN_ON(panel->backlight.max == 0);
 
-   if (panel->backlight.level <= panel->backlight.min) {
+   if (panel->backlight.level == 0) {
panel->backlight.level = panel->backlight.max;
if (panel->backlight.device)
panel->backlight.device->props.brightness =
-- 
2.25.1



[PATCH] drm/i915/display: Fixed a screen flickering when turning on display from off

2024-03-11 Thread gareth . yu
From: Gareth Yu 

Turn on the panel from zero brightness of the last state, the panel was
set a maximum PWM in the flow. Once the panel initialization is completed,
the backlight is restored to xero brightness. There is a flckering
generated. This flicker happens in "Screen dimming and power off" of
Google's design and resume from sleep. The sample of DMESG is below.

(suspend)
[53949.248875] i915 :00:02.0: [drm:intel_edp_backlight_off]
[53949.452046] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 0

(wakeup)
[53986.067356] i915 :00:02.0: [drm:intel_edp_backlight_on]
[53986.067367] i915 :00:02.0: [drm:intel_backlight_enable] pipe A
[53986.067476] i915 :00:02.0: [drm:intel_backlight_set_pwm_level] set 
backlight PWM = 96000
[53986.119766] backlight intel_backlight: PM: calling backlight_resume+0x0/0x7a 
@ 4916, parent: card0-eDP-1
[53986.119781] backlight intel_backlight: PM: backlight_resume+0x0/0x7a 
returned 0 after 0 usecs
[53986.220068] [drm:intel_backlight_device_update_status] updating 
intel_backlight, brightness=26321/96000
[53986.220086] i915 :00:02.0: [drm:intel_panel_actually_set_backlight] set 
backlight level = 27961

Set the brightness to the minimum value when the brightness is less or
equal to the minimum value to mitigate this flickering.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_backlight.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c 
b/drivers/gpu/drm/i915/display/intel_backlight.c
index 3f3cd944a1c5..855d6ead905c 100644
--- a/drivers/gpu/drm/i915/display/intel_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_backlight.c
@@ -762,7 +762,7 @@ static void __intel_backlight_enable(const struct 
intel_crtc_state *crtc_state,
WARN_ON(panel->backlight.max == 0);
 
if (panel->backlight.level <= panel->backlight.min) {
-   panel->backlight.level = panel->backlight.max;
+   panel->backlight.level = panel->backlight.min;
if (panel->backlight.device)
panel->backlight.device->props.brightness =
scale_hw_to_user(connector,
-- 
2.25.1



[PATCH] drm/i915/display: Fixed a screen flickering when turning on display from off

2024-03-05 Thread gareth . yu
From: Gareth Yu 

Turn on the panel from zero brightness of the last state, the panel was set
a maximum PWM in the flow. Once the panel initialization is completed, the
backlight is restored to zero brightness. There is a flckering generated.

Set the brightness to the minimum value when the brightness is less or equal
to the minimum value to fix this flickering

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/display/intel_backlight.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c 
b/drivers/gpu/drm/i915/display/intel_backlight.c
index 3f3cd944a1c5..855d6ead905c 100644
--- a/drivers/gpu/drm/i915/display/intel_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_backlight.c
@@ -762,7 +762,7 @@ static void __intel_backlight_enable(const struct 
intel_crtc_state *crtc_state,
WARN_ON(panel->backlight.max == 0);
 
if (panel->backlight.level <= panel->backlight.min) {
-   panel->backlight.level = panel->backlight.max;
+   panel->backlight.level = panel->backlight.min;
if (panel->backlight.device)
panel->backlight.device->props.brightness =
scale_hw_to_user(connector,
-- 
2.25.1



[Intel-gfx] [PATCH] drm/i915/mtl: Print SSEU information of all GTs for debugfs

2023-11-02 Thread Gareth Yu
Print another SSEU information addition to the first one.

Cc : Tejas Upadhyay 
Cc : Matt Roper 
Cc : Ville Syrjälä 
Signed-off-by: Gareth Yu 
---
 drivers/gpu/drm/i915/i915_debugfs.c   | 13 ++---
 drivers/gpu/drm/i915/i915_gpu_error.c |  6 +-
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index e9b79c2c37d8..b5914a2c0597 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -63,13 +63,16 @@ static int i915_capabilities(struct seq_file *m, void *data)
 {
struct drm_i915_private *i915 = node_to_i915(m->private);
struct drm_printer p = drm_seq_file_printer(m);
+   struct intel_gt *gt;
+   unsigned int i;
 
seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(i915));
 
intel_device_info_print(INTEL_INFO(i915), RUNTIME_INFO(i915), );
intel_display_device_info_print(DISPLAY_INFO(i915), 
DISPLAY_RUNTIME_INFO(i915), );
i915_print_iommu_status(i915, );
-   intel_gt_info_print(_gt(i915)->info, );
+   for_each_gt(gt, i915, i)
+   intel_gt_info_print(>info, );
intel_driver_caps_print(>caps, );
 
kernel_param_lock(THIS_MODULE);
@@ -783,9 +786,13 @@ DEFINE_SIMPLE_ATTRIBUTE(i915_drop_caches_fops,
 static int i915_sseu_status(struct seq_file *m, void *unused)
 {
struct drm_i915_private *i915 = node_to_i915(m->private);
-   struct intel_gt *gt = to_gt(i915);
+   struct intel_gt *gt;
+   unsigned int i;
+
+   for_each_gt(gt, i915, i)
+   intel_sseu_status(m, gt);
 
-   return intel_sseu_status(m, gt);
+   return 0;
 }
 
 static int i915_forcewake_open(struct inode *inode, struct file *file)
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index b4e31e59c799..2adc317af944 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -722,9 +722,13 @@ static void err_print_gt_info(struct 
drm_i915_error_state_buf *m,
  struct intel_gt_coredump *gt)
 {
struct drm_printer p = i915_error_printer(m);
+   struct drm_i915_private *i915 = gt->_gt->i915;
+   struct intel_gt *gt_n;
+   unsigned int n;
 
intel_gt_info_print(>info, );
-   intel_sseu_print_topology(gt->_gt->i915, >info.sseu, );
+   for_each_gt(gt_n, i915, n)
+   intel_sseu_print_topology(gt_n->i915, _n->info.sseu, );
 }
 
 static void err_print_gt_display(struct drm_i915_error_state_buf *m,
-- 
2.42.0.rc0.25.ga82fb66fed