bool _s5p_grp_stop(enum s5p_tv_vmx_layer vm_layer) { enum s5p_tv_vmx_err merr; struct s5p_tv_status *st = &s5ptv_status; GRPPRINTK("()\n\r"); merr = __s5p_vm_set_layer_show(vm_layer, false); if (merr != VMIXER_NO_ERROR) return false; merr = __s5p_vm_set_layer_priority(vm_layer, 0); if (merr != VMIXER_NO_ERROR) return false; __s5p_vm_start(); st->grp_layer_enable[vm_layer] = false; GRPPRINTK("()\n\r"); return true; }
int s5ptvfb_set_par(struct fb_info *fb) { struct s5ptvfb_window *win = fb->par; struct fb_var_screeninfo *fbvar; dev_dbg(g_s5ptv_status.dev_fb, "[fb%d] set_par\n", win->id); if (!fb->fix.smem_start) { #ifdef CONFIG_USER_ALLOC_TVOUT GRPPRINTK("The frame buffer should be allocated by ioctl\n"); #else GRPPRINTK(" The frame buffer is allocated here\n"); s5ptvfb_map_video_memory(fb); #endif } //((struct fb_var_screeninfo) (g_s5ptv_status.fb->var)).bits_per_pixel = // ((struct fb_var_screeninfo) (fb->var)).bits_per_pixel; fbvar = (struct fb_var_screeninfo *) &g_s5ptv_status.fb->var; fbvar->bits_per_pixel = ((struct fb_var_screeninfo) (fb->var)).bits_per_pixel; s5ptvfb_set_display_mode(&g_s5ptv_status); s5ptvfb_set_window_control(&g_s5ptv_status, win->id); s5ptvfb_set_window_position(&g_s5ptv_status, win->id); s5ptvfb_set_window_size(&g_s5ptv_status, win->id); s5ptvfb_set_buffer_address(&g_s5ptv_status, win->id); s5ptvfb_set_buffer_size(&g_s5ptv_status, win->id); if (win->id > 0) s5ptvfb_set_alpha_blending(&g_s5ptv_status, win->id); return 0; }
bool s5p_grp_stop(enum s5p_tv_vmx_layer vm_layer) { enum s5p_tv_vmx_err merr; struct s5p_tv_status *st = &g_s5ptv_status; GRPPRINTK("()\n"); merr = s5p_vm_set_layer_show(vm_layer, false); if (merr != VMIXER_NO_ERROR) { pr_err("%s::s5p_vm_set_layer_show(false) fail\n", __func__); return false; } merr = s5p_vm_set_layer_priority(vm_layer, 0); if (merr != VMIXER_NO_ERROR) { pr_err("%s::s5p_vm_set_layer_priority(0) fail\n", __func__); return false; } /* for video layer */ s5p_vm_start(); st->grp_layer_enable[vm_layer] = false; return true; }
bool s5p_grp_start(enum s5p_tv_vmx_layer vm_layer) { enum s5p_tv_vmx_err merr; struct s5p_tv_status *st = &g_s5ptv_status; if (!(st->grp_layer_enable[0] || st->grp_layer_enable[1])) { merr = s5p_vm_init_status_reg(st->grp_burst, st->grp_endian); if (merr != VMIXER_NO_ERROR) return false; } merr = s5p_vm_init_layer(g_s5ptv_status.tvout_param.disp_mode, vm_layer, true, g_s5ptv_overlay[vm_layer].win_blending, g_s5ptv_overlay[vm_layer].win.global_alpha, g_s5ptv_overlay[vm_layer].priority, g_s5ptv_overlay[vm_layer].fb.fmt.pixelformat, g_s5ptv_overlay[vm_layer].blank_change, g_s5ptv_overlay[vm_layer].pixel_blending, g_s5ptv_overlay[vm_layer].pre_mul, g_s5ptv_overlay[vm_layer].blank_color, g_s5ptv_overlay[vm_layer].base_addr, g_s5ptv_overlay[vm_layer].fb.fmt.bytesperline, g_s5ptv_overlay[vm_layer].win.w.width, g_s5ptv_overlay[vm_layer].win.w.height, g_s5ptv_overlay[vm_layer].win.w.left, g_s5ptv_overlay[vm_layer].win.w.top, g_s5ptv_overlay[vm_layer].dst_rect.left, g_s5ptv_overlay[vm_layer].dst_rect.top, g_s5ptv_overlay[vm_layer].dst_rect.width, g_s5ptv_overlay[vm_layer].dst_rect.height); if (merr != VMIXER_NO_ERROR) { pr_err("can't initialize layer(%d)\n", merr); return false; } s5p_vm_start(); st->grp_layer_enable[vm_layer] = true; GRPPRINTK("()\n"); return true; }
bool _s5p_grp_start(enum s5p_tv_vmx_layer vm_layer) { enum s5p_tv_vmx_err merr; struct s5p_tv_status *st = &s5ptv_status; if (!(st->grp_layer_enable[0] || st->grp_layer_enable[1])) { merr = __s5p_vm_init_status_reg(st->grp_burst, st->grp_endian); if (merr != VMIXER_NO_ERROR) return false; } #ifdef CONFIG_CPU_S5PC100 merr = __s5p_vm_init_layer(vm_layer, true, s5ptv_overlay[vm_layer].win_blending, s5ptv_overlay[vm_layer].win.global_alpha, s5ptv_overlay[vm_layer].priority, s5ptv_overlay[vm_layer].fb.fmt.pixelformat, s5ptv_overlay[vm_layer].blank_change, s5ptv_overlay[vm_layer].pixel_blending, s5ptv_overlay[vm_layer].pre_mul, s5ptv_overlay[vm_layer].blank_color, s5ptv_overlay[vm_layer].base_addr, s5ptv_overlay[vm_layer].fb.fmt.bytesperline, s5ptv_overlay[vm_layer].win.w.width, s5ptv_overlay[vm_layer].win.w.height, s5ptv_overlay[vm_layer].win.w.left, s5ptv_overlay[vm_layer].win.w.top, s5ptv_overlay[vm_layer].dst_rect.left, s5ptv_overlay[vm_layer].dst_rect.top); #endif #ifdef CONFIG_CPU_S5PV210 merr = __s5p_vm_init_layer(s5ptv_status.tvout_param.disp_mode, vm_layer, true, s5ptv_overlay[vm_layer].win_blending, s5ptv_overlay[vm_layer].win.global_alpha, s5ptv_overlay[vm_layer].priority, s5ptv_overlay[vm_layer].fb.fmt.pixelformat, s5ptv_overlay[vm_layer].blank_change, s5ptv_overlay[vm_layer].pixel_blending, s5ptv_overlay[vm_layer].pre_mul, s5ptv_overlay[vm_layer].blank_color, s5ptv_overlay[vm_layer].base_addr, s5ptv_overlay[vm_layer].fb.fmt.bytesperline, s5ptv_overlay[vm_layer].win.w.width, s5ptv_overlay[vm_layer].win.w.height, s5ptv_overlay[vm_layer].win.w.left, s5ptv_overlay[vm_layer].win.w.top, s5ptv_overlay[vm_layer].dst_rect.left, s5ptv_overlay[vm_layer].dst_rect.top, s5ptv_overlay[vm_layer].dst_rect.width, s5ptv_overlay[vm_layer].dst_rect.height); #endif if (merr != VMIXER_NO_ERROR) { GRPPRINTK("can't initialize layer(%d)\n\r", merr); return false; } __s5p_vm_start(); st->grp_layer_enable[vm_layer] = true; GRPPRINTK("()\n\r"); return true; }