summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorBogdan Togorean <bogdan.togorean@analog.com>2023-07-19 09:01:43 +0300
committerRobert Foss <rfoss@kernel.org>2023-07-21 13:37:18 +0200
commitd281eeaa4de2636ff0c8e6ae387bb07b50e5fcbb (patch)
tree38805d237169b43fcfc2650e88410d9e8bcf32f1 /drivers/gpu/drm
parent722d4f06e560ae8eee84fbd63035356592a37dd1 (diff)
downloadlinux-d281eeaa4de2636ff0c8e6ae387bb07b50e5fcbb.tar.gz
linux-d281eeaa4de2636ff0c8e6ae387bb07b50e5fcbb.tar.bz2
linux-d281eeaa4de2636ff0c8e6ae387bb07b50e5fcbb.zip
drm: adv7511: Fix low refresh rate register for ADV7533/5
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
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/bridge/adv7511/adv7511_drv.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index b9957da0f55a..2611afd2c1c1 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -786,8 +786,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));