lkml.org 
[lkml]   [2020]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 0/6] drm/imx: Introduce i.MX8qm/qxp DPU DRM
    Date
    Hi,


    This patch set introduces i.MX8qm/qxp Display Processing Unit(DPU) DRM support.

    DPU is comprised of a blit engine for 2D graphics, a display controller
    and a command sequencer. Outside of DPU, optional prefetch engines can
    fetch data from memory prior to some DPU fetchunits of blit engine and
    display controller. The pre-fetchers support linear formats and Vivante
    GPU tile formats.

    Reference manual can be found at:
    https://www.nxp.com/webapp/Download?colCode=IMX8DQXPRM


    This patch set adds kernel modesetting support for the display controller part.
    It supports two CRTCs per display controller, several planes, prefetch
    engines and some properties of CRTC and plane. Currently, the registers of
    the controller is accessed without command sequencer involved, instead just by
    using CPU. DRM connectors would be created from the DPU KMS driver.


    If people want to try this series with i.MX8qxp, clock patches can be found at:
    https://www.spinics.net/lists/arm-kernel/msg859763.html

    and, power domain patches have already landed in Shawn's
    i.MX for-next git branch.

    This version drops the device tree patches because we'll use new dt binding
    way to support i.MX8qm/qxp clocks. It depends on the below series to do basic
    conversions for the platforms which has not landed yet:
    https://www.spinics.net/lists/linux-mmc/msg61965.html


    I will send other patch sets to add downstream bridges(embedded in i.MX8qxp)
    to support LVDS displays.

    A brief look at the pipe:
    prefetch eng -> DPU -> pixel combiner -> pixel link -> pixel to DPI(pxl2dpi) ->
    LVDS display bridge(LDB)

    Patch 1 ~ 3 add dt-bindings for DPU and prefetch engines.
    Patch 4 is a minor improvement of a macro to suppress warning as the KMS driver
    uses it.
    Patch 5 introduces the DPU DRM support.
    Patch 6 updates MAINTAINERS.

    Welcome comments, thanks.

    v1->v2:
    * Test this patch set also with i.MX8qm LVDS displays.
    * Drop the device tree patches because we'll use new dt binding way to
    support i.MX8qm/qxp clocks. This depends on a not-yet-landed patch set
    to do basic conversions for the platforms.
    * Fix dt binding yamllint warnings.
    * Require bypass0 and bypass1 clocks for both i.MX8qxp and i.MX8qm in DPU's
    dt binding documentation.
    * Use new dt binding way to add clocks in the dt binding examples.
    * Address several comments from Laurentiu on the DPU DRM patch.

    Liu Ying (6):
    dt-bindings: display: imx: Add i.MX8qxp/qm DPU binding
    dt-bindings: display: imx: Add i.MX8qxp/qm PRG binding
    dt-bindings: display: imx: Add i.MX8qxp/qm DPR channel binding
    drm/atomic: Avoid unused-but-set-variable warning on
    for_each_old_plane_in_state
    drm/imx: Introduce i.MX8qm/qxp DPU DRM
    MAINTAINERS: add maintainer for i.MX8qxp DPU DRM driver

    .../bindings/display/imx/fsl,imx8qxp-dprc.yaml | 87 ++
    .../bindings/display/imx/fsl,imx8qxp-dpu.yaml | 416 +++++++++
    .../bindings/display/imx/fsl,imx8qxp-prg.yaml | 60 ++
    MAINTAINERS | 9 +
    drivers/gpu/drm/imx/Kconfig | 1 +
    drivers/gpu/drm/imx/Makefile | 1 +
    drivers/gpu/drm/imx/dpu/Kconfig | 10 +
    drivers/gpu/drm/imx/dpu/Makefile | 10 +
    drivers/gpu/drm/imx/dpu/dpu-constframe.c | 170 ++++
    drivers/gpu/drm/imx/dpu/dpu-core.c | 881 ++++++++++++++++++++
    drivers/gpu/drm/imx/dpu/dpu-crtc.c | 926 +++++++++++++++++++++
    drivers/gpu/drm/imx/dpu/dpu-crtc.h | 62 ++
    drivers/gpu/drm/imx/dpu/dpu-disengcfg.c | 114 +++
    drivers/gpu/drm/imx/dpu/dpu-dprc.c | 721 ++++++++++++++++
    drivers/gpu/drm/imx/dpu/dpu-dprc.h | 40 +
    drivers/gpu/drm/imx/dpu/dpu-drv.c | 297 +++++++
    drivers/gpu/drm/imx/dpu/dpu-drv.h | 28 +
    drivers/gpu/drm/imx/dpu/dpu-extdst.c | 296 +++++++
    drivers/gpu/drm/imx/dpu/dpu-fetchdecode.c | 291 +++++++
    drivers/gpu/drm/imx/dpu/dpu-fetcheco.c | 221 +++++
    drivers/gpu/drm/imx/dpu/dpu-fetchlayer.c | 151 ++++
    drivers/gpu/drm/imx/dpu/dpu-fetchunit.c | 609 ++++++++++++++
    drivers/gpu/drm/imx/dpu/dpu-fetchunit.h | 191 +++++
    drivers/gpu/drm/imx/dpu/dpu-fetchwarp.c | 247 ++++++
    drivers/gpu/drm/imx/dpu/dpu-framegen.c | 392 +++++++++
    drivers/gpu/drm/imx/dpu/dpu-gammacor.c | 220 +++++
    drivers/gpu/drm/imx/dpu/dpu-hscaler.c | 272 ++++++
    drivers/gpu/drm/imx/dpu/dpu-kms.c | 543 ++++++++++++
    drivers/gpu/drm/imx/dpu/dpu-kms.h | 23 +
    drivers/gpu/drm/imx/dpu/dpu-layerblend.c | 345 ++++++++
    drivers/gpu/drm/imx/dpu/dpu-plane.c | 703 ++++++++++++++++
    drivers/gpu/drm/imx/dpu/dpu-plane.h | 56 ++
    drivers/gpu/drm/imx/dpu/dpu-prg.c | 433 ++++++++++
    drivers/gpu/drm/imx/dpu/dpu-prg.h | 45 +
    drivers/gpu/drm/imx/dpu/dpu-prv.h | 203 +++++
    drivers/gpu/drm/imx/dpu/dpu-tcon.c | 249 ++++++
    drivers/gpu/drm/imx/dpu/dpu-vscaler.c | 305 +++++++
    drivers/gpu/drm/imx/dpu/dpu.h | 389 +++++++++
    include/drm/drm_atomic.h | 4 +-
    39 files changed, 10020 insertions(+), 1 deletion(-)
    create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dprc.yaml
    create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dpu.yaml
    create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-prg.yaml
    create mode 100644 drivers/gpu/drm/imx/dpu/Kconfig
    create mode 100644 drivers/gpu/drm/imx/dpu/Makefile
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-constframe.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-core.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-crtc.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-crtc.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-disengcfg.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-dprc.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-dprc.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-drv.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-drv.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-extdst.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchdecode.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetcheco.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchlayer.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchunit.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchunit.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchwarp.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-framegen.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-gammacor.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-hscaler.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-kms.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-kms.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-layerblend.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-plane.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-plane.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-prg.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-prg.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-prv.h
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-tcon.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu-vscaler.c
    create mode 100644 drivers/gpu/drm/imx/dpu/dpu.h

    --
    2.7.4

    \
     
     \ /
      Last update: 2020-12-03 04:16    [W:3.939 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site