aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuoqing Li <ligq@marvell.com>2013-09-13 02:59:47 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-09-20 05:52:33 -0400
commit1f2e42c6c3cdf1b62772f27e1de6033691839cfb (patch)
tree53b3bca1e04b0653b62c4990bf2a40743fa803e2
parent7ebdc78af2e310129a8b6eaffd8fbe637e18bd50 (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.c22
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
391static int path_init(struct mmphw_path_plat *path_plat, 383static int path_init(struct mmphw_path_plat *path_plat,