Re: [PATCH v4 0/6] drm: lcdif: Add i.MX93 LCDIF support

From: Liu Ying
Date: Fri Feb 17 2023 - 04:00:13 EST


On Fri, 2023-02-17 at 09:18 +0100, Alexander Stein wrote:
> Hi Liu,

Hi Alexander,

>
> Am Freitag, 17. Februar 2023, 07:54:01 CET schrieb Liu Ying:
> > Hi,
> >
> > This patch set aims to add i.MX93 LCDIF display controller support
> > in the existing LCDIF DRM driver. The LCDIF embedded in i.MX93 SoC
> > is essentially the same to those embedded in i.MX8mp SoC. Through
> > internal bridges, i.MX93 LCDIF may drive a MIPI DSI display or a LVDS
> > display or a parallel display.
> >
> > Patch 1/6 adds device tree binding support for i.MX93 LCDIF in the
> > existing fsl,lcdif.yaml.
> >
> > Patch 2/6 drops lcdif->bridge NULL pointer check as a cleanup patch.
> >
> > Patch 3/6~5/6 prepare for adding i.MX93 LCDIF support step by step.
> >
> > Patch 6/6 adds i.MX93 LCDIF compatible string as the last step of
> > adding i.MX93 LCDIF support.
>
> Thanks for the series. I could test this on my TQMa93xxLA/MBa93xxCA with a
> single LVDS display attached, so no DSI or parallel display. Hence I could not
> test the bus format and flags checks, but they look okay.
> So you can add
> Tested-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
> to the whole series as well.

Thanks for your test.

>
> One thing I noticed is that, sometimes it seems that before probing lcdif my
> system completely freezes. Adding some debug output it seems that's during
> powering up the IMX93_MEDIABLK_PD_LCDIF power domain there is some race
> condition. But adding more more detailed output made the problem go away.
> Did you notice something similar? It might be a red hering though.

I don't see system freezing with my i.MX93 11x11 EVK when probing
lcdif. I did try to boot the system several times. All look ok. This is
a snippet of dmesg when lcdif probes:

--------------------------8<------------------------------------------
[ 0.753083] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.761669] SuperH (H)SCI(F) driver initialized
[ 0.766523] msm_serial: driver initialized
[ 0.780523] printk: console [ttyLP0] enabled0x44380010 (irq = 16,
base_baud = 1500000) is a FSL_LPUART
[ 0.780523] printk: console [ttyLP0] enabled
[ 0.788928] printk: bootconsole [lpuart32] disabled
[ 0.788928] printk: bootconsole [lpuart32] disabled
[ 0.804632] panel-simple lvds_panel: supply power not found, using
dummy regulator
[ 0.814741] [drm] Initialized imx-lcdif 1.0.0 20220417 for
4ae30000.lcd-controller on minor 0
[ 1.195930] Console: switching to colour frame buffer device 160x50
[ 1.218385] imx-lcdif 4ae30000.lcd-controller: [drm] fb0: imx-
lcdifdrmfb frame buffer device
[ 1.227099] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 1.236725] loop: module loaded
--------------------------8<------------------------------------------

~300 milliseconds are consumed by the enablement delay required by the
"boe,ev121wxm-n10-1850" LVDS panel I use.

Regards,
Liu Ying

>
> Best regards,
> Alexander
>
> > v3->v4:
> > * Improve warning message when ignoring invalid LCDIF OF endpoint ids in
> > patch 5/6. (Alexander)
> > * Use 'new_{c,p}state' instead of 'new_{crtc,plane}_state' in patch 3/6.
> > (Alexander)
> > * Simplify lcdif_crtc_reset() by calling lcdif_crtc_atomic_destroy_state()
> > in patch 3/6. (Alexander)
> > * Add '!crtc->state' check in lcdif_crtc_atomic_duplicate_state() in patch
> > 3/6. (Alexander)
> > * Collect Alexander's R-b tags on patch 1/6, 2/6 and 6/6.
> >
> > v2->v3:
> > * Fix a trivial typo in patch 6/6's commit message.
> >
> > v1->v2:
> > * Add Krzysztof's A-b and Marek's R-b tags on patch 1/6.
> > * Split patch 2/2 in v1 into patch 2/6~6/6 in v2. (Marek, Alexander)
> > * Drop '!remote ||' from lcdif_attach_bridge(). (Lothar)
> > * Add comment on the 'base' member of lcdif_crtc_state structure to
> > note it should always be the first member. (Lothar)
> > * Drop unneeded 'bridges' member from lcdif_drm_private structure.
> > * Drop a comment about bridge input bus format from
> > lcdif_crtc_atomic_check().
> >
> > Liu Ying (6):
> > dt-bindings: lcdif: Add i.MX93 LCDIF support
> > drm: lcdif: Drop unnecessary NULL pointer check on lcdif->bridge
> > drm: lcdif: Determine bus format and flags in ->atomic_check()
> > drm: lcdif: Check consistent bus format and flags across first bridges
> > drm: lcdif: Add multiple encoders and first bridges support
> > drm: lcdif: Add i.MX93 LCDIF compatible string
> >
> > .../bindings/display/fsl,lcdif.yaml | 7 +-
> > drivers/gpu/drm/mxsfb/lcdif_drv.c | 71 ++++++-
> > drivers/gpu/drm/mxsfb/lcdif_drv.h | 5 +-
> > drivers/gpu/drm/mxsfb/lcdif_kms.c | 198 ++++++++++++------
> > 4 files changed, 206 insertions(+), 75 deletions(-)
>
>