aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2013-01-30 07:55:46 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-02-05 14:53:25 -0500
commit8b164105d87d1c0101dfbf8d2bacee82c70d91aa (patch)
tree24bf643f45f2dd288405a9bd18a30b75d23a0146
parent81619ce1931a1d96e53b455ca2f35757f0c457a5 (diff)
[media] s5p-fimc: Fix FIMC.n subdev set_selection ioctl handler
The V4L2_SEL_TGT_CROP_BOUNDS, V4L2_SEL_TGT_COMPOSE_BOUNDS selection targets are not supposed to be handled in the set_selection ioctl. Remove the code that doesn't do anything sensible now and make sure ctx->state is modified with the spinlock held. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/platform/s5p-fimc/fimc-capture.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/media/platform/s5p-fimc/fimc-capture.c b/drivers/media/platform/s5p-fimc/fimc-capture.c
index 5ec2f48f7db5..f553cc2a8ee8 100644
--- a/drivers/media/platform/s5p-fimc/fimc-capture.c
+++ b/drivers/media/platform/s5p-fimc/fimc-capture.c
@@ -1688,16 +1688,6 @@ static int fimc_subdev_set_selection(struct v4l2_subdev *sd,
1688 fimc_capture_try_selection(ctx, r, V4L2_SEL_TGT_CROP); 1688 fimc_capture_try_selection(ctx, r, V4L2_SEL_TGT_CROP);
1689 1689
1690 switch (sel->target) { 1690 switch (sel->target) {
1691 case V4L2_SEL_TGT_COMPOSE_BOUNDS:
1692 f = &ctx->d_frame;
1693 case V4L2_SEL_TGT_CROP_BOUNDS:
1694 r->width = f->o_width;
1695 r->height = f->o_height;
1696 r->left = 0;
1697 r->top = 0;
1698 mutex_unlock(&fimc->lock);
1699 return 0;
1700
1701 case V4L2_SEL_TGT_CROP: 1691 case V4L2_SEL_TGT_CROP:
1702 try_sel = v4l2_subdev_get_try_crop(fh, sel->pad); 1692 try_sel = v4l2_subdev_get_try_crop(fh, sel->pad);
1703 break; 1693 break;
@@ -1716,9 +1706,9 @@ static int fimc_subdev_set_selection(struct v4l2_subdev *sd,
1716 spin_lock_irqsave(&fimc->slock, flags); 1706 spin_lock_irqsave(&fimc->slock, flags);
1717 set_frame_crop(f, r->left, r->top, r->width, r->height); 1707 set_frame_crop(f, r->left, r->top, r->width, r->height);
1718 set_bit(ST_CAPT_APPLY_CFG, &fimc->state); 1708 set_bit(ST_CAPT_APPLY_CFG, &fimc->state);
1719 spin_unlock_irqrestore(&fimc->slock, flags);
1720 if (sel->target == V4L2_SEL_TGT_COMPOSE) 1709 if (sel->target == V4L2_SEL_TGT_COMPOSE)
1721 ctx->state |= FIMC_COMPOSE; 1710 ctx->state |= FIMC_COMPOSE;
1711 spin_unlock_irqrestore(&fimc->slock, flags);
1722 } 1712 }
1723 1713
1724 dbg("target %#x: (%d,%d)/%dx%d", sel->target, r->left, r->top, 1714 dbg("target %#x: (%d,%d)/%dx%d", sel->target, r->left, r->top,