void s6e8ax0_early_suspend(void) { struct lcd_info *lcd = g_lcd; set_dsim_lcd_enabled(0); dev_info(&lcd->ld->dev, "+%s\n", __func__); #if defined(GPIO_OLED_DET) disable_irq(lcd->irq); gpio_request(GPIO_OLED_DET, "OLED_DET"); s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE); gpio_direction_output(GPIO_OLED_DET, GPIO_LEVEL_LOW); gpio_free(GPIO_OLED_DET); #endif #ifdef DDI_STATUS_REG_PREVENTESD if (lcd->connected) { bool ret; ret = cancel_delayed_work(&lcd->check_ddi); if (ret) printk(KERN_INFO "%s, success - cancel delayed work\n", __func__); } #endif s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); dev_info(&lcd->ld->dev, "-%s\n", __func__); return ; }
/* Power down all displays on reboot, poweroff or halt. */ static void s6e8ax0_shutdown(struct device *dev) { struct lcd_info *lcd = dev_get_drvdata(dev); dev_info(&lcd->ld->dev, "%s\n", __func__); s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); }
static int __devexit s6e8ax0_remove(struct device *dev) { struct lcd_info *lcd = dev_get_drvdata(dev); s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); lcd_device_unregister(lcd->ld); backlight_device_unregister(lcd->bd); kfree(lcd); return 0; }
static int s6e8ax0_set_power(struct lcd_device *ld, int power) { struct lcd_info *lcd = lcd_get_data(ld); if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN && power != FB_BLANK_NORMAL) { dev_err(&lcd->ld->dev, "power value should be 0, 1 or 4.\n"); return -EINVAL; } return s6e8ax0_power(lcd, power); }
void s6e8ax0_late_resume(void) { struct lcd_info *lcd = g_lcd; dev_info(&lcd->ld->dev, "+%s\n", __func__); s6e8ax0_power(lcd, FB_BLANK_UNBLANK); dev_info(&lcd->ld->dev, "-%s\n", __func__); set_dsim_lcd_enabled(1); return ; }
void s6e8ax0_early_suspend(void) { struct lcd_info *lcd = g_lcd; set_dsim_lcd_enabled(0); dev_info(&lcd->ld->dev, "+%s\n", __func__); s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); dev_info(&lcd->ld->dev, "-%s\n", __func__); return ; }
/* Power down all displays on reboot, poweroff or halt. */ static void s6e8ax0_shutdown(struct device *dev) { struct lcd_info *lcd = dev_get_drvdata(dev); dev_info(&lcd->ld->dev, "%s\n", __func__); #ifdef CONFIG_FB_S5P_PREVENTESD mutex_lock(&s3cfb_lock); #endif s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); #ifdef CONFIG_FB_S5P_PREVENTESD mutex_unlock(&s3cfb_lock); #endif }
static int __devexit s6e8ax0_remove(struct device *dev) { struct lcd_info *lcd = dev_get_drvdata(dev); #ifdef CONFIG_FB_S5P_PREVENTESD mutex_lock(&s3cfb_lock); #endif s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); lcd_device_unregister(lcd->ld); backlight_device_unregister(lcd->bd); kfree(lcd); #ifdef CONFIG_FB_S5P_PREVENTESD mutex_unlock(&s3cfb_lock); #endif return 0; }
void s6e8ax0_late_resume(void) { struct lcd_info *lcd = g_lcd; dev_info(&lcd->ld->dev, "+%s\n", __func__); s6e8ax0_power(lcd, FB_BLANK_UNBLANK); #if defined(GPIO_OLED_DET) s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE); enable_irq(lcd->irq); #endif dev_info(&lcd->ld->dev, "-%s\n", __func__); set_dsim_lcd_enabled(1); return ; }
void s6e8ax0_early_suspend(void) { struct lcd_info *lcd = g_lcd; set_dsim_lcd_enabled(0); dev_info(&lcd->ld->dev, "+%s\n", __func__); #if defined(GPIO_OLED_DET) disable_irq(lcd->irq); gpio_request(GPIO_OLED_DET, "OLED_DET"); s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE); gpio_direction_output(GPIO_OLED_DET, GPIO_LEVEL_LOW); gpio_free(GPIO_OLED_DET); #endif s6e8ax0_power(lcd, FB_BLANK_POWERDOWN); dev_info(&lcd->ld->dev, "-%s\n", __func__); return ; }
void s6e8ax0_late_resume(void) { struct lcd_info *lcd = g_lcd; dev_info(&lcd->ld->dev, "+%s\n", __func__); s6e8ax0_power(lcd, FB_BLANK_UNBLANK); #if defined(GPIO_OLED_DET) s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE); enable_irq(lcd->irq); #endif #ifdef DDI_STATUS_REG_PREVENTESD if (lcd->connected) schedule_delayed_work(&lcd->check_ddi, msecs_to_jiffies(3000)); #endif dev_info(&lcd->ld->dev, "-%s\n", __func__); set_dsim_lcd_enabled(1); return ; }