[PATCH v8 00/10] Add DRM Driver for HiSilicon Kirin hi6220 SoC
Daniel Vetter
daniel at ffwll.ch
Tue Apr 12 09:08:59 PDT 2016
On Mon, Apr 11, 2016 at 04:55:33PM +0800, Xinliang Liu wrote:
> This patch set adds a new drm driver for HiSilicon Kirin hi6220 SoC.
> Current testing and support board is Hikey board which is one of Linaro
> 96boards. It is an arm64 open source board. For more information about
> this board, please access https://www.96boards.org.
>
> Hardware Detail
> ---------------
> The display subsystem of Hi6220 SoC is shown as bellow:
> +-----+ +----------+ +-----+ +-------------+
> | | | | | | | |
> | FB |------>| ADE |---->| DSI |---->| External |
> | | | | | | | HDMI/panel |
> +-----+ +----------+ +-----+ +-------------+
>
> - ADE(Advanced Display Engine) is the display controller. It contains 7
> channels, 3 overlay compositors and a LDI.
> - A channel looks like: DMA-->clip-->scale-->ctrans(or called csc).
> - Overlay compositor is response to compose planes which come from 7
> channels and pass composed image to LDI.
> - LDI is response to generate timings and RGB data stream.
> - DSI converts the RGB data stream from ADE to DSI packets.
> - External HDMI/panel module is connected with DSI bus. Now Hikey use a
> ADI's ADV7533 external HDMI chip.
I haven't looked at the details again, but seems it's all ready. Please
create a pull request for the entire pile against drm-next and submit it
to Dave Airlie.
Thanks, Daniel
>
> Change History
> -------------
> Changes in v8:
> - Rebase to v4.6-rc3
>
> Changes in v7:
> - Add config.mutex protection when accessing mode_config.connector_list.
> - Clean up match data getting of kirin_drm_drv.c.
> - A few Regs define clean up and typo fixs for ADE crtc and DSI encoder
> driver.
> - Fix vblank irq flag "DRIVER_IRQF_SHARED" to "IRQF_SHARED".
>
> Changes in v6:
> - Cleanup values part of reg and clocks relevant properties.
> - Change "pclk_dsi" clock name to "pclk".
>
> Changes in v5:
> - Remove endpoint unit address of dsi output port.
> - Use syscon to access ADE media NOC QoS registers instread of directly
> writing registers.
> - Use reset controller to reset ADE instead of directly writing registers.
>
> Changes in v4:
> - Describe more specific of clocks and ports of binding docs.
> - Fix indentation of binding docs.
>
> Changes in v3:
> - Move and rename all the files to kirin sub-directory.
> So that we could separate different seires SoCs' driver.
> - Make ade as the drm master node.
> - Replace drm_platform_init, load, unload implementation.
> - Use assigned-clocks to set clock rate.
> - Use ports to connect display relevant nodes.
> - Rename hisi_drm_dsi.c to dw_drm_dsi.c
> - Make encoder type as DRM_MODE_ENCODER_DSI.
> - A few cleanup on regs and code.
>
> Changes in v2:
> - Remove abtraction layer of plane/crtc/encoder/connector.
> - Refactor atomic implementation according to Daniel Vetter's guides:
> http://blog.ffwll.ch/2014/11/atomic-modeset-support-for-kms-drivers.html
> http://blog.ffwll.ch/2015/09/xdc-2015-atomic-modesetting-for-drivers.html
> http://blog.ffwll.ch/2015/08/atomic-modesetting-design-overview.html
> - Use bridge instead of slave encoder to connect external HDMI.
> - Move dt binding docs to bindings/display/hisilicon directory.
>
> Xinliang Liu (10):
> drm/hisilicon: Add device tree binding for hi6220 display subsystem
> drm/hisilicon: Add hisilicon kirin drm master driver
> drm/hisilicon: Add crtc driver for ADE
> drm/hisilicon: Add plane driver for ADE
> drm/hisilicon: Add vblank driver for ADE
> drm/hisilicon: Add cma fbdev and hotplug
> drm/hisilicon: Add designware dsi encoder driver
> drm/hisilicon: Add designware dsi host driver
> drm/hisilicon: Add support for external bridge
> MAINTAINERS: Add maintainer for hisilicon DRM driver
>
> .../bindings/display/hisilicon/dw-dsi.txt | 72 ++
> .../bindings/display/hisilicon/hisi-ade.txt | 64 ++
> MAINTAINERS | 10 +
> drivers/gpu/drm/Kconfig | 2 +
> drivers/gpu/drm/Makefile | 1 +
> drivers/gpu/drm/hisilicon/Kconfig | 5 +
> drivers/gpu/drm/hisilicon/Makefile | 5 +
> drivers/gpu/drm/hisilicon/kirin/Kconfig | 10 +
> drivers/gpu/drm/hisilicon/kirin/Makefile | 5 +
> drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 857 ++++++++++++++++
> drivers/gpu/drm/hisilicon/kirin/dw_dsi_reg.h | 103 ++
> drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h | 230 +++++
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1057 ++++++++++++++++++++
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 367 +++++++
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h | 31 +
> 15 files changed, 2819 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/hisilicon/dw-dsi.txt
> create mode 100644 Documentation/devicetree/bindings/display/hisilicon/hisi-ade.txt
> create mode 100644 drivers/gpu/drm/hisilicon/Kconfig
> create mode 100644 drivers/gpu/drm/hisilicon/Makefile
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/Kconfig
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/Makefile
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/dw_dsi_reg.h
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
> create mode 100644 drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
>
> --
> 2.8.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the linux-arm-kernel
mailing list