Commit b0ac2383 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: atomisp-ov2680: get rid of the type field

This isn't really used, so get rid, in order to make the code
simpler.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 4f78f084
...@@ -158,21 +158,9 @@ static int __ov2680_buf_reg_array(struct i2c_client *client, ...@@ -158,21 +158,9 @@ static int __ov2680_buf_reg_array(struct i2c_client *client,
const struct ov2680_reg *next) const struct ov2680_reg *next)
{ {
int size; int size;
__be16 *data16;
switch (next->type) { size = 1;
case OV2680_8BIT: ctrl->buffer.data[ctrl->index] = (u8)next->val;
size = 1;
ctrl->buffer.data[ctrl->index] = (u8)next->val;
break;
case OV2680_16BIT:
size = 2;
data16 = (void *)&ctrl->buffer.data[ctrl->index];
*data16 = cpu_to_be16((u16)next->val);
break;
default:
return -EINVAL;
}
/* When first item is added, we need to store its starting address */ /* When first item is added, we need to store its starting address */
if (ctrl->index == 0) if (ctrl->index == 0)
...@@ -208,34 +196,24 @@ static int ov2680_write_reg_array(struct i2c_client *client, ...@@ -208,34 +196,24 @@ static int ov2680_write_reg_array(struct i2c_client *client,
int err; int err;
ctrl.index = 0; ctrl.index = 0;
for (; next->type != OV2680_TOK_TERM; next++) { for (; next->reg != 0; next++) {
switch (next->type & OV2680_TOK_MASK) { /*
case OV2680_TOK_DELAY: * If next address is not consecutive, data needs to be
* flushed before proceed.
*/
dev_dbg(&client->dev, "%s: reg=0x%02x set to 0x%02x\n",
__func__, next->reg, next->val);
if (!__ov2680_write_reg_is_consecutive(client, &ctrl,
next)) {
err = __ov2680_flush_reg_array(client, &ctrl); err = __ov2680_flush_reg_array(client, &ctrl);
if (err) if (err)
return err; return err;
msleep(next->val); }
break; err = __ov2680_buf_reg_array(client, &ctrl, next);
default: if (err) {
/* dev_err(&client->dev,
* If next address is not consecutive, data needs to be "%s: write error, aborted\n", __func__);
* flushed before proceed. return err;
*/
dev_dbg(&client->dev, "%s: reg=0x%02x set to 0x%02x\n",
__func__, next->reg, next->val);
if (!__ov2680_write_reg_is_consecutive(client, &ctrl,
next)) {
err = __ov2680_flush_reg_array(client, &ctrl);
if (err)
return err;
}
err = __ov2680_buf_reg_array(client, &ctrl, next);
if (err) {
dev_err(&client->dev,
"%s: write error, aborted\n", __func__);
return err;
}
break;
} }
} }
......
This diff is collapsed.
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