Merge remote-tracking branch 'sound-asoc/for-next'
[deliverable/linux.git] / drivers / media / i2c / smiapp / smiapp-regs.c
index 6b6c20b6139788353112aab5a6cd0c1dc17ce6ad..1e501c06d18c32a53d71cdd72f93bd25ff7530ae 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)
This page took 0.027118 seconds and 5 git commands to generate.