linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] i2c-i801: Don't use the block buffer for I2C block writes
@ 2010-03-04 10:01 Jean Delvare
       [not found] ` <20100304110109.541b846e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Jean Delvare @ 2010-03-04 10:01 UTC (permalink / raw)
  To: Linux I2C; +Cc: Felix Rubinstein, Oleg Ryjkov, Seth Heasley

From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Subject: i2c-i801: Don't use the block buffer for I2C block writes

Experience has shown that the block buffer can only be used for SMBus
(not I2C) block transactions, even though the datasheet doesn't
mention this limitation.

Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Cc: Felix Rubinstein <felixru-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Oleg Ryjkov <oryjkov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Seth Heasley <seth.heasley-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
Oleg, can you remember which transaction types you tested when you
added support for the block buffer originally?

Seth, do you have any additional information regarding the use of the
32-byte block buffer with I2C block read and write transactions on
Intel ICH chips? The datasheet doesn't say it won't work, but
experience suggests that this is the case. Which is unfortunate because
it degrades performance quite a bit.

 drivers/i2c/busses/i2c-i801.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- linux-2.6.34-rc0.orig/drivers/i2c/busses/i2c-i801.c	2010-03-04 10:54:22.000000000 +0100
+++ linux-2.6.34-rc0/drivers/i2c/busses/i2c-i801.c	2010-03-04 10:54:28.000000000 +0100
@@ -416,9 +416,11 @@ static int i801_block_transaction(union
 		data->block[0] = 32;	/* max for SMBus block reads */
 	}
 
+	/* Experience has shown that the block buffer can only be used for
+	   SMBus (not I2C) block transactions, even though the datasheet
+	   doesn't mention this limitation. */
 	if ((i801_features & FEATURE_BLOCK_BUFFER)
-	 && !(command == I2C_SMBUS_I2C_BLOCK_DATA
-	      && read_write == I2C_SMBUS_READ)
+	 && command != I2C_SMBUS_I2C_BLOCK_DATA
 	 && i801_set_block_buffer_mode() == 0)
 		result = i801_block_transaction_by_block(data, read_write,
 							 hwpec);


-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] i2c-i801: Don't use the block buffer for I2C block writes
       [not found] ` <20100304110109.541b846e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
@ 2010-03-04 10:09   ` Wolfram Sang
       [not found]     ` <20100304100917.GB18304-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Wolfram Sang @ 2010-03-04 10:09 UTC (permalink / raw)
  To: Jean Delvare; +Cc: Linux I2C, Felix Rubinstein, Oleg Ryjkov, Seth Heasley

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

> +	/* Experience has shown that the block buffer can only be used for
> +	   SMBus (not I2C) block transactions, even though the datasheet
> +	   doesn't mention this limitation. */

Minor: Comment style?

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] i2c-i801: Don't use the block buffer for I2C block writes
       [not found]     ` <20100304100917.GB18304-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
@ 2010-03-04 10:16       ` Jean Delvare
  0 siblings, 0 replies; 3+ messages in thread
From: Jean Delvare @ 2010-03-04 10:16 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: Linux I2C, Felix Rubinstein, Oleg Ryjkov, Seth Heasley

On Thu, 4 Mar 2010 11:09:17 +0100, Wolfram Sang wrote:
> > +	/* Experience has shown that the block buffer can only be used for
> > +	   SMBus (not I2C) block transactions, even though the datasheet
> > +	   doesn't mention this limitation. */
> 
> Minor: Comment style?

checkpatch did not complain, and I couldn't find any consistency in
comment style in this driver.

-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-03-04 10:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-04 10:01 [PATCH] i2c-i801: Don't use the block buffer for I2C block writes Jean Delvare
     [not found] ` <20100304110109.541b846e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2010-03-04 10:09   ` Wolfram Sang
     [not found]     ` <20100304100917.GB18304-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-04 10:16       ` Jean Delvare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).