FAILED: patch "[PATCH] drm/i915: Pick the backlight controller based on VBT on ICP+" failed to apply to 6.1-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.1-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.1.y
git checkout FETCH_HEAD
git cherry-pick -x b33771546309b46b681388b3540b69a75a0e2e69
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023051321-curable-estimate-ab52@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
b33771546309 ("drm/i915: Pick the backlight controller based on VBT on ICP+")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From b33771546309b46b681388b3540b69a75a0e2e69 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:37 +0200
Subject: [PATCH] drm/i915: Pick the backlight controller based on VBT on ICP+
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Use the second backlight controller on ICP+ if the VBT asks us to do so.
On pre-MTP we also check the chicken bit to make sure the pins have been correctly muxed by the firmware.
drivers/gpu/drm/i915/display/intel_backlight.c +31 -3
@@ -1431,6 +1431,30 @@ bxt_setup_backlight(struct intel_connector *connector, enum pipe unused)return 0 ; } +static int cnp_num_backlight_controllers (struct drm_i915_private *i915) +{ +if (INTEL_PCH_TYPE (i915) >=PCH_DG1 ) +return 1 ; + +if (INTEL_PCH_TYPE (i915) >=PCH_ICP ) +return 2 ; + +return 1 ; +} + +static bool cnp_backlight_controller_is_valid (struct drm_i915_private *i915,int controller) +{ +if (controller <0 || controller >=cnp_num_backlight_controllers (i915)) +return false; + +if (controller ==1 && +INTEL_PCH_TYPE (i915) >=PCH_ICP && +INTEL_PCH_TYPE (i915) <PCH_MTP ) +return intel_de_read (i915,SOUTH_CHICKEN1 ) &ICP_SECOND_PPS_IO_SELECT ; + +return true; +} +static int cnp_setup_backlight (struct intel_connector *connector,enum pipe unused) {
@@ -1440,10 +1464,14 @@ cnp_setup_backlight(struct intel_connector *connector, enum pipe unused)/* * CNP has the BXT implementation of backlight, but with only one -* controller. TODO: ICP has multiple controllers but we only use -* controller 0 for now. +* controller. ICP+ can have two controllers, depending on pin muxing. */ - panel->backlight.controller =0 ; + panel->backlight.controller = connector->panel.vbt.backlight.controller; +if (!cnp_backlight_controller_is_valid (i915, panel->backlight.controller)) { +drm_dbg_kms (&i915->drm,"Invalid backlight controller %d, assuming 0\n" , + panel->backlight.controller); + panel->backlight.controller =0 ; + } pwm_ctl =intel_de_read (i915,BXT_BLC_PWM_CTL (panel->backlight.controller));