Messages in this thread | | | Date | Wed, 7 Jan 2009 14:24:26 +0100 | From | Jean Delvare <> | Subject | Re: [PATCH] rtc-ds1307: True SMBus compatibility |
| |
Hi Ed,
On Mon, 05 Jan 2009 09:41:01 -0800, Ed Swierk wrote: > [Resent to correct linux-i2c address] > > Following up to Sebastien Barre's recent patch, here I go one step > further, replacing i2c block transfers with SMBus byte transfers.
Please, no. Adding a compatibility quirk may be acceptable, but forcing everyone to use it instead of the more efficient original code is not fair.
> Sticking to pure SMBus makes the driver work on our board, which has an > nVidia SMBus controller driving a DS1339; nforce2 controllers > unfortunately don't support any flavor of i2c block transfer.
Are you certain the nForce2 controllers can't do it? The i2c-nforce2 driver doesn't implement it, but this doesn't mean the hardware can't do it. I don't have any datasheet for these chips, but I know their SMBus implementation is very similar to those of the AMD 8111, and i2c-amd8111 has support for I2C block reads and writes. I think it would be worth giving it a try, by copying the i2c-amd8111 implementation into the i2c-nforce2 driver and seeing if it happens to just work. If it works, that would be more elegant than your proposed hack to the rtc-ds1307 driver.
> Reading or writing registers repeatedly until they stick is rather > nauseating but I'm aiming for correctness if not elegance. I would > appreciate any suggestions for improvement.
See above.
-- Jean Delvare
| |