aboutsummaryrefslogtreecommitdiff
path: root/mm/mremap.c
diff options
context:
space:
mode:
authorEnrik Berkhan <Enrik.Berkhan@ge.com>2009-05-07 14:58:48 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2009-05-19 22:20:08 -0700
commit5e997eb367501a7c079fb5cb153ec59faf35d6d8 (patch)
tree68bd18bdb723fd5e130a45ad7bc4bad76f31df60 /mm/mremap.c
parent3db025f88475dd6eaa4b4881d21f7ab89c8b1ecd (diff)
i2c-algo-pca: Let PCA9564 recover from unacked data byte (state 0x30)
commit 2196d1cf4afab93fb64c2e5b417096e49b661612 upstream Currently, the i2c-algo-pca driver does nothing if the chip enters state 0x30 (Data byte in I2CDAT has been transmitted; NOT ACK has been received). Thus, the i2c bus connected to the controller gets stuck afterwards. I have seen this kind of error on a custom board in certain load situations most probably caused by interference or noise. A possible reaction is to let the controller generate a STOP condition. This is documented in the PCA9564 data sheet (2006-09-01) and the same is done for other NACK states as well. Further, state 0x38 isn't handled completely, either. Try to do another START in this case like the data sheet says. As this couldn't be tested, I've added a comment to try to reset the chip if the START doesn't help as suggested by Wolfram Sang. Signed-off-by: Enrik Berkhan <Enrik.Berkhan@ge.com> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'mm/mremap.c')
0 files changed, 0 insertions, 0 deletions