void s3cfb_late_resume(struct early_suspend *h) { struct s3cfb_global *fbdev = container_of(h, struct s3cfb_global, early_suspend); struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev); struct platform_device *pdev = to_platform_device(fbdev->dev); struct fb_info *fb; struct s3cfb_window *win; int i, j, ret; pr_info("s3cfb_late_resume is called\n"); ret = regulator_enable(fbdev->regulator); if (ret < 0) dev_err(fbdev->dev, "failed to enable regulator\n"); ret = regulator_enable(fbdev->vcc_lcd); if (ret < 0) dev_err(fbdev->dev, "failed to enable vcc_lcd\n"); ret = regulator_enable(fbdev->vlcd); if (ret < 0) dev_err(fbdev->dev, "failed to enable vlcd\n"); #if defined(CONFIG_FB_S3C_TL2796) lcd_cfg_gpio_late_resume(); #endif dev_dbg(fbdev->dev, "wake up from suspend\n"); if (pdata->cfg_gpio) pdata->cfg_gpio(pdev); clk_enable(fbdev->clock); s3cfb_init_global(fbdev); s3cfb_set_clock(fbdev); s3cfb_display_on(fbdev); for (i = pdata->default_win; i < pdata->nr_wins + pdata->default_win; i++) { j = i % pdata->nr_wins; fb = fbdev->fb[j]; win = fb->par; if ((win->path == DATA_PATH_DMA) && (win->enabled)) { s3cfb_set_par(fb); s3cfb_set_window(fbdev, win->id, 1); } } s3cfb_set_vsync_interrupt(fbdev, 1); s3cfb_set_global_interrupt(fbdev, 1); if (pdata->backlight_on) pdata->backlight_on(pdev); if (pdata->reset_lcd) pdata->reset_lcd(pdev); pr_info("s3cfb_late_resume is complete\n"); return ; }
void s3cfb_late_resume(struct early_suspend *h) { struct s3cfb_global *fbdev = container_of(h, struct s3cfb_global, early_suspend); struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev); struct platform_device *pdev = to_platform_device(fbdev->dev); struct fb_info *fb; struct s3cfb_window *win; int i, j, ret; pr_info("s3cfb_late_resume is called\n"); ret = regulator_enable(fbdev->regulator); if (ret < 0) dev_err(fbdev->dev, "failed to enable regulator\n"); #ifdef CONFIG_MACH_ARIES ret = regulator_enable(fbdev->vcc_lcd); if (ret < 0) dev_err(fbdev->dev, "failed to enable vcc_lcd\n"); ret = regulator_enable(fbdev->vlcd); if (ret < 0) dev_err(fbdev->dev, "failed to enable vlcd\n"); #endif #if defined(CONFIG_FB_S3C_TL2796) lcd_cfg_gpio_late_resume(); #endif dev_dbg(fbdev->dev, "wake up from suspend\n"); if (pdata->cfg_gpio) pdata->cfg_gpio(pdev); clk_enable(fbdev->clock); #ifdef CONFIG_FB_S3C_MDNIE writel(0x1, S5P_MDNIE_SEL); writel(3,fbdev->regs + 0x27c); #endif s3cfb_init_global(fbdev); s3cfb_set_clock(fbdev); #ifdef CONFIG_FB_S3C_MDNIE s3c_mdnie_init_global(fbdev); s3c_mdnie_start(fbdev); #endif #ifdef CONFIG_FB_S3C_CMC623 tune_cmc623_pre_resume(); #endif s3cfb_set_alpha_value_width(fbdev, pdata->default_win); s3cfb_display_on(fbdev); #ifdef CONFIG_FB_S3C_CMC623 tune_cmc623_resume(); #endif #if defined (CONFIG_FB_S3C_LVDS) lms700_powerup(); #endif for (i = pdata->default_win; i < pdata->nr_wins + pdata->default_win; i++) { j = i % pdata->nr_wins; fb = fbdev->fb[j]; win = fb->par; if ((win->path == DATA_PATH_DMA) && (win->enabled)) { s3cfb_set_par(fb); s3cfb_set_window(fbdev, win->id, 1); } } s3cfb_set_vsync_interrupt(fbdev, 1); s3cfb_set_global_interrupt(fbdev, 1); if (pdata->backlight_on) pdata->backlight_on(pdev); if (pdata->reset_lcd) pdata->reset_lcd(pdev); pr_info("s3cfb_late_resume is complete\n"); return ; }