On Mon, 22 Aug 2022, Jouni Högander <[email protected]> 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 <[email protected]>
> Signed-off-by: Jani Nikula <[email protected]>

Reviewed-by: Jani Nikula <[email protected]>

> ---
>  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);

-- 
Jani Nikula, Intel Open Source Graphics Center

Reply via email to