Commit 9aa45e34 authored by Jean Delvare's avatar Jean Delvare Committed by Mauro Carvalho Chehab

V4L/DVB (3568k): zoran: Use i2c_master_send when possible

Change all the Zoran (ZR36050/ZR36060) drivers to use i2c_master_send instead
of i2c_transfer when possible.  This simplifies the code by a few lines in
each driver.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 5a313c59
...@@ -125,24 +125,21 @@ adv7170_write_block (struct i2c_client *client, ...@@ -125,24 +125,21 @@ adv7170_write_block (struct i2c_client *client,
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
/* do raw I2C, not smbus compatible */ /* do raw I2C, not smbus compatible */
struct adv7170 *encoder = i2c_get_clientdata(client); struct adv7170 *encoder = i2c_get_clientdata(client);
struct i2c_msg msg;
u8 block_data[32]; u8 block_data[32];
int block_len;
msg.addr = client->addr;
msg.flags = 0;
while (len >= 2) { while (len >= 2) {
msg.buf = (char *) block_data; block_len = 0;
msg.len = 0; block_data[block_len++] = reg = data[0];
block_data[msg.len++] = reg = data[0];
do { do {
block_data[msg.len++] = block_data[block_len++] =
encoder->reg[reg++] = data[1]; encoder->reg[reg++] = data[1];
len -= 2; len -= 2;
data += 2; data += 2;
} while (len >= 2 && data[0] == reg && } while (len >= 2 && data[0] == reg &&
msg.len < 32); block_len < 32);
if ((ret = i2c_transfer(client->adapter, if ((ret = i2c_master_send(client, block_data,
&msg, 1)) < 0) block_len)) < 0)
break; break;
} }
} else { } else {
......
...@@ -115,24 +115,21 @@ adv7175_write_block (struct i2c_client *client, ...@@ -115,24 +115,21 @@ adv7175_write_block (struct i2c_client *client,
* the adapter understands raw I2C */ * the adapter understands raw I2C */
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
/* do raw I2C, not smbus compatible */ /* do raw I2C, not smbus compatible */
struct i2c_msg msg;
u8 block_data[32]; u8 block_data[32];
int block_len;
msg.addr = client->addr;
msg.flags = 0;
while (len >= 2) { while (len >= 2) {
msg.buf = (char *) block_data; block_len = 0;
msg.len = 0; block_data[block_len++] = reg = data[0];
block_data[msg.len++] = reg = data[0];
do { do {
block_data[msg.len++] = data[1]; block_data[block_len++] = data[1];
reg++; reg++;
len -= 2; len -= 2;
data += 2; data += 2;
} while (len >= 2 && data[0] == reg && } while (len >= 2 && data[0] == reg &&
msg.len < 32); block_len < 32);
if ((ret = i2c_transfer(client->adapter, if ((ret = i2c_master_send(client, block_data,
&msg, 1)) < 0) block_len)) < 0)
break; break;
} }
} else { } else {
......
...@@ -141,24 +141,21 @@ bt819_write_block (struct i2c_client *client, ...@@ -141,24 +141,21 @@ bt819_write_block (struct i2c_client *client,
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
/* do raw I2C, not smbus compatible */ /* do raw I2C, not smbus compatible */
struct bt819 *decoder = i2c_get_clientdata(client); struct bt819 *decoder = i2c_get_clientdata(client);
struct i2c_msg msg;
u8 block_data[32]; u8 block_data[32];
int block_len;
msg.addr = client->addr;
msg.flags = 0;
while (len >= 2) { while (len >= 2) {
msg.buf = (char *) block_data; block_len = 0;
msg.len = 0; block_data[block_len++] = reg = data[0];
block_data[msg.len++] = reg = data[0];
do { do {
block_data[msg.len++] = block_data[block_len++] =
decoder->reg[reg++] = data[1]; decoder->reg[reg++] = data[1];
len -= 2; len -= 2;
data += 2; data += 2;
} while (len >= 2 && data[0] == reg && } while (len >= 2 && data[0] == reg &&
msg.len < 32); block_len < 32);
if ((ret = i2c_transfer(client->adapter, if ((ret = i2c_master_send(client, block_data,
&msg, 1)) < 0) block_len)) < 0)
break; break;
} }
} else { } else {
......
...@@ -108,13 +108,8 @@ saa7110_write_block (struct i2c_client *client, ...@@ -108,13 +108,8 @@ saa7110_write_block (struct i2c_client *client,
* the adapter understands raw I2C */ * the adapter understands raw I2C */
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
struct saa7110 *decoder = i2c_get_clientdata(client); struct saa7110 *decoder = i2c_get_clientdata(client);
struct i2c_msg msg;
msg.len = len; ret = i2c_master_send(client, data, len);
msg.buf = (char *) data;
msg.addr = client->addr;
msg.flags = 0;
ret = i2c_transfer(client->adapter, &msg, 1);
/* Cache the written data */ /* Cache the written data */
memcpy(decoder->reg + reg, data + 1, len - 1); memcpy(decoder->reg + reg, data + 1, len - 1);
......
...@@ -112,24 +112,21 @@ saa7111_write_block (struct i2c_client *client, ...@@ -112,24 +112,21 @@ saa7111_write_block (struct i2c_client *client,
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
/* do raw I2C, not smbus compatible */ /* do raw I2C, not smbus compatible */
struct saa7111 *decoder = i2c_get_clientdata(client); struct saa7111 *decoder = i2c_get_clientdata(client);
struct i2c_msg msg;
u8 block_data[32]; u8 block_data[32];
int block_len;
msg.addr = client->addr;
msg.flags = 0;
while (len >= 2) { while (len >= 2) {
msg.buf = (char *) block_data; block_len = 0;
msg.len = 0; block_data[block_len++] = reg = data[0];
block_data[msg.len++] = reg = data[0];
do { do {
block_data[msg.len++] = block_data[block_len++] =
decoder->reg[reg++] = data[1]; decoder->reg[reg++] = data[1];
len -= 2; len -= 2;
data += 2; data += 2;
} while (len >= 2 && data[0] == reg && } while (len >= 2 && data[0] == reg &&
msg.len < 32); block_len < 32);
if ((ret = i2c_transfer(client->adapter, if ((ret = i2c_master_send(client, block_data,
&msg, 1)) < 0) block_len)) < 0)
break; break;
} }
} else { } else {
......
...@@ -154,24 +154,21 @@ saa7114_write_block (struct i2c_client *client, ...@@ -154,24 +154,21 @@ saa7114_write_block (struct i2c_client *client,
* the adapter understands raw I2C */ * the adapter understands raw I2C */
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
/* do raw I2C, not smbus compatible */ /* do raw I2C, not smbus compatible */
struct i2c_msg msg;
u8 block_data[32]; u8 block_data[32];
int block_len;
msg.addr = client->addr;
msg.flags = 0;
while (len >= 2) { while (len >= 2) {
msg.buf = (char *) block_data; block_len = 0;
msg.len = 0; block_data[block_len++] = reg = data[0];
block_data[msg.len++] = reg = data[0];
do { do {
block_data[msg.len++] = data[1]; block_data[block_len++] = data[1];
reg++; reg++;
len -= 2; len -= 2;
data += 2; data += 2;
} while (len >= 2 && data[0] == reg && } while (len >= 2 && data[0] == reg &&
msg.len < 32); block_len < 32);
if ((ret = i2c_transfer(client->adapter, if ((ret = i2c_master_send(client, block_data,
&msg, 1)) < 0) block_len)) < 0)
break; break;
} }
} else { } else {
......
...@@ -113,24 +113,21 @@ saa7185_write_block (struct i2c_client *client, ...@@ -113,24 +113,21 @@ saa7185_write_block (struct i2c_client *client,
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
/* do raw I2C, not smbus compatible */ /* do raw I2C, not smbus compatible */
struct saa7185 *encoder = i2c_get_clientdata(client); struct saa7185 *encoder = i2c_get_clientdata(client);
struct i2c_msg msg;
u8 block_data[32]; u8 block_data[32];
int block_len;
msg.addr = client->addr;
msg.flags = 0;
while (len >= 2) { while (len >= 2) {
msg.buf = (char *) block_data; block_len = 0;
msg.len = 0; block_data[block_len++] = reg = data[0];
block_data[msg.len++] = reg = data[0];
do { do {
block_data[msg.len++] = block_data[block_len++] =
encoder->reg[reg++] = data[1]; encoder->reg[reg++] = data[1];
len -= 2; len -= 2;
data += 2; data += 2;
} while (len >= 2 && data[0] == reg && } while (len >= 2 && data[0] == reg &&
msg.len < 32); block_len < 32);
if ((ret = i2c_transfer(client->adapter, if ((ret = i2c_master_send(client, block_data,
&msg, 1)) < 0) block_len)) < 0)
break; break;
} }
} else { } else {
......
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