FAILED: patch "[PATCH] drm/i915: Fix VBT DSI DVO port handling" failed to apply to 6.2-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.2-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]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.2.y
git checkout FETCH_HEAD
git cherry-pick -x 8f9f5fb94dbea843621740e6b25b3b430a83cf29
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 6.2.y' HEAD^..
Possible dependencies:
8f9f5fb94dbe ("drm/i915: Fix VBT DSI DVO port handling")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 8f9f5fb94dbea843621740e6b25b3b430a83cf29 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <[email protected]>
Date: Tue, 7 Feb 2023 08:43:35 +0200
Subject: [PATCH] drm/i915: Fix VBT DSI DVO port handling
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Turns out modern (icl+) VBTs still declare their DSI ports as MIPI-A and MIPI-C despite the PHYs now being A and B. Remap appropriately to allow the panels declared as MIPI-C to work.
drivers/gpu/drm/i915/display/intel_bios.c +23 -10
@@ -2467,6 +2467,22 @@ static enum port dvo_port_to_port(struct drm_i915_private *i915, dvo_port); } +static enum port +dsi_dvo_port_to_port (struct drm_i915_private *i915,u8 dvo_port) +{ +switch (dvo_port) { +case DVO_PORT_MIPIA : +return PORT_A ; +case DVO_PORT_MIPIC : +if (DISPLAY_VER (i915) >=11 ) +return PORT_B ; +else +return PORT_C ; +default : +return PORT_NONE ; + } +} +static int parse_bdb_230_dp_max_link_rate (const int vbt_max_link_rate) {switch (vbt_max_link_rate) {
@@ -3442,19 +3458,16 @@ bool intel_bios_is_dsi_present(struct drm_i915_private *i915, dvo_port = child->dvo_port; -if (dvo_port ==DVO_PORT_MIPIA || - (dvo_port ==DVO_PORT_MIPIB &&DISPLAY_VER (i915) >=11 ) || - (dvo_port ==DVO_PORT_MIPIC &&DISPLAY_VER (i915) <11 )) { -if (port) - *port = dvo_port -DVO_PORT_MIPIA ; -return true; - }else if (dvo_port ==DVO_PORT_MIPIB || - dvo_port ==DVO_PORT_MIPIC || - dvo_port ==DVO_PORT_MIPID ) { +if (dsi_dvo_port_to_port (i915, dvo_port) ==PORT_NONE ) {drm_dbg_kms (&i915->drm,"VBT has unsupported DSI port %c\n" ,port_name (dvo_port -DVO_PORT_MIPIA )); +continue ; } + +if (port) + *port =dsi_dvo_port_to_port (i915, dvo_port); +return true; }return false;
@@ -3539,7 +3552,7 @@ bool intel_bios_get_dsc_params(struct intel_encoder *encoder,if (!(child->device_type &DEVICE_TYPE_MIPI_OUTPUT ))continue ; -if (child->dvo_port -DVO_PORT_MIPIA == encoder->port) { +if (dsi_dvo_port_to_port (i915, child->dvo_port) == encoder->port) {if (!devdata->dsc)return false;