media: rockchip: ispp: fix error status of stream off

Change-Id: I9cc099035889e325d225f9252c2283629214b922
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2020-10-16 18:03:30 +08:00
committed by Tao Huang
parent bbb2cf8b90
commit 1ae7b73267
3 changed files with 13 additions and 1 deletions

View File

@@ -296,6 +296,7 @@ static int init_buf(struct rkisp_bridge_device *dev, u32 pic_size, u32 gain_size
v4l2_dbg(1, rkisp_debug, &dev->ispdev->v4l2_dev,
"%s pic size:%d gain size:%d\n",
__func__, pic_size, gain_size);
INIT_LIST_HEAD(&hw->list);
for (i = 0; i < dev->buf_num; i++) {
buf = &hw->bufs[i];
for (j = 0; j < GROUP_BUF_MAX; j++) {

View File

@@ -185,6 +185,7 @@ static int rkispp_init_pool(struct rkispp_hw_dev *hw, struct rkisp_ispp_buf *dbu
int i, ret = 0;
void *mem;
INIT_LIST_HEAD(&hw->list);
/* init dma buf pool */
for (i = 0; i < RKISPP_BUF_POOL_MAX; i++) {
pool = &hw->pool[i];

View File

@@ -2622,8 +2622,18 @@ void rkispp_module_work_event(struct rkispp_device *dev,
rkispp_event_handle(dev, CMD_QUEUE_DMABUF, NULL);
}
if (dev->ispp_sdev.state == ISPP_STOP)
if (dev->ispp_sdev.state == ISPP_STOP) {
if ((module & (ISPP_MODULE_TNR | ISPP_MODULE_NR)) && buf_rd) {
struct rkisp_ispp_buf *buf = buf_rd;
if (buf->is_isp)
v4l2_subdev_call(dev->ispp_sdev.remote_sd,
video, s_rx_buffer, buf, NULL);
}
if (!dev->hw_dev->is_idle)
dev->hw_dev->is_idle = true;
return;
}
if (module & ISPP_MODULE_TNR)
tnr_work_event(dev, buf_rd, buf_wr, is_isr);