u-boot-brain/drivers
Michael Auchter 3104162a8b i2c: i2c_cdns: fix write timeout on fifo boundary
This fixes an issue that would cause I2C writes to timeout when the
number of bytes is a multiple of the FIFO depth (i.e. 16 bytes).

Within the transfer loop, after writing the data register with a new
byte to transfer, if the transfer size equals the FIFO depth, the loop
pauses until the INTERRUPT_COMP bit asserts to indicate data has been
sent. This same check is performed after the loop as well to ensure data
has been transferred prior to returning.

In the case where the amount of data to be written is a multiple of the
FIFO depth, the transfer loop would wait for the INTERRUPT_COMP bit to
assert after writing the final byte, and then wait for this bit to
assert once more. However, since the transfer has finished at this
point, no new data has been written to the data register, and hence
INTERRUPT_COMP will never assert.

Fix this by only waiting for INTERRUPT_COMP in the transfer loop if
there's still data to be written.

Signed-off-by: Michael Auchter <michael.auchter@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2019-12-11 06:25:13 +01:00
..
adc adc: stm32: Fix warnings when compiling with W=1 2019-07-12 11:50:55 +02:00
ata common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
axi drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
bios_emulator bios_emulator: remove stray break 2019-08-09 22:24:02 +08:00
block blk: Make use of CONFIG_HAVE_BLOCK_DEVICE more 2019-12-03 08:43:24 -05:00
board board: gazerbeam: Fix SC detection 2019-05-21 08:03:38 +02:00
bootcount common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
cache dm: cache: add v5l2 cache controller driver 2019-09-03 09:31:03 +08:00
clk Fixes for 2020.01 2019-12-09 10:32:08 -05:00
core regmap: Fix potential memory leaks 2019-12-03 08:44:14 -05:00
cpu Move strtomhz() to vsprintf.h 2019-12-02 18:23:09 -05:00
crypto common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
ddr common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
demo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu dfu: add dependency on the raw NAND core 2019-12-04 17:10:51 -05:00
dma net: ti: am65-cpsw-nuss: Add new compatible for J721e 2019-12-09 09:47:43 -06:00
fastboot mtd: rename CONFIG_NAND -> CONFIG_MTD_RAW_NAND 2019-12-03 23:04:10 -05:00
firmware common: Move enable/disable_interrupts out of common.h 2019-12-02 18:25:01 -05:00
fpga common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
gpio gpio: da8xx_gpio: Fix the _gpio_direction_output function 2019-10-30 17:48:47 -04:00
hwspinlock hwspinlock: add stm32 hardware spinlock support 2018-12-06 23:26:33 -05:00
i2c i2c: i2c_cdns: fix write timeout on fifo boundary 2019-12-11 06:25:13 +01:00
input input: Move input.o to be built only in some cases 2019-11-19 17:43:04 -05:00
led led: bcm6858: allow to use this driver on ARCH_963158 2019-04-23 17:57:22 -04:00
mailbox common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
memory SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
misc common: Move old EEPROM functions into a new header 2019-12-02 18:25:25 -05:00
mmc mmc: mtk-sd: Adjust the mmc tuning flow 2019-12-03 08:44:14 -05:00
mtd mtd: Makefile: deep cleanup 2019-12-04 17:10:51 -05:00
net net: ti: am65-cpsw-nuss: Add new compatible for J721e 2019-12-09 09:47:43 -06:00
nvme common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
pch x86: Allow the PCH and LPC uclasses to work with of-platdata 2019-10-08 13:57:48 +08:00
pci drivers: pci: ignore disabled devices 2019-12-05 10:28:38 -05:00
pci_endpoint pci_ep: Fix Coverity warning 2019-08-07 15:31:04 -04:00
phy drivers: phy: Handle gracefully NULL pointers 2019-10-31 07:22:53 -04:00
pinctrl pinctrl: rockchip: Add pinctrl support for rk3308 2019-12-06 00:06:23 +08:00
power common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
pwm pwm: rk_pwm: Make PWM driver to support all Rockchip Socs 2019-12-06 00:06:23 +08:00
qe crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
ram rockchip: rk3308: Add sdram driver 2019-11-17 17:22:53 +08:00
remoteproc common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
reset ARC: HSDK: introduce reset driver 2019-11-01 16:45:40 +03:00
rtc rtc: move date.c from drivers/rtc/ to lib/ 2019-12-06 16:44:19 -05:00
scsi scsi: Add dma direction member to command structure 2019-10-23 20:47:12 -04:00
serial Fix stdout-path handling 2019-12-03 18:12:04 -05:00
smem drivers: smem: sandbox 2018-07-19 16:31:38 -04:00
soc soc: ti: k3-navss-ringacc: fix k3_nav_ringacc_ring_reset_dma 2019-09-13 11:56:08 -04:00
sound common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
spi common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
spmi SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sysreset x86: Move acpi_s3.h to a common location 2019-10-08 13:57:46 +08:00
tee drivers: optee: rpmb: fix returning CID to TEE 2019-12-05 10:28:38 -05:00
thermal thermal: add i.MX8 thermal driver 2019-07-19 15:17:05 +02:00
timer common: Move interrupt functions into a new header 2019-12-02 18:25:00 -05:00
tpm common: Drop linux/crc8.h 2019-12-02 18:23:07 -05:00
ufs ufs: Add glue layer driver for TI J721E devices 2019-10-23 20:47:12 -04:00
usb common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
video common: Move board_get_usable_ram_top() out of common.h 2019-12-02 18:25:04 -05:00
virtio virtio: pci: use correct type in virtio_pci_bind() 2019-10-31 07:22:53 -04:00
w1 w1: Add driver for i.MX bus master controller 2019-01-01 14:12:18 +01:00
w1-eeprom w1-eeprom: Add support for Maxim DS2502 add only memory 2018-11-16 16:51:55 -05:00
watchdog watchdog: imx: Use immediate reset bits for expire_now 2019-11-03 17:04:16 +01:00
Kconfig ufs: Add Initial Support for UFS subsystem 2019-10-23 20:47:12 -04:00
Makefile spl: cache: Allow cache drivers in SPL 2019-12-10 08:23:10 +08:00