lm3554: simplify lm3554_s_flash_mode()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 11 Apr 2012 14:06:22 +0000 (17:06 +0300)
committerbuildbot <buildbot@intel.com>
Wed, 25 Apr 2012 08:36:42 +0000 (01:36 -0700)
BZ: 32196

Accordingly to the datasheet there is no difference between torch and flash
registers when we set up the operating mode.

Change-Id: I5cbb7bd3c3ed5e2c6cf8713830dfebb2480dbdbb
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-on: http://android.intel.com:8080/43706
Reviewed-by: Shevchenko, Andriy <andriy.shevchenko@intel.com>
Reviewed-by: Toivonen, Tuukka <tuukka.toivonen@intel.com>
Reviewed-by: Cohen, David A <david.a.cohen@intel.com>
Tested-by: Koski, Anttu <anttu.koski@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/media/video/lm3554.c

index 883b08f..8211cf0 100644 (file)
@@ -288,34 +288,29 @@ err:
        return ret;
 }
 
-static int lm3554_s_flash_mode(struct v4l2_subdev *sd, u32 val)
+static int lm3554_s_flash_mode(struct v4l2_subdev *sd, u32 new_mode)
 {
        int ret;
-       enum atomisp_flash_mode new_mode = (enum atomisp_flash_mode)val;
        struct lm3554 *flash = to_lm3554(sd);
+       unsigned int mode;
 
        switch (new_mode) {
        case ATOMISP_FLASH_MODE_OFF:
-               if (flash->mode == ATOMISP_FLASH_MODE_FLASH) {
-                       ret = set_reg_field(sd, &flash_mode,
-                                           LM3554_MODE_SHUTDOWN);
-               } else {
-                       ret = set_reg_field(sd, &torch_mode,
-                                           LM3554_MODE_SHUTDOWN);
-               }
+               mode = LM3554_MODE_SHUTDOWN;
                break;
        case ATOMISP_FLASH_MODE_FLASH:
-               ret = set_reg_field(sd, &flash_mode, LM3554_MODE_FLASH);
+               mode = LM3554_MODE_FLASH;
                break;
        case ATOMISP_FLASH_MODE_INDICATOR:
-               ret = set_reg_field(sd, &flash_mode, LM3554_MODE_INDICATOR);
+               mode = LM3554_MODE_INDICATOR;
                break;
        case ATOMISP_FLASH_MODE_TORCH:
-               ret = set_reg_field(sd, &torch_mode, LM3554_MODE_TORCH);
+               mode = LM3554_MODE_TORCH;
                break;
        default:
-               ret = -EINVAL;
+               return -EINVAL;
        }
+       ret = set_reg_field(sd, &flash_mode, mode);
        if (ret == 0)
                flash->mode = new_mode;
        return ret;