drm/i915: Warn if trying to poke a VLV backlight on invalid pipe
VLV/CHV have backlight controls only on pipes A and B. Bail out without touching registers that don't exist, and print a warning. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
6a2c4232ec
commit
23ec0a8835
|
@ -521,6 +521,9 @@ static u32 _vlv_get_backlight(struct drm_device *dev, enum pipe pipe)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||||
|
|
||||||
|
if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
|
||||||
|
return 0;
|
||||||
|
|
||||||
return I915_READ(VLV_BLC_PWM_CTL(pipe)) & BACKLIGHT_DUTY_CYCLE_MASK;
|
return I915_READ(VLV_BLC_PWM_CTL(pipe)) & BACKLIGHT_DUTY_CYCLE_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -602,6 +605,9 @@ static void vlv_set_backlight(struct intel_connector *connector, u32 level)
|
||||||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
|
if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
|
||||||
|
return;
|
||||||
|
|
||||||
tmp = I915_READ(VLV_BLC_PWM_CTL(pipe)) & ~BACKLIGHT_DUTY_CYCLE_MASK;
|
tmp = I915_READ(VLV_BLC_PWM_CTL(pipe)) & ~BACKLIGHT_DUTY_CYCLE_MASK;
|
||||||
I915_WRITE(VLV_BLC_PWM_CTL(pipe), tmp | level);
|
I915_WRITE(VLV_BLC_PWM_CTL(pipe), tmp | level);
|
||||||
}
|
}
|
||||||
|
@ -717,6 +723,9 @@ static void vlv_disable_backlight(struct intel_connector *connector)
|
||||||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
|
if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
|
||||||
|
return;
|
||||||
|
|
||||||
intel_panel_actually_set_backlight(connector, 0);
|
intel_panel_actually_set_backlight(connector, 0);
|
||||||
|
|
||||||
tmp = I915_READ(VLV_BLC_PWM_CTL2(pipe));
|
tmp = I915_READ(VLV_BLC_PWM_CTL2(pipe));
|
||||||
|
@ -906,6 +915,9 @@ static void vlv_enable_backlight(struct intel_connector *connector)
|
||||||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||||
u32 ctl, ctl2;
|
u32 ctl, ctl2;
|
||||||
|
|
||||||
|
if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
|
||||||
|
return;
|
||||||
|
|
||||||
ctl2 = I915_READ(VLV_BLC_PWM_CTL2(pipe));
|
ctl2 = I915_READ(VLV_BLC_PWM_CTL2(pipe));
|
||||||
if (ctl2 & BLM_PWM_ENABLE) {
|
if (ctl2 & BLM_PWM_ENABLE) {
|
||||||
DRM_DEBUG_KMS("backlight already enabled\n");
|
DRM_DEBUG_KMS("backlight already enabled\n");
|
||||||
|
|
Loading…
Reference in New Issue