diff options
-rw-r--r-- | drivers/media/platform/rcar-vin/rcar-dma.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c index 8397125a8968..01182e0a86f8 100644 --- a/drivers/media/platform/rcar-vin/rcar-dma.c +++ b/drivers/media/platform/rcar-vin/rcar-dma.c | |||
@@ -131,6 +131,7 @@ static u32 rvin_read(struct rvin_dev *vin, u32 offset) | |||
131 | static int rvin_setup(struct rvin_dev *vin) | 131 | static int rvin_setup(struct rvin_dev *vin) |
132 | { | 132 | { |
133 | u32 vnmc, dmr, dmr2, interrupts; | 133 | u32 vnmc, dmr, dmr2, interrupts; |
134 | v4l2_std_id std; | ||
134 | bool progressive = false, output_is_yuv = false, input_is_yuv = false; | 135 | bool progressive = false, output_is_yuv = false, input_is_yuv = false; |
135 | 136 | ||
136 | switch (vin->format.field) { | 137 | switch (vin->format.field) { |
@@ -141,6 +142,14 @@ static int rvin_setup(struct rvin_dev *vin) | |||
141 | vnmc = VNMC_IM_EVEN; | 142 | vnmc = VNMC_IM_EVEN; |
142 | break; | 143 | break; |
143 | case V4L2_FIELD_INTERLACED: | 144 | case V4L2_FIELD_INTERLACED: |
145 | /* Default to TB */ | ||
146 | vnmc = VNMC_IM_FULL; | ||
147 | /* Use BT if video standard can be read and is 60 Hz format */ | ||
148 | if (!v4l2_subdev_call(vin_to_source(vin), video, g_std, &std)) { | ||
149 | if (std & V4L2_STD_525_60) | ||
150 | vnmc = VNMC_IM_FULL | VNMC_FOC; | ||
151 | } | ||
152 | break; | ||
144 | case V4L2_FIELD_INTERLACED_TB: | 153 | case V4L2_FIELD_INTERLACED_TB: |
145 | vnmc = VNMC_IM_FULL; | 154 | vnmc = VNMC_IM_FULL; |
146 | break; | 155 | break; |