dfu: mmc: buffer file reads too
authorStephen Warren <swarren@nvidia.com>
Sat, 5 Sep 2015 04:03:47 +0000 (22:03 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 11 Sep 2015 21:15:23 +0000 (17:15 -0400)
commit411c5e57e8cf7dd83627a24b5cde73a0e662b1b0
tree7c0af86dcacd9cc1180e97218d79be953d63aff0
parent806bd245b1ab392245e6adc56522c3473edbc805
dfu: mmc: buffer file reads too

When writing to files in a filesystem on MMC, dfu_mmc.c buffers up the
entire file content until the end of the transaction, at which point the
file is written in one go. This allows writing files larger than the USB
transfer size (CONFIG_SYS_DFU_DATA_BUF_SIZE); the maximum written file
size is CONFIG_SYS_DFU_MAX_FILE_SIZE (the size of the temporary buffer).

The current file reading code does not do any buffering, and so limits
the maximum read file size to the USB transfer size. Enhance the code to
do the same kind of buffering as the write path, so the same file size
limits apply.

Remove the size checking code from dfu_read() since all read paths now
support larger files than the USB transfer buffer.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>
drivers/dfu/dfu.c
drivers/dfu/dfu_mmc.c