summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiu Ying <victor.liu@nxp.com>2019-11-01 13:07:35 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:58:02 +0800
commitc33e9faa20ed9dd310c221edbbd86c5699f651a8 (patch)
treee27a0117d1549680cd8534ef842527646099236f
parent3f00d5aa73fdd2257b3d3a9ac782d54625c5446d (diff)
gpu: imx: dpu: fetchunit: Add helper for TKT343664 to fixup burst size
This patch adds helper fetchunit_burst_size_fixup_tkt343664() for TKT343664 to fixup burst size. Signed-off-by: Liu Ying <victor.liu@nxp.com>
-rw-r--r--drivers/gpu/imx/dpu/dpu-fetchunit.c13
-rw-r--r--include/video/dpu.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/imx/dpu/dpu-fetchunit.c b/drivers/gpu/imx/dpu/dpu-fetchunit.c
index 66aa75bd6bd6..a002c603836d 100644
--- a/drivers/gpu/imx/dpu/dpu-fetchunit.c
+++ b/drivers/gpu/imx/dpu/dpu-fetchunit.c
@@ -26,6 +26,19 @@
#define CONSTANTCOLOR(n) (0x30 + (n) * 0x28)
#define LAYERPROPERTY(n) (0x34 + (n) * 0x28)
+/* base address has to align to burst size */
+unsigned int fetchunit_burst_size_fixup_tkt343664(dma_addr_t baddr)
+{
+ unsigned int burst_size;
+
+ burst_size = 1 << (ffs(baddr) - 1);
+ burst_size = round_up(burst_size, 8);
+ burst_size = min(burst_size, 128U);
+
+ return burst_size;
+}
+EXPORT_SYMBOL_GPL(fetchunit_burst_size_fixup_tkt343664);
+
void fetchunit_shden(struct dpu_fetchunit *fu, bool enable)
{
u32 val;
diff --git a/include/video/dpu.h b/include/video/dpu.h
index ad9d30453a89..83b3ca63b058 100644
--- a/include/video/dpu.h
+++ b/include/video/dpu.h
@@ -567,6 +567,7 @@ u32 dpu_vproc_get_fetcheco_cap(u32 cap_mask);
u32 dpu_vproc_get_hscale_cap(u32 cap_mask);
u32 dpu_vproc_get_vscale_cap(u32 cap_mask);
+unsigned int fetchunit_burst_size_fixup_tkt343664(dma_addr_t baddr);
void fetchunit_shden(struct dpu_fetchunit *fu, bool enable);
void fetchunit_baddr_autoupdate(struct dpu_fetchunit *fu, u8 layer_mask);
void fetchunit_shdldreq_sticky(struct dpu_fetchunit *fu, u8 layer_mask);