aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2006-03-22 01:48:33 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-03-23 09:24:03 -0500
commit6254312352dfd1c996245cb3bc74be901dc165cc (patch)
tree4040c6d047f4be61b0a55b0b34323d3ef34e3884
parent2e6e33bab6e1996a5dec9108fb467b52b841e7a8 (diff)
V4L/DVB (3568a): saa7114: Fix i2c block write
Fix the i2c block write mode of the saa7114 driver. A previous code change accidentally commented out a local variable increment, which should have been kept, causing the register writes over the I2C bus to never be batched, replacing any attempted block write by slower, individual write transactions. Also drop the commented out code, as it only adds to confusion. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/saa7114.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/media/video/saa7114.c b/drivers/media/video/saa7114.c
index fd0a4b4ef014..1c29d05307a5 100644
--- a/drivers/media/video/saa7114.c
+++ b/drivers/media/video/saa7114.c
@@ -139,9 +139,6 @@ saa7114_write (struct i2c_client *client,
139 u8 reg, 139 u8 reg,
140 u8 value) 140 u8 value)
141{ 141{
142 /*struct saa7114 *decoder = i2c_get_clientdata(client);*/
143
144 /*decoder->reg[reg] = value;*/
145 return i2c_smbus_write_byte_data(client, reg, value); 142 return i2c_smbus_write_byte_data(client, reg, value);
146} 143}
147 144
@@ -157,7 +154,6 @@ saa7114_write_block (struct i2c_client *client,
157 * the adapter understands raw I2C */ 154 * the adapter understands raw I2C */
158 if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { 155 if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
159 /* do raw I2C, not smbus compatible */ 156 /* do raw I2C, not smbus compatible */
160 /*struct saa7114 *decoder = i2c_get_clientdata(client);*/
161 struct i2c_msg msg; 157 struct i2c_msg msg;
162 u8 block_data[32]; 158 u8 block_data[32];
163 159
@@ -168,8 +164,8 @@ saa7114_write_block (struct i2c_client *client,
168 msg.len = 0; 164 msg.len = 0;
169 block_data[msg.len++] = reg = data[0]; 165 block_data[msg.len++] = reg = data[0];
170 do { 166 do {
171 block_data[msg.len++] = 167 block_data[msg.len++] = data[1];
172 /*decoder->reg[reg++] =*/ data[1]; 168 reg++;
173 len -= 2; 169 len -= 2;
174 data += 2; 170 data += 2;
175 } while (len >= 2 && data[0] == reg && 171 } while (len >= 2 && data[0] == reg &&