From 640a92c3f6e24fff4a0f84c87da63957e371046d Mon Sep 17 00:00:00 2001 From: Torbjorn Svensson Date: Fri, 13 Jan 2012 15:55:34 +0100 Subject: video: mcde: optimized stripe calculation This patch adds stripe calculation, based on the rotbufsize and display panel width. ST-Ericsson ID: 373680 ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson Linux next: NA Change-Id: I3e14d49a97cc635c244950cd40ceb9584588c736 Signed-off-by: Torbjorn Svensson Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45516 Reviewed-by: Per PERSSON Reviewed-by: QATOOLS Reviewed-by: QABUILD --- drivers/video/mcde/mcde_hw.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c index afa53e90712..7f86028dc49 100644 --- a/drivers/video/mcde/mcde_hw.c +++ b/drivers/video/mcde/mcde_hw.c @@ -2246,6 +2246,23 @@ void update_channel_registers(enum mcde_chnl chnl_id, struct chnl_regs *regs, } if (regs->roten) { + u32 stripwidth; + u32 stripwidth_val; + + /* calc strip width, 32 bits used internally */ + stripwidth = regs->rotbufsize / (video_mode->yres * 4); + if (stripwidth >= 32) + stripwidth_val = MCDE_ROTACONF_STRIP_WIDTH_32PIX; + else if (stripwidth >= 16) + stripwidth_val = MCDE_ROTACONF_STRIP_WIDTH_16PIX; + else if (stripwidth >= 8) + stripwidth_val = MCDE_ROTACONF_STRIP_WIDTH_8PIX; + else if (stripwidth >= 4) + stripwidth_val = MCDE_ROTACONF_STRIP_WIDTH_4PIX; + else + stripwidth_val = MCDE_ROTACONF_STRIP_WIDTH_2PIX; + dev_vdbg(&mcde_dev->dev, "%s stripwidth=%d\n", __func__, + 1 << (stripwidth_val + 1)); mcde_wreg(MCDE_ROTADD0A + chnl_id * MCDE_ROTADD0A_GROUPOFFSET, regs->rotbuf1); mcde_wreg(MCDE_ROTADD1A + chnl_id * MCDE_ROTADD1A_GROUPOFFSET, @@ -2253,7 +2270,7 @@ void update_channel_registers(enum mcde_chnl chnl_id, struct chnl_regs *regs, mcde_wreg(MCDE_ROTACONF + chnl_id * MCDE_ROTACONF_GROUPOFFSET, MCDE_ROTACONF_ROTBURSTSIZE_ENUM(HW_8W) | MCDE_ROTACONF_ROTDIR(regs->rotdir) | - MCDE_ROTACONF_STRIP_WIDTH_ENUM(16PIX) | + MCDE_ROTACONF_STRIP_WIDTH(stripwidth_val) | MCDE_ROTACONF_RD_MAXOUT_ENUM(4_REQ) | MCDE_ROTACONF_WR_MAXOUT_ENUM(8_REQ)); } -- cgit v1.2.3