| From 77439850c5298d53df9a166be906e9fd9a84e815 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 19 Jul 2023 09:01:43 +0300 |
| Subject: drm: adv7511: Fix low refresh rate register for ADV7533/5 |
| |
| From: Bogdan Togorean <bogdan.togorean@analog.com> |
| |
| [ 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 | 9 +++++++-- |
| 1 file 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 ddceafa7b6374..8d6c93296503e 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)); |
| |
| -- |
| 2.40.1 |
| |