All of lore.kernel.org
 help / color / mirror / Atom feed
From: cminyard@mvista.com (Corey Minyard)
To: LM Sensors <sensors@stimpy.netroedge.com>,
	LKML <linux-kernel@vger.kernel.org>
Cc: Greg KH <greg@kroah.com>
Subject: [PATCH] I2C Part 1 - Remove some redundancy from the i2c-core.c
Date: Thu, 19 May 2005 06:25:47 +0000	[thread overview]
Message-ID: <424C73C7.4020400@mvista.com> (raw)
In-Reply-To: <20050323224430.634e0a75.khali@linux-fr.org>

Ok, I have taken some time from suffering (packaging perl modules) to 
get back to this.

Here's a new patch with the debug calls removed, as you requested.

Thanks,

-Corey

Jean Delvare wrote:

>Hi Corey,
>
>  
>
>>Call i2c_transfer() from i2c_master_send() and i2c_master_recv()
>>to avoid the redundant code that was in all three functions.
>>    
>>
>
>I like this. You're right, there is code duplication here, which we can
>get rid of, so let's do so. I'd only have one comments about your patch:
>
>You can get rid of the dev_dbg calls in i2c_master_send() and
>i2c_master_recv() altogether IMHO. I recently updated i2c_transfer() to
>make it more verbose in debug mode [1], so the debug messages in
>i2c_master_send() and i2c_master_recv() are mostly redundant now as far
>as I can see.
>
>[1] http://archives.andrew.net.au/lm-sensors/msg29859.html
>
>Thanks,
>  
>

-------------- 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/20050331/3af46141/i2c_remove_redundant_check.bin

WARNING: multiple messages have this Message-ID (diff)
From: Corey Minyard <cminyard@mvista.com>
To: LM Sensors <sensors@stimpy.netroedge.com>,
	LKML <linux-kernel@vger.kernel.org>
Cc: Greg KH <greg@kroah.com>
Subject: Re: [PATCH] I2C Part 1 - Remove some redundancy from the i2c-core.c file
Date: Thu, 31 Mar 2005 16:03:51 -0600	[thread overview]
Message-ID: <424C73C7.4020400@mvista.com> (raw)
In-Reply-To: <20050323224430.634e0a75.khali@linux-fr.org>

[-- Attachment #1: Type: text/plain, Size: 876 bytes --]

Ok, I have taken some time from suffering (packaging perl modules) to 
get back to this.

Here's a new patch with the debug calls removed, as you requested.

Thanks,

-Corey

Jean Delvare wrote:

>Hi Corey,
>
>  
>
>>Call i2c_transfer() from i2c_master_send() and i2c_master_recv()
>>to avoid the redundant code that was in all three functions.
>>    
>>
>
>I like this. You're right, there is code duplication here, which we can
>get rid of, so let's do so. I'd only have one comments about your patch:
>
>You can get rid of the dev_dbg calls in i2c_master_send() and
>i2c_master_recv() altogether IMHO. I recently updated i2c_transfer() to
>make it more verbose in debug mode [1], so the debug messages in
>i2c_master_send() and i2c_master_recv() are mostly redundant now as far
>as I can see.
>
>[1] http://archives.andrew.net.au/lm-sensors/msg29859.html
>
>Thanks,
>  
>


[-- Attachment #2: i2c_remove_redundant_check.diff --]
[-- Type: text/x-patch, Size: 2866 bytes --]

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;
 }
 
 

  reply	other threads:[~2005-05-19  6:25 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-23 15:28 [PATCH] I2C Part 1 - Remove some redundancy from the i2c-core.c file Corey Minyard
2005-05-19  6:25 ` Corey Minyard
2005-03-23 21:44 ` Jean Delvare
2005-05-19  6:25   ` [PATCH] I2C Part 1 - Remove some redundancy from the i2c-core.c Jean Delvare
2005-03-31 22:03   ` Corey Minyard [this message]
2005-05-19  6:25     ` Corey Minyard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=424C73C7.4020400@mvista.com \
    --to=cminyard@mvista.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sensors@stimpy.netroedge.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.