diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-15 15:49:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-15 15:49:56 -0500 |
commit | 122804ecb59493fbb4d31b3ba9ac59faaf45276f (patch) | |
tree | cff4d8a158c412e4a8d3abc8d91bb0eb52b01c9a /drivers/media/video/s5p-fimc/fimc-capture.c | |
parent | 16008d641670571ff4cd750b416c7caf2d89f467 (diff) | |
parent | 126400033940afb658123517a2e80eb68259fbd7 (diff) |
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (655 commits)
[media] revert patch: HDIC HD29L2 DMB-TH USB2.0 reference design driver
mb86a20s: Add a few more register settings at the init seq
mb86a20s: Group registers into the same line
[media] [PATCH] don't reset the delivery system on DTV_CLEAR
[media] [BUG] it913x-fe fix typo error making SNR levels unstable
[media] cx23885: Query the CX25840 during enum_input for status
[media] cx25840: Add support for g_input_status
[media] rc-videomate-m1f.c Rename to match remote controler name
[media] drivers: media: au0828: Fix dependency for VIDEO_AU0828
[media] convert drivers/media/* to use module_platform_driver()
[media] drivers: video: cx231xx: Fix dependency for VIDEO_CX231XX_DVB
[media] Exynos4 JPEG codec v4l2 driver
[media] doc: v4l: selection: choose pixels as units for selection rectangles
[media] v4l: s5p-tv: mixer: fix setup of VP scaling
[media] v4l: s5p-tv: mixer: add support for selection API
[media] v4l: emulate old crop API using extended crop/compose API
[media] doc: v4l: add documentation for selection API
[media] doc: v4l: add binary images for selection API
[media] v4l: add support for selection api
[media] hd29l2: fix review findings
...
Diffstat (limited to 'drivers/media/video/s5p-fimc/fimc-capture.c')
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-capture.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-capture.c b/drivers/media/video/s5p-fimc/fimc-capture.c index 2cc3b9166724..510cfab477ff 100644 --- a/drivers/media/video/s5p-fimc/fimc-capture.c +++ b/drivers/media/video/s5p-fimc/fimc-capture.c | |||
@@ -63,6 +63,8 @@ static int fimc_init_capture(struct fimc_dev *fimc) | |||
63 | fimc_hw_set_effect(ctx, false); | 63 | fimc_hw_set_effect(ctx, false); |
64 | fimc_hw_set_output_path(ctx); | 64 | fimc_hw_set_output_path(ctx); |
65 | fimc_hw_set_out_dma(ctx); | 65 | fimc_hw_set_out_dma(ctx); |
66 | if (fimc->variant->has_alpha) | ||
67 | fimc_hw_set_rgb_alpha(ctx); | ||
66 | clear_bit(ST_CAPT_APPLY_CFG, &fimc->state); | 68 | clear_bit(ST_CAPT_APPLY_CFG, &fimc->state); |
67 | } | 69 | } |
68 | spin_unlock_irqrestore(&fimc->slock, flags); | 70 | spin_unlock_irqrestore(&fimc->slock, flags); |
@@ -154,6 +156,8 @@ int fimc_capture_config_update(struct fimc_ctx *ctx) | |||
154 | fimc_hw_set_rotation(ctx); | 156 | fimc_hw_set_rotation(ctx); |
155 | fimc_prepare_dma_offset(ctx, &ctx->d_frame); | 157 | fimc_prepare_dma_offset(ctx, &ctx->d_frame); |
156 | fimc_hw_set_out_dma(ctx); | 158 | fimc_hw_set_out_dma(ctx); |
159 | if (fimc->variant->has_alpha) | ||
160 | fimc_hw_set_rgb_alpha(ctx); | ||
157 | clear_bit(ST_CAPT_APPLY_CFG, &fimc->state); | 161 | clear_bit(ST_CAPT_APPLY_CFG, &fimc->state); |
158 | } | 162 | } |
159 | spin_unlock(&ctx->slock); | 163 | spin_unlock(&ctx->slock); |
@@ -812,6 +816,10 @@ static int fimc_capture_set_format(struct fimc_dev *fimc, struct v4l2_format *f) | |||
812 | FIMC_SD_PAD_SOURCE); | 816 | FIMC_SD_PAD_SOURCE); |
813 | if (!ff->fmt) | 817 | if (!ff->fmt) |
814 | return -EINVAL; | 818 | return -EINVAL; |
819 | |||
820 | /* Update RGB Alpha control state and value range */ | ||
821 | fimc_alpha_ctrl_update(ctx); | ||
822 | |||
815 | /* Try to match format at the host and the sensor */ | 823 | /* Try to match format at the host and the sensor */ |
816 | if (!fimc->vid_cap.user_subdev_api) { | 824 | if (!fimc->vid_cap.user_subdev_api) { |
817 | mf->code = ff->fmt->mbus_code; | 825 | mf->code = ff->fmt->mbus_code; |
@@ -1235,6 +1243,9 @@ static int fimc_subdev_set_fmt(struct v4l2_subdev *sd, | |||
1235 | *mf = fmt->format; | 1243 | *mf = fmt->format; |
1236 | return 0; | 1244 | return 0; |
1237 | } | 1245 | } |
1246 | /* Update RGB Alpha control state and value range */ | ||
1247 | fimc_alpha_ctrl_update(ctx); | ||
1248 | |||
1238 | fimc_capture_mark_jpeg_xfer(ctx, fimc_fmt_is_jpeg(ffmt->color)); | 1249 | fimc_capture_mark_jpeg_xfer(ctx, fimc_fmt_is_jpeg(ffmt->color)); |
1239 | 1250 | ||
1240 | ff = fmt->pad == FIMC_SD_PAD_SINK ? | 1251 | ff = fmt->pad == FIMC_SD_PAD_SINK ? |