diff mbox series

media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE

Message ID 20230211205534.493789-1-niklas.soderlund+renesas@ragnatech.se (mailing list archive)
State New, archived
Headers show
Series media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE | expand

Commit Message

Niklas Söderlund Feb. 11, 2023, 8:55 p.m. UTC
When adding proper support for V4L2_FIELD_ALTERNATE it was missed that
this field format should trigger an interrupt for each field, not just
for the whole frame. Fix this by marking it as progressive in the
capture setup, which will then select the correct interrupt mode.

Tested on both Gen2 and Gen3 with the result of a doubling of the frame
rate for V4L2_FIELD_ALTERNATE. From a PAL video source the frame rate is
now 50, which is expected for alternate field capture.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
 drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Niklas Söderlund March 30, 2023, 2:49 p.m. UTC | #1
Hi Hans,

Gentle ping on this patch.

On 2023-02-11 21:55:34 +0100, Niklas Söderlund wrote:
> When adding proper support for V4L2_FIELD_ALTERNATE it was missed that
> this field format should trigger an interrupt for each field, not just
> for the whole frame. Fix this by marking it as progressive in the
> capture setup, which will then select the correct interrupt mode.
> 
> Tested on both Gen2 and Gen3 with the result of a doubling of the frame
> rate for V4L2_FIELD_ALTERNATE. From a PAL video source the frame rate is
> now 50, which is expected for alternate field capture.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
>  drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-dma.c b/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
> index 23598e22adc7..2a77353f10b5 100644
> --- a/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
> +++ b/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
> @@ -728,12 +728,10 @@ static int rvin_setup(struct rvin_dev *vin)
>  	case V4L2_FIELD_SEQ_TB:
>  	case V4L2_FIELD_SEQ_BT:
>  	case V4L2_FIELD_NONE:
> +	case V4L2_FIELD_ALTERNATE:
>  		vnmc = VNMC_IM_ODD_EVEN;
>  		progressive = true;
>  		break;
> -	case V4L2_FIELD_ALTERNATE:
> -		vnmc = VNMC_IM_ODD_EVEN;
> -		break;
>  	default:
>  		vnmc = VNMC_IM_ODD;
>  		break;
> -- 
> 2.39.1
>
diff mbox series

Patch

diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-dma.c b/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
index 23598e22adc7..2a77353f10b5 100644
--- a/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
@@ -728,12 +728,10 @@  static int rvin_setup(struct rvin_dev *vin)
 	case V4L2_FIELD_SEQ_TB:
 	case V4L2_FIELD_SEQ_BT:
 	case V4L2_FIELD_NONE:
+	case V4L2_FIELD_ALTERNATE:
 		vnmc = VNMC_IM_ODD_EVEN;
 		progressive = true;
 		break;
-	case V4L2_FIELD_ALTERNATE:
-		vnmc = VNMC_IM_ODD_EVEN;
-		break;
 	default:
 		vnmc = VNMC_IM_ODD;
 		break;