linux/drivers/i2c/busses
Doug Anderson 96219c3a25 i2c-tegra: fix possible race condition after tx
In tegra_i2c_fill_tx_fifo, once we have finished pushing all the bytes
to the I2C hardware controller, the interrupt might happen before we
have updated i2c_dev->msg_buf_remaining at the end of the function.
Then, in tegra_i2c_isr, we will call again tegra_i2c_fill_tx_fifo
triggering weird behaviour. This has been shown to happen under real
conditions.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Acked-by: Rhyland Klein <rklein@nvidia.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2011-09-07 00:13:40 +01:00
..
Kconfig Merge branch 'for-linus/2640/i2c' of git://git.fluff.org/bjdooks/linux 2011-05-24 16:39:23 -07:00
Makefile Merge branches 'for-2639/i2c/i2c-ce4100-v6', 'for-2639/i2c/i2c-eg20t-v3' and 'for-2639/i2c/i2c-imx' into for-linus/2639/i2c-2 2011-03-21 22:57:25 +00:00
i2c-acorn.c [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h 2009-03-25 10:21:35 +00:00
i2c-ali15x3.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-ali1535.c i2c-ali1535: Fix style issues 2011-07-25 17:49:42 +02:00
i2c-ali1563.c i2c: Make PCI device ids constant 2010-03-02 12:23:37 +01:00
i2c-amd756-s4882.c i2c: Use snprintf to set adapter names 2009-01-07 14:29:18 +01:00
i2c-amd756.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-amd8111.c i2c-amd8111: Add proper error handling 2010-10-24 18:16:58 +02:00
i2c-at91.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-au1550.c i2c: Use resource_size macro 2009-06-16 22:42:16 +01:00
i2c-bfin-twi.c i2c-bfin-twi: abort transfer is MEM bit is reset unexpectedly 2011-06-27 23:06:48 +01:00
i2c-cpm.c i2c: Allow i2c_add_numbered_adapter() to assign a bus id 2011-07-25 17:49:43 +02:00
i2c-davinci.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-designware.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-diolan-u2c.c i2c/busses: Add support for Diolan U2C-12 USB-I2C adapter 2011-01-27 00:39:30 +00:00
i2c-eg20t.c i2c-eg20t : Fix the issue of Combined R/W transfer mode 2011-07-27 00:02:28 +01:00
i2c-elektor.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-gpio.c Haavard Skinnemoen has left Atmel 2011-05-18 23:24:50 +02:00
i2c-highlander.c treewide: transciever/transceiver spelling fixes 2011-06-24 11:20:14 +02:00
i2c-hydra.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-i801.c i2c-i801: Don't depend on other kernel driver config options 2011-05-24 20:58:49 +02:00
i2c-ibm_iic.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-ibm_iic.h i2c-ibm_iic: Whitespace cleanup 2008-01-27 18:14:45 +01:00
i2c-imx.c i2c-imx: do not allow interruptions when waiting for I2C to complete 2010-10-18 01:29:04 +01:00
i2c-intel-mid.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-iop3xx.c i2c-iop3xx: add iomem annotation 2011-01-04 00:53:37 +00:00
i2c-iop3xx.h i2c-iop3xx: add iomem annotation 2011-01-04 00:53:37 +00:00
i2c-isch.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-ixp2000.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i2c-mpc.c drivercore: revert addition of of_match to struct device 2011-05-18 12:32:23 -06:00
i2c-mv64xxx.c i2c-mv64xxx: send repeated START between messages in xfer 2011-01-04 01:19:43 +00:00
i2c-mxs.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-nforce2-s4985.c i2c: Fix oops on bus multiplexer driver loading 2008-08-10 22:56:15 +02:00
i2c-nforce2.c i2c-nforce2: Remove unnecessary cast of pci_get_drvdata 2011-01-10 22:11:22 +01:00
i2c-nomadik.c i2c-nomadik: fix kerneldoc warning 2011-08-24 23:28:49 +01:00
i2c-nuc900.c i2c: Remove unneeded inclusions of <linux/i2c-id.h> 2010-10-24 18:16:58 +02:00
i2c-ocores.c mfd: Use mfd cell platform_data for timberdale cells platform bits 2011-05-26 19:45:05 +02:00
i2c-octeon.c i2c-octeon: Return -ETIMEDOUT in octeon_i2c_wait() on timeout 2010-09-27 23:21:16 +01:00
i2c-omap.c Revert "i2c-omap: fix static suspend vs. runtime suspend" 2011-08-23 20:19:16 +01: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/i2c-pasemi.c: Fix unsigned return type 2010-10-13 16:19:04 +11:00
i2c-pca-isa.c i2c-pca: Fix waitforcompletion() return value 2010-09-30 14:14:22 +02:00
i2c-pca-platform.c i2c-pca-platform: Change device name of request_irq 2010-10-24 18:16:57 +02:00
i2c-piix4.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-pmcmsp.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-pnx.c i2c: pnx: Fix crash due to wrong init of timer->data 2011-05-13 00:10:36 +01:00
i2c-powermac.c i2c-powermac: Be less verbose in the absence of real errors. 2010-03-13 20:56:52 +01:00
i2c-puv3.c unicore32 machine related files: add i2c bus drivers for pkunity-v3 soc 2011-03-17 09:19:20 +08:00
i2c-pxa-pci.c i2c-pxa2xx: return proper error code in ce4100_i2c_probe error paths 2011-09-07 00:09:12 +01:00
i2c-pxa.c i2c: Allow i2c_add_numbered_adapter() to assign a bus id 2011-07-25 17:49:43 +02:00
i2c-s3c2410.c i2c-s3c2410: Remove useless break code 2011-06-27 23:06:05 +01:00
i2c-s6000.c i2c: Allow i2c_add_numbered_adapter() to assign a bus id 2011-07-25 17:49:43 +02:00
i2c-s6000.h i2c: xtensa s6000 i2c driver 2009-04-07 10:23:34 +01:00
i2c-scmi.c i2c-scmi: Provide module aliases for automatic loading 2010-03-24 14:38:39 +01:00
i2c-sh7760.c sh: i2c-sh7760: Replase from ctrl_* to __raw_* 2010-10-25 10:44:19 +09:00
i2c-sh_mobile.c Merge branches 'for-2639/i2c-eg20t', 'for-2639/i2c-shmobile', 'for-2639/i2c-tegra' and 'for-2639/i2c-nomadik2' into for-linus/2640/i2c 2011-05-25 00:25:55 +01: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: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sis96x.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sis630.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sis5595.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-stu300.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-stub.c i2c-stub: Expose the default functionality flags 2010-05-21 18:40:56 +02:00
i2c-taos-evm.c i2c-taos-evm: Fix log messages 2011-06-29 11:36:10 +02:00
i2c-tegra.c i2c-tegra: fix possible race condition after tx 2011-09-07 00:13:40 +01:00
i2c-tiny-usb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i2c-versatile.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-via.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-viapro.c i2c-viapro: Don't log nacks 2010-10-24 18:16:59 +02:00
i2c-xiic.c mfd: Use mfd cell platform_data for timberdale cells platform bits 2011-05-26 19:45:05 +02:00
scx200_acb.c i2c: Convert SCx200 driver from using raw PCI to platform device 2011-01-14 12:38:15 +01:00
scx200_i2c.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00