media: rockchip: ispp: fix fec image error

Change-Id: Ifcd6bf83f92624c9e14bbc48b1f7df11d698a401
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2020-05-26 18:42:42 +08:00
committed by Tao Huang
parent 1c83b7de94
commit 373ff84338

View File

@@ -229,8 +229,7 @@ static void check_to_force_update(struct rkispp_device *dev, u32 mis_val)
/* wait nr_shp/fec/scl idle */
for (i = STREAM_S0; i < STREAM_MAX; i++) {
stream = &vdev->stream[i];
if (stream->is_upd &&
(!is_fec_en || !vdev->fec.is_end))
if (stream->is_upd && !is_fec_en)
mask |= stream->config->frame_end_id;
}
@@ -1842,7 +1841,7 @@ static void fec_work_event(struct rkispp_device *dev,
dummy = vdev->fec.cur_rd;
val = dummy->dma_addr;
writel(val, base + RKISPP_FEC_RD_Y_BASE);
val = dummy->dma_addr + vdev->nr.uv_offset;
val += vdev->fec.uv_offset;
writel(val, base + RKISPP_FEC_RD_UV_BASE);
is_start = true;
}
@@ -1920,6 +1919,12 @@ static void nr_work_event(struct rkispp_device *dev,
}
}
if (!vdev->fec.is_end) {
if (buf_rd)
list_add_tail(&buf_rd->list, &vdev->nr.list_rd);
goto end;
}
list = &vdev->nr.list_rd;
if (buf_rd && vdev->nr.is_end && list_empty(list)) {
/* nr read buf from isp or tnr */
@@ -1991,7 +1996,7 @@ static void nr_work_event(struct rkispp_device *dev,
dummy = vdev->nr.cur_wr;
val = dummy->dma_addr;
writel(val, base + RKISPP_SHARP_WR_Y_BASE);
val = dummy->dma_addr + vdev->nr.uv_offset;
val += vdev->fec.uv_offset;
writel(val, base + RKISPP_SHARP_WR_UV_BASE);
}
@@ -2024,7 +2029,7 @@ static void nr_work_event(struct rkispp_device *dev,
writel(NR_SHP_ST, base + RKISPP_CTRL_STRT);
vdev->nr.is_end = false;
}
end:
/* nr_shp->fec->scl
* fec start working should after nr
* for scl will update by OTHER_FORCE_UPD