diff options
author | Guoqing Li <ligq@marvell.com> | 2013-09-13 02:59:47 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2013-09-20 05:52:33 -0400 |
commit | 1f2e42c6c3cdf1b62772f27e1de6033691839cfb (patch) | |
tree | 53b3bca1e04b0653b62c4990bf2a40743fa803e2 | |
parent | 7ebdc78af2e310129a8b6eaffd8fbe637e18bd50 (diff) |
video: mmp: optimize some register setting code
There are dumplicate code of the smooth setting based on different
path, optimized the routine and use readl_relaxed instead.
Signed-off-by: Jett.Zhou <jtzhou@marvell.com>
Signed-off-by: Jing Xiang <jxiang@marvell.com>
Signed-off-by: Guoqing Li <ligq@marvell.com>
Signed-off-by: Zhou Zhu <zzhu3@marvell.com>
Reviewed-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r-- | drivers/video/mmp/hw/mmp_ctrl.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/video/mmp/hw/mmp_ctrl.c b/drivers/video/mmp/hw/mmp_ctrl.c index a40d95a54eec..c0eb8bccfb87 100644 --- a/drivers/video/mmp/hw/mmp_ctrl.c +++ b/drivers/video/mmp/hw/mmp_ctrl.c | |||
@@ -53,7 +53,7 @@ static irqreturn_t ctrl_handle_irq(int irq, void *dev_id) | |||
53 | tmp = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR); | 53 | tmp = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR); |
54 | if (tmp & isr) | 54 | if (tmp & isr) |
55 | writel_relaxed(~isr, ctrl->reg_base + SPU_IRQ_ISR); | 55 | writel_relaxed(~isr, ctrl->reg_base + SPU_IRQ_ISR); |
56 | } while ((isr = readl(ctrl->reg_base + SPU_IRQ_ISR)) & imask); | 56 | } while ((isr = readl_relaxed(ctrl->reg_base + SPU_IRQ_ISR)) & imask); |
57 | 57 | ||
58 | return IRQ_HANDLED; | 58 | return IRQ_HANDLED; |
59 | } | 59 | } |
@@ -372,20 +372,12 @@ static void path_set_default(struct mmp_path *path) | |||
372 | * bus arbiter for faster read if not tv path; | 372 | * bus arbiter for faster read if not tv path; |
373 | * 2.enable horizontal smooth filter; | 373 | * 2.enable horizontal smooth filter; |
374 | */ | 374 | */ |
375 | if (PATH_PN == path->id) { | 375 | mask = CFG_GRA_HSMOOTH_MASK | CFG_DMA_HSMOOTH_MASK | CFG_ARBFAST_ENA(1); |
376 | mask = CFG_GRA_HSMOOTH_MASK | CFG_DMA_HSMOOTH_MASK | 376 | tmp = readl_relaxed(ctrl_regs(path) + dma_ctrl(0, path->id)); |
377 | | CFG_ARBFAST_ENA(1); | 377 | tmp |= mask; |
378 | tmp = readl_relaxed(ctrl_regs(path) + dma_ctrl(0, path->id)); | 378 | if (PATH_TV == path->id) |
379 | tmp |= mask; | 379 | tmp &= ~CFG_ARBFAST_ENA(1); |
380 | writel_relaxed(tmp, ctrl_regs(path) + dma_ctrl(0, path->id)); | 380 | writel_relaxed(tmp, ctrl_regs(path) + dma_ctrl(0, path->id)); |
381 | } else if (PATH_TV == path->id) { | ||
382 | mask = CFG_GRA_HSMOOTH_MASK | CFG_DMA_HSMOOTH_MASK | ||
383 | | CFG_ARBFAST_ENA(1); | ||
384 | tmp = readl_relaxed(ctrl_regs(path) + dma_ctrl(0, path->id)); | ||
385 | tmp &= ~mask; | ||
386 | tmp |= CFG_GRA_HSMOOTH_MASK | CFG_DMA_HSMOOTH_MASK; | ||
387 | writel_relaxed(tmp, ctrl_regs(path) + dma_ctrl(0, path->id)); | ||
388 | } | ||
389 | } | 381 | } |
390 | 382 | ||
391 | static int path_init(struct mmphw_path_plat *path_plat, | 383 | static int path_init(struct mmphw_path_plat *path_plat, |