Re: [PATCH] drm/loongson: stop to set get_vblank_timestamp for 7A1000 CRTC

From: Icenowy Zheng

Date: Wed Mar 18 2026 - 02:16:57 EST


在 2026-03-16一的 08:53 +0100,Thomas Zimmermann写道:
>
>
> Am 14.03.26 um 17:54 schrieb Icenowy Zheng:
> > As there's no known hardware capability about querying vblank on
> > the
> > 7A1000 display controller, setting get_vblank_timestamp will
> > mislead the
> > kernel about the support of DC-backed high precision vblank query.
> >
> > Drop this function pointer in the CRTC function table for 7A1000.
> >
> > This solves a kernel warning when booting Linux 7.0-rc3 on a
> > 3A4000+7A1000 Haier Boyue G51 laptop (with injected EDID for
> > replicating
> > the display timing set by the firmware).
> >
> > Signed-off-by: Icenowy Zheng <zhengxingda@xxxxxxxxxxx>
>
> Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx>

Well, is my following understand right?

- A hardware that does not have hardware vblank timing/counting ability
shouldn't set .get_vblank_timestamp .
- A hardware that supports vblank counting but not timing should set
.get_vblank_timestamp to the
drm_crtc_vblank_helper_get_vblank_timestamp helper to allow vblank
timing estimate with counter.

(P.S. There's a DisplayCurrentLocation register that is valid for
7A1000, which returns the current X and Y positions; but I wonder
whether this is meaningful for vblank querying.
In addition, this DC looks quite similar to Verisilicon DCNano, which
was used by i.MX8ULP (although many functionality on the i.MX8ULP
manual is missing, things until cursor0 match between LS7A2000 manual
and i.MX8ULP manual). I wonder whether NXP people abandoned the
mainlining of DCNano driver because of drm/loongson?)

P.S.2. I saw that Sui Jingfeng's mailbox is bouncing and the driver is
going to be orphaned. If he wouldn't react with other ways, maybe I
could try to maintain this driver? I have Loongson-3A4000 + LS7A1000
and Loongson-3A6000 + LS7A2000 hardwares at home.

>
> > ---
> >   drivers/gpu/drm/loongson/lsdc_crtc.c | 1 -
> >   1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/loongson/lsdc_crtc.c
> > b/drivers/gpu/drm/loongson/lsdc_crtc.c
> > index 587fbe285e9ef..b3af8e0cdb15f 100644
> > --- a/drivers/gpu/drm/loongson/lsdc_crtc.c
> > +++ b/drivers/gpu/drm/loongson/lsdc_crtc.c
> > @@ -721,7 +721,6 @@ static const struct drm_crtc_funcs
> > ls7a1000_crtc_funcs = {
> >    .late_register = lsdc_crtc_late_register,
> >    .enable_vblank = lsdc_crtc_enable_vblank,
> >    .disable_vblank = lsdc_crtc_disable_vblank,
> > - .get_vblank_timestamp =
> > drm_crtc_vblank_helper_get_vblank_timestamp,
> >    .atomic_print_state = lsdc_crtc_atomic_print_state,
> >   };
> >