[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