|
@@ -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, ®, 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)
|