int s3cfb_disable_window(struct s3cfb_global *fbdev, int id) { struct s3cfb_window *win = fbdev->fb[id]->par; #ifdef FEATURE_BUSFREQ_LOCK int enabled_win = 0; #endif #if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412) #ifdef CONFIG_BUSFREQ_OPP int win_status; #endif #endif if (win->enabled) atomic_dec(&fbdev->enabled_win); if (fbdev->regs != 0 && s3cfb_window_off(fbdev, id)) { win->enabled = 1; return -EFAULT; } else { #ifdef FEATURE_BUSFREQ_LOCK enabled_win = atomic_read(&fbdev->enabled_win); if (enabled_win < 2) s3cfb_busfreq_lock(fbdev, 0); #endif win->enabled = 0; #if defined(CONFIG_CPU_EXYNOS4212) || defined(CONFIG_CPU_EXYNOS4412) #ifdef CONFIG_BUSFREQ_OPP win_status = window_on_off_status(fbdev); if ((win_status & ~(1 << CONFIG_FB_S5P_DEFAULT_WINDOW)) == 0) dev_unlock(fbdev->bus_dev, fbdev->dev); #endif #endif return 0; } }
int s3cfb_disable_window(struct s3cfb_global *fbdev, int id) { struct s3cfb_window *win = fbdev->fb[id]->par; if (win->enabled) atomic_dec(&fbdev->enabled_win); if (s3cfb_window_off(fbdev, id)) { win->enabled = 1; return -EFAULT; } else { win->enabled = 0; #ifdef CONFIG_BUSFREQ_OPP if (soc_is_exynos4212() || soc_is_exynos4412()) { int win_status = 0, i; for (i = 0; i < 5; i++) { /* exynos4x12 has 5 windows */ win = fbdev->fb[i]->par; if (win->enabled) win_status |= (1 << i); } win_status &= ~(1 << CONFIG_FB_S5P_DEFAULT_WINDOW); if (0 == win_status) //check if all window be turned off except default dev_unlock(fbdev->bus_dev, fbdev->dev); } #endif return 0; } }
static void s3cfb_set_window(struct s3cfb_global *ctrl, int id, int enable) { struct s3cfb_window *win = ctrl->fb[id]->par; if (enable) { s3cfb_window_on(ctrl, id); win->enabled = 1; } else { s3cfb_window_off(ctrl, id); win->enabled = 0; } }
static int s3cfb_disable_window(int id) { struct s3cfb_window *win = ctrl->fb[id]->par; if (s3cfb_window_off(ctrl, id)) { win->enabled = 1; return -EFAULT; } else { win->enabled = 0; return 0; } }
int s3cfb_disable_window(struct s3cfb_global *fbdev, int id) { struct s3cfb_window *win = fbdev->fb[id]->par; if (win->enabled) atomic_dec(&fbdev->enabled_win); if (s3cfb_window_off(fbdev, id)) { win->enabled = 1; return -EFAULT; } else { win->enabled = 0; return 0; } }