All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <425418AD.6060102@acm.org>

diff --git a/a/1.txt b/N1/1.txt
index c551afc..8b13789 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,8 +1 @@
 
--------------- next part --------------
-A non-text attachment was scrubbed...
-Name: i2c_remove_redundant_check.diff
-Type: text/x-patch
-Size: 2866 bytes
-Desc: not available
-Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050406/e3ce9b0c/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..d47faa8
--- /dev/null
+++ b/N1/2.txt
@@ -0,0 +1,95 @@
+Call i2c_transfer() from i2c_master_send() and i2c_master_recv()
+to avoid the redundant code that was in all three functions.  It
+also removes unnecessary debug statements as suggested by Jean
+Delvare.
+
+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.12-rc1/drivers/i2c/i2c-core.c
+===================================================================
+--- linux-2.6.12-rc1.orig/drivers/i2c/i2c-core.c
++++ linux-2.6.12-rc1/drivers/i2c/i2c-core.c
+@@ -612,27 +612,17 @@
+ 	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);
+-
+-		/* 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)
+@@ -640,31 +630,19 @@
+ 	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);
+-	
+-		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;
+-	}
++	msg.addr   = client->addr;
++	msg.flags = client->flags & I2C_M_TEN;
++	msg.flags |= I2C_M_RD;
++	msg.len = count;
++	msg.buf = buf;
++
++	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;
+ }
diff --git a/a/content_digest b/N1/content_digest
index e29fce9..0d75d28 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,18 +1,108 @@
- "From\0minyard@acm.org (Corey Minyard)\0"
+ "From\0Corey Minyard <minyard@acm.org>\0"
  "Subject\0[PATCH] Remove redundancy from i2c-core.c\0"
- "Date\0Thu, 19 May 2005 06:25:48 +0000\0"
+ "Date\0Wed, 06 Apr 2005 12:13:17 -0500\0"
  "To\0lkml <linux-kernel@vger.kernel.org>"
   Greg KH <greg@kroah.com>
  " Sensors <sensors@stimpy.netroedge.com>\0"
- "\00:1\0"
+ "\01:1\0"
  "b\0"
+ "\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.  It\n"
+ "also removes unnecessary debug statements as suggested by Jean\n"
+ "Delvare.\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"
- "-------------- next part --------------\n"
- "A non-text attachment was scrubbed...\n"
- "Name: i2c_remove_redundant_check.diff\n"
- "Type: text/x-patch\n"
- "Size: 2866 bytes\n"
- "Desc: not available\n"
- Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050406/e3ce9b0c/i2c_remove_redundant_check.bin
+ "Index: linux-2.6.12-rc1/drivers/i2c/i2c-core.c\n"
+ "===================================================================\n"
+ "--- linux-2.6.12-rc1.orig/drivers/i2c/i2c-core.c\n"
+ "+++ linux-2.6.12-rc1/drivers/i2c/i2c-core.c\n"
+ "@@ -612,27 +612,17 @@\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"
+ "-\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"
+ "@@ -640,31 +630,19 @@\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"
+ "-\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"
+ "-\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"
+ "+\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"
+ "+\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"
+  }
 
-ef2c851a847648652cdd49eafc734465c986a330958598d3f58b511aa7fc2622
+193b51d1f00b021d1437dbaa79235171a61156aeef5722a8bfc38b7ea2d27213

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.