Skip to contentSkip to conversation

FAILED: patch "[PATCH] drm/i915/dsi: fix dual-link DSI backlight and CABC ports for" failed to apply to 5.19-stable tree

PATCH [email protected] 1 participant 1 message Sep 6, 2022

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

Possible dependencies:

875c6d2711f6 ("drm/i915/dsi: fix dual-link DSI backlight and CABC ports for display 11+") 3cf050762534 ("drm/i915/bios: Split VBT data into per-panel vs. global parts") c2fdb424d322 ("drm/i915/bios: Split VBT parsing to global vs. panel specific parts") c3fbcf60bc74 ("drm/i915/bios: Split parse_driver_features() into two parts") 75bd0d5e4ead ("drm/i915/pps: Split pps_init_delays() into distinct parts") 822e5ae701af ("drm/i915: Extract intel_edp_fixup_vbt_bpp()")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 875c6d2711f6c97e58c52288b4231f3072711d61 Mon Sep 17 00:00:00 2001
From: Jani Nikula <[email protected]>
Date: Tue, 16 Aug 2022 18:37:21 +0300
Subject: [PATCH] drm/i915/dsi: fix dual-link DSI backlight and CABC ports for
display 11+

The VBT dual-link DSI backlight and CABC still use ports A and C, both in Bspec and code, while display 11+ DSI only supports ports A and B. Assume port C actually means port B for display 11+ when parsing VBT.

Bspec: 20154

drivers/gpu/drm/i915/display/intel_bios.c +6 -4
index 51dde5bfd956..198a2f4920cc 100644
@@ -1596,6 +1596,8 @@ static void parse_dsi_backlight_ports(struct drm_i915_private *i915,
 				      struct intel_panel *panel,
 				      enum port port)
 {
+	enum port port_bc = DISPLAY_VER(i915) >= 11 ? PORT_B : PORT_C;
+
 	if (!panel->vbt.dsi.config->dual_link || i915->vbt.version < 197) {
 		panel->vbt.dsi.bl_ports = BIT(port);
 		if (panel->vbt.dsi.config->cabc_supported)
@@ -1609,11 +1611,11 @@ static void parse_dsi_backlight_ports(struct drm_i915_private *i915,
 		panel->vbt.dsi.bl_ports = BIT(PORT_A);
 		break;
 	case DL_DCS_PORT_C:
-		panel->vbt.dsi.bl_ports = BIT(PORT_C);
+		panel->vbt.dsi.bl_ports = BIT(port_bc);
 		break;
 	default:
 	case DL_DCS_PORT_A_AND_C:
-		panel->vbt.dsi.bl_ports = BIT(PORT_A) | BIT(PORT_C);
+		panel->vbt.dsi.bl_ports = BIT(PORT_A) | BIT(port_bc);
 		break;
 	}
 
@@ -1625,12 +1627,12 @@ static void parse_dsi_backlight_ports(struct drm_i915_private *i915,
 		panel->vbt.dsi.cabc_ports = BIT(PORT_A);
 		break;
 	case DL_DCS_PORT_C:
-		panel->vbt.dsi.cabc_ports = BIT(PORT_C);
+		panel->vbt.dsi.cabc_ports = BIT(port_bc);
 		break;
 	default:
 	case DL_DCS_PORT_A_AND_C:
 		panel->vbt.dsi.cabc_ports =
-					BIT(PORT_A) | BIT(PORT_C);
+					BIT(PORT_A) | BIT(port_bc);
 		break;
 	}
 }