Albrecht Dreß
0c2daaafcd
powerpc/5200/i2c: improve i2c bus error recovery
...
This patch improves the recovery of the MPC's I2C bus from errors like bus
hangs resulting in timeouts:
1. make the bus timeout configurable, as it depends on the bus clock and
the attached slave chip(s); default is still 1 second;
2. detect any of the cases indicated by the CF, BB and RXAK MSR flags if a
timeout occurs, and add a missing (required) MAL reset;
3. use a more reliable method to fixup the bus if a hang has been detected.
The sequence is sent 9 times which seems to be necessary if a slave
"misses" more than one clock cycle. For 400 kHz bus speed, the fixup is
also ~70us (81us vs. 150us) faster.
Tested on a custom Lite5200b derived board, with a Dallas RTC, AD sensors
and NXP IO expander chips attached to the i2c.
Changes vs. v1:
- use improved bus fixup sequence for all chips (not only the 5200)
- calculate real clock from defaults if no clock is given in the device tree
- better description (I hope) of the changes.
I didn't split the changes in this file into three parts as recommended by
Grant, as they actually belong together (i.e. they address one single
problem, just in three places of one single source file).
Signed-off-by: Albrecht Dreß <albrecht.dress@arcor.de>
[grant.likely@secretlab.ca: fixup for ->node to ->dev.of_node transition]
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2010-08-01 17:06:44 -06:00
..
accessibility
acpi
correct console log level when ERST ACPI table is not found
2010-07-01 18:40:29 -07:00
amba
ata
ata_generic: implement ATA_GEN_* flags and force enable DMA on MBP 7,1
2010-07-01 15:34:48 -04:00
atm
auxdisplay
base
block
cciss: set SCSI max cmd len to 16, as default is wrong
2010-06-15 08:12:34 +02:00
bluetooth
drivers: bluetooth: bluecard_cs.c: Fixed include error, changed to linux/io.h
2010-07-01 21:28:14 -07:00
cdrom
char
sysrq,kdb: Use __handle_sysrq() for kdb's sysrq function
2010-07-21 19:27:07 -05:00
clocksource
Andres has moved
2010-07-20 16:25:41 -07:00
connector
cpufreq
cpuidle
sched: Cure nr_iowait_cpu() users
2010-07-01 09:39:48 +02:00
crypto
crypto: talitos - fix bug in sg_copy_end_to_buffer
2010-07-19 14:11:24 +08:00
dca
dio
dma
of/dma: fix build breakage in ppc4xx adma driver
2010-07-02 15:46:17 -06:00
edac
edac: mpc85xx: add support for MPC8569 EDAC controllers
2010-07-20 16:25:40 -07:00
eisa
firewire
firmware
gpio
Andres has moved
2010-07-20 16:25:41 -07:00
gpu
Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
2010-07-22 11:45:57 -07:00
hid
HID: Send Report ID when numbered reports are sent over the control endpoint.
2010-07-11 23:13:15 +02:00
hwmon
hwmon: (coretemp) Properly label the sensors
2010-07-09 16:22:51 +02:00
i2c
powerpc/5200/i2c: improve i2c bus error recovery
2010-08-01 17:06:44 -06:00
ide
idle
ieee1394
ieee802154
infiniband
IB/qib: Use request_firmware() to load SD7220 firmware
2010-07-08 13:27:05 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2010-07-22 11:46:15 -07:00
isdn
ISDN: hysdn, fix potential NULL dereference
2010-06-26 22:12:02 -07:00
leds
i2c: Remove all i2c_set_clientdata(client, NULL) in drivers
2010-06-03 11:33:58 +02:00
lguest
macintosh
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
2010-06-03 15:46:37 -07:00
mca
md
md/raid5: don't include 'spare' drives when reshaping to fewer devices.
2010-06-24 13:36:04 +10:00
media
V4L/DVB: v4l: mem2mem_testdev: fix g_fmt NULL pointer dereference
2010-07-08 16:50:24 -03:00
memstick
message
mfd
i2c: Remove all i2c_set_clientdata(client, NULL) in drivers
2010-06-03 11:33:58 +02:00
misc
Andres has moved
2010-07-20 16:25:41 -07:00
mmc
sdhci-s3c: add missing remove function
2010-07-20 16:25:41 -07:00
mtd
Merge git://git.infradead.org/~dwmw2/mtd-2.6.35
2010-06-07 17:10:06 -07:00
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2010-07-20 16:26:42 -07:00
nubus
of
oprofile
parisc
parport
pci
PCI: fall back to original BIOS BAR addresses
2010-07-16 11:39:48 -07:00
pcmcia
pcmcia: fix 'driver ... did not release config properly' warning
2010-07-21 13:52:36 +02:00
platform
intel_scu_ipc: Oops/crash fixes
2010-07-19 13:17:37 -07:00
pnp
power
Merge git://git.infradead.org/users/cbou/battery-2.6.35
2010-07-20 08:22:15 -07:00
pps
ps3
rapidio
regulator
i2c: Remove all i2c_set_clientdata(client, NULL) in drivers
2010-06-03 11:33:58 +02:00
rtc
rtc: fix ds1388 time corruption
2010-06-29 15:29:31 -07:00
s390
[S390] cio: fix potential overflow in chpid descriptor
2010-07-19 09:22:50 +02:00
sbus
drivers/sbus: Remove unnecessary casts of private_data
2010-07-12 21:16:04 -07:00
scsi
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
2010-06-03 15:48:15 -07:00
serial
powerpc/5200: improve uart baud rate calculation (reach high baud rates, better accuracy)
2010-07-24 18:27:57 -06:00
sfi
sh
sn
spi
powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue)
2010-07-11 11:03:22 -05:00
ssb
staging
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
2010-06-30 15:45:59 -07:00
tc
telephony
thermal
uio
usb
Fix up trivial spelling errors ('taht' -> 'that')
2010-07-21 09:25:42 -07:00
uwb
vhost
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2010-07-20 16:26:42 -07:00
video
of/xilinxfb: update tft compatible versions
2010-08-01 17:06:44 -06:00
virtio
virtio-pci: disable msi at startup
2010-06-23 22:49:07 +09:30
vlynq
w1
watchdog
watchdog: at32ap700x_wdt: register misc device last in probe() function
2010-06-17 09:56:57 +00:00
xen
zorro
Kconfig
Makefile