Commit 51fbbe8a authored by Jouni Högander's avatar Jouni Högander Committed by Rodrigo Vivi
Browse files

drm/i915/backlight: Disable pps power hook for aux based backlight

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


Cc: stable@vger.kernel.org
Signed-off-by: default avatarJouni Högander <jouni.hogander@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220822140836.534432-1-jouni.hogander@intel.com


(cherry picked from commit 869e3bb7)
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 2c4e19f8
Loading
Loading
Loading
Loading
+8 −3
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@
#include "intel_dsi_dcs_backlight.h"
#include "intel_dsi_dcs_backlight.h"
#include "intel_panel.h"
#include "intel_panel.h"
#include "intel_pci_config.h"
#include "intel_pci_config.h"
#include "intel_pps.h"


/**
/**
 * scale - scale values from one range to another
 * scale - scale values from one range to another
@@ -1771,10 +1772,14 @@ void intel_backlight_init_funcs(struct intel_panel *panel)
		panel->backlight.pwm_funcs = &i9xx_pwm_funcs;
		panel->backlight.pwm_funcs = &i9xx_pwm_funcs;
	}
	}


	if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP &&
	if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) {
	    intel_dp_aux_init_backlight_funcs(connector) == 0)
		if (intel_dp_aux_init_backlight_funcs(connector) == 0)
			return;
			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 */
	/* We're using a standard PWM backlight interface */
	panel->backlight.funcs = &pwm_bl_funcs;
	panel->backlight.funcs = &pwm_bl_funcs;
}
}
+0 −2
Original line number Original line Diff line number Diff line
@@ -5293,8 +5293,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,


	intel_panel_init(intel_connector);
	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_backlight_setup(intel_connector, pipe);


	intel_edp_add_properties(intel_dp);
	intel_edp_add_properties(intel_dp);