[i2c] i2c-nforce patch adding a check for read/writes of >=31 bytes

Oleg Ryjkov olegr at google.com
Wed May 9 04:13:17 CEST 2007


Hello Hans, hello list,

I'm currently working on an issue with the i2c-nforce2 driver, which 
happens when a block read/write is performed on a non-block register( up 
until the patch of i2c-nforce.c dated 2006-12-10 it supported the block 
reads - which is the version I'm using).
However, if a block read was done on, say a byte register, the 
controller would halt and the only way I could bring it back up was to 
reboot the host. I've came across the following patch:

http://lists.lm-sensors.org/pipermail/i2c/2006-October/000356.html

which seems to be working around this issue. However it adds a 
constraint that the max number of bytes to transfer is 31.
So my question is, why is it 31? I've tried applying the patch and then 
modifying it to raise this limit to 32 bytes and it seems to work fine 
on the MCP51 host controller . (And since we are resending the command 
following the length check, all of the 32 data registers are available 
to us).
Additionally, what were the reasons not to include the patch in the kernel?

Thanks,
Oleg



More information about the i2c mailing list