Example #1
0
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;
}