]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: adv7180: fix frame interval in progressive mode
authorThorsten Schmelzer <tschmelzer@topcon.com>
Tue, 25 Nov 2025 14:29:57 +0000 (15:29 +0100)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Tue, 13 Jan 2026 12:10:07 +0000 (13:10 +0100)
The ADV7280-M may internally convert interlaced video input to
progressive video. If this mode is enabled, the ADV7280-M delivers
progressive video frames at the field rate of 50 fields per second (PAL)
or 60 fields per second (NTSC).

Fix the reported frame interval if progressive video is enabled.

Signed-off-by: Thorsten Schmelzer <tschmelzer@topcon.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/i2c/adv7180.c

index d289cbc2eefd50631141dd23b5337cdde292e055..669b0b3165b1c814ae1ae542f75ca3e21f4ca738 100644 (file)
@@ -507,6 +507,13 @@ static int adv7180_get_frame_interval(struct v4l2_subdev *sd,
                fi->interval.denominator = 25;
        }
 
+       /*
+        * If the de-interlacer is active, the chip produces full video frames
+        * at the field rate.
+        */
+       if (state->field == V4L2_FIELD_NONE)
+               fi->interval.denominator *= 2;
+
        return 0;
 }