media: rockchip: ispp: fix mmu err due to buf free for multi dev

Change-Id: Ib9729562168208d6163fb5363c0d14788346c8f0
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2020-12-03 15:11:48 +08:00
committed by Tao Huang
parent f818feceb5
commit 5ccf3f632a
3 changed files with 3 additions and 4 deletions

View File

@@ -343,7 +343,7 @@ end:
void rkispp_free_common_dummy_buf(struct rkispp_device *dev)
{
mutex_lock(&dev->hw_dev->dev_lock);
if (atomic_read(&dev->hw_dev->refcnt))
return;
rkispp_free_buffer(dev, &dev->hw_dev->dummy_buf);
mutex_unlock(&dev->hw_dev->dev_lock);
}

View File

@@ -304,8 +304,6 @@ static int __maybe_unused rkispp_runtime_suspend(struct device *dev)
struct rkispp_device *ispp_dev = dev_get_drvdata(dev);
int ret;
rkispp_free_common_dummy_buf(ispp_dev);
mutex_lock(&ispp_dev->hw_dev->dev_lock);
ret = pm_runtime_put_sync(ispp_dev->hw_dev->dev);
mutex_unlock(&ispp_dev->hw_dev->dev_lock);

View File

@@ -1387,6 +1387,7 @@ static void rkispp_destroy_dummy_buf(struct rkispp_stream *stream)
nr_free_buf(dev);
fec_free_buf(dev);
rkispp_event_handle(dev, CMD_FREE_POOL, NULL);
rkispp_free_common_dummy_buf(dev);
}
}