diff for duplicates of <42418B36.5030407@mvista.com> diff --git a/a/1.txt b/N1/1.txt index 2bb62a3..46e2ad6 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,10 +1,3 @@ This is a series of patches to add a non-blocking interface to the I2C driver. Hopefully it is broken into small enough functional changes. I'm not posting the whole series right now, just the first few. --------------- next part -------------- -A non-text attachment was scrubbed... -Name: i2c_remove_redundant_check.diff -Type: text/x-patch -Size: 3065 bytes -Desc: not available -Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050323/a15af38d/i2c_remove_redundant_check.bin diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..427d27c --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,5 @@ +Content-Type: text/x-patch; + name="i2c_remove_redundant_check.diff" +Content-Transfer-Encoding: 7bit +Content-Disposition: inline; + filename="i2c_remove_redundant_check.diff" diff --git a/N1/2.txt b/N1/2.txt new file mode 100644 index 0000000..c4f96b1 --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,99 @@ +Call i2c_transfer() from i2c_master_send() and i2c_master_recv() +to avoid the redundant code that was in all three functions. + +This is important for the non-blocking interfaces because they +will have to handle a non-blocking interface in this area. Having +it in one place greatly simplifies the changes. + +Signed-off-by: Corey Minyard <minyard@acm.org> + +Index: linux-2.6.11-rc4/drivers/i2c/i2c-core.c +=================================================================== +--- linux-2.6.11-rc4.orig/drivers/i2c/i2c-core.c ++++ linux-2.6.11-rc4/drivers/i2c/i2c-core.c +@@ -606,27 +606,20 @@ + struct i2c_adapter *adap=client->adapter; + struct i2c_msg msg; + +- if (client->adapter->algo->master_xfer) { +- msg.addr = client->addr; +- msg.flags = client->flags & I2C_M_TEN; +- msg.len = count; +- msg.buf = (char *)buf; ++ msg.addr = client->addr; ++ msg.flags = client->flags & I2C_M_TEN; ++ msg.len = count; ++ msg.buf = (char *)buf; + +- dev_dbg(&client->adapter->dev, "master_send: writing %d bytes.\n", +- count); +- +- down(&adap->bus_lock); +- ret = adap->algo->master_xfer(adap,&msg,1); +- up(&adap->bus_lock); ++ dev_dbg(&client->adapter->dev, "master_send: writing %d bytes.\n", ++ count); + +- /* if everything went ok (i.e. 1 msg transmitted), return #bytes +- * transmitted, else error code. +- */ +- return (ret == 1 )? count : ret; +- } else { +- dev_err(&client->adapter->dev, "I2C level transfers not supported\n"); +- return -ENOSYS; +- } ++ ret = i2c_transfer(adap, &msg, 1); ++ ++ /* if everything went ok (i.e. 1 msg transmitted), return #bytes ++ * transmitted, else error code. ++ */ ++ return (ret == 1 )? count : ret; + } + + int i2c_master_recv(struct i2c_client *client, char *buf ,int count) +@@ -634,31 +627,25 @@ + struct i2c_adapter *adap=client->adapter; + struct i2c_msg msg; + int ret; +- if (client->adapter->algo->master_xfer) { +- msg.addr = client->addr; +- msg.flags = client->flags & I2C_M_TEN; +- msg.flags |= I2C_M_RD; +- msg.len = count; +- msg.buf = buf; + +- dev_dbg(&client->adapter->dev, "master_recv: reading %d bytes.\n", +- count); +- +- down(&adap->bus_lock); +- ret = adap->algo->master_xfer(adap,&msg,1); +- up(&adap->bus_lock); ++ msg.addr = client->addr; ++ msg.flags = client->flags & I2C_M_TEN; ++ msg.flags |= I2C_M_RD; ++ msg.len = count; ++ msg.buf = buf; ++ ++ dev_dbg(&client->adapter->dev, "master_recv: reading %d bytes.\n", ++ count); + +- dev_dbg(&client->adapter->dev, "master_recv: return:%d (count:%d, addr:0x%02x)\n", +- ret, count, client->addr); ++ ret = i2c_transfer(adap, &msg, 1); ++ ++ dev_dbg(&client->adapter->dev, "master_recv: return:%d (count:%d, addr:0x%02x)\n", ++ ret, count, client->addr); + +- /* if everything went ok (i.e. 1 msg transmitted), return #bytes +- * transmitted, else error code. +- */ +- return (ret == 1 )? count : ret; +- } else { +- dev_err(&client->adapter->dev, "I2C level transfers not supported\n"); +- return -ENOSYS; +- } ++ /* if everything went ok (i.e. 1 msg transmitted), return #bytes ++ * transmitted, else error code. ++ */ ++ return (ret == 1 )? count : ret; + } diff --git a/a/content_digest b/N1/content_digest index 3c9cd36..7a1372a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,20 +1,115 @@ - "From\0cminyard@mvista.com (Corey Minyard)\0" + "From\0Corey Minyard <cminyard@mvista.com>\0" "Subject\0[PATCH] I2C Part 1 - Remove some redundancy from the i2c-core.c file\0" - "Date\0Thu, 19 May 2005 06:25:45 +0000\0" + "Date\0Wed, 23 Mar 2005 09:28:54 -0600\0" "To\0Greg KH <greg@kroah.com>" lkml <linux-kernel@vger.kernel.org> " Sensors <sensors@stimpy.netroedge.com>\0" - "\00:1\0" + "\01:1\0" "b\0" "This is a series of patches to add a non-blocking interface to the I2C \n" "driver. Hopefully it is broken into small enough functional changes. \n" - "I'm not posting the whole series right now, just the first few.\n" - "-------------- next part --------------\n" - "A non-text attachment was scrubbed...\n" - "Name: i2c_remove_redundant_check.diff\n" - "Type: text/x-patch\n" - "Size: 3065 bytes\n" - "Desc: not available\n" - Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050323/a15af38d/i2c_remove_redundant_check.bin + I'm not posting the whole series right now, just the first few. + "\01:2\0" + "fn\0i2c_remove_redundant_check.diff\0" + "b\0" + "Call i2c_transfer() from i2c_master_send() and i2c_master_recv()\n" + "to avoid the redundant code that was in all three functions.\n" + "\n" + "This is important for the non-blocking interfaces because they\n" + "will have to handle a non-blocking interface in this area. Having\n" + "it in one place greatly simplifies the changes.\n" + "\n" + "Signed-off-by: Corey Minyard <minyard@acm.org>\n" + "\n" + "Index: linux-2.6.11-rc4/drivers/i2c/i2c-core.c\n" + "===================================================================\n" + "--- linux-2.6.11-rc4.orig/drivers/i2c/i2c-core.c\n" + "+++ linux-2.6.11-rc4/drivers/i2c/i2c-core.c\n" + "@@ -606,27 +606,20 @@\n" + " \tstruct i2c_adapter *adap=client->adapter;\n" + " \tstruct i2c_msg msg;\n" + " \n" + "-\tif (client->adapter->algo->master_xfer) {\n" + "-\t\tmsg.addr = client->addr;\n" + "-\t\tmsg.flags = client->flags & I2C_M_TEN;\n" + "-\t\tmsg.len = count;\n" + "-\t\tmsg.buf = (char *)buf;\n" + "+\tmsg.addr = client->addr;\n" + "+\tmsg.flags = client->flags & I2C_M_TEN;\n" + "+\tmsg.len = count;\n" + "+\tmsg.buf = (char *)buf;\n" + " \t\n" + "-\t\tdev_dbg(&client->adapter->dev, \"master_send: writing %d bytes.\\n\",\n" + "-\t\t\tcount);\n" + "-\t\n" + "-\t\tdown(&adap->bus_lock);\n" + "-\t\tret = adap->algo->master_xfer(adap,&msg,1);\n" + "-\t\tup(&adap->bus_lock);\n" + "+\tdev_dbg(&client->adapter->dev, \"master_send: writing %d bytes.\\n\",\n" + "+\t\tcount);\n" + " \n" + "-\t\t/* if everything went ok (i.e. 1 msg transmitted), return #bytes\n" + "-\t\t * transmitted, else error code.\n" + "-\t\t */\n" + "-\t\treturn (ret == 1 )? count : ret;\n" + "-\t} else {\n" + "-\t\tdev_err(&client->adapter->dev, \"I2C level transfers not supported\\n\");\n" + "-\t\treturn -ENOSYS;\n" + "-\t}\n" + "+\tret = i2c_transfer(adap, &msg, 1);\n" + "+\n" + "+\t/* if everything went ok (i.e. 1 msg transmitted), return #bytes\n" + "+\t * transmitted, else error code.\n" + "+\t */\n" + "+\treturn (ret == 1 )? count : ret;\n" + " }\n" + " \n" + " int i2c_master_recv(struct i2c_client *client, char *buf ,int count)\n" + "@@ -634,31 +627,25 @@\n" + " \tstruct i2c_adapter *adap=client->adapter;\n" + " \tstruct i2c_msg msg;\n" + " \tint ret;\n" + "-\tif (client->adapter->algo->master_xfer) {\n" + "-\t\tmsg.addr = client->addr;\n" + "-\t\tmsg.flags = client->flags & I2C_M_TEN;\n" + "-\t\tmsg.flags |= I2C_M_RD;\n" + "-\t\tmsg.len = count;\n" + "-\t\tmsg.buf = buf;\n" + " \n" + "-\t\tdev_dbg(&client->adapter->dev, \"master_recv: reading %d bytes.\\n\",\n" + "-\t\t\tcount);\n" + "-\t\n" + "-\t\tdown(&adap->bus_lock);\n" + "-\t\tret = adap->algo->master_xfer(adap,&msg,1);\n" + "-\t\tup(&adap->bus_lock);\n" + "+\tmsg.addr = client->addr;\n" + "+\tmsg.flags = client->flags & I2C_M_TEN;\n" + "+\tmsg.flags |= I2C_M_RD;\n" + "+\tmsg.len = count;\n" + "+\tmsg.buf = buf;\n" + "+\n" + "+\tdev_dbg(&client->adapter->dev, \"master_recv: reading %d bytes.\\n\",\n" + "+\t\tcount);\n" + " \t\n" + "-\t\tdev_dbg(&client->adapter->dev, \"master_recv: return:%d (count:%d, addr:0x%02x)\\n\",\n" + "-\t\t\tret, count, client->addr);\n" + "+\tret = i2c_transfer(adap, &msg, 1);\n" + "+\n" + "+\tdev_dbg(&client->adapter->dev, \"master_recv: return:%d (count:%d, addr:0x%02x)\\n\",\n" + "+\t\tret, count, client->addr);\n" + " \t\n" + "-\t\t/* if everything went ok (i.e. 1 msg transmitted), return #bytes\n" + "-\t \t* transmitted, else error code.\n" + "-\t \t*/\n" + "-\t\treturn (ret == 1 )? count : ret;\n" + "-\t} else {\n" + "-\t\tdev_err(&client->adapter->dev, \"I2C level transfers not supported\\n\");\n" + "-\t\treturn -ENOSYS;\n" + "-\t}\n" + "+\t/* if everything went ok (i.e. 1 msg transmitted), return #bytes\n" + "+\t * transmitted, else error code.\n" + "+\t */\n" + "+\treturn (ret == 1 )? count : ret;\n" + } -c2b1be4952813b9560070833bfeaa6e97176ab4ca86958a2b9c8d098ab2fac06 +9b857fc84983b42d8a7137b7ce60f077acf56be925bf8bd40c6335303e5c434e
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.