1
linux/drivers
Enrik Berkhan 2196d1cf4a i2c-algo-pca: Let PCA9564 recover from unacked data byte (state 0x30)
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>
2009-05-05 08:39:25 +02:00
..
accessibility
acpi acpica: validate package element more carefully in acpi_rs_get_pci_routing_table_length 2009-05-02 11:48:37 -07:00
amba
ata [libata] fix build error on drivers/ata/pata_legacy.c 2009-04-17 19:05:33 -04:00
atm Replace all DMA_nBIT_MASK macro with DMA_BIT_MASK(n) 2009-04-13 15:04:33 -07:00
auxdisplay
base driver synchronization: make scsi_wait_scan more advanced 2009-04-21 19:40:00 -07:00
block hd: fix locking 2009-04-28 20:24:20 +02:00
bluetooth
cdrom
char virtio-rng: Remove false BUG for spurious callbacks 2009-04-24 13:28:30 -07:00
clocksource clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
connector
cpufreq
cpuidle
crypto
dca
dio
dma
edac edac: ppc mpc85xx fix mc err detect 2009-04-21 13:41:51 -07:00
eisa
firewire
firmware ibft: fix the display of a few fields in the NIC attribute structure in sysfs 2009-05-02 15:36:10 -07:00
gpio
gpu Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel 2009-04-28 17:21:20 -07:00
hid HID: fix oops in hid_check_keys_pressed() 2009-05-02 00:02:57 +02:00
hwmon hwmon: sht15 humidity sensor driver 2009-04-13 15:04:29 -07:00
i2c i2c-algo-pca: Let PCA9564 recover from unacked data byte (state 0x30) 2009-05-05 08:39:25 +02:00
ide ide-cd: fix REQ_QUIET tests in cdrom_decode_status 2009-04-30 18:24:34 +02:00
idle
ieee1394
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2009-05-02 16:36:34 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-05-02 16:35:45 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-29 07:55:45 -07:00
leds
lguest lguest: fix guest crash on non-linear addresses in gdt pvops 2009-04-19 23:14:01 +09:30
macintosh Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 2009-04-24 08:16:05 -07:00
mca
md Merge branch 'for-linus' of git://neil.brown.name/md 2009-04-20 08:37:37 -07:00
media V4L/DVB (11652): au0828: fix kernel oops regression on USB disconnect. 2009-04-29 16:02:51 -03:00
memstick
message scsi: mpt: suppress debugobjects warning 2009-04-21 13:41:50 -07:00
mfd
misc sgi-xp/sgi-gru: allow modules to load on non-uv systems 2009-04-21 13:41:50 -07:00
mmc ARM: OMAP: MMC: Remove unused power_pin 2009-04-23 11:10:44 -07:00
mtd cafe_nand: Fix warning 2009-04-24 07:52:08 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-29 07:55:45 -07:00
nubus
of
oprofile
parisc parport: Fix various uses of parport_pc 2009-04-14 08:48:50 -07:00
parport
pci PCI: only save/restore existent registers in the PCIe capability 2009-04-22 15:59:41 -07:00
pcmcia [ARM] 5458/1: pcmcia: pxa2xx-sharpsl: check if we do have Scoop config 2009-04-23 23:25:40 +01:00
platform Merge branch 'sony-laptop' into release 2009-04-24 01:34:52 -04:00
pnp
power
ps3
rapidio
regulator regulator: Fix default constraints for fixed voltage regulators 2009-04-28 18:58:08 +01:00
rtc rtc-cmos: fix printk output 2009-04-21 13:41:50 -07:00
s390 [SCSI] zfcp: Fix oops when port disappears 2009-04-27 10:07:37 -05:00
sbus sbus: changed ioctls to unlocked 2009-04-14 19:46:19 -07:00
scsi [SCSI] libosd: OSD2r05: on-the-wire changes for latest OSD2 revision 5. 2009-04-27 11:05:49 -05:00
serial CRISv10: fix serial driver proc-usage 2009-05-02 15:36:09 -07:00
sh
sn
spi spi: pxa2xx: limit reaches -1 2009-04-21 13:41:49 -07:00
ssb
staging go7007: Convert to the new i2c device binding model 2009-04-21 21:47:22 +02:00
tc
telephony
thermal
uio UIO: fix specific device driver missing statement for depmod 2009-04-16 16:17:11 -07:00
usb USB: otg: Fix bug on remove path without transceiver 2009-04-23 14:15:31 -07:00
uwb
video vgacon: return the upper half of 512 character fonts 2009-05-02 15:36:10 -07:00
virtio virtio: fix suspend when using virtio_balloon 2009-04-19 23:14:01 +09:30
w1
watchdog [ARM] 5460/1: Orion: reduce namespace pollution 2009-04-23 23:25:41 +01:00
xen
zorro
Kconfig
Makefile V4L/DVB (11561a): move media after i2c 2009-04-29 15:41:13 -03:00