diff options
-rw-r--r-- | overlays/patches/linux/eve-backlight.patch | 108 |
1 files changed, 73 insertions, 35 deletions
diff --git a/overlays/patches/linux/eve-backlight.patch b/overlays/patches/linux/eve-backlight.patch index dcf1cc5505ea..c6dce0c263c9 100644 --- a/overlays/patches/linux/eve-backlight.patch +++ b/overlays/patches/linux/eve-backlight.patch @@ -1,7 +1,44 @@ -From 0154de6abf4f81c5d81b8391e931dc1f7071182f Mon Sep 17 00:00:00 2001 +From ed683c4365aa64e49ffdbdc7518cbee49fff6d9c Mon Sep 17 00:00:00 2001 +From: Alyssa Ross <hi@alyssa.is> +Date: Thu, 24 Jun 2021 00:46:26 +0000 +Subject: [PATCH 1/3] Revert "drm/i915/dp: Don't use DPCD backlights that need + PWM enable/disable" + +This reverts commit fe7d52bccab674a22776a2f31236bf4232e85410. +--- + drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +index 4f8337c7fd2e0..87059df17e196 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +@@ -586,14 +586,9 @@ intel_dp_aux_supports_vesa_backlight(struct intel_connector *connector) + struct drm_i915_private *i915 = dp_to_i915(intel_dp); + + /* Check the eDP Display control capabilities registers to determine if +- * the panel can support backlight control over the aux channel. +- * +- * TODO: We currently only support AUX only backlight configurations, not backlights which +- * require a mix of PWM and AUX controls to work. In the mean time, these machines typically +- * work just fine using normal PWM controls anyway. ++ * the panel can support backlight control over the aux channel + */ + if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP && +- (intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) && + (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP)) { + drm_dbg_kms(&i915->drm, "AUX Backlight Control Supported!\n"); + return true; + +base-commit: 9f4ad9e425a1d3b6a34617b8ea226d56a119a717 +-- +2.31.1 + + +From 0bf263810adb88e3101bf1f2090fc562909d4e6c Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 25 Apr 2021 08:19:45 +0000 -Subject: [PATCH 1/2] Revert "drm/i915/vbt: Fix backlight parsing for VBT 234+" +Subject: [PATCH 2/3] Revert "drm/i915/vbt: Fix backlight parsing for VBT 234+" This reverts commit d381baad29b43511a7fc34c64402ef65029ab281. --- @@ -10,7 +47,7 @@ This reverts commit d381baad29b43511a7fc34c64402ef65029ab281. 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c -index 4cc949b228f2d..f12975ef92428 100644 +index 987cf509337f2..e4e440c0e9aac 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -425,7 +425,6 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, @@ -64,10 +101,10 @@ index 4cc949b228f2d..f12975ef92428 100644 } diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h -index 49b4b5fca9411..9abdde1e68dc4 100644 +index 187ec573de59d..880a965c3b9a5 100644 --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h -@@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { +@@ -784,7 +784,7 @@ struct lfp_backlight_data_entry { u8 active_low_pwm:1; u8 obsolete1:5; u16 pwm_freq_hz; @@ -76,7 +113,7 @@ index 49b4b5fca9411..9abdde1e68dc4 100644 u8 obsolete2; u8 obsolete3; } __packed; -@@ -792,19 +792,11 @@ struct lfp_backlight_control_method { +@@ -794,19 +794,11 @@ struct lfp_backlight_control_method { u8 controller:4; } __packed; @@ -98,12 +135,13 @@ index 49b4b5fca9411..9abdde1e68dc4 100644 /* -- -2.31.0 +2.31.1 + -From 280a1737103195768814b62e0b0b3d646a961c4a Mon Sep 17 00:00:00 2001 +From 53604e87914a96a9bb75b4f381720148b62b98da Mon Sep 17 00:00:00 2001 From: Kevin Chowski <chowski@google.com> Date: Sat, 8 Aug 2020 15:40:51 -0600 -Subject: [PATCH 2/2] CHROMIUM: Changes needed for backlight control on Eve-5.4 +Subject: [PATCH 3/3] CHROMIUM: Changes needed for backlight control on Eve-5.4 #1: Port https://crrev.com/c/439873 to the 5.4 tree #2: Port https://crrev.com/c/440445 to the 5.4 tree @@ -156,14 +194,14 @@ Signed-off-by: Guenter Roeck <groeck@chromium.org> 3 files changed, 139 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -index 51d27fc98d483..d76888863e7cf 100644 +index 87059df17e196..81ae9cf3bb44f 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -@@ -141,10 +141,16 @@ static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector) +@@ -385,10 +385,16 @@ static bool intel_dp_aux_vesa_set_pwm_freq(struct intel_connector *connector) { struct drm_i915_private *dev_priv = to_i915(connector->base.dev); struct intel_dp *intel_dp = intel_attached_dp(connector); -- const u8 pn = connector->panel.backlight.pwmgen_bit_count; +- const u8 pn = connector->panel.backlight.edp.vesa.pwmgen_bit_count; - int freq, fxp, f, fxp_actual, fxp_min, fxp_max; + int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1; + u8 pn, pn_min, pn_max; @@ -178,7 +216,7 @@ index 51d27fc98d483..d76888863e7cf 100644 if (!freq) { drm_dbg_kms(&dev_priv->drm, "Use panel default backlight frequency\n"); -@@ -152,18 +158,50 @@ static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector) +@@ -396,18 +402,50 @@ static bool intel_dp_aux_vesa_set_pwm_freq(struct intel_connector *connector) } fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq); @@ -235,7 +273,7 @@ index 51d27fc98d483..d76888863e7cf 100644 if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_EDP_BACKLIGHT_FREQ_SET, (u8) f) < 0) { drm_dbg_kms(&dev_priv->drm, -@@ -173,6 +211,26 @@ static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector) +@@ -417,6 +455,26 @@ static bool intel_dp_aux_vesa_set_pwm_freq(struct intel_connector *connector) return true; } @@ -259,10 +297,10 @@ index 51d27fc98d483..d76888863e7cf 100644 + return true; +} + - static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_state, - const struct drm_connector_state *conn_state) - { -@@ -213,6 +271,16 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st + static void + intel_dp_aux_vesa_enable_backlight(const struct intel_crtc_state *crtc_state, + const struct drm_connector_state *conn_state, u32 level) +@@ -459,6 +517,16 @@ intel_dp_aux_vesa_enable_backlight(const struct intel_crtc_state *crtc_state, break; } @@ -277,9 +315,9 @@ index 51d27fc98d483..d76888863e7cf 100644 + } + if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_FREQ_AUX_SET_CAP) - if (intel_dp_aux_set_pwm_freq(connector)) + if (intel_dp_aux_vesa_set_pwm_freq(connector)) new_dpcd_buf |= DP_EDP_BACKLIGHT_FREQ_AUX_SET_ENABLE; -@@ -342,7 +410,7 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) +@@ -588,7 +656,7 @@ intel_dp_aux_supports_vesa_backlight(struct intel_connector *connector) /* Check the eDP Display control capabilities registers to determine if * the panel can support backlight control over the aux channel */ @@ -288,7 +326,7 @@ index 51d27fc98d483..d76888863e7cf 100644 (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP)) { drm_dbg_kms(&i915->drm, "AUX Backlight Control Supported!\n"); return true; -@@ -350,6 +418,59 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) +@@ -596,6 +664,59 @@ intel_dp_aux_supports_vesa_backlight(struct intel_connector *connector) return false; } @@ -345,27 +383,27 @@ index 51d27fc98d483..d76888863e7cf 100644 + +} + - int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) - { - struct intel_panel *panel = &intel_connector->panel; -@@ -379,6 +500,10 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) - return -ENODEV; + static const struct intel_panel_bl_funcs intel_dp_hdr_bl_funcs = { + .setup = intel_dp_aux_hdr_setup_backlight, + .enable = intel_dp_aux_hdr_enable_backlight, +@@ -673,6 +794,10 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *connector) + return 0; } + if (i915_modparams.enable_dpcd_backlight == -1 && -+ !intel_dp_aux_display_control_heuristic(intel_connector)) ++ !intel_dp_aux_display_control_heuristic(connector)) + return -ENODEV; + - panel->backlight.setup = intel_dp_aux_setup_backlight; - panel->backlight.enable = intel_dp_aux_enable_backlight; - panel->backlight.disable = intel_dp_aux_disable_backlight; + if (try_vesa_interface && intel_dp_aux_supports_vesa_backlight(connector)) { + drm_dbg_kms(dev, "Using VESA eDP backlight controls\n"); + panel->backlight.funcs = &intel_dp_vesa_bl_funcs; diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c -index 7f139ea4a90b2..378fc905f2b78 100644 +index 6939634e56ed6..a2d31699b96a4 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -187,6 +187,9 @@ i915_param_named(enable_dpcd_backlight, int, 0400, "Enable support for DPCD backlight control" - "(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enabled)"); + "(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enable, 2=force VESA interface, 3=force Intel interface)"); +i915_param_named(enable_dbc, bool, 0600, + "Enable support for dynamic backlight control (default:false)"); @@ -374,10 +412,10 @@ index 7f139ea4a90b2..378fc905f2b78 100644 i915_param_named(enable_gvt, bool, 0400, "Enable support for Intel GVT-g graphics virtualization host support(default:false)"); diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h -index 330c03e2b4f70..2340889d87834 100644 +index f031966af5b70..545b4a193e1d3 100644 --- a/drivers/gpu/drm/i915/i915_params.h +++ b/drivers/gpu/drm/i915/i915_params.h -@@ -80,7 +80,8 @@ struct drm_printer; +@@ -81,7 +81,8 @@ struct drm_printer; param(bool, verbose_state_checks, true, 0) \ param(bool, nuclear_pageflip, false, 0400) \ param(bool, enable_dp_mst, true, 0600) \ @@ -388,5 +426,5 @@ index 330c03e2b4f70..2340889d87834 100644 #define MEMBER(T, member, ...) T member; struct i915_params { -- -2.31.0 +2.31.1 |