From: Stephen Warren <swar...@nvidia.com> Nothing in dfu_mmc.c ever sets dfu->r_left. Consequently, reads from MMC DFU altsettings would return 0 bytes.
Fix this by modifying dfu_read_medium_mmc() to set *len in the same way that dfu_nand.c's dfu_read_medium_nand() does. Signed-off-by: Stephen Warren <swar...@nvidia.com> --- Even though this mirrors how dfu_nand.c works, it feels odd to do this every time a HW read is performed, since I believe this can happen multiple times in a single DFU read transaction. Surely *len (and hence dfu->r_left) should be set up once when the altsetting is initialized, likely by calling a separate function in struct dfu_entity? P.S. Could you please add a "dfu" entry into doc/git-mailrc? --- drivers/dfu/dfu_mmc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c index 63cc876612c9..3addcef68bde 100644 --- a/drivers/dfu/dfu_mmc.c +++ b/drivers/dfu/dfu_mmc.c @@ -203,6 +203,7 @@ int dfu_read_medium_mmc(struct dfu_entity *dfu, u64 offset, void *buf, switch (dfu->layout) { case DFU_RAW_ADDR: + *len = dfu->data.mmc.lba_size * dfu->data.mmc.lba_blk_size; ret = mmc_block_op(DFU_OP_READ, dfu, offset, buf, len); break; case DFU_FS_FAT: -- 1.8.1.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot