mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 20:32:22 +00:00
[media] media: rcar-vin: make V4L2_FIELD_INTERLACED standard dependent
The field V4L2_FIELD_INTERLACED is standard dependent and should not unconditionally be equivalent to V4L2_FIELD_INTERLACED_TB. This patch adds a check to see if the video standard can be obtained and if it's a 60 Hz format. If the condition is met V4L2_FIELD_INTERLACED is treated as V4L2_FIELD_INTERLACED_BT if not as V4L2_FIELD_INTERLACED_TB. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
e0ad7a9b90
commit
7e13a8a45e
@ -131,6 +131,7 @@ static u32 rvin_read(struct rvin_dev *vin, u32 offset)
|
||||
static int rvin_setup(struct rvin_dev *vin)
|
||||
{
|
||||
u32 vnmc, dmr, dmr2, interrupts;
|
||||
v4l2_std_id std;
|
||||
bool progressive = false, output_is_yuv = false, input_is_yuv = false;
|
||||
|
||||
switch (vin->format.field) {
|
||||
@ -141,6 +142,14 @@ static int rvin_setup(struct rvin_dev *vin)
|
||||
vnmc = VNMC_IM_EVEN;
|
||||
break;
|
||||
case V4L2_FIELD_INTERLACED:
|
||||
/* Default to TB */
|
||||
vnmc = VNMC_IM_FULL;
|
||||
/* Use BT if video standard can be read and is 60 Hz format */
|
||||
if (!v4l2_subdev_call(vin_to_source(vin), video, g_std, &std)) {
|
||||
if (std & V4L2_STD_525_60)
|
||||
vnmc = VNMC_IM_FULL | VNMC_FOC;
|
||||
}
|
||||
break;
|
||||
case V4L2_FIELD_INTERLACED_TB:
|
||||
vnmc = VNMC_IM_FULL;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user