Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e92adc2c39aaaa0129b7b97584784a8ba9da9ec4
Commit:     e92adc2c39aaaa0129b7b97584784a8ba9da9ec4
Parent:     289d4d2f0746715ada41e0945116eb3d62d5f35c
Author:     Steven Toth <[EMAIL PROTECTED]>
AuthorDate: Thu Sep 20 01:44:27 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 19:00:56 2008 -0200

    V4L/DVB (6404): cx23885: i2c 16bit reg/val read/write fix
    
    Fix i2c reads and writes of 16bit register address / values
    
    Signed-off-by: Steven Toth <[EMAIL PROTECTED]>
    Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/cx23885/cx23885-i2c.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/media/video/cx23885/cx23885-i2c.c 
b/drivers/media/video/cx23885/cx23885-i2c.c
index 71da528..f7e8a48 100644
--- a/drivers/media/video/cx23885/cx23885-i2c.c
+++ b/drivers/media/video/cx23885/cx23885-i2c.c
@@ -84,7 +84,8 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
        u32 wdata, addr, ctrl;
        int retval, cnt;
 
-       dprintk(1, "%s()\n", __FUNCTION__);
+       dprintk(1, "%s(msg->len=%d, last=%d)\n", __FUNCTION__, msg->len, last);
+
        /* Deal with i2c probe functions with zero payload */
        if (msg->len == 0) {
                cx_write(bus->reg_addr, msg->addr << 25);
@@ -127,7 +128,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
                wdata = msg->buf[cnt];
                ctrl = bus->i2c_period | (1 << 12) | (1 << 2);
 
-               if (cnt < msg->len-1 || !last)
+               if (cnt < msg->len - 1)
                        ctrl |= I2C_NOSTOP | I2C_EXTEND;
 
                cx_write(bus->reg_addr, addr);
@@ -162,7 +163,7 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
        u32 ctrl, cnt;
        int retval;
 
-       dprintk(1, "%s()\n", __FUNCTION__);
+       dprintk(1, "%s(msg->len=%d, last=%d)\n", __FUNCTION__, msg->len, last);
 
        /* Deal with i2c probe functions with zero payload */
        if (msg->len == 0) {
@@ -178,11 +179,14 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
                return 0;
        }
 
+       if (i2c_debug)
+               printk(" <R %02x", (msg->addr << 1) + 1);
+
        for(cnt = 0; cnt < msg->len; cnt++) {
 
                ctrl = bus->i2c_period | (1 << 12) | (1 << 2) | 1;
 
-               if (cnt < msg->len-1 || !last)
+               if (cnt < msg->len - 1)
                        ctrl |= I2C_NOSTOP | I2C_EXTEND;
 
                cx_write(bus->reg_addr, msg->addr << 25);
@@ -195,9 +199,7 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
                        goto eio;
                msg->buf[cnt] = cx_read(bus->reg_rdata) & 0xff;
                if (i2c_debug) {
-                       if (!(ctrl & I2C_NOSTOP))
-                               printk(" <R %02x", (msg->addr << 1) +1);
-                       printk(" =%02x", msg->buf[cnt]);
+                       printk(" %02x", msg->buf[cnt]);
                        if (!(ctrl & I2C_NOSTOP))
                                printk(" >\n");
                }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to