dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Huacai Chen <chenhuacai@kernel.org>
To: Jaak Ristioja <jaak@ristioja.ee>
Cc: Linux regressions mailing list <regressions@lists.linux.dev>,
	Javier Martinez Canillas <javierm@redhat.com>,
	Linux DRI Development <dri-devel@lists.freedesktop.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Thorsten Leemhuis <regressions@leemhuis.info>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Bagas Sanjaya <bagasdotme@gmail.com>,
	Evan Preston <x.arch@epreston.net>
Subject: Re: Blank screen on boot of Linux 6.5 and later on Lenovo ThinkPad L570
Date: Thu, 2 Nov 2023 20:38:16 +0800	[thread overview]
Message-ID: <CAAhV-H4MekBgYZ1nJ-M7bnpo3bczOMcTanij18ACCALz2svjQQ@mail.gmail.com> (raw)
In-Reply-To: <31ed0db1-9398-4c46-a391-fc644ec49268@ristioja.ee>

[-- Attachment #1: Type: text/plain, Size: 7925 bytes --]

Hi, Jaak,

On Wed, Nov 1, 2023 at 7:52 PM Jaak Ristioja <jaak@ristioja.ee> wrote:
>
> On 31.10.23 14:17, Huacai Chen wrote:
> > Hi, Jaak and Evan,
> >
> > On Sun, Oct 29, 2023 at 9:42 AM Huacai Chen <chenhuacai@kernel.org> wrote:
> >>
> >> On Sat, Oct 28, 2023 at 7:06 PM Jaak Ristioja <jaak@ristioja.ee> wrote:
> >>>
> >>> On 26.10.23 03:58, Huacai Chen wrote:
> >>>> Hi, Jaak,
> >>>>
> >>>> On Thu, Oct 26, 2023 at 2:49 AM Jaak Ristioja <jaak@ristioja.ee> wrote:
> >>>>>
> >>>>> On 25.10.23 16:23, Huacai Chen wrote:
> >>>>>> On Wed, Oct 25, 2023 at 6:08 PM Thorsten Leemhuis
> >>>>>> <regressions@leemhuis.info> wrote:
> >>>>>>>
> >>>>>>> Javier, Dave, Sima,
> >>>>>>>
> >>>>>>> On 23.10.23 00:54, Evan Preston wrote:
> >>>>>>>> On 2023-10-20 Fri 05:48pm, Huacai Chen wrote:
> >>>>>>>>> On Fri, Oct 20, 2023 at 5:35 PM Linux regression tracking (Thorsten
> >>>>>>>>> Leemhuis) <regressions@leemhuis.info> wrote:
> >>>>>>>>>> On 09.10.23 10:54, Huacai Chen wrote:
> >>>>>>>>>>> On Mon, Oct 9, 2023 at 4:45 PM Bagas Sanjaya <bagasdotme@gmail.com> wrote:
> >>>>>>>>>>>> On Mon, Oct 09, 2023 at 09:27:02AM +0800, Huacai Chen wrote:
> >>>>>>>>>>>>> On Tue, Sep 26, 2023 at 10:31 PM Huacai Chen <chenhuacai@kernel.org> wrote:
> >>>>>>>>>>>>>> On Tue, Sep 26, 2023 at 7:15 PM Linux regression tracking (Thorsten
> >>>>>>>>>>>>>> Leemhuis) <regressions@leemhuis.info> wrote:
> >>>>>>>>>>>>>>> On 13.09.23 14:02, Jaak Ristioja wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Upgrading to Linux 6.5 on a Lenovo ThinkPad L570 (Integrated Intel HD
> >>>>>>>>>>>>>>>> Graphics 620 (rev 02), Intel(R) Core(TM) i7-7500U) results in a blank
> >>>>>>>>>>>>>>>> screen after boot until the display manager starts... if it does start
> >>>>>>>>>>>>>>>> at all. Using the nomodeset kernel parameter seems to be a workaround.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> I've bisected this to commit 60aebc9559492cea6a9625f514a8041717e3a2e4
> >>>>>>>>>>>>>>>> ("drivers/firmware: Move sysfb_init() from device_initcall to
> >>>>>>>>>>>>>>>> subsys_initcall_sync").
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>> As confirmed by Jaak, disabling DRM_SIMPLEDRM makes things work fine
> >>>>>>>>>>>>> again. So I guess the reason:
> >>>>>>>>>>
> >>>>>>>>>> Well, this to me still looks a lot (please correct me if I'm wrong) like
> >>>>>>>>>> regression that should be fixed, as DRM_SIMPLEDRM was enabled beforehand
> >>>>>>>>>> if I understood things correctly. Or is there a proper fix for this
> >>>>>>>>>> already in the works and I just missed this? Or is there some good
> >>>>>>>>>> reason why this won't/can't be fixed?
> >>>>>>>>>
> >>>>>>>>> DRM_SIMPLEDRM was enabled but it didn't work at all because there was
> >>>>>>>>> no corresponding platform device. Now DRM_SIMPLEDRM works but it has a
> >>>>>>>>> blank screen. Of course it is valuable to investigate further about
> >>>>>>>>> DRM_SIMPLEDRM on Jaak's machine, but that needs Jaak's effort because
> >>>>>>>>> I don't have a same machine.
> >>>>>>>
> >>>>>>> Side note: Huacai, have you tried working with Jaak to get down to the
> >>>>>>> real problem? Evan, might you be able to help out here?
> >>>>>> No, Jaak has no response after he 'fixed' his problem by disabling SIMPLEDRM.
> >>>>>>
> >>>>>
> >>>>> I'm sorry, what was it exactly you want me to do? Please be mindful that
> >>>>> I'm not familiar with the internals of the Linux kernel and DRI, and it
> >>>>> might sometimes take weeks before I have time to work and respond on this.
> >>>> It doesn't matter. I hope you can do some experiments to investigate
> >>>> deeper. The first experiment you can do is enabling SIMPLEFB (i.e.
> >>>> CONFIG_FB_SIMPLE) instead of SIMPLEDRM (CONFIG_DRM_SIMPLEDRM) to see
> >>>> whether there is also a blank screen. If no blank screen, that
> >>>> probably means SIMPLEDRM has a bug, if still blank screen, that means
> >>>> the firmware may pass wrong screen information.
> >>>
> >>> Testing with 6.5.9 I get a blank screen with CONFIG_DRM_SIMPLEDRM=y and
> >>> get no blank screen with CONFIG_FB_SIMPLE=y and CONFIG_DRM_SIMPLEDRM unset.
> >> CONFIG_FB_SIMPLE and  CONFIG_DRM_SIMPLEDRM use the same device created
> >> by sysfb_init(). Since FB_SIMPLE works fine, I think the real problem
> >> is that DRM_SIMPLEDRM has a bug. The next step is to enable
> >> CONFIG_DRM_SIMPLEDRM and trace its initialization. In detail, adding
> >> some printk() in simpledrm_probe() and its sub-routines to see where
> >> the driver fails. The output of these printk() can be seen by the
> >> 'dmesg' command after boot.
> > I need your help. I tried with my laptop (ThinkPad E490, Intel Core
> > i3-8145U, UHD Graphics 620) but I can't reproduce your problem. So
> > please patch your 6.5.x kernel with this temporary patch [1], then
> > build a "bad kernel" with SIMPLEDRM enabled. And after booting your
> > machine with this "bad kernel", please give me the dmesg output. Thank
> > you very much.
> >
> > [1] http://ddns.miaomiaomiao.top:9000/download/kernel/patch-6.5.9
>
> I'm unable to download it. Can you please send it by e-mail?
I'm sorry, please download from attachment.

Huacai

>
> Jaak
>
> >
> >
> > Huacai
> >
> >>
> >> Huacai
> >>
> >>>
> >>> Jaak
> >>>
> >>>>
> >>>> Huacai
> >>>>
> >>>>>
> >>>>> Jaak
> >>>>>
> >>>>>>>
> >>>>>>> But I write this mail for a different reason:
> >>>>>>>
> >>>>>>>> I am having the same issue on a Lenovo Thinkpad P70 (Intel
> >>>>>>>> Corporation HD Graphics 530 (rev 06), Intel(R) Core(TM) i7-6700HQ).
> >>>>>>>> Upgrading from Linux 6.4.12 to 6.5 and later results in only a blank
> >>>>>>>> screen after boot and a rapidly flashing device-access-status
> >>>>>>>> indicator.
> >>>>>>>
> >>>>>>> This additional report makes me wonder if we should revert the culprit
> >>>>>>> (60aebc9559492c ("drivers/firmware: Move sysfb_init() from
> >>>>>>> device_initcall to subsys_initcall_sync") [v6.5-rc1]). But I guess that
> >>>>>>> might lead to regressions for some users? But the patch description says
> >>>>>>> that this is not a common configuration, so can we maybe get away with that?
> >>>>>>    From my point of view, this is not a regression, 60aebc9559492c
> >>>>>> doesn't cause a problem, but exposes a problem. So we need to fix the
> >>>>>> real problem (SIMPLEDRM has a blank screen on some conditions). This
> >>>>>> needs Jaak or Evan's help.
> >>>>>>
> >>>>>> Huacai
> >>>>>>>
> >>>>>>> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
> >>>>>>> --
> >>>>>>> Everything you wanna know about Linux kernel regression tracking:
> >>>>>>> https://linux-regtracking.leemhuis.info/about/#tldr
> >>>>>>> If I did something stupid, please tell me, as explained on that page.
> >>>>>>>
> >>>>>>>>>>>>> When SIMPLEDRM takes over the framebuffer, the screen is blank (don't
> >>>>>>>>>>>>> know why). And before 60aebc9559492cea6a9625f ("drivers/firmware: Move
> >>>>>>>>>>>>> sysfb_init() from device_initcall to subsys_initcall_sync") there is
> >>>>>>>>>>>>> no platform device created for SIMPLEDRM at early stage, so it seems
> >>>>>>>>>>>>> also "no problem".
> >>>>>>>>>>>> I don't understand above. You mean that after that commit the platform
> >>>>>>>>>>>> device is also none, right?
> >>>>>>>>>>> No. The SIMPLEDRM driver needs a platform device to work, and that
> >>>>>>>>>>> commit makes the platform device created earlier. So, before that
> >>>>>>>>>>> commit, SIMPLEDRM doesn't work, but the screen isn't blank; after that
> >>>>>>>>>>> commit, SIMPLEDRM works, but the screen is blank.
> >>>>>>>>>>>
> >>>>>>>>>>> Huacai
> >>>>>>>>>>>>
> >>>>>>>>>>>> Confused...
> >>>>>>>>>>>>
> >>>>>>>>>>>> --
> >>>>>>>>>>>> An old man doll... just what I always wanted! - Clara
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>
> >>>
>

[-- Attachment #2: patch-6.5.9 --]
[-- Type: application/octet-stream, Size: 8471 bytes --]

diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c
index 82fcfd29b..5f29ab2bc 100644
--- a/drivers/firmware/sysfb.c
+++ b/drivers/firmware/sysfb.c
@@ -83,25 +83,37 @@ static __init int sysfb_init(void)
 
 	sysfb_apply_efi_quirks();
 
+	printk("sysfb 1\n");
 	/* try to create a simple-framebuffer device */
 	compatible = sysfb_parse_mode(si, &mode);
 	if (compatible) {
+		printk("sysfb 2\n");
 		pd = sysfb_create_simplefb(si, &mode);
 		if (!IS_ERR(pd))
 			goto unlock_mutex;
 	}
 
 	/* if the FB is incompatible, create a legacy framebuffer device */
-	if (si->orig_video_isVGA == VIDEO_TYPE_EFI)
+	if (si->orig_video_isVGA == VIDEO_TYPE_EFI) {
 		name = "efi-framebuffer";
-	else if (si->orig_video_isVGA == VIDEO_TYPE_VLFB)
+		printk("sysfb 3a\n");
+	}
+	else if (si->orig_video_isVGA == VIDEO_TYPE_VLFB) {
 		name = "vesa-framebuffer";
-	else if (si->orig_video_isVGA == VIDEO_TYPE_VGAC)
+		printk("sysfb 3b\n");
+	}
+	else if (si->orig_video_isVGA == VIDEO_TYPE_VGAC) {
 		name = "vga-framebuffer";
-	else if (si->orig_video_isVGA == VIDEO_TYPE_EGAC)
+		printk("sysfb 3c\n");
+	}
+	else if (si->orig_video_isVGA == VIDEO_TYPE_EGAC) {
 		name = "ega-framebuffer";
-	else
+		printk("sysfb 3d\n");
+	}
+	else {
 		name = "platform-framebuffer";
+		printk("sysfb 3e\n");
+	}
 
 	pd = platform_device_alloc(name, 0);
 	if (!pd) {
diff --git a/drivers/gpu/drm/tiny/simpledrm.c b/drivers/gpu/drm/tiny/simpledrm.c
index 79112b195..62fe2a6ea 100644
--- a/drivers/gpu/drm/tiny/simpledrm.c
+++ b/drivers/gpu/drm/tiny/simpledrm.c
@@ -637,6 +637,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 	size_t nformats;
 	int ret;
 
+	printk("T: create 1\n");
 	sdev = devm_drm_dev_alloc(&pdev->dev, drv, struct simpledrm_device, dev);
 	if (IS_ERR(sdev))
 		return ERR_CAST(sdev);
@@ -647,6 +648,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 	 * Hardware settings
 	 */
 
+	printk("T: create 2\n");
 	ret = simpledrm_device_init_clocks(sdev);
 	if (ret)
 		return ERR_PTR(ret);
@@ -655,31 +657,40 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 		return ERR_PTR(ret);
 
 	if (pd) {
+	printk("T: create 3a-1\n");
 		width = simplefb_get_width_pd(dev, pd);
 		if (width < 0)
 			return ERR_PTR(width);
+	printk("T: create 3a-2\n");
 		height = simplefb_get_height_pd(dev, pd);
 		if (height < 0)
 			return ERR_PTR(height);
+	printk("T: create 3a-3\n");
 		stride = simplefb_get_stride_pd(dev, pd);
 		if (stride < 0)
 			return ERR_PTR(stride);
+	printk("T: create 3a-4\n");
 		format = simplefb_get_format_pd(dev, pd);
 		if (IS_ERR(format))
 			return ERR_CAST(format);
 	} else if (of_node) {
+	printk("T: create 3b-1\n");
 		width = simplefb_get_width_of(dev, of_node);
 		if (width < 0)
 			return ERR_PTR(width);
+	printk("T: create 3b-2\n");
 		height = simplefb_get_height_of(dev, of_node);
 		if (height < 0)
 			return ERR_PTR(height);
+	printk("T: create 3b-3\n");
 		stride = simplefb_get_stride_of(dev, of_node);
 		if (stride < 0)
 			return ERR_PTR(stride);
+	printk("T: create 3b-4\n");
 		format = simplefb_get_format_of(dev, of_node);
 		if (IS_ERR(format))
 			return ERR_CAST(format);
+	printk("T: create 3b-5\n");
 		mem = simplefb_get_memory_of(dev, of_node);
 		if (IS_ERR(mem))
 			return ERR_CAST(mem);
@@ -690,15 +701,18 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 			of_node_put(panel_node);
 		}
 	} else {
+	printk("T: create 3c\n");
 		drm_err(dev, "no simplefb configuration found\n");
 		return ERR_PTR(-ENODEV);
 	}
+	printk("T: create 4\n");
 	if (!stride) {
 		stride = drm_format_info_min_pitch(format, 0, width);
 		if (drm_WARN_ON(dev, !stride))
 			return ERR_PTR(-EINVAL);
 	}
 
+	printk("T: create 5\n");
 	/*
 	 * Assume a monitor resolution of 96 dpi if physical dimensions
 	 * are not specified to get a somewhat reasonable screen size.
@@ -712,8 +726,8 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 	sdev->format = format;
 	sdev->pitch = stride;
 
-	drm_dbg(dev, "display mode={" DRM_MODE_FMT "}\n", DRM_MODE_ARG(&sdev->mode));
-	drm_dbg(dev, "framebuffer format=%p4cc, size=%dx%d, stride=%d byte\n",
+	drm_info(dev, "display mode={" DRM_MODE_FMT "}\n", DRM_MODE_ARG(&sdev->mode));
+	drm_info(dev, "framebuffer format=%p4cc, size=%dx%d, stride=%d byte\n",
 		&format->format, width, height, stride);
 
 	/*
@@ -723,33 +737,38 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 	if (mem) {
 		void *screen_base;
 
+	printk("T: create 6a-1\n");
 		ret = devm_aperture_acquire_from_firmware(dev, mem->start, resource_size(mem));
 		if (ret) {
 			drm_err(dev, "could not acquire memory range %pr: %d\n", mem, ret);
 			return ERR_PTR(ret);
 		}
 
-		drm_dbg(dev, "using system memory framebuffer at %pr\n", mem);
+		drm_info(dev, "using system memory framebuffer at %pr\n", mem);
 
+	printk("T: create 6a-2\n");
 		screen_base = devm_memremap(dev->dev, mem->start, resource_size(mem), MEMREMAP_WC);
 		if (IS_ERR(screen_base))
 			return screen_base;
 
+	printk("T: create 6a-3\n");
 		iosys_map_set_vaddr(&sdev->screen_base, screen_base);
 	} else {
 		void __iomem *screen_base;
 
+	printk("T: create 6b-1\n");
 		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 		if (!res)
 			return ERR_PTR(-EINVAL);
 
+	printk("T: create 6b-2\n");
 		ret = devm_aperture_acquire_from_firmware(dev, res->start, resource_size(res));
 		if (ret) {
 			drm_err(dev, "could not acquire memory range %pr: %d\n", res, ret);
 			return ERR_PTR(ret);
 		}
 
-		drm_dbg(dev, "using I/O memory framebuffer at %pr\n", res);
+		drm_info(dev, "using I/O memory framebuffer at %pr\n", res);
 
 		mem = devm_request_mem_region(&pdev->dev, res->start, resource_size(res),
 					      drv->name);
@@ -763,10 +782,12 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 			mem = res;
 		}
 
+	printk("T: create 6b-3\n");
 		screen_base = devm_ioremap_wc(&pdev->dev, mem->start, resource_size(mem));
 		if (!screen_base)
 			return ERR_PTR(-ENOMEM);
 
+	printk("T: create 6b-4\n");
 		iosys_map_set_vaddr_iomem(&sdev->screen_base, screen_base);
 	}
 
@@ -774,6 +795,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 	 * Modesetting
 	 */
 
+	printk("T: create 7\n");
 	ret = drmm_mode_config_init(dev);
 	if (ret)
 		return ERR_PTR(ret);
@@ -790,6 +812,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 
 	/* Primary plane */
 
+	printk("T: create 8\n");
 	nformats = drm_fb_build_fourcc_list(dev, &format->format, 1,
 					    sdev->formats, ARRAY_SIZE(sdev->formats));
 
@@ -805,6 +828,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 
 	/* CRTC */
 
+	printk("T: create 9\n");
 	crtc = &sdev->crtc;
 	ret = drm_crtc_init_with_planes(dev, crtc, primary_plane, NULL,
 					&simpledrm_crtc_funcs, NULL);
@@ -814,6 +838,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 
 	/* Encoder */
 
+	printk("T: create 10\n");
 	encoder = &sdev->encoder;
 	ret = drm_encoder_init(dev, encoder, &simpledrm_encoder_funcs,
 			       DRM_MODE_ENCODER_NONE, NULL);
@@ -823,6 +848,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 
 	/* Connector */
 
+	printk("T: create 11\n");
 	connector = &sdev->connector;
 	ret = drm_connector_init(dev, connector, &simpledrm_connector_funcs,
 				 DRM_MODE_CONNECTOR_Unknown);
@@ -833,6 +859,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
 						       DRM_MODE_PANEL_ORIENTATION_UNKNOWN,
 						       width, height);
 
+	printk("T: create 12\n");
 	ret = drm_connector_attach_encoder(connector, encoder);
 	if (ret)
 		return ERR_PTR(ret);
@@ -870,20 +897,24 @@ static int simpledrm_probe(struct platform_device *pdev)
 	unsigned int color_mode;
 	int ret;
 
+	printk("T: probe 1\n");
 	sdev = simpledrm_device_create(&simpledrm_driver, pdev);
 	if (IS_ERR(sdev))
 		return PTR_ERR(sdev);
 	dev = &sdev->dev;
 
+	printk("T: probe 2\n");
 	ret = drm_dev_register(dev, 0);
 	if (ret)
 		return ret;
 
+	printk("T: probe 3\n");
 	color_mode = drm_format_info_bpp(sdev->format, 0);
 	if (color_mode == 16)
 		color_mode = sdev->format->depth; // can be 15 or 16
 
 	drm_fbdev_generic_setup(dev, color_mode);
+	printk("T: probe 4\n");
 
 	return 0;
 }

  reply	other threads:[~2023-11-02 12:38 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 12:02 Blank screen on boot of Linux 6.5 and later on Lenovo ThinkPad L570 Jaak Ristioja
2023-09-18  7:40 ` Bagas Sanjaya
2023-09-26 11:15 ` Linux regression tracking (Thorsten Leemhuis)
2023-09-26 14:31   ` Huacai Chen
2023-10-09  1:27     ` Huacai Chen
2023-10-09  8:45       ` Bagas Sanjaya
2023-10-09  8:54         ` Huacai Chen
2023-10-20  9:35           ` Linux regression tracking (Thorsten Leemhuis)
2023-10-20  9:48             ` Huacai Chen
2023-10-22 22:54               ` Evan Preston
2023-10-25 10:08                 ` Thorsten Leemhuis
2023-10-25 13:23                   ` Huacai Chen
2023-10-25 13:29                     ` Javier Martinez Canillas
2023-10-25 13:42                     ` Linux regression tracking (Thorsten Leemhuis)
2023-10-25 18:49                     ` Jaak Ristioja
2023-10-26  0:58                       ` Huacai Chen
2023-10-28 11:06                         ` Jaak Ristioja
2023-10-29  1:42                           ` Huacai Chen
2023-10-31 12:17                             ` Huacai Chen
2023-11-01 11:52                               ` Jaak Ristioja
2023-11-02 12:38                                 ` Huacai Chen [this message]
2023-11-03  5:45                                   ` Evan Preston
2023-11-03  6:36                                     ` Huacai Chen
2023-11-04  2:32                                       ` Evan Preston
2023-11-05 12:40                                         ` Huacai Chen
2023-11-05 16:28                                           ` Jaak Ristioja
2023-11-06  2:15                                             ` Huacai Chen
2023-11-06 13:49                                               ` Jaak Ristioja
2023-11-06 14:22                                                 ` Huacai Chen
2023-11-06 20:32                                                   ` Evan Preston
2023-11-07  1:49                                                     ` Huacai Chen
2023-11-07  5:39                                                       ` Evan Preston
2023-11-08  5:23                                                         ` Evan Preston
2023-11-08  2:52                                                     ` Huacai Chen
2023-12-11  3:31                                                 ` Huacai Chen
2023-11-05 21:10                                           ` Evan Preston

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=CAAhV-H4MekBgYZ1nJ-M7bnpo3bczOMcTanij18ACCALz2svjQQ@mail.gmail.com \
    --to=chenhuacai@kernel.org \
    --cc=bagasdotme@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jaak@ristioja.ee \
    --cc=javierm@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=regressions@leemhuis.info \
    --cc=regressions@lists.linux.dev \
    --cc=tzimmermann@suse.de \
    --cc=x.arch@epreston.net \
    /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;
as well as URLs for NNTP newsgroup(s).