diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-12-07 15:15:33 +0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-12-07 15:15:33 +0400 |
commit | 222e82bef4bd520a31d48c31ab24e49dd46daa46 (patch) | |
tree | b6e73cad8e0b3a1c3e1acc537789e97aadaefa92 /drivers/media/platform/soc_camera/mx2_camera.c | |
parent | 38ca9c927c7d3db61f57e3d3a9334958c3af6e9a (diff) | |
parent | 18a2f371f5edf41810f6469cb9be39931ef9deb9 (diff) | |
download | linux-222e82bef4bd520a31d48c31ab24e49dd46daa46.tar.xz |
Merge branch 'linus' into sched/core
Pick up the autogroups fix and other fixes.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/media/platform/soc_camera/mx2_camera.c')
-rw-r--r-- | drivers/media/platform/soc_camera/mx2_camera.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/media/platform/soc_camera/mx2_camera.c b/drivers/media/platform/soc_camera/mx2_camera.c index 9fd9d1c5b218..9a55f4c4c7f4 100644 --- a/drivers/media/platform/soc_camera/mx2_camera.c +++ b/drivers/media/platform/soc_camera/mx2_camera.c @@ -864,8 +864,10 @@ static int mx2_start_streaming(struct vb2_queue *q, unsigned int count) bytesperline = soc_mbus_bytes_per_line(icd->user_width, icd->current_fmt->host_fmt); - if (bytesperline < 0) + if (bytesperline < 0) { + spin_unlock_irqrestore(&pcdev->lock, flags); return bytesperline; + } /* * I didn't manage to properly enable/disable the prp @@ -878,8 +880,10 @@ static int mx2_start_streaming(struct vb2_queue *q, unsigned int count) pcdev->discard_buffer = dma_alloc_coherent(ici->v4l2_dev.dev, pcdev->discard_size, &pcdev->discard_buffer_dma, GFP_KERNEL); - if (!pcdev->discard_buffer) + if (!pcdev->discard_buffer) { + spin_unlock_irqrestore(&pcdev->lock, flags); return -ENOMEM; + } pcdev->buf_discard[0].discard = true; list_add_tail(&pcdev->buf_discard[0].queue, @@ -1099,9 +1103,10 @@ static int mx2_camera_set_bus_param(struct soc_camera_device *icd) } static int mx2_camera_set_crop(struct soc_camera_device *icd, - struct v4l2_crop *a) + const struct v4l2_crop *a) { - struct v4l2_rect *rect = &a->c; + struct v4l2_crop a_writable = *a; + struct v4l2_rect *rect = &a_writable.c; struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct v4l2_mbus_framefmt mf; int ret; |