u-boot/drivers
Stephen Warren 3ee9593fce dfu: add write error handling
Fix calls to dfu_write() and dfu_flush() to detect errors in the I/O
itself. This could happen due to problems with the storage medium, or
simply when trying to write a FAT/ext file that is larger than the buffer
dfu_mmc.c maintains for this purpose.

Signal the error by switching the DFU state/status. This will be picked
up by the DFU client when it sends the next DFU request. Note that errors
can't simply be returned from e.g. dnload_request_complete(), since that
function has no way to pass errors back to the DFU client; a call to
dnload_request_complete() simply means that a USB OUT completed.

This error state/status needs to be cleared when the next DFU client
connects. While there is a DFU_CLRSTATUS request, no DFU client seems to
send this. Hence, clear this when selecting the USB alternate setting on
the USB interface.

Finally, dfu.c relies on a call to dfu_flush() to clear up the internal
state of the write transaction. Now that errors in dfu_write() are
detected, dfu_flush() may no longer be called for every transaction.
Separate out the cleanup code into a new function, and call it whenever
dfu_write() fails, as well as from any call to dfu_flush().

Signed-off-by: Stephen Warren <swarren@nvidia.com>
2014-08-09 11:16:58 -04:00
..
bios_emulator kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
block AHCI: Increase link timeout to 200ms 2014-07-22 07:44:28 -04:00
bootcount qe: move immap_qe.h from arch directory into common directory 2014-07-22 16:25:54 -07:00
core dm: Add dm_scan_other() to locate board-specific devices 2014-07-23 14:08:37 +01:00
crypto includes: move openssl headers to include/u-boot 2014-06-19 11:19:04 -04:00
ddr/fsl driver/ddr: Fix DDR register timing_cfg_8 2014-07-22 16:25:55 -07:00
demo dm: Give the demo uclass a name 2014-07-23 14:08:37 +01:00
dfu dfu: add write error handling 2014-08-09 11:16:58 -04:00
dma drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
fpga m68k: Fix warnings with gcc 4.6 2014-06-11 16:27:05 -04:00
gpio Merge branch 'u-boot-sunxi/master' into 'u-boot-arm/master' 2014-07-28 10:12:45 +02:00
hwmon kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
i2c Merge branch 'u-boot-sunxi/master' into 'u-boot-arm/master' 2014-07-28 10:12:45 +02:00
input stdio: Pass device pointer to stdio methods 2014-07-23 14:07:23 +01:00
memory ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00
misc cros_ec: Fix two bugs in the SPI implementation 2014-08-06 00:18:01 +05:30
mmc MMC: atmel_mci: enable high speed mode support 2014-08-01 20:01:33 +03:00
mtd sf: sf_ops: Stop leaking memory 2014-08-06 00:18:01 +05:30
net Change Andy Fleming's email address 2014-08-06 09:12:30 -04:00
pci fsl/pcie: Change 'no link' to 'undetermined' for pcie endpoint 2014-07-22 16:25:54 -07:00
pcmcia mpc8xx: remove RPXlite_dw, quantum board support 2014-07-07 19:43:01 -04:00
power Merge branch 'u-boot-ti/master' into 'u-boot-arm/master' 2014-07-28 12:26:21 +02:00
qe qe: move immap_qe.h from arch directory into common directory 2014-07-22 16:25:54 -07:00
rtc kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
serial Merge branch 'u-boot-ti/master' into 'u-boot-arm/master' 2014-07-28 12:26:21 +02:00
sound build: define CPU only when arch/${ARCH}/cpu/${CPU} exists 2014-07-07 19:42:34 -04:00
spi spi, spi_mxc: do not hang in spi_xchg_single 2014-08-06 00:18:01 +05:30
tpm tpm: don't use unneeded double brackets 2014-07-07 19:43:01 -04:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb dfu: add write error handling 2014-08-09 11:16:58 -04:00
video stdio: Pass device pointer to stdio methods 2014-07-23 14:07:23 +01:00
watchdog blackfin: Fix warning about undefined function 2014-07-07 19:47:09 -04:00
Makefile ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00