height_src = osd_hw.free_src_data[index].y_end -
osd_hw.free_src_data[index].y_start + 1;
if (height_dst != height_src &&
- osd_hw.free_dst_data[index].y_end <
- osd_hw.vinfo_height[index] - 1)
+ osd_hw.free_dst_data[index].y_end <
+ osd_hw.vinfo_height[VIU1] - 1)
osd_set_dummy_data(index, 0);
else
osd_set_dummy_data(index, 0xff);
else
osd_set_dummy_data(index, 0xff);
- if (osd_hw.free_dst_data[index].y_end >= osd_hw.vinfo_height[index] - 1)
+ if (osd_hw.free_dst_data[index].y_end >=
+ osd_hw.vinfo_height[output_index] - 1)
osd_set_dummy_data(index, 0xff);
osd_update_window_axis = true;
osd_update_disp_dst_size(index);
&freescale_dst[index],
sizeof(struct pandata_s));
freescale_update = true;
-
- if (((height_dst != height_src) ||
- (width_dst != width_src)) &&
- osd_hw.free_dst_data[index].y_end <
- osd_hw.vinfo_height[index] - 1)
+ if ((height_dst != height_src ||
+ width_dst != width_src) &&
+ osd_hw.free_dst_data[index].y_end <
+ osd_hw.vinfo_height[VIU1] - 1)
osd_set_dummy_data(index, 0);
else
osd_set_dummy_data(index, 0xff);
blend_reg->vpp_osd2_blend_v_scope);
}
+static void set_osd_dummy_policy(u32 index, u32 src_height, u32 dst_height)
+{
+ u32 output_index;
+
+ output_index = get_output_device_id(index);
+
+ if (index == OSD1) {
+ if (osd_hw.osd_meson_dev.cpu_id ==
+ __MESON_CPU_MAJOR_ID_G12A &&
+ dst_height != src_height &&
+ osd_hw.free_dst_data[index].y_end <
+ osd_hw.vinfo_height[output_index] - 1)
+ osd_set_dummy_data(index, 0);
+ else
+ osd_set_dummy_data(index, 0xff);
+ } else {
+ if (osd_hw.osd_meson_dev.cpu_id ==
+ __MESON_CPU_MAJOR_ID_G12A &&
+ osd_hw.free_dst_data[index].y_end <
+ osd_hw.vinfo_height[output_index] - 1)
+ osd_set_dummy_data(index, 0);
+ else
+ osd_set_dummy_data(index, 0xff);
+ }
+}
+
+/* input w, h is background */
static void osd_set_freescale(u32 index,
struct hw_osd_blending_s *blending)
src_height = osd_hw.free_src_data[index].x_end -
osd_hw.free_src_data[index].x_start + 1;
- if ((osd_hw.osd_meson_dev.cpu_id ==
- __MESON_CPU_MAJOR_ID_G12A) &&
- (height != src_height) &&
- osd_hw.free_dst_data[index].y_end <
- osd_hw.vinfo_height[index] - 1)
- osd_set_dummy_data(index, 0);
- else
- osd_set_dummy_data(index, 0xff);
+ set_osd_dummy_policy(index, src_height, height);
osd_log_dbg2(MODULE_BLEND, "osd%d:free_src_data:%d,%d,%d,%d\n",
index,
osd_hw.free_src_data[index].x_start,
height_src = osd_hw.free_src_data[index].y_end -
osd_hw.free_src_data[index].y_start + 1;
if (height_dst != height_src &&
- osd_hw.free_dst_data[index].y_end <
- osd_hw.vinfo_height[index] - 1)
+ osd_hw.free_dst_data[index].y_end <
+ osd_hw.vinfo_height[VIU1] - 1)
osd_set_dummy_data(index, 0);
else
osd_set_dummy_data(index, 0xff);
osd_hw.dst_data[index].h =
osd_hw.free_dst_data[index].y_end -
osd_hw.free_dst_data[index].y_start + 1;
-
- if (((height_dst != height_src) ||
- (width_dst != width_src)) &&
- osd_hw.free_dst_data[index].y_end <
- osd_hw.vinfo_height[index] - 1)
+ if ((height_dst != height_src ||
+ width_dst != width_src) &&
+ osd_hw.free_dst_data[index].y_end <
+ osd_hw.vinfo_height[output_index] - 1)
osd_set_dummy_data(index, 0);
else
osd_set_dummy_data(index, 0xff);