OSDN Git Service

drm/msm: Early DRM Driver
authorCamus Wong <camusw@codeaurora.org>
Fri, 26 Oct 2018 06:47:37 +0000 (02:47 -0400)
committerCamus Wong <camusw@codeaurora.org>
Mon, 21 Jan 2019 16:53:41 +0000 (11:53 -0500)
commitd62b1c14062093cdec0a53451257ab779402633c
treee576b22a197e599e889a240bc60c6044abf0c755
parent66843b30eca6e599f7c4751e5740c082c56fd7ba
drm/msm: Early DRM Driver

Add new DRM node to handle early display service. The early DRM
driver is to workaround Andriod display framework long boot time
problem and DRM single master limitation.  The early DRM node provides
display function for early application that is outside Android
framework.  The early application can use early DRM to draw early
UI and bootloader review camera menu function. Android framework will
not use early DRM node.  It will continue to use the main DRM node.

Early DRM is another KMS driver that designed for bootup application.
Early DRM is not based on SDE framework and it will not initialize
display hardware.  Early DRM rely on bootloader to initialize display
hardware and interfaces.  For power and SMMU, early DRM relies on main
DRM to initialize them.  Early DRM only provide limited display
functionality such as RGB buffer display.  Early DRM only expected to
run during bootup time to work with bootloader/early RVC.  When Android
UI is ready, early DRM will handoff all display resource to main DRM.
After that, no application can open early DRM node.

Early DRM is enabled in device tree.  User must specify which display
to enable early DRM and which display pipes are assigned to eDRM.

Change-Id: Ic9f68726677c5db26507caec79c7da1e6d745f44
Signed-off-by: Camus Wong <camusw@codeaurora.org>
21 files changed:
Documentation/devicetree/bindings/display/msm/edrm.txt [new file with mode: 0644]
drivers/gpu/drm/msm/Kconfig
drivers/gpu/drm/msm/Makefile
drivers/gpu/drm/msm/ekms/edrm_connector.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_connector.h [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_crtc.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_crtc.h [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_drv.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_encoder.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_encoder.h [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_kms.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_kms.h [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_plane.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_plane.h [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_splash.c [new file with mode: 0644]
drivers/gpu/drm/msm/ekms/edrm_splash.h [new file with mode: 0644]
drivers/gpu/drm/msm/sde/sde_hw_ctl.c
drivers/gpu/drm/msm/sde/sde_hw_ctl.h
drivers/gpu/drm/msm/sde/sde_kms.c
drivers/gpu/drm/msm/sde/sde_splash.c
drivers/gpu/drm/msm/sde/sde_splash.h