From a5d5b644b9eb937419226e1a21020d47c8bf47be Mon Sep 17 00:00:00 2001 From: Fancy Fang Date: Thu, 1 Feb 2018 19:19:34 +0800 Subject: [PATCH] MLK-17490-1 drm/imx: dec400d: fix incorrect register base passed to context loader The register base of DEC400D which is passed to context loader should be the physical address but not the ioremaped virtual address. Signed-off-by: Fancy Fang --- drivers/gpu/imx/dcss/dcss-dec400d.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/imx/dcss/dcss-dec400d.c b/drivers/gpu/imx/dcss/dcss-dec400d.c index 874fd5f47c26..acd12210ffd2 100644 --- a/drivers/gpu/imx/dcss/dcss-dec400d.c +++ b/drivers/gpu/imx/dcss/dcss-dec400d.c @@ -39,6 +39,7 @@ struct dcss_dec400d_priv { struct dcss_soc *dcss; void __iomem *dec400d_reg; + uint32_t dec400d_reg_base; uint64_t modifier[4]; uint32_t pixel_format; uint32_t ctx_id; @@ -53,7 +54,7 @@ static void dcss_dec400d_write(struct dcss_dec400d_priv *dec400d, dcss_writel(value, dec400d->dec400d_reg + offset); #else dcss_ctxld_write(dec400d->dcss, dec400d->ctx_id, - value, dec400d->dec400d_reg + offset); + value, dec400d->dec400d_reg_base + offset); #endif } @@ -74,6 +75,8 @@ int dcss_dec400d_init(struct dcss_soc *dcss, unsigned long dec400d_base) return -ENOMEM; } + dec400d->dec400d_reg_base = dec400d_base; + #if USE_CTXLD dec400d->ctx_id = CTX_SB_HP; #endif -- 2.17.1