]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: cx231xx: Fix AGC levels for NTSC-M
authorBradford Love <brad@nextdimension.cc>
Thu, 12 Mar 2026 21:35:25 +0000 (16:35 -0500)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Tue, 17 Mar 2026 09:50:19 +0000 (10:50 +0100)
Windows uses the implemented command sequence to set AGC for NTSC-M.
The previous Linux values work, mostly, but on some embedded
platforms NTSC-M is very unstable. The Windows default values
completely fix any signal stability issues and produce a clear image.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/usb/cx231xx/cx231xx-avcore.c

index 1cfec76b72f3787ef37f266fb5c001584dab181b..0a5c635da0406e0105613f12eb690bb005677f65 100644 (file)
@@ -2027,10 +2027,9 @@ int cx231xx_dif_set_standard(struct cx231xx *dev, u32 standard)
                status = vid_blk_write_word(dev, DIF_SRC_GAIN_CONTROL,
                                                0x000035e8);
 
-               status = vid_blk_write_word(dev, DIF_AGC_CTRL_IF, 0xC2262600);
-               status = vid_blk_write_word(dev, DIF_AGC_CTRL_INT,
-                                               0xC2262600);
-               status = vid_blk_write_word(dev, DIF_AGC_CTRL_RF, 0xC2262600);
+               status = vid_blk_write_word(dev, DIF_AGC_CTRL_IF,  0xC2262600);
+               status = vid_blk_write_word(dev, DIF_AGC_CTRL_INT, 0xC2260000);
+               status = vid_blk_write_word(dev, DIF_AGC_CTRL_RF,  0xC2260000);
 
                /* Save the Spec Inversion value */
                dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;