bool _s5p_vlayer_set_top_address(unsigned long buf_in) { u32 t_y_addr = 0; u32 t_c_addr = 0; u32 b_y_addr = 0; u32 b_c_addr = 0; struct s5p_video_img_address *addr = (struct s5p_video_img_address *)buf_in; enum s5p_tv_vp_err verr; s5ptv_status.vl_basic_param.top_y_address = addr->y_address; s5ptv_status.vl_basic_param.top_c_address = addr->c_address; _s5p_vlayer_calc_inner_values(); t_y_addr = s5ptv_status.vl_top_y_address; t_c_addr = s5ptv_status.vl_top_c_address; b_y_addr = s5ptv_status.vl_bottom_y_address; b_c_addr = s5ptv_status.vl_bottom_c_address; if (_s5p_vlayer_wait_previous_update()) return false; verr = __s5p_vp_set_top_field_address(t_y_addr, t_c_addr); if (verr != VPROC_NO_ERROR) return false; if (check_input_mode(s5ptv_status.src_color) == INTERLACED) { __s5p_vp_set_field_id(s5ptv_status.field_id); verr = __s5p_vp_set_bottom_field_address(b_y_addr, b_c_addr); if (verr != VPROC_NO_ERROR) return false; } verr = __s5p_vp_update(); if (verr != VPROC_NO_ERROR) return false; return true; }
bool _s5p_vlayer_set_field_id(unsigned long buf_in) { s5p_tv_vp_err verr; s5ptv_status.field_id = (s5p_vp_field)(buf_in); if (_s5p_vlayer_wait_previous_update()) return false; __s5p_vp_set_field_id(s5ptv_status.field_id); verr = __s5p_vp_update(); if (verr != VPROC_NO_ERROR) return false; return true; }