int s3cfb_register_framebuffer(struct s3cfb_global *fbdev) { struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev); int ret, i, j; /* on registering framebuffer, framebuffer of default window is registered at first. */ for (i = pdata->default_win; i < pdata->nr_wins + pdata->default_win; i++) { j = i % pdata->nr_wins; ret = register_framebuffer(fbdev->fb[j]); if (ret) { dev_err(fbdev->dev, "failed to register \ framebuffer device\n"); return -EINVAL; } #ifdef CONFIG_FB_S5P_SOFTBUTTON_UI /* Add Menu UI Window 4 */ if(j==4){ dev_info(fbdev->dev, " set parameters for win4"); s3cfb_check_var_window(fbdev, &fbdev->fb[j]->var, fbdev->fb[j]); s3cfb_set_par_window(fbdev, fbdev->fb[j]); } #endif #ifndef CONFIG_FRAMEBUFFER_CONSOLE if (j == pdata->default_win) { s3cfb_check_var_window(fbdev, &fbdev->fb[j]->var, fbdev->fb[j]); s3cfb_set_par_window(fbdev, fbdev->fb[j]); #ifdef CONFIG_KERNEL_LOGO s3cfb_draw_logo(fbdev->fb[j]); #endif } #endif } return 0; }
int s3cfb_register_framebuffer(struct s3cfb_global *fbdev) { struct s3c_platform_fb *pdata = to_fb_plat(fbdev->dev); int ret, i, j; /* on registering framebuffer, framebuffer of default window is registered at first. */ for (i = pdata->default_win; i < pdata->nr_wins + pdata->default_win; i++) { j = i % pdata->nr_wins; ret = register_framebuffer(fbdev->fb[j]); if (ret) { dev_err(fbdev->dev, "failed to register \ framebuffer device\n"); goto err; } #ifndef CONFIG_FRAMEBUFFER_CONSOLE if (j == pdata->default_win) { s3cfb_check_var_window(fbdev, &fbdev->fb[j]->var, fbdev->fb[j]); ret = s3cfb_set_par_window(fbdev, fbdev->fb[j]); if (ret != 0) BUG(); s3cfb_draw_logo(fbdev->fb[j]); } #endif } return 0; err: while (--i >= pdata->default_win) { j = i % pdata->nr_wins; unregister_framebuffer(fbdev->fb[j]); } return -EINVAL; }
int s3cfb_set_par(struct fb_info *fb) { struct s3cfb_global *fbdev = get_fimd_global(fb->node); s3cfb_set_par_window(fbdev, fb); return 0; }
int s3cfb_set_par(struct fb_info *fb) { struct s3cfb_window *win = fb->par; struct s3cfb_global *fbdev = get_fimd_global(win->id); s3cfb_set_par_window(fbdev, fb); return 0; }
int s3cfb_set_par(struct fb_info *fb) { struct s3cfb_window *win = fb->par; struct s3cfb_global *fbdev = get_fimd_global(win->id); int ret = 0; #ifdef CONFIG_EXYNOS_DEV_PD struct platform_device *pdev = to_platform_device(fbdev->dev); pm_runtime_get_sync(&pdev->dev); #endif ret = s3cfb_set_par_window(fbdev, fb); #ifdef CONFIG_EXYNOS_DEV_PD pm_runtime_put(&pdev->dev); #endif return ret; }
int s3cfb_set_par(struct fb_info *fb) { struct s3cfb_window *win = fb->par; struct s3cfb_global *fbdev = get_fimd_global(win->id); int ret = 0; #ifdef CONFIG_EXYNOS_DEV_PD if (unlikely(fbdev->system_state == POWER_OFF)) { dev_err(fbdev->dev, "%s::system_state is POWER_OFF, fb%d\n", __func__, win->id); return 0; } #endif ret = s3cfb_set_par_window(fbdev, fb); return ret; }