コード例 #1
0
int mdp_lcdc_off(struct platform_device *pdev)
{
	int ret = 0;
	struct msm_fb_data_type *mfd;
	uint32 timer_base = LCDC_BASE;
	uint32 block = MDP_DMA2_BLOCK;

	mfd = (struct msm_fb_data_type *)platform_get_drvdata(pdev);

#ifdef CONFIG_FB_MSM_MDP40
	if (mfd->panel.type == HDMI_PANEL) {
		block = MDP_DMA_E_BLOCK;
		timer_base = DTV_BASE;
	}
#endif
#ifdef CONFIG_FB_MSM_LCDC_OLED_WVGA    //ZTE_LCD_LHT_20100810_001
	if(LcdPanleID==42)
		lcdc_lead_sleep();
	if(LcdPanleID==41)
		lcdc_truly_sleep();
#endif
#ifdef CONFIG_FB_MSM_LCDC_SKATE_WVGA    //ZTE_LCD_LHT_20100810_001
	if(LcdPanleID==60)
		lcdc_lead_sleep();
	if(LcdPanleID==61)
		lcdc_truly_sleep();
#endif
#ifdef CONFIG_FB_MSM_LCDC_SKATE_TEST_SAMPLE_WVGA    //ZTE_LCD_LHT_20100810_001
	if(LcdPanleID==42)
		lcdc_lead_sleep();
	if(LcdPanleID==41)
		lcdc_truly_sleep();
#endif

	/* MDP cmd block enable */
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
	MDP_OUTP(MDP_BASE + timer_base, 0);
	/* MDP cmd block disable */
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);
	mdp_pipe_ctrl(block, MDP_BLOCK_POWER_OFF, FALSE);

	ret = panel_next_off(pdev);

	/* delay to make sure the last frame finishes */
	msleep(20);				////ZTE_LCD_LUYA_20100629_001

	return ret;
}
コード例 #2
0
int mdp_lcdc_off(struct platform_device *pdev)
{
	int ret = 0;

	#ifdef CONFIG_FB_MSM_LCDC_LEAD_WVGA_PANEL    //ZTE_LCD_LHT_20100810_001
		if(LcdPanleID==72)
			lcdc_lead_sleep();
	#endif
	/* MDP cmd block enable */
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
	MDP_OUTP(MDP_BASE + LCDC_BASE, 0);
	/* MDP cmd block disable */
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);
	mdp_pipe_ctrl(MDP_OVERLAY0_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);

	mdp_histogram_ctrl(FALSE);
	ret = panel_next_off(pdev);

	/* delay to make sure the last frame finishes */
	msleep(16);

#ifdef LCDC_RGB_UNSTAGE
	/* dis-engage rgb0 from mixer0 */
	if (lcdc_pipe)
		mdp4_mixer_stage_down(lcdc_pipe);
#endif
#ifdef CONFIG_MSM_BUS_SCALING
	mdp_bus_scale_update_request(0);
#endif

	return ret;
}
コード例 #3
0
static int lcdc_panel_off(struct platform_device *pdev)
{
	printk("lcdc_panel_off , g_lcd_panel_type is %d(1 LEAD. 2 TRULY. 3 OLED. )\n",g_lcd_panel_type);
	switch(g_lcd_panel_type)
	{
		case LCD_PANEL_TRULY_WVGA:
			lcdc_truly_sleep();
			break;
		case LCD_PANEL_LEAD_WVGA:
			lcdc_lead_sleep();
			break;
		default:
			break;
	}
	
	gpio_direction_output(panel_reset, 0);
	//ZTE_LCD_LHT_20100521_001
	gpio_direction_output(spi_sclk, 0);
	gpio_direction_output(spi_sdi, 0);
	gpio_direction_output(spi_sdo, 0);
	gpio_direction_output(spi_cs, 0);
	return 0;
}