Message ID | 20220822140836.534432-1-jouni.hogander@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/backlight: Disable pps power hook for aux based backlight | expand |
On Mon, 22 Aug 2022, Jouni Högander <jouni.hogander@intel.com> wrote: > Pps power hook seems to be problematic for backlight controlled via > aux channel. Disable it for such cases. > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3657 > Signed-off-by: Jouni Högander <jouni.hogander@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_backlight.c | 11 ++++++++--- > drivers/gpu/drm/i915/display/intel_dp.c | 2 -- > 2 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c > index af28b143d27a..5d317a20dd0f 100644 > --- a/drivers/gpu/drm/i915/display/intel_backlight.c > +++ b/drivers/gpu/drm/i915/display/intel_backlight.c > @@ -17,6 +17,7 @@ > #include "intel_dsi_dcs_backlight.h" > #include "intel_panel.h" > #include "intel_pci_config.h" > +#include "intel_pps.h" > > /** > * scale - scale values from one range to another > @@ -1778,9 +1779,13 @@ void intel_backlight_init_funcs(struct intel_panel *panel) > panel->backlight.pwm_funcs = &i9xx_pwm_funcs; > } > > - if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP && > - intel_dp_aux_init_backlight_funcs(connector) == 0) > - return; > + if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) { > + if (intel_dp_aux_init_backlight_funcs(connector) == 0) > + return; > + > + if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) > + connector->panel.backlight.power = intel_pps_backlight_power; > + } > > /* We're using a standard PWM backlight interface */ > panel->backlight.funcs = &pwm_bl_funcs; > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index 32292c0be2bd..ac90d455a7c7 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -5293,8 +5293,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, > > intel_panel_init(intel_connector); > > - if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) > - intel_connector->panel.backlight.power = intel_pps_backlight_power; > intel_backlight_setup(intel_connector, pipe); > > intel_edp_add_properties(intel_dp);
On Tue, 23 Aug 2022, Jani Nikula <jani.nikula@intel.com> wrote: > On Mon, 22 Aug 2022, Jouni Högander <jouni.hogander@intel.com> wrote: >> Pps power hook seems to be problematic for backlight controlled via >> aux channel. Disable it for such cases. >> >> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3657 >> Signed-off-by: Jouni Högander <jouni.hogander@intel.com> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > Reviewed-by: Jani Nikula <jani.nikula@intel.com> And pushed to drm-intel-next with cc: stable. BR, Jani. > >> --- >> drivers/gpu/drm/i915/display/intel_backlight.c | 11 ++++++++--- >> drivers/gpu/drm/i915/display/intel_dp.c | 2 -- >> 2 files changed, 8 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c >> index af28b143d27a..5d317a20dd0f 100644 >> --- a/drivers/gpu/drm/i915/display/intel_backlight.c >> +++ b/drivers/gpu/drm/i915/display/intel_backlight.c >> @@ -17,6 +17,7 @@ >> #include "intel_dsi_dcs_backlight.h" >> #include "intel_panel.h" >> #include "intel_pci_config.h" >> +#include "intel_pps.h" >> >> /** >> * scale - scale values from one range to another >> @@ -1778,9 +1779,13 @@ void intel_backlight_init_funcs(struct intel_panel *panel) >> panel->backlight.pwm_funcs = &i9xx_pwm_funcs; >> } >> >> - if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP && >> - intel_dp_aux_init_backlight_funcs(connector) == 0) >> - return; >> + if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) { >> + if (intel_dp_aux_init_backlight_funcs(connector) == 0) >> + return; >> + >> + if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) >> + connector->panel.backlight.power = intel_pps_backlight_power; >> + } >> >> /* We're using a standard PWM backlight interface */ >> panel->backlight.funcs = &pwm_bl_funcs; >> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c >> index 32292c0be2bd..ac90d455a7c7 100644 >> --- a/drivers/gpu/drm/i915/display/intel_dp.c >> +++ b/drivers/gpu/drm/i915/display/intel_dp.c >> @@ -5293,8 +5293,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, >> >> intel_panel_init(intel_connector); >> >> - if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) >> - intel_connector->panel.backlight.power = intel_pps_backlight_power; >> intel_backlight_setup(intel_connector, pipe); >> >> intel_edp_add_properties(intel_dp);
diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c index af28b143d27a..5d317a20dd0f 100644 --- a/drivers/gpu/drm/i915/display/intel_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_backlight.c @@ -17,6 +17,7 @@ #include "intel_dsi_dcs_backlight.h" #include "intel_panel.h" #include "intel_pci_config.h" +#include "intel_pps.h" /** * scale - scale values from one range to another @@ -1778,9 +1779,13 @@ void intel_backlight_init_funcs(struct intel_panel *panel) panel->backlight.pwm_funcs = &i9xx_pwm_funcs; } - if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP && - intel_dp_aux_init_backlight_funcs(connector) == 0) - return; + if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) { + if (intel_dp_aux_init_backlight_funcs(connector) == 0) + return; + + if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) + connector->panel.backlight.power = intel_pps_backlight_power; + } /* We're using a standard PWM backlight interface */ panel->backlight.funcs = &pwm_bl_funcs; diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 32292c0be2bd..ac90d455a7c7 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -5293,8 +5293,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, intel_panel_init(intel_connector); - if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) - intel_connector->panel.backlight.power = intel_pps_backlight_power; intel_backlight_setup(intel_connector, pipe); intel_edp_add_properties(intel_dp);