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_check_var(struct fb_var_screeninfo *var, struct fb_info *fb) { struct s3cfb_global *fbdev = get_fimd_global(fb->node); s3cfb_check_var_window(fbdev, var, fb); return 0; }
int s3cfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb) { struct s3cfb_window *win = fb->par; struct s3cfb_global *fbdev = get_fimd_global(win->id); s3cfb_check_var_window(fbdev, var, fb); return 0; }