OSDN Git Service

[media] smiapp: Unify enforced and need-based 8-bit read
authorSakari Ailus <sakari.ailus@iki.fi>
Sat, 13 Dec 2014 20:53:37 +0000 (18:53 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 5 Sep 2016 18:39:11 +0000 (15:39 -0300)
Unify enforced 8-bit read access with that based on actual need.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/i2c/smiapp/smiapp-regs.c

index 6b6c20b..1e501c0 100644 (file)
@@ -188,7 +188,8 @@ int smiapp_read_no_quirk(struct smiapp_sensor *sensor, u32 reg, u32 *val)
                                   SMIAPP_QUIRK_FLAG_8BIT_READ_ONLY));
 }
 
-int smiapp_read(struct smiapp_sensor *sensor, u32 reg, u32 *val)
+static int smiapp_read_quirk(struct smiapp_sensor *sensor, u32 reg, u32 *val,
+                            bool force8)
 {
        int rval;
 
@@ -199,21 +200,20 @@ int smiapp_read(struct smiapp_sensor *sensor, u32 reg, u32 *val)
        if (rval < 0)
                return rval;
 
+       if (force8)
+               return __smiapp_read(sensor, reg, val, true);
+
        return smiapp_read_no_quirk(sensor, reg, val);
 }
 
-int smiapp_read_8only(struct smiapp_sensor *sensor, u32 reg, u32 *val)
+int smiapp_read(struct smiapp_sensor *sensor, u32 reg, u32 *val)
 {
-       int rval;
-
-       *val = 0;
-       rval = smiapp_call_quirk(sensor, reg_access, false, &reg, val);
-       if (rval == -ENOIOCTLCMD)
-               return 0;
-       if (rval < 0)
-               return rval;
+       return smiapp_read_quirk(sensor, reg, val, false);
+}
 
-       return __smiapp_read(sensor, reg, val, true);
+int smiapp_read_8only(struct smiapp_sensor *sensor, u32 reg, u32 *val)
+{
+       return smiapp_read_quirk(sensor, reg, val, true);
 }
 
 int smiapp_write_no_quirk(struct smiapp_sensor *sensor, u32 reg, u32 val)