summaryrefslogtreecommitdiffstats
path: root/drivers/video/backlight/lcd.c
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2012-12-18 01:01:10 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-18 02:15:17 +0100
commit424e06e3da2cbf986d7421f98b90fe5cf4b57be5 (patch)
tree7e4ef6b9bb8762398df72b1fae7c539a9d2003f7 /drivers/video/backlight/lcd.c
parentbacklight: 88pm860x_bl: remove an unnecessary line continuation (diff)
downloadlinux-424e06e3da2cbf986d7421f98b90fe5cf4b57be5.tar.xz
linux-424e06e3da2cbf986d7421f98b90fe5cf4b57be5.zip
drivers/video/backlight/lcd.c: return ENXIO when ops functions cannot be called
Previously, when ops functions cannot be called, lcd_show_contrast() and lcd_store_contrast() returned 0, instead of ENXIO. Thus, in this case, a local variable 'rc' for return value should be initialized as ENXIO, after kstrtoul() is called. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/backlight/lcd.c')
-rw-r--r--drivers/video/backlight/lcd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index a5d0d024bb92..34fb6bd798c8 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -108,7 +108,7 @@ static ssize_t lcd_show_power(struct device *dev, struct device_attribute *attr,
static ssize_t lcd_store_power(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
- int rc = -ENXIO;
+ int rc;
struct lcd_device *ld = to_lcd_device(dev);
unsigned long power;
@@ -116,6 +116,8 @@ static ssize_t lcd_store_power(struct device *dev,
if (rc)
return rc;
+ rc = -ENXIO;
+
mutex_lock(&ld->ops_lock);
if (ld->ops && ld->ops->set_power) {
pr_debug("set power to %lu\n", power);
@@ -144,7 +146,7 @@ static ssize_t lcd_show_contrast(struct device *dev,
static ssize_t lcd_store_contrast(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
- int rc = -ENXIO;
+ int rc;
struct lcd_device *ld = to_lcd_device(dev);
unsigned long contrast;
@@ -152,6 +154,8 @@ static ssize_t lcd_store_contrast(struct device *dev,
if (rc)
return rc;
+ rc = -ENXIO;
+
mutex_lock(&ld->ops_lock);
if (ld->ops && ld->ops->set_contrast) {
pr_debug("set contrast to %lu\n", contrast);