Jernej Skrabec
bb1d2ddee5
drm/sun4i: layer: replace mixer with layer struct
...
This allows to almost completely decouple layer code from mixer. This is
important for DE33.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org >
Tested-by: Ryan Walklin <ryan@testtoast.com >
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Link: https://patch.msgid.link/20251104180942.61538-29-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org >
2025-11-12 17:18:25 +08:00
Jernej Skrabec
d1fe263942
drm/sun4i: mixer: split out layer config
...
Later special plane only driver for DE33 will provide separate
configuration. This change will also help layer driver migrate away from
mixer structure.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org >
Tested-by: Ryan Walklin <ryan@testtoast.com >
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Link: https://patch.msgid.link/20251104180942.61538-28-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org >
2025-11-12 17:18:25 +08:00
Jernej Skrabec
5a96ae801f
drm/sun4i: mixer: Add quirk for number of VI scalers
...
On DE2 and DE3, UI scalers are located right after VI scalers. So in
order to calculate proper UI scaler base address, number of VI scalers
must be known. In practice, it is same as number of VI channels, but it
doesn't need to be.
Let's make a quirk for this number. Code for configuring channels and
associated functions won't have access to vi_num quirk anymore after
rework for independent planes.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org >
Tested-by: Ryan Walklin <ryan@testtoast.com >
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Link: https://patch.msgid.link/20251104180942.61538-27-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org >
2025-11-12 17:18:25 +08:00
Jernej Skrabec
a23e3402f6
drm/sun4i: ui_scaler: drop sanity checks
...
They can't be triggered if mixer configuration is properly specified in
quirks. Additionally, number of VI channels won't be available in future
due to rework for DE33 support.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org >
Tested-by: Ryan Walklin <ryan@testtoast.com >
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Link: https://patch.msgid.link/20251104180942.61538-26-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org >
2025-11-12 17:18:24 +08:00
Jernej Skrabec
37aba59f5f
drm/sun4i: layers: Make regmap for layers configurable
...
Till DE33, there were no reason to decouple registers from mixer.
However, with future new plane driver, this will be necessary.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org >
Tested-by: Ryan Walklin <ryan@testtoast.com >
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Link: https://patch.msgid.link/20251104180942.61538-21-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org >
2025-11-12 17:18:23 +08:00
Jernej Skrabec
1ebec02bba
drm/sun4i: ui_scaler: use layer instead of mixer for args
...
Layer related peripherals should take layer struct as a input. This
looks cleaner and also necessary for proper DE33 support later.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org >
Tested-by: Ryan Walklin <ryan@testtoast.com >
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Link: https://patch.msgid.link/20251104180942.61538-19-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org >
2025-11-12 17:18:23 +08:00
Jernej Skrabec
81cf7c6879
drm: sun4i: de2/de3: add mixer version enum
...
The Allwinner DE2 and DE3 display engine mixers are currently identified
by a simple boolean flag. This will not scale to support additional DE
variants.
Convert the boolean flag to an enum.
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Signed-off-by: Ryan Walklin <ryan@testtoast.com >
Reviewed-by: Andre Przywara <andre.przywara@arm.com >
Acked-by: Maxime Ripard <mripard@kernel.org >
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Link: https://lore.kernel.org/r/20250528092431.28825-2-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-06-02 09:57:17 +02:00
Jernej Skrabec
c50519e6db
drm/sun4i: Add basic support for DE3
...
Display Engine 3 is an upgrade of DE2 with new features like support for
10 bit color formats and support for AFBC.
Most of DE2 code works with DE3, except some small details.
Implement basic support for DE3. Support for 10 bit colort formats and
AFBC, among others missing features, will be added later.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/260238/
2018-11-05 11:48:23 +01:00
Jernej Skrabec
4b09c07383
drm/sun4i: Rework DE2 register defines
...
Most, if not all, registers found in DE2 still exists in DE3. However,
units are on different base addresses.
To prepare for addition of DE3 support, registers macros are reworked so
they take base address as parameter.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
[rebased]
Signed-off-by: Icenowy Zheng <icenowy@aosc.io >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20181104182705.18047-10-jernej.skrabec@siol.net
2018-11-05 10:34:43 +01:00
Jernej Skrabec
b862a648de
drm/sun4i: Add support for HW scaling to DE2
...
Scaling is currently supported only for RGB framebuffers
Coefficients and algorithm which coefficients to select are taken
from BSP driver.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171201060550.10392-22-jernej.skrabec@siol.net
2017-12-05 13:22:44 +01:00