[PATCH v4 0/3] Add support for ARM Mali Display Processors
From: Liviu Dudau
Date: Mon Jun 13 2016 - 10:20:36 EST
Hello,
This is the fourth revision of the driver for the Mali Display Processors (Mali DP).
Currently, the driver supports the Display Engine found in Mali DP500, DP550
and DP650, with up to 3 planes that can be rotated by the hardware. There are
features that the hardware supports that are not currently implemented in the
driver, but in the current form it is capable of supporting X11 using fbdev
emulation as well as Wayland with pixman rendering.
A copy of the patchset has been published here:
git://linux-arm.org/linux-ld.git for-upstream/mali-dp
After Daniel's non-blocking series gets into linux-next I plan to add that branch
as well, in preparation for v4.8.
Changes in v4:
- Removed check for active crtc in malidp_crtc_disable() as this was unnecessary
- Moved the dispatching of state events from malidp_crtc_atomic_flush() into the
malidp_atomic_commit_hw_done() function where we can guarantee the GO status bit
has been raised by the HW.
- Used gem_free_object_unlocked hook instead of gem_free_object one.
- Introduce a malidp_state structure to track per plane->state data related to the
rotation memory usage so as not to break the TEST_ONLY atomic commits.
Changes in v3:
- rebased on top of Daniel Vetter's drm/stuff branch that implements non-blocking
atomic commits.
- Addressed comments from Emil Velikov's review
- Re-ordered the malidp_hw_regmap struct to eliminate the un-needed padding
- Lots more functions made static if they are not shared
- Planes are now allocated with vanilla kzalloc() rather than devm_kzalloc() and
freed in malidp_de_planes_destroy()
Changes in v2 vs initial RFC:
- merged malidp_crtc_mode_set_nofb into malidp_crtc_enable and removed the
mode_set hooks. This removed the need for a custom destroy hook as well,
switched to using drm_crtc_cleanup for that.
- implemented proper async support for atomic page flip.
- removed un-necessary checks and empty hooks.
- clarifications in the bindings document for the use of interrupt-names.
- removed the MALIDP_HW_FEATURE_DS (display split) from this version pending
further development
- Renamed module from malidp to mali-dp.
- Added MAINTAINERS update
Many thanks,
Liviu
Liviu Dudau (3):
dt/bindings: display: Add DT bindings for Mali Display Processors.
drm/arm: Add support for Mali Display Processors
MAINTAINERS: Add entry for Mali-DP driver
.../devicetree/bindings/display/arm,malidp.txt | 65 ++
MAINTAINERS | 10 +-
drivers/gpu/drm/arm/Kconfig | 16 +
drivers/gpu/drm/arm/Makefile | 2 +
drivers/gpu/drm/arm/malidp_crtc.c | 214 +++++++
drivers/gpu/drm/arm/malidp_drv.c | 512 +++++++++++++++
drivers/gpu/drm/arm/malidp_drv.h | 54 ++
drivers/gpu/drm/arm/malidp_hw.c | 691 +++++++++++++++++++++
drivers/gpu/drm/arm/malidp_hw.h | 241 +++++++
drivers/gpu/drm/arm/malidp_planes.c | 298 +++++++++
drivers/gpu/drm/arm/malidp_regs.h | 172 +++++
11 files changed, 2274 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/display/arm,malidp.txt
create mode 100644 drivers/gpu/drm/arm/malidp_crtc.c
create mode 100644 drivers/gpu/drm/arm/malidp_drv.c
create mode 100644 drivers/gpu/drm/arm/malidp_drv.h
create mode 100644 drivers/gpu/drm/arm/malidp_hw.c
create mode 100644 drivers/gpu/drm/arm/malidp_hw.h
create mode 100644 drivers/gpu/drm/arm/malidp_planes.c
create mode 100644 drivers/gpu/drm/arm/malidp_regs.h
--
2.8.2