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>
This commit is contained in:
parent
2fe2380e35
commit
424e06e3da
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user