kernel-fxtec-pro1x/drivers/i2c/busses
Sonic Zhang 28a377c79a i2c:i2c-bfin-twi: TWI fails to restart next transfer in high system load.
Current driver was developed based on BF537 0.2 HRM. In high system load, BUFRDERR error
interrupt may be raised if XMTSERV interrupt of last TX byte is not served in time
(set RSTART bit), which breaks restart tranfer as expected.

"Buffer Read Error (BUFRDERR)" description in Blackfin HRM only applys to BF537
rev. < 0.3. In later rev. and later announced Blackfin chips, such as BF527 and
BF548, a new TWI master feature "Clock Stretching" is added into the TWI controller,
BUFRDERR interrupt is not triggered after TX FIFO is empty.

This patch sets RSTART bit at the beginning of the first transfer. The SCL and SDA
is hold till XMTSERV interrupt of last TX byte is served. Restart transfer is not broken
in high system load.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>

[wsa: fixed spaces around operators]

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
2012-07-13 08:37:04 +02:00
..
i2c-acorn.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
i2c-ali15x3.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-ali1535.c i2c-ali1535: enable SPARC support 2012-01-12 20:32:04 +01:00
i2c-ali1563.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-amd756-s4882.c
i2c-amd756.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-amd8111.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-at91.c i2c-at91: Use struct dev_pm_ops for power management 2012-07-12 12:04:32 +02:00
i2c-au1550.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-bfin-twi.c i2c:i2c-bfin-twi: TWI fails to restart next transfer in high system load. 2012-07-13 08:37:04 +02:00
i2c-cpm.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-davinci.c i2c: davinci: Free requested IRQ in remove 2012-05-12 20:36:24 +02:00
i2c-designware-core.c i2c: designware: Add support for 16bit register access 2012-05-12 14:28:11 +02:00
i2c-designware-core.h i2c: designware: Add support for 16bit register access 2012-05-12 14:28:11 +02:00
i2c-designware-pcidrv.c i2c: prevent spurious interrupt on Designware controllers 2012-04-10 08:09:03 -07:00
i2c-designware-platdrv.c i2c: designware: Add clk_{un}prepare() support 2012-05-12 14:28:15 +02:00
i2c-diolan-u2c.c USB: convert some miscellanies drivers to use module_usb_driver() 2011-11-18 09:52:10 -08:00
i2c-eg20t.c i2c: eg20t: don't use strcpy but strlcpy 2012-05-12 14:28:14 +02:00
i2c-elektor.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-gpio.c i2c: Dynamically assign adapter id if it wasn't explictly specified 2012-05-12 14:28:11 +02:00
i2c-highlander.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
i2c-hydra.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-i801.c i2c-i801: Use usleep_range to wait for command completion 2012-03-26 21:47:19 +02:00
i2c-ibm_iic.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
i2c-ibm_iic.h
i2c-imx.c i2c: imx: make bitrate an u32 type 2012-07-10 10:43:37 +02:00
i2c-intel-mid.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-iop3xx.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-iop3xx.h i2c-iop3xx: add iomem annotation 2011-01-04 00:53:37 +00:00
i2c-isch.c i2c-isch: Decrease delay in command completion check loop 2012-03-26 21:47:18 +02:00
i2c-mpc.c i2c-mpc: avoid I2C abnormal after resuming from deep sleep 2012-05-12 14:28:12 +02:00
i2c-mv64xxx.c i2c-mv64xxxx: allow more than one driver instance 2012-07-12 15:50:51 +02:00
i2c-mxs.c i2c: mxs: mxs_i2c_finish_read: mute flase positive uninitialized var 2012-07-09 13:08:15 +02:00
i2c-nforce2-s4985.c
i2c-nforce2.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-nomadik.c i2c-nomadik: Add 10-bit addressing support 2012-07-09 11:55:30 +02:00
i2c-nuc900.c i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
i2c-ocores.c i2c-ocores: Use struct dev_pm_ops for power management 2012-07-12 12:04:39 +02:00
i2c-octeon.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-omap.c i2c: omap: Correct I2C revision for OMAP3 2012-07-12 14:18:27 +02:00
i2c-parport-light.c i2c-parport: Various cleanups 2011-05-24 20:58:49 +02:00
i2c-parport.c i2c-parport: Various cleanups 2011-05-24 20:58:49 +02:00
i2c-parport.h i2c-parport: Various cleanups 2011-05-24 20:58:49 +02:00
i2c-pasemi.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-pca-isa.c i2c-pca: Fix waitforcompletion() return value 2010-09-30 14:14:22 +02:00
i2c-pca-platform.c i2c: Dynamically assign adapter id if it wasn't explictly specified 2012-05-12 14:28:11 +02:00
i2c-piix4.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-pmcmsp.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-pnx.c i2c-pnx: Use struct dev_pm_ops for power management 2012-07-12 12:04:49 +02:00
i2c-powermac.c i2c/powermac: Register i2c devices from device-tree 2012-04-30 15:37:17 +10:00
i2c-puv3.c i2c-puv3: Use struct dev_pm_ops for power management 2012-07-12 12:04:54 +02:00
i2c-pxa-pci.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-pxa.c i2c-pxa: Drop leftover comment 2012-05-12 14:28:11 +02:00
i2c-s3c2410.c i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
i2c-s6000.c i2c: Change mail address of Oskar Schirmer 2012-05-17 15:15:56 +02:00
i2c-s6000.h i2c: Change mail address of Oskar Schirmer 2012-05-17 15:15:56 +02:00
i2c-scmi.c
i2c-sh7760.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-sh_mobile.c i2c: sh_mobile: add device tree support 2012-05-12 14:28:12 +02:00
i2c-sibyte.c i2c/mips: Fix error return codes from Sibyte i2c bus driver 2010-07-10 09:42:47 +02:00
i2c-simtec.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-sirf.c i2c: add CSR SiRFprimaII on-chip I2C controllers driver 2012-03-07 19:05:04 +01:00
i2c-sis96x.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-sis630.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
i2c-sis5595.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-stu300.c i2c-stu300: Use struct dev_pm_ops for power management 2012-07-12 12:04:54 +02:00
i2c-stub.c
i2c-taos-evm.c i2c-taos-evm: Fix log messages 2011-06-29 11:36:10 +02:00
i2c-tegra.c i2c: tegra: convert normal suspend/resume to *_noirq 2012-07-12 12:33:45 +02:00
i2c-tiny-usb.c USB: convert some miscellanies drivers to use module_usb_driver() 2011-11-18 09:52:10 -08:00
i2c-versatile.c i2c: Dynamically assign adapter id if it wasn't explictly specified 2012-05-12 14:28:11 +02:00
i2c-via.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
i2c-viapro.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
i2c-xiic.c I2C: xiic: Add OF binding support 2012-05-12 14:28:18 +02:00
i2c-xlr.c i2c: Support for Netlogic XLR/XLS I2C controller. 2012-02-24 22:25:57 +01:00
Kconfig i2c-nomadik: depend on ARM_AMBA, not PLAT_NOMADIK 2012-07-09 11:40:49 +02:00
Makefile i2c: ixp2000: remove driver 2012-05-12 14:28:14 +02:00
scx200_acb.c i2c: Convert to DEFINE_PCI_DEVICE_TABLE 2012-01-12 20:32:04 +01:00
scx200_i2c.c