[PATCH v8 00/10] Add DRM Driver for HiSilicon Kirin hi6220 SoC
Xinliang Liu
xinliang.liu at linaro.org
Tue Apr 12 18:12:24 PDT 2016
On 13 April 2016 at 00:08, Daniel Vetter <daniel at ffwll.ch> wrote:
> 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, will send pull request to Dave soon.
Best,
-xinliang
>
> 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