Commit 9df49553a462f38341d2613f2635064f34f156a0
Committed by
Tom Rini
1 parent
051f9a3eed
Exists in
master
and in
53 other branches
dfu:ext4:fix Fix DFU upload functionality
For the first eMMC read of data for upload, use the "large" dfu_buf (now configurable) instead of usb request buffer allocated at composite layer (which is 4KiB) [*]. For eMMC the whole file is read, which usually is larger than the buffer [*] provided with usb request. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Tom Rini <trini@ti.com> Cc: Pantelis Antoniou <panto@antoniou-consulting.com> Cc: Marek Vasut <marex@denx.de> Cc: Heiko Schocher <hs@denx.de>
Showing 1 changed file with 5 additions and 4 deletions Side-by-side Diff
drivers/dfu/dfu.c
... | ... | @@ -248,7 +248,11 @@ |
248 | 248 | __func__, dfu->name, buf, size, blk_seq_num, dfu->i_buf); |
249 | 249 | |
250 | 250 | if (!dfu->inited) { |
251 | - ret = dfu->read_medium(dfu, 0, buf, &dfu->r_left); | |
251 | + dfu->i_buf_start = dfu_get_buf(); | |
252 | + if (dfu->i_buf_start == NULL) | |
253 | + return -ENOMEM; | |
254 | + | |
255 | + ret = dfu->read_medium(dfu, 0, dfu->i_buf_start, &dfu->r_left); | |
252 | 256 | if (ret != 0) { |
253 | 257 | debug("%s: failed to get r_left\n", __func__); |
254 | 258 | return ret; |
... | ... | @@ -259,9 +263,6 @@ |
259 | 263 | dfu->i_blk_seq_num = 0; |
260 | 264 | dfu->crc = 0; |
261 | 265 | dfu->offset = 0; |
262 | - dfu->i_buf_start = dfu_get_buf(); | |
263 | - if (dfu->i_buf_start == NULL) | |
264 | - return -ENOMEM; | |
265 | 266 | dfu->i_buf_end = dfu_get_buf() + dfu_buf_size; |
266 | 267 | dfu->i_buf = dfu->i_buf_start; |
267 | 268 | dfu->b_left = 0; |