diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2013-01-30 07:55:46 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-05 14:53:25 -0500 |
commit | 8b164105d87d1c0101dfbf8d2bacee82c70d91aa (patch) | |
tree | 24bf643f45f2dd288405a9bd18a30b75d23a0146 | |
parent | 81619ce1931a1d96e53b455ca2f35757f0c457a5 (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.c | 12 |
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, |