On Tuesday, August 22, 2023 4:06 PM Maxime <mripard@xxxxxxxxxx> wrote: > > Hi, Hi, > > On Tue, Aug 22, 2023 at 05:36:14AM +0000, Ying Liu wrote: > > Hi, > > > > > On Friday, January 6, 2023 1:50 PM Ying Liu wrote: > > > > > > Hi, > > > > > > > > > This is the v14 series to introduce 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. > > > > > > > > > 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. > > > > > > v13->v14: > > > * Rebase the patch series to the latest drm-misc-next branch(v6.1-rc6 > based). > > > * Include drm_fbdev_generic.h in dpu_drv.c due to the rebase. > > > * Fix dpu drm driver suspend/resume by properly get drm device through > > > dev_get_drvdata(). > > > * Use pm_ptr() macro for dpu core driver PM operations. > > > * Use pm_sleep_ptr() macro for dpu drm driver PM operations. > > > * Use DEFINE_SIMPLE_DEV_PM_OPS() macro to define dpu drm driver > PM > > > operations, > > > instead of SIMPLE_DEV_PM_OPS(). > > > * Update year of Copyright. > > > * Add SoC series name 'i.MX8'/'IMX8'/'imx8' to dpu driver module > decription, > > > Kconfig name, dpu driver names and dpu driver object name. > > > > > > v12->v13: > > > * Drop 'drm->irq_enabled = true;' from patch 5/6 to fix a potential build > > > break reported by 'kernel test robot <lkp@xxxxxxxxx>'. drm- > >irq_enabled > > > should not be used by imx-dpu drm as it is only used by legacy drivers > > > with userspace modesetting. > > > > > > v11->v12: > > > * Rebase the series upon v6.1-rc1. > > > * Minor update on Kconfigs, struct names and macro names for patch 5/6 > > > due to the rebase. > > > > > > v10->v11: > > > * Rebase the series upon v6.0-rc1. > > > * Include drm_blend.h and drm_framebuffer.h in dpu-kms.c and dpu- > > > plane.c > > > to fix build errors due to the rebase. > > > * Fix a checkpatch warning for dpu-crtc.c. > > > * Properly use dev_err_probe() to return it's return value directly where > > > possible. > > > > > > v9->v10: > > > * Rebase the series upon v5.18-rc1. > > > * Make 'checkpatch.pl --strict' happier for patch 5/6. > > > * Add Rob's R-b tag on patch 3/6. > > > * Add Laurentiu's R-b tag on patch 5/6. > > > * Add Laurentiu's A-b tag on patch 6/6. > > > > > > v8->v9: > > > * Use drm_atomic_get_new_plane_state() in dpu_plane_atomic_update() > > > for > > > patch 5/6. (Laurentiu) > > > * Drop getting DPU DT alias ID for patch 5/6, as it is unused. > > > * Reference 'interrupts-extended' schema instead of 'interrupts' for patch > > > 3/6 > > > to require an additional DPR interrupt(r_rtram_stall) because the > reference > > > manual does mention it, though the driver doesn't get/use it for now. > > > Reference 'interrupt-names' schema to define the two DPR interrupt > names > > > - > > > 'dpr_wrap' and 'r_rtram_stall'. Accordingly, patch 5/6 gets the > 'dpr_wrap' > > > interrupt by name. > > > * Drop Rob's R-b tag on patch 3/6, as review is needed. > > > > > > v7->v8: > > > * Rebase this series up onto the latest drm-misc-next branch, due to DRM > > > plane > > > helper functions API change(atomic_check and atomic_update) from > DRM > > > atomic > > > core. So, dpu_plane_atomic_check() and dpu_plane_atomic_update() > are > > > updated > > > accordingly in patch 5/6. Also, rename plane->state variables and > relevant > > > DPU plane state variables in those two functions to reflect they are new > > > states, like the patch 'drm: Rename plane->state variables in atomic > update > > > and disable' recently landed in drm-misc-next. > > > * Replace drm_gem_fb_prepare_fb() with > > > drm_gem_plane_helper_prepare_fb() in > > > patch 5/6, due to DRM core API change. > > > * Improve DPR burst length for GPU standard tile and 32bpp GPU super > tile in > > > patch 5/6 to align with the latest version of internal HW documention. > > > > > > v6->v7: > > > * Fix return value of dpu_get_irqs() if platform_get_irq() fails. (Laurentiu) > > > * Use the function array dpu_irq_handler[] to store individual DPU irq > > > handlers. > > > (Laurentiu) > > > * Call get/put() hooks directly to get/put DPU fetchunits for DPU plane > groups. > > > (Laurentiu) > > > * Shorten the names of individual DPU irq handlers by using DPU unit > abbrev > > > names to make writing dpu_irq_handler[] easier. > > > * Add Rob's R-b tag back on DPU dt-binding patch as change in v6 was > > > reviewed. > > > > > > v5->v6: > > > * Use graph schema in the DPU dt-binding. > > > * Do not use macros where possible in the DPU DRM driver. (Laurentiu) > > > * Break dpu_plane_atomic_check() into some smaller functions. > (Laurentiu) > > > * Address some minor comments from Laurentiu on the DPU DRM driver. > > > * Add dpu_crtc_err() helper marco in the DPU DRM driver to tell dmesg > > > which CRTC generates error. > > > * Drop calling dev_set_drvdata() from dpu_drm_bind/unbind() in the > DPU > > > DRM > > > driver as it is done in dpu_drm_probe(). > > > * Some trivial tweaks. > > > > > > v4->v5: > > > * Rebase up onto the latest drm-misc-next branch and remove the hook > to > > > drm_atomic_helper_legacy_gamma_set() from patch 5/6, because it > was > > > dropped > > > by the newly landed commit 'drm: automatic legacy gamma support'. > > > * Remove a redundant blank line from dpu_plane_atomic_update() in > patch > > > 5/6. > > > > > > v3->v4: > > > * Improve compatible properties in DPU and prefetch engines' dt > bindings > > > by using enum instead of oneOf+const. > > > * Add Rob's R-b tags on dt binding patches(patch 1/6, 2/6 and 3/6). > > > * Add Daniel's A-b tag on patch 4/6. > > > > > > v2->v3: > > > * Fix DPU DRM driver build warnings which are > > > Reported-by: kernel test robot <lkp@xxxxxxxxx>. > > > * Drop DPU DRM driver build dependency on IMX_SCU, as dummy SCU > > > functions have > > > been added in header files by the patch 'firmware: imx: add dummy > > > functions' > > > which has landed in linux-next/master branch. > > > * Add a missing blank line in include/drm/drm_atomic.h. > > > > > > 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 > > > > > > .../display/imx/fsl,imx8qxp-dprc.yaml | 100 ++ > > > .../bindings/display/imx/fsl,imx8qxp-dpu.yaml | 387 ++++++ > > > .../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 | 9 + > > > drivers/gpu/drm/imx/dpu/Makefile | 10 + > > > drivers/gpu/drm/imx/dpu/dpu-constframe.c | 171 +++ > > > drivers/gpu/drm/imx/dpu/dpu-core.c | 1044 +++++++++++++++++ > > > drivers/gpu/drm/imx/dpu/dpu-crtc.c | 969 +++++++++++++++ > > > drivers/gpu/drm/imx/dpu/dpu-crtc.h | 72 ++ > > > drivers/gpu/drm/imx/dpu/dpu-disengcfg.c | 117 ++ > > > drivers/gpu/drm/imx/dpu/dpu-dprc.c | 715 +++++++++++ > > > drivers/gpu/drm/imx/dpu/dpu-dprc.h | 40 + > > > drivers/gpu/drm/imx/dpu/dpu-drv.c | 294 +++++ > > > drivers/gpu/drm/imx/dpu/dpu-drv.h | 28 + > > > drivers/gpu/drm/imx/dpu/dpu-extdst.c | 299 +++++ > > > drivers/gpu/drm/imx/dpu/dpu-fetchdecode.c | 292 +++++ > > > drivers/gpu/drm/imx/dpu/dpu-fetcheco.c | 224 ++++ > > > drivers/gpu/drm/imx/dpu/dpu-fetchlayer.c | 152 +++ > > > drivers/gpu/drm/imx/dpu/dpu-fetchunit.c | 610 ++++++++++ > > > drivers/gpu/drm/imx/dpu/dpu-fetchunit.h | 195 +++ > > > drivers/gpu/drm/imx/dpu/dpu-fetchwarp.c | 248 ++++ > > > drivers/gpu/drm/imx/dpu/dpu-framegen.c | 395 +++++++ > > > drivers/gpu/drm/imx/dpu/dpu-gammacor.c | 223 ++++ > > > drivers/gpu/drm/imx/dpu/dpu-hscaler.c | 275 +++++ > > > drivers/gpu/drm/imx/dpu/dpu-kms.c | 542 +++++++++ > > > drivers/gpu/drm/imx/dpu/dpu-kms.h | 23 + > > > drivers/gpu/drm/imx/dpu/dpu-layerblend.c | 348 ++++++ > > > drivers/gpu/drm/imx/dpu/dpu-plane.c | 804 +++++++++++++ > > > drivers/gpu/drm/imx/dpu/dpu-plane.h | 59 + > > > 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 | 231 ++++ > > > drivers/gpu/drm/imx/dpu/dpu-tcon.c | 250 ++++ > > > drivers/gpu/drm/imx/dpu/dpu-vscaler.c | 308 +++++ > > > drivers/gpu/drm/imx/dpu/dpu.h | 385 ++++++ > > > include/drm/drm_atomic.h | 5 +- > > > 39 files changed, 10372 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.37.1 > > > > This patch series has been submitted for a quite long period of time. > > > > Anything I can do to have it landed ? > > I'm not sure why it fell through the cracks, but given that it's more > than 6 monthes old, please rebase and resend it. Ok, will do that, though "git am" still runs successfully for this series against the latest drm-misc-next. Regards, Liu Ying > > Maxime