Commit 5017f8b4 authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab

media: ccs: Move limit value real to integer conversion from read to access time

Instead of converting the limit values at register read time, do that at
access time instead.
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 7d2f8dda
...@@ -130,6 +130,7 @@ static u32 ccs_get_limit(struct ccs_sensor *sensor, ...@@ -130,6 +130,7 @@ static u32 ccs_get_limit(struct ccs_sensor *sensor,
unsigned int limit, unsigned int offset) unsigned int limit, unsigned int offset)
{ {
void *ptr; void *ptr;
u32 val;
int ret; int ret;
ret = ccs_limit_ptr(sensor, limit, offset, &ptr); ret = ccs_limit_ptr(sensor, limit, offset, &ptr);
...@@ -138,16 +139,20 @@ static u32 ccs_get_limit(struct ccs_sensor *sensor, ...@@ -138,16 +139,20 @@ static u32 ccs_get_limit(struct ccs_sensor *sensor,
switch (ccs_reg_width(ccs_limits[ccs_limit_offsets[limit].info].reg)) { switch (ccs_reg_width(ccs_limits[ccs_limit_offsets[limit].info].reg)) {
case sizeof(u8): case sizeof(u8):
return *(u8 *)ptr; val = *(u8 *)ptr;
break;
case sizeof(u16): case sizeof(u16):
return *(u16 *)ptr; val = *(u16 *)ptr;
break;
case sizeof(u32): case sizeof(u32):
return *(u32 *)ptr; val = *(u32 *)ptr;
break;
default:
WARN_ON(1);
return 0;
} }
WARN_ON(1); return ccs_reg_conv(sensor, ccs_limits[limit].reg, val);
return 0;
} }
#define CCS_LIM(sensor, limit) \ #define CCS_LIM(sensor, limit) \
...@@ -188,7 +193,7 @@ static int ccs_read_all_limits(struct ccs_sensor *sensor) ...@@ -188,7 +193,7 @@ static int ccs_read_all_limits(struct ccs_sensor *sensor)
j++, reg += width, ptr += width) { j++, reg += width, ptr += width) {
u32 val; u32 val;
ret = ccs_read_addr(sensor, reg, &val); ret = ccs_read_addr_noconv(sensor, reg, &val);
if (ret) if (ret)
goto out_err; goto out_err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment