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; }
int mdp_lcdc_off(struct platform_device *pdev) { int ret = 0; uint32 data; #ifdef CONFIG_FB_MSM_LCDC_LEAD_WVGA_PANEL //ZTE_LCD_LHT_20100810_001 if(LcdPanleID==72) lcdc_lead_sleep(); #endif #ifdef CONFIG_FB_MSM_LCDC_WVGA_ARTHUR if(LcdPanleID==60) lcdc_lead_sleep(); if(LcdPanleID==61) lcdc_truly_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 */ data = inpdw(MDP_BASE + 0x10100); data = data&0xffffff00; outpdw(MDP_BASE + 0x10100, data); 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; }
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; }