diff options
| -rw-r--r-- | drivers/misc/bh1770glc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/misc/bh1770glc.c b/drivers/misc/bh1770glc.c index cee632e645e1..d79a972f2c79 100644 --- a/drivers/misc/bh1770glc.c +++ b/drivers/misc/bh1770glc.c | |||
| @@ -649,7 +649,7 @@ static ssize_t bh1770_power_state_store(struct device *dev, | |||
| 649 | { | 649 | { |
| 650 | struct bh1770_chip *chip = dev_get_drvdata(dev); | 650 | struct bh1770_chip *chip = dev_get_drvdata(dev); |
| 651 | unsigned long value; | 651 | unsigned long value; |
| 652 | size_t ret; | 652 | ssize_t ret; |
| 653 | 653 | ||
| 654 | if (strict_strtoul(buf, 0, &value)) | 654 | if (strict_strtoul(buf, 0, &value)) |
| 655 | return -EINVAL; | 655 | return -EINVAL; |
| @@ -659,8 +659,12 @@ static ssize_t bh1770_power_state_store(struct device *dev, | |||
| 659 | pm_runtime_get_sync(dev); | 659 | pm_runtime_get_sync(dev); |
| 660 | 660 | ||
| 661 | ret = bh1770_lux_rate(chip, chip->lux_rate_index); | 661 | ret = bh1770_lux_rate(chip, chip->lux_rate_index); |
| 662 | ret |= bh1770_lux_interrupt_control(chip, BH1770_ENABLE); | 662 | if (ret < 0) { |
| 663 | pm_runtime_put(dev); | ||
| 664 | goto leave; | ||
| 665 | } | ||
| 663 | 666 | ||
| 667 | ret = bh1770_lux_interrupt_control(chip, BH1770_ENABLE); | ||
| 664 | if (ret < 0) { | 668 | if (ret < 0) { |
| 665 | pm_runtime_put(dev); | 669 | pm_runtime_put(dev); |
| 666 | goto leave; | 670 | goto leave; |
