media: rockchip: isp: lock for buf alloc and free

Change-Id: I94f01e3d8a24ec11a6b853416421e7f5d6323a8a
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2022-04-22 11:41:59 +08:00
committed by Tao Huang
parent 7d88934a96
commit 94f439584b
3 changed files with 8 additions and 0 deletions

View File

@@ -166,6 +166,8 @@ int rkisp_alloc_buffer(struct rkisp_device *dev,
void *mem_priv;
int ret = 0;
mutex_lock(&dev->buf_lock);
if (!buf->size) {
ret = -EINVAL;
goto err;
@@ -206,8 +208,10 @@ int rkisp_alloc_buffer(struct rkisp_device *dev,
v4l2_dbg(1, rkisp_debug, &dev->v4l2_dev,
"%s buf:0x%x~0x%x size:%d\n", __func__,
(u32)buf->dma_addr, (u32)buf->dma_addr + buf->size, buf->size);
mutex_unlock(&dev->buf_lock);
return ret;
err:
mutex_unlock(&dev->buf_lock);
dev_err(dev->dev, "%s failed ret:%d\n", __func__, ret);
return ret;
}
@@ -217,6 +221,7 @@ void rkisp_free_buffer(struct rkisp_device *dev,
{
const struct vb2_mem_ops *g_ops = dev->hw_dev->mem_ops;
mutex_lock(&dev->buf_lock);
if (buf && buf->mem_priv) {
v4l2_dbg(1, rkisp_debug, &dev->v4l2_dev,
"%s buf:0x%x~0x%x\n", __func__,
@@ -232,6 +237,7 @@ void rkisp_free_buffer(struct rkisp_device *dev,
buf->is_need_vaddr = false;
buf->is_need_dmafd = false;
}
mutex_unlock(&dev->buf_lock);
}
void rkisp_prepare_buffer(struct rkisp_device *dev,

View File

@@ -231,6 +231,7 @@ struct rkisp_device {
struct rkisp_rx_buf_pool pv_pool[RKISP_RX_BUF_POOL_MAX];
struct mutex buf_lock;
spinlock_t cmsk_lock;
struct rkisp_cmsk_cfg cmsk_cfg;
bool is_cmsk_upd;

View File

@@ -3324,6 +3324,7 @@ int rkisp_register_isp_subdev(struct rkisp_device *isp_dev,
struct v4l2_subdev *sd = &isp_sdev->sd;
int ret;
mutex_init(&isp_dev->buf_lock);
spin_lock_init(&isp_dev->cmsk_lock);
spin_lock_init(&isp_dev->rdbk_lock);
ret = kfifo_alloc(&isp_dev->rdbk_kfifo,