summaryrefslogtreecommitdiff
path: root/drivers/nvdla/bdma.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/nvdla/bdma.c')
-rw-r--r--drivers/nvdla/bdma.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/nvdla/bdma.c b/drivers/nvdla/bdma.c
index bbf73c585679..8a517410a024 100644
--- a/drivers/nvdla/bdma.c
+++ b/drivers/nvdla/bdma.c
@@ -133,6 +133,7 @@ processor_bdma_program_slot(struct dla_bdma_surface_desc *bdma_surface,
uint64_t destination_addr = 0;
uint32_t high, low, reg;
uint8_t bdma_free_slots = 0;
+ uint64_t bdma_len = 0;
struct dla_engine *engine = dla_get_engine();
dla_debug("Enter: %s\n", __func__);
@@ -196,6 +197,14 @@ processor_bdma_program_slot(struct dla_bdma_surface_desc *bdma_surface,
bdma_reg_write(CFG_DST_SURF, transfer->destination_surface);
bdma_reg_write(CFG_OP, FIELD_ENUM(BDMA_CFG_OP_0, EN, ENABLE));
+#ifdef CONFIG_NVDLA_NEED_FLUSH
+ bdma_len = (transfer->surface_repeat) * (transfer->source_surface); //???
+ nvdla_flush_dcache((unsigned long)source_addr,bdma_len);
+ nvdla_flush_dcache((unsigned long)destination_addr,bdma_len);
+ dla_info("%s():surface_repeat:%#x,source_surface:%#x bdmalen:%#llx\n",__func__,transfer->surface_repeat,transfer->source_surface,bdma_len);
+ dla_info("%s():dma_src_addr:%#llx,dma_dst_addr:%#llx \n",__func__,source_addr,destination_addr);
+#endif
+
dla_debug("Exit: %s\n", __func__);
exit: