mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
media: rockchip: isp: fix bilinear scale no output if unite mode
Change-Id: Ic8ea66fdde4b139d961803e16fab2481dd72355a Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
@@ -401,12 +401,32 @@ static void set_bilinear_scale(struct rkisp_stream *stream, struct v4l2_rect *in
|
||||
u32 left_in_used_size_c = right_fst_point_c / ISP32_SCALE_BIL_FACTOR * 2;
|
||||
u32 phase_left_y = right_fst_point_y & 0xfff;
|
||||
u32 phase_left_c = right_fst_point_c & 0xfff;
|
||||
u32 right_scl_need_size_y = in_y->width - left_in_used_size_y;
|
||||
u32 right_scl_need_size_c = in_y->width - left_in_used_size_c;
|
||||
u32 right_scl_in_size_y = in_w - right_scl_need_size_y;
|
||||
u32 right_scl_in_size_c = in_w - right_scl_need_size_c;
|
||||
u32 scl_in_hy_offs = right_scl_in_size_y - RKMOUDLE_UNITE_EXTEND_PIXEL;
|
||||
u32 scl_in_hc_offs = right_scl_in_size_c - RKMOUDLE_UNITE_EXTEND_PIXEL;
|
||||
u32 right_need_in_size_y = in_y->width - left_in_used_size_y;
|
||||
u32 right_need_in_size_c = in_y->width - left_in_used_size_c;
|
||||
u32 right_need_in_size, right_scl_in_size;
|
||||
u32 right_crop, scl_in_hy_offs, scl_in_hc_offs;
|
||||
|
||||
if (right_need_in_size_y > right_need_in_size_c)
|
||||
right_need_in_size = right_need_in_size_y;
|
||||
else
|
||||
right_need_in_size = right_need_in_size_c;
|
||||
if (right_need_in_size % 2 == 1)
|
||||
right_scl_in_size = right_need_in_size + 1;
|
||||
else
|
||||
right_scl_in_size = right_need_in_size;
|
||||
scl_in_hy_offs = right_scl_in_size - right_need_in_size_y;
|
||||
scl_in_hc_offs = right_scl_in_size - right_need_in_size_c;
|
||||
right_crop = in_w - right_scl_in_size;
|
||||
|
||||
if (right_crop != RKMOUDLE_UNITE_EXTEND_PIXEL) {
|
||||
reg = stream->config->dual_crop.h_offset;
|
||||
rkisp_idx_write(dev, reg, right_crop, ISP_UNITE_RIGHT, false);
|
||||
reg = stream->config->dual_crop.h_size;
|
||||
rkisp_idx_write(dev, reg, right_scl_in_size, ISP_UNITE_RIGHT, false);
|
||||
reg = stream->config->dual_crop.ctrl;
|
||||
val = rkisp_idx_read_reg_cache(dev, reg, ISP_UNITE_RIGHT);
|
||||
rkisp_idx_write(dev, reg, val, ISP_UNITE_RIGHT, false);
|
||||
}
|
||||
|
||||
/* left isp */
|
||||
reg = stream->config->rsz.scale_hy_offs;
|
||||
|
||||
Reference in New Issue
Block a user