int s3cfb_extdsp_open(struct fb_info *fb, int user) { struct s3cfb_extdsp_window *win = fb->par; struct s3cfb_extdsp_global *fbdev = get_extdsp_global(0); int ret = 0; mutex_lock(&fbdev->lock); if (atomic_read(&win->in_use)) { dev_dbg(fbdev->dev, "mutiple open fir default window\n"); ret = 0; } else { atomic_inc(&win->in_use); } mutex_unlock(&fbdev->lock); return ret; }
int s3cfb_extdsp_blank(int blank_mode, struct fb_info *fb) { struct s3cfb_extdsp_window *win = fb->par; struct s3cfb_extdsp_window *tmp_win; struct s3cfb_extdsp_global *fbdev = get_extdsp_global(0); int enabled_win = 0; int i; dev_dbg(fbdev->dev, "change blank mode\n"); switch (blank_mode) { case FB_BLANK_UNBLANK: if (!fb->fix.smem_start) { dev_info(fbdev->dev, "[fb%d] no allocated memory \ for unblank\n", 0); break; } if (win->power_state == FB_BLANK_UNBLANK) { dev_info(fbdev->dev, "[fb%d] already in \ FB_BLANK_UNBLANK\n", 0); break; } else {
int s3cfb_extdsp_check_var(struct fb_var_screeninfo *var, struct fb_info *fb) { struct s3cfb_extdsp_global *fbdev = get_extdsp_global(0); s3cfb_extdsp_check_var_window(fbdev, var, fb); return 0; }
int s3cfb_extdsp_set_par(struct fb_info *fb) { struct s3cfb_extdsp_global *fbdev = get_extdsp_global(0); s3cfb_extdsp_set_par_window(fbdev, fb); return 0; }