media: rockchip: ispp: fix tnr 3to1 frame order

Change-Id: I44dbaf12819111a09d38a7685f1aaf53afc84777
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2020-06-20 16:53:09 +08:00
committed by Tao Huang
parent a7898428fc
commit 2fa88ab89a

View File

@@ -2121,7 +2121,8 @@ static void tnr_work_event(struct rkispp_device *dev,
/* tnr read buf from isp */
vdev->tnr.cur_rd = vdev->tnr.nxt_rd;
vdev->tnr.nxt_rd = buf_rd;
if (!is_3to1)
if (!is_3to1 ||
(readl(base + RKISPP_TNR_CTRL) & SW_TNR_1ST_FRM))
vdev->tnr.cur_rd = vdev->tnr.nxt_rd;
} else if (vdev->tnr.is_end && !list_empty(list)) {
/* tnr read buf from list
@@ -2180,8 +2181,6 @@ static void tnr_work_event(struct rkispp_device *dev,
val = buf->dma[GROUP_BUF_GAIN];
writel(val, base + RKISPP_TNR_GAIN_NXT_Y_BASE);
} else {
vdev->tnr.nxt_rd = NULL;
}
is_start = true;
}
@@ -2208,12 +2207,12 @@ static void tnr_work_event(struct rkispp_device *dev,
if (is_start) {
u32 seq = 0;
if (vdev->tnr.cur_rd) {
seq = vdev->tnr.cur_rd->frame_id;
if (vdev->tnr.nxt_rd) {
seq = vdev->tnr.nxt_rd->frame_id;
if (vdev->tnr.cur_wr) {
vdev->tnr.cur_wr->frame_id = seq;
vdev->tnr.cur_wr->frame_timestamp =
vdev->tnr.cur_rd->frame_timestamp;
vdev->tnr.nxt_rd->frame_timestamp;
}
}