From: Andy Shevchenko Date: Wed, 11 Apr 2012 14:06:22 +0000 (+0300) Subject: lm3554: simplify lm3554_s_flash_mode() X-Git-Tag: 2.1b_release~916 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7cb56f092be06fca1b1945c8c95731eec9012c78;p=kernel%2Fkernel-mfld-blackbay.git lm3554: simplify lm3554_s_flash_mode() 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 Reviewed-on: http://android.intel.com:8080/43706 Reviewed-by: Shevchenko, Andriy Reviewed-by: Toivonen, Tuukka Reviewed-by: Cohen, David A Tested-by: Koski, Anttu Reviewed-by: buildbot Tested-by: buildbot --- diff --git a/drivers/media/video/lm3554.c b/drivers/media/video/lm3554.c index 883b08f..8211cf0 100644 --- a/drivers/media/video/lm3554.c +++ b/drivers/media/video/lm3554.c @@ -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;