drm/sun4i: tcon: Set RGB DCLK min. divider based on hardware model
authorChen-Yu Tsai <wens@csie.org>
Tue, 7 Jan 2020 07:01:13 +0000 (15:01 +0800)
committerMaxime Ripard <maxime@cerno.tech>
Tue, 7 Jan 2020 14:56:40 +0000 (15:56 +0100)
commit4396393fb96449c56423fb4b351f76e45a6bcaf6
tree77dcc0160b3066c1628a383c208cab97888cc303
parentc4e4fccc5d52d881afaac11d3353265ef4eccb8b
drm/sun4i: tcon: Set RGB DCLK min. divider based on hardware model

In commit 0b8e7bbde5e7 ("drm/sun4i: tcon: Set min division of TCON0_DCLK
to 1.") it was assumed that all TCON variants support a minimum divider
of 1 if only DCLK was used.

However, the oldest generation of hardware only supports minimum divider
of 4 if only DCLK is used. If a divider of 1 was used on this old
hardware, some scrolling artifact would appear. A divider of 2 seemed
OK, but a divider of 3 had artifacts as well.

Set the minimum divider when outputing to parallel RGB based on the
hardware model, with a minimum of 4 for the oldest (A10/A10s/A13/A20)
hardware, and a minimum of 1 for the rest. A value is not set for the
TCON variants lacking channel 0.

This fixes the scrolling artifacts seen on my A13 tablet.

Fixes: 0b8e7bbde5e7 ("drm/sun4i: tcon: Set min division of TCON0_DCLK to 1.")
Cc: <stable@vger.kernel.org> # 5.4.x
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20200107070113.28951-1-wens@kernel.org
drivers/gpu/drm/sun4i/sun4i_tcon.c
drivers/gpu/drm/sun4i/sun4i_tcon.h