]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm: adv7511: Fix low refresh rate register for ADV7533/5
authorBogdan Togorean <bogdan.togorean@analog.com>
Wed, 19 Jul 2023 06:01:43 +0000 (09:01 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Sep 2023 08:46:56 +0000 (10:46 +0200)
[ Upstream commit d281eeaa4de2636ff0c8e6ae387bb07b50e5fcbb ]

For ADV7533 and ADV7535 low refresh rate is selected using
bits [3:2] of 0x4a main register.
So depending on ADV model write 0xfb or 0x4a register.

Fixes: 2437e7cd88e8 ("drm/bridge: adv7533: Initial support for ADV7533")
Reviewed-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Signed-off-by: Bogdan Togorean <bogdan.togorean@analog.com>
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230719060143.63649-1-alex@shruggie.ro
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c

index f5195d9841f86ed0e853d2aed7feb6abad81ce3d..687c68e0a59d0845c6a371aef925dd851c754540 100644 (file)
@@ -744,8 +744,13 @@ static void adv7511_mode_set(struct adv7511 *adv7511,
        else
                low_refresh_rate = ADV7511_LOW_REFRESH_RATE_NONE;
 
-       regmap_update_bits(adv7511->regmap, 0xfb,
-               0x6, low_refresh_rate << 1);
+       if (adv7511->type == ADV7511)
+               regmap_update_bits(adv7511->regmap, 0xfb,
+                                  0x6, low_refresh_rate << 1);
+       else
+               regmap_update_bits(adv7511->regmap, 0x4a,
+                                  0xc, low_refresh_rate << 2);
+
        regmap_update_bits(adv7511->regmap, 0x17,
                0x60, (vsync_polarity << 6) | (hsync_polarity << 5));