diff options
author | Vasily Khoruzhick | 2021-01-11 22:10:11 -0800 |
---|---|---|
committer | Vasily Khoruzhick | 2021-01-11 22:10:11 -0800 |
commit | ea392e3c4019317f897e29fc9404f50205a341f4 (patch) | |
tree | 02762ebe39b074894245a10b69fa0e6b99113ca3 /0004-drm-i915-Pass-down-brightness-values-to-enable-disab.patch | |
parent | b09b02546d3f89f0eac5e468c4a58a61006dbb5d (diff) | |
download | aur-ea392e3c4019317f897e29fc9404f50205a341f4.tar.gz |
Update to 5.10.6
Update patches to v5 version from Lyude
Diffstat (limited to '0004-drm-i915-Pass-down-brightness-values-to-enable-disab.patch')
-rw-r--r-- | 0004-drm-i915-Pass-down-brightness-values-to-enable-disab.patch | 368 |
1 files changed, 368 insertions, 0 deletions
diff --git a/0004-drm-i915-Pass-down-brightness-values-to-enable-disab.patch b/0004-drm-i915-Pass-down-brightness-values-to-enable-disab.patch new file mode 100644 index 000000000000..c2c7dd9b617b --- /dev/null +++ b/0004-drm-i915-Pass-down-brightness-values-to-enable-disab.patch @@ -0,0 +1,368 @@ +From 2fcd9b2dd0fe45c7233dd8a08f33de5996a8ce9f Mon Sep 17 00:00:00 2001 +From: Lyude Paul <lyude@redhat.com> +Date: Fri, 4 Dec 2020 17:35:57 -0500 +Subject: [PATCH 04/10] drm/i915: Pass down brightness values to enable/disable + backlight callbacks + +Instead of using intel_panel->backlight.level, have the caller provide us +with the current panel backlight value. We'll need this for when we +separate PWM-related backlight callbacks from other means of backlight +control (like DPCD backlight controls), as the caller of each PWM callback +will be responsible for converting the current brightness value to it's +respective PWM level. + +Signed-off-by: Lyude Paul <lyude@redhat.com> +Signed-off-by: Jani Nikula <jani.nikula@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20201204223603.249878-4-lyude@redhat.com +--- + .../drm/i915/display/intel_display_types.h | 4 +- + .../drm/i915/display/intel_dp_aux_backlight.c | 8 +-- + .../i915/display/intel_dsi_dcs_backlight.c | 7 +- + drivers/gpu/drm/i915/display/intel_panel.c | 67 +++++++++---------- + 4 files changed, 42 insertions(+), 44 deletions(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h +index 0e5d158f1691..6dd8f26ec3c9 100644 +--- a/drivers/gpu/drm/i915/display/intel_display_types.h ++++ b/drivers/gpu/drm/i915/display/intel_display_types.h +@@ -210,9 +210,9 @@ struct intel_panel_bl_funcs { + int (*setup)(struct intel_connector *connector, enum pipe pipe); + u32 (*get)(struct intel_connector *connector); + void (*set)(const struct drm_connector_state *conn_state, u32 level); +- void (*disable)(const struct drm_connector_state *conn_state); ++ void (*disable)(const struct drm_connector_state *conn_state, u32 level); + void (*enable)(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state); ++ const struct drm_connector_state *conn_state, u32 level); + u32 (*hz_to_pwm)(struct intel_connector *connector, u32 hz); + }; + +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 b2f713e7da6b..a735e0f600ec 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +@@ -174,7 +174,7 @@ static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector) + } + + static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct intel_dp *intel_dp = intel_attached_dp(connector); +@@ -225,12 +225,12 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st + } + } + +- intel_dp_aux_set_backlight(conn_state, +- connector->panel.backlight.level); ++ intel_dp_aux_set_backlight(conn_state, level); + set_aux_backlight_enable(intel_dp, true); + } + +-static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state, ++ u32 level) + { + set_aux_backlight_enable(enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder)), + false); +diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c +index 5c508d51f526..88628764956d 100644 +--- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c +@@ -77,7 +77,7 @@ static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32 + } + } + +-static void dcs_disable_backlight(const struct drm_connector_state *conn_state) ++static void dcs_disable_backlight(const struct drm_connector_state *conn_state, u32 level) + { + struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder)); + struct mipi_dsi_device *dsi_device; +@@ -111,10 +111,9 @@ static void dcs_disable_backlight(const struct drm_connector_state *conn_state) + } + + static void dcs_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder)); +- struct intel_panel *panel = &to_intel_connector(conn_state->connector)->panel; + struct mipi_dsi_device *dsi_device; + enum port port; + +@@ -142,7 +141,7 @@ static void dcs_enable_backlight(const struct intel_crtc_state *crtc_state, + &cabc, sizeof(cabc)); + } + +- dcs_set_backlight(conn_state, panel->backlight.level); ++ dcs_set_backlight(conn_state, level); + } + + static int dcs_setup_backlight(struct intel_connector *connector, +diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c +index da8f7c12ae22..67f81ae995c4 100644 +--- a/drivers/gpu/drm/i915/display/intel_panel.c ++++ b/drivers/gpu/drm/i915/display/intel_panel.c +@@ -726,13 +726,13 @@ void intel_panel_set_backlight_acpi(const struct drm_connector_state *conn_state + mutex_unlock(&dev_priv->backlight_lock); + } + +-static void lpt_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void lpt_disable_backlight(const struct drm_connector_state *old_conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(old_conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); + u32 tmp; + +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, level); + + /* + * Although we don't support or enable CPU PWM with LPT/SPT based +@@ -754,13 +754,13 @@ static void lpt_disable_backlight(const struct drm_connector_state *old_conn_sta + intel_de_write(dev_priv, BLC_PWM_PCH_CTL1, tmp & ~BLM_PCH_PWM_ENABLE); + } + +-static void pch_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void pch_disable_backlight(const struct drm_connector_state *old_conn_state, u32 val) + { + struct intel_connector *connector = to_intel_connector(old_conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); + u32 tmp; + +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, val); + + tmp = intel_de_read(dev_priv, BLC_PWM_CPU_CTL2); + intel_de_write(dev_priv, BLC_PWM_CPU_CTL2, tmp & ~BLM_PWM_ENABLE); +@@ -769,44 +769,44 @@ static void pch_disable_backlight(const struct drm_connector_state *old_conn_sta + intel_de_write(dev_priv, BLC_PWM_PCH_CTL1, tmp & ~BLM_PCH_PWM_ENABLE); + } + +-static void i9xx_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void i9xx_disable_backlight(const struct drm_connector_state *old_conn_state, u32 val) + { +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, val); + } + +-static void i965_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void i965_disable_backlight(const struct drm_connector_state *old_conn_state, u32 val) + { + struct drm_i915_private *dev_priv = to_i915(old_conn_state->connector->dev); + u32 tmp; + +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, val); + + tmp = intel_de_read(dev_priv, BLC_PWM_CTL2); + intel_de_write(dev_priv, BLC_PWM_CTL2, tmp & ~BLM_PWM_ENABLE); + } + +-static void vlv_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void vlv_disable_backlight(const struct drm_connector_state *old_conn_state, u32 val) + { + struct intel_connector *connector = to_intel_connector(old_conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); + enum pipe pipe = to_intel_crtc(old_conn_state->crtc)->pipe; + u32 tmp; + +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, val); + + tmp = intel_de_read(dev_priv, VLV_BLC_PWM_CTL2(pipe)); + intel_de_write(dev_priv, VLV_BLC_PWM_CTL2(pipe), + tmp & ~BLM_PWM_ENABLE); + } + +-static void bxt_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void bxt_disable_backlight(const struct drm_connector_state *old_conn_state, u32 val) + { + struct intel_connector *connector = to_intel_connector(old_conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); + struct intel_panel *panel = &connector->panel; +- u32 tmp, val; ++ u32 tmp; + +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, val); + + tmp = intel_de_read(dev_priv, + BXT_BLC_PWM_CTL(panel->backlight.controller)); +@@ -820,14 +820,14 @@ static void bxt_disable_backlight(const struct drm_connector_state *old_conn_sta + } + } + +-static void cnp_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void cnp_disable_backlight(const struct drm_connector_state *old_conn_state, u32 val) + { + struct intel_connector *connector = to_intel_connector(old_conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); + struct intel_panel *panel = &connector->panel; + u32 tmp; + +- intel_panel_actually_set_backlight(old_conn_state, 0); ++ intel_panel_actually_set_backlight(old_conn_state, val); + + tmp = intel_de_read(dev_priv, + BXT_BLC_PWM_CTL(panel->backlight.controller)); +@@ -835,7 +835,7 @@ static void cnp_disable_backlight(const struct drm_connector_state *old_conn_sta + tmp & ~BXT_BLC_PWM_ENABLE); + } + +-static void ext_pwm_disable_backlight(const struct drm_connector_state *old_conn_state) ++static void ext_pwm_disable_backlight(const struct drm_connector_state *old_conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(old_conn_state->connector); + struct intel_panel *panel = &connector->panel; +@@ -870,13 +870,13 @@ void intel_panel_disable_backlight(const struct drm_connector_state *old_conn_st + if (panel->backlight.device) + panel->backlight.device->props.power = FB_BLANK_POWERDOWN; + panel->backlight.enabled = false; +- panel->backlight.funcs->disable(old_conn_state); ++ panel->backlight.funcs->disable(old_conn_state, 0); + + mutex_unlock(&dev_priv->backlight_lock); + } + + static void lpt_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -923,11 +923,11 @@ static void lpt_enable_backlight(const struct intel_crtc_state *crtc_state, + pch_ctl1 | BLM_PCH_PWM_ENABLE); + + /* This won't stick until the above enable. */ +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + } + + static void pch_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -958,7 +958,7 @@ static void pch_enable_backlight(const struct intel_crtc_state *crtc_state, + intel_de_write(dev_priv, BLC_PWM_CPU_CTL2, cpu_ctl2 | BLM_PWM_ENABLE); + + /* This won't stick until the above enable. */ +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + + pch_ctl2 = panel->backlight.max << 16; + intel_de_write(dev_priv, BLC_PWM_PCH_CTL2, pch_ctl2); +@@ -974,7 +974,7 @@ static void pch_enable_backlight(const struct intel_crtc_state *crtc_state, + } + + static void i9xx_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -1001,7 +1001,7 @@ static void i9xx_enable_backlight(const struct intel_crtc_state *crtc_state, + intel_de_posting_read(dev_priv, BLC_PWM_CTL); + + /* XXX: combine this into above write? */ +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + + /* + * Needed to enable backlight on some 855gm models. BLC_HIST_CTL is +@@ -1013,7 +1013,7 @@ static void i9xx_enable_backlight(const struct intel_crtc_state *crtc_state, + } + + static void i965_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -1044,11 +1044,11 @@ static void i965_enable_backlight(const struct intel_crtc_state *crtc_state, + intel_de_posting_read(dev_priv, BLC_PWM_CTL2); + intel_de_write(dev_priv, BLC_PWM_CTL2, ctl2 | BLM_PWM_ENABLE); + +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + } + + static void vlv_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -1067,7 +1067,7 @@ static void vlv_enable_backlight(const struct intel_crtc_state *crtc_state, + intel_de_write(dev_priv, VLV_BLC_PWM_CTL(pipe), ctl); + + /* XXX: combine this into above write? */ +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + + ctl2 = 0; + if (panel->backlight.active_low_pwm) +@@ -1079,7 +1079,7 @@ static void vlv_enable_backlight(const struct intel_crtc_state *crtc_state, + } + + static void bxt_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -1118,7 +1118,7 @@ static void bxt_enable_backlight(const struct intel_crtc_state *crtc_state, + BXT_BLC_PWM_FREQ(panel->backlight.controller), + panel->backlight.max); + +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + + pwm_ctl = 0; + if (panel->backlight.active_low_pwm) +@@ -1133,7 +1133,7 @@ static void bxt_enable_backlight(const struct intel_crtc_state *crtc_state, + } + + static void cnp_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); +@@ -1154,7 +1154,7 @@ static void cnp_enable_backlight(const struct intel_crtc_state *crtc_state, + BXT_BLC_PWM_FREQ(panel->backlight.controller), + panel->backlight.max); + +- intel_panel_actually_set_backlight(conn_state, panel->backlight.level); ++ intel_panel_actually_set_backlight(conn_state, level); + + pwm_ctl = 0; + if (panel->backlight.active_low_pwm) +@@ -1169,11 +1169,10 @@ static void cnp_enable_backlight(const struct intel_crtc_state *crtc_state, + } + + static void ext_pwm_enable_backlight(const struct intel_crtc_state *crtc_state, +- const struct drm_connector_state *conn_state) ++ const struct drm_connector_state *conn_state, u32 level) + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct intel_panel *panel = &connector->panel; +- int level = panel->backlight.level; + + level = intel_panel_compute_brightness(connector, level); + pwm_set_relative_duty_cycle(&panel->backlight.pwm_state, level, 100); +@@ -1198,7 +1197,7 @@ static void __intel_panel_enable_backlight(const struct intel_crtc_state *crtc_s + panel->backlight.device->props.max_brightness); + } + +- panel->backlight.funcs->enable(crtc_state, conn_state); ++ panel->backlight.funcs->enable(crtc_state, conn_state, panel->backlight.level); + panel->backlight.enabled = true; + if (panel->backlight.device) + panel->backlight.device->props.power = FB_BLANK_UNBLANK; +-- +2.29.2 + |