summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/zynqmp-fpga.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firmware/zynqmp-fpga.c')
-rw-r--r--drivers/firmware/zynqmp-fpga.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/firmware/zynqmp-fpga.c b/drivers/firmware/zynqmp-fpga.c
index a76600d4c9..63d7398fd4 100644
--- a/drivers/firmware/zynqmp-fpga.c
+++ b/drivers/firmware/zynqmp-fpga.c
@@ -252,13 +252,7 @@ static int fpgamgr_program_finish(struct firmware_handler *fh)
body_length / sizeof(u32));
else
memcpy((u32 *)buf_aligned, body, body_length);
-
- if (mgr->features & ZYNQMP_PM_FEATURE_SIZE_NOT_NEEDED) {
- buf_size = body_length;
- } else {
- buf_aligned[body_length / sizeof(*buf_aligned)] = body_length;
- buf_size = addr + body_length;
- }
+ buf_aligned[body_length / sizeof(*buf_aligned)] = body_length;
addr = dma_map_single(&mgr->dev, buf_aligned,
body_length + sizeof(buf_size), DMA_TO_DEVICE);
@@ -267,6 +261,11 @@ static int fpgamgr_program_finish(struct firmware_handler *fh)
goto err_free_dma;
}
+ if (mgr->features & ZYNQMP_PM_FEATURE_SIZE_NOT_NEEDED)
+ buf_size = body_length;
+ else
+ buf_size = addr + body_length;
+
status = mgr->eemi_ops->fpga_load((u64)addr, buf_size, flags);
dma_unmap_single(&mgr->dev, addr, body_length + sizeof(buf_size),
DMA_TO_DEVICE);