Commit dcd80955 authored by Yong Zhi's avatar Yong Zhi Committed by Mauro Carvalho Chehab

media: intel-ipu3: cio2: fix for wrong vb2buf state warnings

cio2 driver should release buffer with QUEUED state
when start_stream op failed, wrong buffer state will
cause vb2 core throw a warning.
Signed-off-by: default avatarYong Zhi <yong.zhi@intel.com>
Signed-off-by: default avatarCao Bing Bu <bingbu.cao@intel.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent c7cbef1f
...@@ -785,7 +785,8 @@ static irqreturn_t cio2_irq(int irq, void *cio2_ptr) ...@@ -785,7 +785,8 @@ static irqreturn_t cio2_irq(int irq, void *cio2_ptr)
/**************** Videobuf2 interface ****************/ /**************** Videobuf2 interface ****************/
static void cio2_vb2_return_all_buffers(struct cio2_queue *q) static void cio2_vb2_return_all_buffers(struct cio2_queue *q,
enum vb2_buffer_state state)
{ {
unsigned int i; unsigned int i;
...@@ -793,7 +794,7 @@ static void cio2_vb2_return_all_buffers(struct cio2_queue *q) ...@@ -793,7 +794,7 @@ static void cio2_vb2_return_all_buffers(struct cio2_queue *q)
if (q->bufs[i]) { if (q->bufs[i]) {
atomic_dec(&q->bufs_queued); atomic_dec(&q->bufs_queued);
vb2_buffer_done(&q->bufs[i]->vbb.vb2_buf, vb2_buffer_done(&q->bufs[i]->vbb.vb2_buf,
VB2_BUF_STATE_ERROR); state);
} }
} }
} }
...@@ -1019,7 +1020,7 @@ static int cio2_vb2_start_streaming(struct vb2_queue *vq, unsigned int count) ...@@ -1019,7 +1020,7 @@ static int cio2_vb2_start_streaming(struct vb2_queue *vq, unsigned int count)
media_pipeline_stop(&q->vdev.entity); media_pipeline_stop(&q->vdev.entity);
fail_pipeline: fail_pipeline:
dev_dbg(&cio2->pci_dev->dev, "failed to start streaming (%d)\n", r); dev_dbg(&cio2->pci_dev->dev, "failed to start streaming (%d)\n", r);
cio2_vb2_return_all_buffers(q); cio2_vb2_return_all_buffers(q, VB2_BUF_STATE_QUEUED);
pm_runtime_put(&cio2->pci_dev->dev); pm_runtime_put(&cio2->pci_dev->dev);
return r; return r;
...@@ -1035,7 +1036,7 @@ static void cio2_vb2_stop_streaming(struct vb2_queue *vq) ...@@ -1035,7 +1036,7 @@ static void cio2_vb2_stop_streaming(struct vb2_queue *vq)
"failed to stop sensor streaming\n"); "failed to stop sensor streaming\n");
cio2_hw_exit(cio2, q); cio2_hw_exit(cio2, q);
cio2_vb2_return_all_buffers(q); cio2_vb2_return_all_buffers(q, VB2_BUF_STATE_ERROR);
media_pipeline_stop(&q->vdev.entity); media_pipeline_stop(&q->vdev.entity);
pm_runtime_put(&cio2->pci_dev->dev); pm_runtime_put(&cio2->pci_dev->dev);
cio2->streaming = false; cio2->streaming = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment