diff options
Diffstat (limited to 'drivers/media/video/exynos/fimc-is/fimc-is-v4l2.c')
-rw-r--r-- | drivers/media/video/exynos/fimc-is/fimc-is-v4l2.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/media/video/exynos/fimc-is/fimc-is-v4l2.c b/drivers/media/video/exynos/fimc-is/fimc-is-v4l2.c index aa60198..066885f 100644 --- a/drivers/media/video/exynos/fimc-is/fimc-is-v4l2.c +++ b/drivers/media/video/exynos/fimc-is/fimc-is-v4l2.c @@ -373,7 +373,7 @@ int fimc_is_s_power(struct v4l2_subdev *sd, int on) } #if defined(CONFIG_BUSFREQ_OPP) || defined(CONFIG_BUSFREQ_LOCK_WRAPPER) /* lock bus frequency */ - dev_lock(is_dev->bus_dev, dev, BUS_LOCK_FREQ_L0); + dev_lock(is_dev->bus_dev, dev, BUS_LOCK_FREQ_L1); #endif fimc_is_hw_set_low_poweroff(is_dev, false); ret = pm_runtime_get_sync(dev); @@ -618,7 +618,7 @@ static int fimc_is_reset(struct v4l2_subdev *sd, u32 val) /* Restart */ #if defined(CONFIG_BUSFREQ_OPP) || defined(CONFIG_BUSFREQ_LOCK_WRAPPER) /* lock bus frequency */ - dev_lock(is_dev->bus_dev, dev, BUS_LOCK_FREQ_L0); + dev_lock(is_dev->bus_dev, dev, BUS_LOCK_FREQ_L1); #endif fimc_is_hw_set_low_poweroff(is_dev, false); ret = pm_runtime_get_sync(dev); @@ -816,6 +816,16 @@ static int fimc_is_g_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl) case V4L2_CID_IS_FW_DEBUG_REGION_ADDR: ctrl->value = dev->mem.base + FIMC_IS_DEBUG_REGION_ADDR; break; +#if defined(CONFIG_SLP) +#define FRONT_CAM_STANDARD_REVISION 0x0b + case V4L2_CID_PHYSICAL_ROTATION: + if (system_rev > FRONT_CAM_STANDARD_REVISION || \ + system_rev == 0x04 || system_rev == 0x06) + ctrl->value = IS_ROTATION_270; + else + ctrl->value = IS_ROTATION_90; + break; +#endif default: return -EINVAL; } |