Message ID | 20160802145107.24829-2-niklas.soderlund+renesas@ragnatech.se (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/02/2016 05:51 PM, Niklas Söderlund wrote: > 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 meet V4L2_FIELD_INTERLACED s/meet/met/. > 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> > --- > drivers/media/platform/rcar-vin/rcar-dma.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c > index 496aa97..4063775 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) > 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,13 @@ 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; I think you either need to fold 2 *if* statements, or add {} in the 1st one. [...] MBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c index 496aa97..4063775 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) 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,13 @@ 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;
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 meet 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> --- drivers/media/platform/rcar-vin/rcar-dma.c | 8 ++++++++ 1 file changed, 8 insertions(+)