[PATCH 18/20] video: msm: Prevent DMA lockups when switching bit depths
Sergei Shtylyov
sshtylyov at mvista.com
Mon Mar 21 09:42:05 EDT 2011
Hello.
Carl Vanderlip wrote:
> Forces the lcdc off and waits a frame vsync period to prevent the MDP DMA
> engine crashing if the DMA bit depth is changed. A sleep cannot be used
> because lcdc_dma_start is called in irq context.
Maybe I'm blind again but I don't see any waiting...
> Authors:
> Dima Zavin <dima at android.com>
> Rebecca Schultz Zavin <rebecca at android.com>
> Colin Cross <ccross at android.com>
> Signed-off-by: Carl Vanderlip <carlv at codeaurora.org>
> ---
> drivers/video/msm/mdp.c | 7 +++++++
> 1 files changed, 7 insertions(+), 0 deletions(-)
> diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c
> index b3f334ad..49d956a 100644
> --- a/drivers/video/msm/mdp.c
> +++ b/drivers/video/msm/mdp.c
> @@ -564,6 +564,13 @@ void mdp_hw_init(struct mdp_info *mdp)
> mdp_writel(mdp, 1, 0x60);
> mdp_writel(mdp, 1, MDP_EBI2_PORTMAP_MODE);
>
> + /* disable lcdc */
> + mdp_writel(mdp, 0, MDP_LCDC_CTL);
> + /* enable auto clock gating for all blocks by default */
> + mdp_writel(mdp, 0xffffffff, MDP_CGC_EN);
> + /* reset color/gamma correct parms */
> + mdp_writel(mdp, 0, MDP_DMA_P_COLOR_CORRECT_CONFIG);
> +
> mdp_writel(mdp, 0, MDP_CMD_DEBUG_ACCESS_BASE + 0x01f8);
> mdp_writel(mdp, 0, MDP_CMD_DEBUG_ACCESS_BASE + 0x01fc);
> mdp_writel(mdp, 1, 0x60);
WBR, Sergei
More information about the linux-arm-kernel
mailing list