aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2014-03-04 05:28:11 -0500
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-03-11 05:56:38 -0400
commit1a17948184a3320e0bb0aab561112211d2e9b7a8 (patch)
treea25e6526939a67a4bde8017a1b2db76981fd17be /drivers/media/usb
parent0647064293d745720fc62e2edc7734fa8af06adf (diff)
[media] pwc: do not decompress the image unless the state is DONE
There is no point in trying to decompress a captured frame unless the buffer state is OK. It won't be used in any other state, and in fact the contents of the buffer might well be corrupt. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/usb')
-rw-r--r--drivers/media/usb/pwc/pwc-if.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/media/usb/pwc/pwc-if.c b/drivers/media/usb/pwc/pwc-if.c
index 1a27096b3f91..84a6720b1d00 100644
--- a/drivers/media/usb/pwc/pwc-if.c
+++ b/drivers/media/usb/pwc/pwc-if.c
@@ -619,12 +619,15 @@ static void buffer_finish(struct vb2_buffer *vb)
619 struct pwc_device *pdev = vb2_get_drv_priv(vb->vb2_queue); 619 struct pwc_device *pdev = vb2_get_drv_priv(vb->vb2_queue);
620 struct pwc_frame_buf *buf = container_of(vb, struct pwc_frame_buf, vb); 620 struct pwc_frame_buf *buf = container_of(vb, struct pwc_frame_buf, vb);
621 621
622 /* 622 if (vb->state == VB2_BUF_STATE_DONE) {
623 * Application has called dqbuf and is getting back a buffer we've 623 /*
624 * filled, take the pwc data we've stored in buf->data and decompress 624 * Application has called dqbuf and is getting back a buffer
625 * it into a usable format, storing the result in the vb2_buffer 625 * we've filled, take the pwc data we've stored in buf->data
626 */ 626 * and decompress it into a usable format, storing the result
627 pwc_decompress(pdev, buf); 627 * in the vb2_buffer.
628 */
629 pwc_decompress(pdev, buf);
630 }
628} 631}
629 632
630static void buffer_cleanup(struct vb2_buffer *vb) 633static void buffer_cleanup(struct vb2_buffer *vb)