All of lore.kernel.org
 help / color / mirror / Atom feed
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.