[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