]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/sun4i: tcon: Set min division of TCON0_DCLK to 1.
authorYunhao Tian <t123yh@outlook.com>
Wed, 13 Nov 2019 13:27:25 +0000 (13:27 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Dec 2019 07:48:40 +0000 (08:48 +0100)
[ Upstream commit 0b8e7bbde5e7e2c419567e1ee29587dae3b78ee3 ]

The datasheet of V3s (and various other chips) wrote
that TCON0_DCLK_DIV can be >= 1 if only dclk is used,
and must >= 6 if dclk1 or dclk2 is used. As currently
neither dclk1 nor dclk2 is used (no writes to these
bits), let's set minimal division to 1.

If this minimal division is 6, some common dot clock
frequencies can't be produced (e.g. 30MHz will not be
possible and will fallback to 25MHz), which is
obviously not an expected behaviour.

Signed-off-by: Yunhao Tian <t123yh@outlook.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/linux-arm-kernel/MN2PR08MB57905AD8A00C08DA219377C989760@MN2PR08MB5790.namprd08.prod.outlook.com/
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/sun4i/sun4i_tcon.c

index df0cc8f46d7bdcc63578b30e0f97cb2f1e36f409..3491c4c7659e46bc05b9dff53bdb2374adcf6e22 100644 (file)
@@ -486,7 +486,7 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
 
        WARN_ON(!tcon->quirks->has_channel_0);
 
-       tcon->dclk_min_div = 6;
+       tcon->dclk_min_div = 1;
        tcon->dclk_max_div = 127;
        sun4i_tcon0_mode_set_common(tcon, mode);