drivers: video: msm: fixed the color banding issue. (Credit to marc1706)
dfe41d02caThis commit is contained in:
		| @@ -163,7 +163,6 @@ static int lcdc_hw_init(struct mdp_lcdc_info *lcdc) | ||||
| 	clk_set_rate(lcdc->pclk, lcdc->parms.clk_rate); | ||||
| 	clk_set_rate(lcdc->pad_pclk, lcdc->parms.clk_rate); | ||||
|  | ||||
| #ifndef CONFIG_MACH_HTCLEO | ||||
| 	/* write the lcdc params */ | ||||
| 	mdp_writel(lcdc->mdp, lcdc->parms.hsync_ctl, MDP_LCDC_HSYNC_CTL); | ||||
| 	mdp_writel(lcdc->mdp, lcdc->parms.vsync_period, MDP_LCDC_VSYNC_PERIOD); | ||||
| @@ -191,15 +190,21 @@ static int lcdc_hw_init(struct mdp_lcdc_info *lcdc) | ||||
| 	mdp_writel(lcdc->mdp, 0, MDP_DMA_P_OUT_XY); | ||||
|  | ||||
| 	dma_cfg = mdp_readl(lcdc->mdp, MDP_DMA_P_CONFIG); | ||||
| 	if (lcdc->pdata->overrides & MSM_MDP_LCDC_DMA_PACK_ALIGN_LSB) | ||||
| 		dma_cfg &= ~DMA_PACK_ALIGN_MSB; | ||||
| 	else | ||||
| 		dma_cfg |= DMA_PACK_ALIGN_MSB; | ||||
|  | ||||
| 	dma_cfg |= (DMA_PACK_PATTERN_RGB | | ||||
| 		  DMA_DITHER_EN); | ||||
| #if defined(CONFIG_MACH_HTCLEO) | ||||
| 	dma_cfg |= (DMA_PACK_ALIGN_MSB | | ||||
| 		   DMA_PACK_PATTERN_RGB | | ||||
| 		   DMA_DITHER_EN); | ||||
| 	dma_cfg |= DMA_OUT_SEL_LCDC; | ||||
| 	dma_cfg |= DMA_IBUF_FORMAT_RGB565; | ||||
| 	//dma_cfg &= ~DMA_DITHER_EN; // solve color banding issue - marc1706 | ||||
| 	dma_cfg &= ~DMA_DST_BITS_MASK; | ||||
| #else | ||||
| 	dma_cfg |= (DMA_PACK_ALIGN_LSB | | ||||
| 		   DMA_PACK_PATTERN_RGB | | ||||
| 		   DMA_DITHER_EN); | ||||
| 	dma_cfg |= DMA_OUT_SEL_LCDC; | ||||
| 	dma_cfg &= ~DMA_DST_BITS_MASK; | ||||
| #endif | ||||
|  | ||||
| 	if(lcdc->color_format == MSM_MDP_OUT_IF_FMT_RGB565) | ||||
| 		dma_cfg |= DMA_DSTC0G_6BITS | DMA_DSTC1B_5BITS | DMA_DSTC2R_5BITS; | ||||
| @@ -210,7 +215,6 @@ static int lcdc_hw_init(struct mdp_lcdc_info *lcdc) | ||||
|  | ||||
| 	/* enable the lcdc timing generation */ | ||||
| 	mdp_writel(lcdc->mdp, 1, MDP_LCDC_EN); | ||||
| #endif | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user