Messages in this thread Patch in this message | | | From | Alan Cox <> | Subject | [PATCH 12/15] gma500@ Fix backlight range error | Date | Fri, 15 Jul 2011 17:35:12 +0100 |
| |
From: Alan Cox <alan@linux.intel.com>
If we go out of range we break the pm counts on the error path
Signed-off-by: Alan Cox <alan@linux.intel.com> ---
drivers/staging/gma500/mrst_device.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/staging/gma500/mrst_device.c b/drivers/staging/gma500/mrst_device.c index 573142f..6707faf 100644 --- a/drivers/staging/gma500/mrst_device.c +++ b/drivers/staging/gma500/mrst_device.c @@ -157,14 +157,12 @@ static int device_backlight_init(struct drm_device *dev) value /= bl_max_freq; value /= blc_pwm_precision_factor; + if (value > (unsigned long long)MRST_BLC_MAX_PWM_REG_FREQ) + return -ERANGE; + if (gma_power_begin(dev, false)) { - if (value > (unsigned long long)MRST_BLC_MAX_PWM_REG_FREQ) - return -ERANGE; - else { - REG_WRITE(BLC_PWM_CTL2, - (0x80000000 | REG_READ(BLC_PWM_CTL2))); - REG_WRITE(BLC_PWM_CTL, value | (value << 16)); - } + REG_WRITE(BLC_PWM_CTL2, (0x80000000 | REG_READ(BLC_PWM_CTL2))); + REG_WRITE(BLC_PWM_CTL, value | (value << 16)); gma_power_end(dev); } return 0;
| |