diff mbox

[U-Boot,1/2] drivers:dfu: dfu_flush(): add raw data flush to complete dfu write

Message ID 1399889134-31848-1-git-send-email-p.marczak@samsung.com
State Accepted
Delegated to: Marek Vasut
Headers show

Commit Message

Przemyslaw Marczak May 12, 2014, 10:05 a.m. UTC
Before dfu write and flush operations separation,
dfu write data was flushed by host download request
with len of zero size.

Since above change manually calling dfu write with zero
size has non sense (e.g. in THOR). This should be done by
flush operation.
So now dfu_write_buffer_drain() is called in dfu_flush().
If there is any raw data to flush (like it can be in thor)
then it will be physically written to medium.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Marek Vasut <marex@denx.de>
---
 drivers/dfu/dfu.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Marek Vasut May 14, 2014, 10:24 p.m. UTC | #1
On Monday, May 12, 2014 at 12:05:33 PM, Przemyslaw Marczak wrote:
> Before dfu write and flush operations separation,
> dfu write data was flushed by host download request
> with len of zero size.
> 
> Since above change manually calling dfu write with zero
> size has non sense (e.g. in THOR). This should be done by
> flush operation.
> So now dfu_write_buffer_drain() is called in dfu_flush().
> If there is any raw data to flush (like it can be in thor)
> then it will be physically written to medium.

Applied both, thanks.

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index 51b1026..a938109 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -131,6 +131,10 @@  int dfu_flush(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num)
 {
 	int ret = 0;
 
+	ret = dfu_write_buffer_drain(dfu);
+	if (ret)
+		return ret;
+
 	if (dfu->flush_medium)
 		ret = dfu->flush_medium(dfu);