summaryrefslogtreecommitdiff
path: root/drivers/media/i2c/smiapp/smiapp-regs.c
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2017-09-29 13:23:56 +0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2017-10-24 18:14:25 +0300
commit6771fce5060e10f6c878b5d644e9d66dd7f68950 (patch)
tree0722c903e18be3fb31037ed76d03cc434a8e46ce /drivers/media/i2c/smiapp/smiapp-regs.c
parent72eaf99f0471d7e03e46f0d87770626430995df2 (diff)
downloadlinux-6771fce5060e10f6c878b5d644e9d66dd7f68950.tar.xz
media: smiapp: Rely on runtime PM
Instead of relying on a mix of runtime PM and the s_power() callback, drop the s_power() callback altogether and use runtime PM solely. As device access is required during device power-on and power-off sequences, runtime PM alone cannot tell whether the device is available. Thus the "active" field is introduced in struct smiapp_sensor to tell whether it is safe to write to the device. Consequently there is no need to power on the device whenever a file handle is open. This functionality is removed as well. The user may still control the device power management through sysfs. Autosuspend remains enabled, with 1 s delay. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/i2c/smiapp/smiapp-regs.c')
-rw-r--r--drivers/media/i2c/smiapp/smiapp-regs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/i2c/smiapp/smiapp-regs.c b/drivers/media/i2c/smiapp/smiapp-regs.c
index d6779e35d36f..145653dc81da 100644
--- a/drivers/media/i2c/smiapp/smiapp-regs.c
+++ b/drivers/media/i2c/smiapp/smiapp-regs.c
@@ -231,6 +231,9 @@ int smiapp_write_no_quirk(struct smiapp_sensor *sensor, u32 reg, u32 val)
len != SMIAPP_REG_32BIT) || flags)
return -EINVAL;
+ if (!sensor->active)
+ return 0;
+
msg.addr = client->addr;
msg.flags = 0; /* Write */
msg.len = 2 + len;