From: Yu Zhang <[email protected]>
gen11_dsi_config_util_pin() skips UTIL_PIN configuration for any port
mask that includes PORT_B. For dual-link (PORT_A | PORT_B), PORT_A
still needs UTIL_PIN as TE (Tearing Effect) input. Without it, vblank
interrupts never fire and flip_done operations time out on command
mode dual-link panels.
Only PORT_B-only configurations should skip this step, as TE comes
from the slave DSI1 through GPIO in that case.
Fixes: 963bbdb32b47 ("drm/i915/dsi: add support for ICL+ native MIPI GPIO
sequence")
Cc: [email protected]
Signed-off-by: Yu Zhang <[email protected]>
---
drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c
b/drivers/gpu/drm/i915/display/icl_dsi.c
index f579cba28..cb60aad92 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1113,7 +1113,7 @@ static void gen11_dsi_config_util_pin(struct
intel_encoder *encoder,
* for dual link/DSI1 TE is from slave DSI1
* through GPIO.
*/
- if (is_vid_mode(intel_dsi) || (intel_dsi->ports & BIT(PORT_B)))
+ if (is_vid_mode(intel_dsi) || intel_dsi->ports == BIT(PORT_B))
return;
tmp = intel_de_read(display, UTIL_PIN_CTL);
--
2.43.0