X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmedia%2Fvideo%2Fsaa7185.c;fp=drivers%2Fmedia%2Fvideo%2Fsaa7185.c;h=3ed0edb870a4eccd295f24eaaacf576cee00e4f9;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=9c308410856d9ad211d89fd2907e96ffd1dfa2ab;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/media/video/saa7185.c b/drivers/media/video/saa7185.c index 9c3084108..3ed0edb87 100644 --- a/drivers/media/video/saa7185.c +++ b/drivers/media/video/saa7185.c @@ -1,4 +1,4 @@ -/* +/* * saa7185 - Philips SAA7185B video encoder driver version 0.0.3 * * Copyright (C) 1998 Dave Perks @@ -49,6 +49,7 @@ MODULE_AUTHOR("Dave Perks"); MODULE_LICENSE("GPL"); #include +#include #define I2C_NAME(s) (s)->name @@ -112,21 +113,24 @@ saa7185_write_block (struct i2c_client *client, if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { /* do raw I2C, not smbus compatible */ struct saa7185 *encoder = i2c_get_clientdata(client); + struct i2c_msg msg; u8 block_data[32]; - int block_len; + msg.addr = client->addr; + msg.flags = 0; while (len >= 2) { - block_len = 0; - block_data[block_len++] = reg = data[0]; + msg.buf = (char *) block_data; + msg.len = 0; + block_data[msg.len++] = reg = data[0]; do { - block_data[block_len++] = + block_data[msg.len++] = encoder->reg[reg++] = data[1]; len -= 2; data += 2; } while (len >= 2 && data[0] == reg && - block_len < 32); - if ((ret = i2c_master_send(client, block_data, - block_len)) < 0) + msg.len < 32); + if ((ret = i2c_transfer(client->adapter, + &msg, 1)) < 0) break; } } else { @@ -377,7 +381,7 @@ saa7185_command (struct i2c_client *client, static unsigned short normal_i2c[] = { I2C_SAA7185 >> 1, I2C_CLIENT_END }; static unsigned short ignore = I2C_CLIENT_END; - + static struct i2c_client_address_data addr_data = { .normal_i2c = normal_i2c, .probe = &ignore,