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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel