lkml.org 
[lkml]   [2020]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
    Date
    From: Laurentiu Palcu <laurentiu.palcu@nxp.com>

    Hi,

    This patchset adds initial DCSS support for iMX8MQ chip. Initial support
    includes only graphics plane support (no video planes), no HDR10 capabilities,
    no graphics decompression (only linear, tiled and super-tiled buffers allowed).

    Support for the rest of the features will be added incrementally, in subsequent
    patches.

    The patchset was tested with both HDP driver (in the downstream tree) and the upstream
    MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).

    Thanks,
    Laurentiu

    Changes in v5:
    * Rebased to latest;
    * Took out component framework support and made it a separate patch so
    that people can still test with HDP driver, which makes use of it.
    But the idea is to get rid of it once HDP driver's next versions
    will remove component framework as well;
    * Slight improvement to modesetting: avoid cutting off the pixel clock
    if the new mode and the old one are equal. Also, in this case, is
    not necessary to wait for DTG to shut off. This would allow to switch
    from 8b RGB to 12b YUV422, for example, with no interruptions (at least
    from DCSS point of view);
    * Do not fire off CTXLD when going to suspend, unless it still has
    entries that need to be committed to DCSS;
    * Addressed Rob's comments on bindings;

    Changes in v4:
    * Addressed Lucas and Philipp's comments:
    * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
    * Removed usage of devm_ functions since I'm already doing all the
    clean-up in the submodules_deinit();
    * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
    * Removed en_completion variable from dcss_crtc since this was
    introduced mainly to avoid vblank timeout warnings which were fixed
    by arming the vblank event in flush() instead of begin();
    * Removed clks_on and irq_enabled flags since all the calls to
    enabling/disabling clocks and interrupts were balanced;
    * Removed the custom atomic_commit callback and used the DRM core
    helper and, in the process, got rid of a workqueue that wasn't
    necessary anymore;
    * Fixed some minor DT binding issues flagged by Philipp;
    * Some other minor changes suggested by Lucas;
    * Removed YUV formats from the supported formats as these cannot work
    without the HDR10 module CSCs and LUTs. Will add them back when I
    will add support for video planes;

    Changes in v3:
    * rebased to latest linux-next and made it compile as drmP.h was
    removed;
    * removed the patch adding the VIDEO2_PLL clock. It's already applied;
    * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
    * fixed a a spurious hang reported by Lukas Hartmann and encountered
    by me several times;
    * mask DPR and DTG interrupts by default, as they may come enabled from
    U-boot;

    Changes in v2:
    * Removed '0x' in node's unit-address both in DT and yaml;
    * Made the address region size lowercase, to be consistent;
    * Removed some left-over references to P010;
    * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
    issues reported by kbuild for other architectures;

    Laurentiu Palcu (5):
    drm/imx: compile imx directory by default
    drm/imx: Add initial support for DCSS on iMX8MQ
    drm/imx/dcss: add component framework functionality
    dt-bindings: display: imx: add bindings for DCSS
    arm64: dts: imx8mq: add DCSS node

    .../bindings/display/imx/nxp,imx8mq-dcss.yaml | 84 ++
    arch/arm64/boot/dts/freescale/imx8mq.dtsi | 23 +
    drivers/gpu/drm/Makefile | 2 +-
    drivers/gpu/drm/imx/Kconfig | 2 +
    drivers/gpu/drm/imx/Makefile | 1 +
    drivers/gpu/drm/imx/dcss/Kconfig | 9 +
    drivers/gpu/drm/imx/dcss/Makefile | 6 +
    drivers/gpu/drm/imx/dcss/dcss-blkctl.c | 70 ++
    drivers/gpu/drm/imx/dcss/dcss-crtc.c | 219 +++++
    drivers/gpu/drm/imx/dcss/dcss-ctxld.c | 424 +++++++++
    drivers/gpu/drm/imx/dcss/dcss-dev.c | 314 +++++++
    drivers/gpu/drm/imx/dcss/dcss-dev.h | 177 ++++
    drivers/gpu/drm/imx/dcss/dcss-dpr.c | 562 ++++++++++++
    drivers/gpu/drm/imx/dcss/dcss-drv.c | 183 ++++
    drivers/gpu/drm/imx/dcss/dcss-dtg.c | 409 +++++++++
    drivers/gpu/drm/imx/dcss/dcss-kms.c | 185 ++++
    drivers/gpu/drm/imx/dcss/dcss-kms.h | 43 +
    drivers/gpu/drm/imx/dcss/dcss-plane.c | 405 +++++++++
    drivers/gpu/drm/imx/dcss/dcss-scaler.c | 826 ++++++++++++++++++
    drivers/gpu/drm/imx/dcss/dcss-ss.c | 180 ++++
    20 files changed, 4123 insertions(+), 1 deletion(-)
    create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
    create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
    create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
    create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c

    --
    2.23.0

    \
     
     \ /
      Last update: 2020-07-09 18:48    [W:2.907 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site