mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Icenowy Zheng <zhengxingda@iscas.ac.cn>,
	Jianmin Lv <lvjianmin@loongson.cn>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Qianhai Wu <wuqianhai@loongson.cn>,
	Huacai Chen <chenhuacai@kernel.org>,
	Mingcong Bai <jeffbai@aosc.io>, Xi Ruoyao <xry111@xry111.site>
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] drm/loongson: stop to set get_vblank_timestamp for LS7A1000 CRTC
Date: Mon, 23 Mar 2026 11:31:28 +0100	[thread overview]
Message-ID: <681588dc-b4d9-4af4-b6c0-c117024593df@suse.de> (raw)
In-Reply-To: <4141b0a640f4d703053dad2c1dd257835881f0e2.camel@iscas.ac.cn>

Hi

Am 23.03.26 um 10:40 schrieb Icenowy Zheng:
> 在 2026-03-23一的 11:40 +0800,Jianmin Lv写道:
>>
>> On 2026/3/21 下午5:29, Icenowy Zheng wrote:
>>> 在 2026-03-21六的 17:28 +0800,Icenowy Zheng写道:
>>>> As there's no known hardware capability about querying vblank on
>>>> the
>>>> LS7A1000 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
>>>> LS7A1000.
>>>>
>>>> This solves a kernel warning when booting Linux 7.0-rc3 on a
>>>> Loongson-3A4000+LS7A1000 Haier Boyue G51 laptop (with injected
>>>> EDID
>>>> for
>>>> replicating the display timing set by the firmware).
>>>>
>> The drm_crtc_vblank_helper_get_vblank_timestamp will call
>> get_scanout_position hook to caculate timestamp, and the driver has
>> get_scanout_position to support it (LS7A1000 has related register).
>> So
>> the get_vblank_timestamp hook is ok for LS7A1000, and we'd better
>> look
>> into the warning information.
> The warning information is copied here:
> ```
> [    0.334960] ------------[ cut here ]------------
> [    0.334960] WARNING: drivers/gpu/drm/drm_vblank.c:747 at
> drm_crtc_vblank_helper_get_vblank_timestamp_internal+0x3c8/0x438,
> CPU#0: kworker/0:1/11
> [    0.334960] loongson 0000:00:06.1: [drm]
> drm_WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev))

This is what you should investigate. mode->crtc_clock seems invalid. [1]

[1] 
https://elixir.bootlin.com/linux/v6.19.9/source/drivers/gpu/drm/drm_vblank.c#L743

Best regards
Thomas

> [    0.334960] Modules linked in:
> [    0.334960] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted
> 7.0.0-rc4-3a4000-laptop-test+ #31 PREEMPT
> [    0.334960] Hardware name: Haier Boyue G51/Boyue G51, BIOS
> K3L3A4000.HR10.200909.T 09/09/2020
> [    0.334960] Workqueue: events drm_fb_helper_damage_work
> [    0.334960] Stack : ffffffff819dec03 0000000000000000
> 0000000000000018 9800000100223938
> [    0.334960]         9800000100223938 9800000100223a68
> 0000000000000000 0000000000000000
> [    0.334960]         b8e8b3f2ec6b8200 98000000092bffa8
> 9800000100223768 0000000000000000
> [    0.334960]         ffffffff81632b08 0000000000000030
> ffffffff813c9530 0000000000200b20
> [    0.334960]         fffffffffffffffc 0000000000000000
> 0000000000000000 ffffffff816c1d50
> [    0.334960]         ffffffff81890000 00000000000002eb
> 0000000000000000 ffffffff80c1b180
> [    0.334960]         9800000100ff8500 0000000000000000
> 9800000005c965a8 0000000000000000
> [    0.334960]         ffffffff81a70000 9800000100220000
> 9800000100223930 0000000000000000
> [    0.334960]         ffffffff802274dc 0000000000000000
> 0000000000000000 0000000000000000
> [    0.334960]         0000000000000000 0000000000000000
> ffffffff802274fc b8e8b3f2ec6b8200
> [    0.334960]         ...
> [    0.334960] Call Trace:
> [    0.334960] [<ffffffff802274fc>] show_stack+0x64/0x158
> [    0.334960] [<ffffffff8021bac4>] dump_stack_lvl+0x70/0xb0
> [    0.334960] [<ffffffff8026a988>] __warn+0xa8/0x120
> [    0.334960] [<ffffffff8026ab60>] warn_slowpath_fmt+0x160/0x1f8
> [    0.334960] [<ffffffff80be5668>]
> drm_crtc_vblank_helper_get_vblank_timestamp_internal+0x3c8/0x438
> [    0.334960] [<ffffffff80be48d8>]
> drm_crtc_get_last_vbltimestamp+0x68/0xb0
> [    0.334960] [<ffffffff80be5e14>] drm_update_vblank_count+0xac/0x418
> [    0.334960] [<ffffffff80be6270>] drm_vblank_enable+0xf0/0x288
> [    0.334960] [<ffffffff80be7010>] drm_vblank_get+0xf8/0x160
> [    0.334960] [<ffffffff80beb2e0>]
> drm_client_modeset_wait_for_vblank+0x50/0xa0
> [    0.334960] [<ffffffff80c0a144>]
> drm_fb_helper_damage_work+0x8c/0x1d8
> [    0.334960] [<ffffffff8028fac8>] process_one_work+0x198/0x348
> [    0.334960] [<ffffffff802906c0>] worker_thread+0x238/0x390
> [    0.334960] [<ffffffff8029c0d8>] kthread+0x160/0x198
> [    0.334960] [<ffffffff8021fd8c>] ret_from_kernel_thread+0x14/0x1c
>
> [    0.334960] ---[ end trace 0000000000000000 ]---
> ```
>
>>>> Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
>>> Oh forgot to attach when crafting v2:
>>>
>>> ```
>>> Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
>>> ```
>>>
>>>> ---
>>>> Changes in v2:
>>>> - Re-formatted Loongson product model numbers per request from
>>>> Huacai.
>>>>
>>>>    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,
>>>>    };
>>>>    

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



  reply	other threads:[~2026-03-23 10:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-21  9:28 Icenowy Zheng
2026-03-21  9:29 ` Icenowy Zheng
2026-03-23  3:40   ` Jianmin Lv
2026-03-23  9:40     ` Icenowy Zheng
2026-03-23 10:31       ` Thomas Zimmermann [this message]
2026-03-23 11:42         ` Icenowy Zheng
2026-03-23 13:32           ` Thomas Zimmermann
2026-03-23 14:33             ` Icenowy Zheng
2026-03-23  7:10   ` Thomas Zimmermann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=681588dc-b4d9-4af4-b6c0-c117024593df@suse.de \
    --to=tzimmermann@suse.de \
    --cc=airlied@gmail.com \
    --cc=chenhuacai@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jeffbai@aosc.io \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lvjianmin@loongson.cn \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=wuqianhai@loongson.cn \
    --cc=xry111@xry111.site \
    --cc=zhengxingda@iscas.ac.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®