]> git.sur5r.net Git - u-boot/commitdiff
drivers:dfu: dfu_flush(): add raw data flush to complete dfu write
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Mon, 12 May 2014 10:05:33 +0000 (12:05 +0200)
committerMarek Vasut <marex@denx.de>
Wed, 14 May 2014 22:23:56 +0000 (00:23 +0200)
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

index 51b10263b8824e947c4c4cdbbd272fb1eb2fb46b..a93810934ac90ec670792b979163d9a693b97d92 100644 (file)
@@ -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);