public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
       [not found] <d74a7768e957e6ce88c27a5bece0c64dff132e24@holm.dev>
@ 2024-07-27 16:28 ` Linux regression tracking (Thorsten Leemhuis)
  2024-07-27 16:42   ` kevin
  0 siblings, 1 reply; 11+ messages in thread
From: Linux regression tracking (Thorsten Leemhuis) @ 2024-07-27 16:28 UTC (permalink / raw)
  To: kevin, Alex Deucher, Hersen Wu, Wayne Lin
  Cc: regressions, stable, LKML, ML dri-devel,
	amd-gfx@lists.freedesktop.org

[adding a few people and lists to the recipients]

Hi! Thx for your rpeort.

On 27.07.24 18:07, kevin@holm.dev wrote:
> Connecting two 4k displays with display port through a lenovo usb-c
> dock (type 40AS) to a Lenovo P14s Gen 2 (type 21A0) results in no
> image on the connected displays.
> 
> The CPU in the Lenovo P14s is a 'AMD Ryzen 7 PRO 5850U with Radeon
> Graphics' and it has no discrete GPU.
> 
> I first noticed the issue with kernel version '6.10.0-arch1-2'
> provided by arch linux. With the previous kernel version
> '6.9.10.arch1-1' both connected displays worked normally. I reported
> the issue in the arch forums at
> https://bbs.archlinux.org/viewtopic.php?id=297999 and was guided to
> do a bisection to find the commit that caused the problem. Through
> testing I identified that the issue is not present in the latest
> kernel directly compiled from the trovalds/linux git repository.
> 
> With git bisect I identified 4df96ba66760345471a85ef7bb29e1cd4e956057

That's 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for
mst mode validation") [v6.10-rc1] from Hersen Wu.

Did you try if reverting that commit is possible and might fix the problem?

> as the first bad commit and fa57924c76d995e87ca3533ec60d1d5e55769a27

That's fa57924c76d995 ("drm/amd/display: Refactor function
dm_dp_mst_is_port_support_mode()") [v6.10-post] from Wayne Lin.

> as the first commit that fixed the problem again.

Hmm, the latter commit does not have a fixes tag and might or might not
be to invasive to backport to 6.10. Let's see what the AMD developers say.

> The initial commit only still shows an image on one of the connected
> 4k screens. I have not investigated further to find out at what point
> both displays stopped showing an image.

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.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-27 16:28 ` [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10 Linux regression tracking (Thorsten Leemhuis)
@ 2024-07-27 16:42   ` kevin
  2024-07-29  8:16     ` Lin, Wayne
  2024-07-30  5:56     ` Lin, Wayne
  0 siblings, 2 replies; 11+ messages in thread
From: kevin @ 2024-07-27 16:42 UTC (permalink / raw)
  To: Linux regressions mailing list, Alex Deucher, Hersen Wu,
	Wayne Lin
  Cc: regressions, stable, LKML, ML dri-devel, amd-gfx

> [adding a few people and lists to the recipients]
> 
> Hi! Thx for your rpeort.
> 
> On 27.07.24 18:07, kevin@holm.dev wrote:
> 
> > 
> > Connecting two 4k displays with display port through a lenovo usb-c
> > 
> >  dock (type 40AS) to a Lenovo P14s Gen 2 (type 21A0) results in no
> > 
> >  image on the connected displays.
> > 
> >  
> > 
> >  The CPU in the Lenovo P14s is a 'AMD Ryzen 7 PRO 5850U with Radeon
> > 
> >  Graphics' and it has no discrete GPU.
> > 
> >  
> > 
> >  I first noticed the issue with kernel version '6.10.0-arch1-2'
> > 
> >  provided by arch linux. With the previous kernel version
> > 
> >  '6.9.10.arch1-1' both connected displays worked normally. I reported
> > 
> >  the issue in the arch forums at
> > 
> >  https://bbs.archlinux.org/viewtopic.php?id=297999 and was guided to
> > 
> >  do a bisection to find the commit that caused the problem. Through
> > 
> >  testing I identified that the issue is not present in the latest
> > 
> >  kernel directly compiled from the trovalds/linux git repository.
> > 
> >  
> > 
> >  With git bisect I identified 4df96ba66760345471a85ef7bb29e1cd4e956057
> > 
> 
> That's 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for
> 
> mst mode validation") [v6.10-rc1] from Hersen Wu.
> 
> Did you try if reverting that commit is possible and might fix the problem?

Reverting is not easily possible:

$ git checkout v6.10
[...]
HEAD is now at 0c3836482481 Linux 6.10

$ git revert 4df96ba66760345471a85ef7bb29e1cd4e956057
Auto-merging drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
error: could not revert 4df96ba66760... drm/amd/display: Add timing pixel encoding for mst mode validation

I do not know enough to try and solve the conflict myself without breaking more things.

> 
> > 
> > as the first bad commit and fa57924c76d995e87ca3533ec60d1d5e55769a27
> > 
> 
> That's fa57924c76d995 ("drm/amd/display: Refactor function
> 
> dm_dp_mst_is_port_support_mode()") [v6.10-post] from Wayne Lin.
> 
> > 
> > as the first commit that fixed the problem again.
> > 
> 
> Hmm, the latter commit does not have a fixes tag and might or might not
> 
> be to invasive to backport to 6.10. Let's see what the AMD developers say.
> 
> > 
> > The initial commit only still shows an image on one of the connected
> > 
> >  4k screens. I have not investigated further to find out at what point
> > 
> >  both displays stopped showing an image.
> > 
> 
> 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.
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-27 16:42   ` kevin
@ 2024-07-29  8:16     ` Lin, Wayne
  2024-07-29  8:35       ` Linux regression tracking (Thorsten Leemhuis)
  2024-07-30  5:56     ` Lin, Wayne
  1 sibling, 1 reply; 11+ messages in thread
From: Lin, Wayne @ 2024-07-29  8:16 UTC (permalink / raw)
  To: kevin@holm.dev, Linux regressions mailing list,
	Deucher, Alexander, Wu, Hersen
  Cc: regressions@lists.linux.dev, stable@vger.kernel.org, LKML,
	ML dri-devel, amd-gfx@lists.freedesktop.org

[Public]

Hi,
Thanks for the report.

Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
is kind of correcting problems causing by commit:
4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")

Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!

Regards,
Wayne Lin
> -----Original Message-----
> From: kevin@holm.dev <kevin@holm.dev>
> Sent: Sunday, July 28, 2024 12:43 AM
> To: Linux regressions mailing list <regressions@lists.linux.dev>; Deucher,
> Alexander <Alexander.Deucher@amd.com>; Wu, Hersen
> <hersenxs.wu@amd.com>; Lin, Wayne <Wayne.Lin@amd.com>
> Cc: regressions@lists.linux.dev; stable@vger.kernel.org; LKML <linux-
> kernel@vger.kernel.org>; ML dri-devel <dri-devel@lists.freedesktop.org>;
> amd-gfx@lists.freedesktop.org
> Subject: Re: [REGRESSION] No image on 4k display port displays connected
> through usb-c dock in kernel 6.10
>
> > [adding a few people and lists to the recipients]
> >
> > Hi! Thx for your rpeort.
> >
> > On 27.07.24 18:07, kevin@holm.dev wrote:
> >
> > >
> > > Connecting two 4k displays with display port through a lenovo usb-c
> > >
> > >  dock (type 40AS) to a Lenovo P14s Gen 2 (type 21A0) results in no
> > >
> > >  image on the connected displays.
> > >
> > >
> > >
> > >  The CPU in the Lenovo P14s is a 'AMD Ryzen 7 PRO 5850U with Radeon
> > >
> > >  Graphics' and it has no discrete GPU.
> > >
> > >
> > >
> > >  I first noticed the issue with kernel version '6.10.0-arch1-2'
> > >
> > >  provided by arch linux. With the previous kernel version
> > >
> > >  '6.9.10.arch1-1' both connected displays worked normally. I reported
> > >
> > >  the issue in the arch forums at
> > >
> > >  https://bbs.archlinux.org/viewtopic.php?id=297999 and was guided to
> > >
> > >  do a bisection to find the commit that caused the problem. Through
> > >
> > >  testing I identified that the issue is not present in the latest
> > >
> > >  kernel directly compiled from the trovalds/linux git repository.
> > >
> > >
> > >
> > >  With git bisect I identified
> 4df96ba66760345471a85ef7bb29e1cd4e956057
> > >
> >
> > That's 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for
> >
> > mst mode validation") [v6.10-rc1] from Hersen Wu.
> >
> > Did you try if reverting that commit is possible and might fix the problem?
>
> Reverting is not easily possible:
>
> $ git checkout v6.10
> [...]
> HEAD is now at 0c3836482481 Linux 6.10
>
> $ git revert 4df96ba66760345471a85ef7bb29e1cd4e956057
> Auto-merging
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> CONFLICT (content): Merge conflict in
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> error: could not revert 4df96ba66760... drm/amd/display: Add timing pixel
> encoding for mst mode validation
>
> I do not know enough to try and solve the conflict myself without breaking
> more things.
>
> >
> > >
> > > as the first bad commit and
> fa57924c76d995e87ca3533ec60d1d5e55769a27
> > >
> >
> > That's fa57924c76d995 ("drm/amd/display: Refactor function
> >
> > dm_dp_mst_is_port_support_mode()") [v6.10-post] from Wayne Lin.
> >
> > >
> > > as the first commit that fixed the problem again.
> > >
> >
> > Hmm, the latter commit does not have a fixes tag and might or might not
> >
> > be to invasive to backport to 6.10. Let's see what the AMD developers say.
> >
> > >
> > > The initial commit only still shows an image on one of the connected
> > >
> > >  4k screens. I have not investigated further to find out at what point
> > >
> > >  both displays stopped showing an image.
> > >
> >
> > 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.
> >

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-29  8:16     ` Lin, Wayne
@ 2024-07-29  8:35       ` Linux regression tracking (Thorsten Leemhuis)
  2024-07-29  8:47         ` Christian Heusel
  0 siblings, 1 reply; 11+ messages in thread
From: Linux regression tracking (Thorsten Leemhuis) @ 2024-07-29  8:35 UTC (permalink / raw)
  To: Greg KH, Lin, Wayne
  Cc: stable@vger.kernel.org, LKML, ML dri-devel,
	amd-gfx@lists.freedesktop.org, Wu, Hersen, Deucher, Alexander,
	kevin@holm.dev, Linux regressions mailing list,
	stable@vger.kernel.org

[+Greg +stable]

On 29.07.24 10:16, Lin, Wayne wrote:
>
> Thanks for the report.
> 
> Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
> is kind of correcting problems causing by commit:
> 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")
> 
> Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!

Greg, seem it would be wise to pick up fa57924c76d995 for 6.10.y as
well, despite a lack of Fixes or stable tags.

Ciao, Thorsten

>> -----Original Message-----
>> From: kevin@holm.dev <kevin@holm.dev>
>> Sent: Sunday, July 28, 2024 12:43 AM
>> To: Linux regressions mailing list <regressions@lists.linux.dev>; Deucher,
>> Alexander <Alexander.Deucher@amd.com>; Wu, Hersen
>> <hersenxs.wu@amd.com>; Lin, Wayne <Wayne.Lin@amd.com>
>> Cc: regressions@lists.linux.dev; stable@vger.kernel.org; LKML <linux-
>> kernel@vger.kernel.org>; ML dri-devel <dri-devel@lists.freedesktop.org>;
>> amd-gfx@lists.freedesktop.org
>> Subject: Re: [REGRESSION] No image on 4k display port displays connected
>> through usb-c dock in kernel 6.10
>>
>>> [adding a few people and lists to the recipients]
>>>
>>> Hi! Thx for your rpeort.
>>>
>>> On 27.07.24 18:07, kevin@holm.dev wrote:
>>>
>>>>
>>>> Connecting two 4k displays with display port through a lenovo usb-c
>>>>
>>>>  dock (type 40AS) to a Lenovo P14s Gen 2 (type 21A0) results in no
>>>>
>>>>  image on the connected displays.
>>>>
>>>>
>>>>
>>>>  The CPU in the Lenovo P14s is a 'AMD Ryzen 7 PRO 5850U with Radeon
>>>>
>>>>  Graphics' and it has no discrete GPU.
>>>>
>>>>
>>>>
>>>>  I first noticed the issue with kernel version '6.10.0-arch1-2'
>>>>
>>>>  provided by arch linux. With the previous kernel version
>>>>
>>>>  '6.9.10.arch1-1' both connected displays worked normally. I reported
>>>>
>>>>  the issue in the arch forums at
>>>>
>>>>  https://bbs.archlinux.org/viewtopic.php?id=297999 and was guided to
>>>>
>>>>  do a bisection to find the commit that caused the problem. Through
>>>>
>>>>  testing I identified that the issue is not present in the latest
>>>>
>>>>  kernel directly compiled from the trovalds/linux git repository.
>>>>
>>>>
>>>>
>>>>  With git bisect I identified
>> 4df96ba66760345471a85ef7bb29e1cd4e956057
>>>>
>>>
>>> That's 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for
>>>
>>> mst mode validation") [v6.10-rc1] from Hersen Wu.
>>>
>>> Did you try if reverting that commit is possible and might fix the problem?
>>
>> Reverting is not easily possible:
>>
>> $ git checkout v6.10
>> [...]
>> HEAD is now at 0c3836482481 Linux 6.10
>>
>> $ git revert 4df96ba66760345471a85ef7bb29e1cd4e956057
>> Auto-merging
>> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
>> CONFLICT (content): Merge conflict in
>> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
>> error: could not revert 4df96ba66760... drm/amd/display: Add timing pixel
>> encoding for mst mode validation
>>
>> I do not know enough to try and solve the conflict myself without breaking
>> more things.
>>
>>>
>>>>
>>>> as the first bad commit and
>> fa57924c76d995e87ca3533ec60d1d5e55769a27
>>>>
>>>
>>> That's fa57924c76d995 ("drm/amd/display: Refactor function
>>>
>>> dm_dp_mst_is_port_support_mode()") [v6.10-post] from Wayne Lin.
>>>
>>>>
>>>> as the first commit that fixed the problem again.
>>>>
>>>
>>> Hmm, the latter commit does not have a fixes tag and might or might not
>>>
>>> be to invasive to backport to 6.10. Let's see what the AMD developers say.
>>>
>>>>
>>>> The initial commit only still shows an image on one of the connected
>>>>
>>>>  4k screens. I have not investigated further to find out at what point
>>>>
>>>>  both displays stopped showing an image.
>>>>
>>>
>>> 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.
>>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-29  8:35       ` Linux regression tracking (Thorsten Leemhuis)
@ 2024-07-29  8:47         ` Christian Heusel
  2024-07-29  9:15           ` Linux regression tracking (Thorsten Leemhuis)
  0 siblings, 1 reply; 11+ messages in thread
From: Christian Heusel @ 2024-07-29  8:47 UTC (permalink / raw)
  To: Linux regressions mailing list
  Cc: Greg KH, Lin, Wayne, stable@vger.kernel.org, LKML, ML dri-devel,
	amd-gfx@lists.freedesktop.org, Wu, Hersen, Deucher, Alexander,
	kevin@holm.dev

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

On 24/07/29 10:35AM, Linux regression tracking (Thorsten Leemhuis) wrote:
> [+Greg +stable]
> 
> On 29.07.24 10:16, Lin, Wayne wrote:
> >
> > Thanks for the report.
> > 
> > Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
> > is kind of correcting problems causing by commit:
> > 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")
> > 
> > Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!
> 
> Greg, seem it would be wise to pick up fa57924c76d995 for 6.10.y as
> well, despite a lack of Fixes or stable tags.
> 
> Ciao, Thorsten

The issue is that the fixing commit does not apply to the 6.10 series
without conflict and the offending commit does not revert cleanly
aswell.

Cheers,
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-29  8:47         ` Christian Heusel
@ 2024-07-29  9:15           ` Linux regression tracking (Thorsten Leemhuis)
  2024-07-29 13:21             ` kevin
  0 siblings, 1 reply; 11+ messages in thread
From: Linux regression tracking (Thorsten Leemhuis) @ 2024-07-29  9:15 UTC (permalink / raw)
  To: Christian Heusel, Linux regressions mailing list
  Cc: Greg KH, Lin, Wayne, stable@vger.kernel.org, LKML, ML dri-devel,
	amd-gfx@lists.freedesktop.org, Wu, Hersen, Deucher, Alexander,
	kevin@holm.dev

On 29.07.24 10:47, Christian Heusel wrote:
> On 24/07/29 10:35AM, Linux regression tracking (Thorsten Leemhuis) wrote:
>> [+Greg +stable]
>>
>> On 29.07.24 10:16, Lin, Wayne wrote:
>>>
>>> Thanks for the report.
>>>
>>> Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
>>> is kind of correcting problems causing by commit:
>>> 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")
>>>
>>> Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!
>>
>> Greg, seem it would be wise to pick up fa57924c76d995 for 6.10.y as
>> well, despite a lack of Fixes or stable tags.
>>
>> Ciao, Thorsten
> 
> The issue is that the fixing commit does not apply to the 6.10 series
> without conflict and the offending commit does not revert cleanly
> aswell.

Hah, many thx, I should have checked that.

Lin, Wayne: could you maybe help out here and provide something for 6.10.y?

Ciao, Thorsten

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-29  9:15           ` Linux regression tracking (Thorsten Leemhuis)
@ 2024-07-29 13:21             ` kevin
  2024-07-30  6:05               ` Lin, Wayne
  0 siblings, 1 reply; 11+ messages in thread
From: kevin @ 2024-07-29 13:21 UTC (permalink / raw)
  To: Linux regressions mailing list, Christian Heusel
  Cc: Greg KH, Lin, Wayne, stable, LKML, ML dri-devel, amd-gfx,
	Wu, Hersen, Deucher, Alexander

July 29, 2024 at 11:15 AM, "Linux regression tracking (Thorsten Leemhuis)" <regressions@leemhuis.info> wrote:



> 
> On 29.07.24 10:47, Christian Heusel wrote:
> 
> > 
> > On 24/07/29 10:35AM, Linux regression tracking (Thorsten Leemhuis) wrote:
> > 
> > > 
> > > [+Greg +stable]
> > > 
> > >  On 29.07.24 10:16, Lin, Wayne wrote:
> > > 
> > 
> >  Thanks for the report.
> > 
> >  Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
> > 
> >  is kind of correcting problems causing by commit:
> > 
> >  4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")
> > 
> >  Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!
> > 
> > > 
> > > Greg, seem it would be wise to pick up fa57924c76d995 for 6.10.y as
> > > 
> > >  well, despite a lack of Fixes or stable tags.
> > > 
> > >  Ciao, Thorsten
> > > 
> > 
> >  
> > 
> >  The issue is that the fixing commit does not apply to the 6.10 series
> > 
> >  without conflict and the offending commit does not revert cleanly
> > 
> >  aswell.
> > 
> 
> Hah, many thx, I should have checked that.
> 
> Lin, Wayne: could you maybe help out here and provide something for 6.10.y?
> 
> Ciao, Thorsten
>

I reverted 4df96ba6676034 from v6.10.2 from the stable/linux git, resolving the conflict by removing everything that git marked as from the current branch and kept everything marked as from before the branch to merge. That resulted in a patch that is fixing the problem on my machine. Since I don't understand what the code is actually doing it might break things on other machines.

From cd1674a469cede83f6b0907f320b6af08c3c8950 Mon Sep 17 00:00:00 2001
From: Kevin Holm <kevin@holm.dev>
Date: Mon, 29 Jul 2024 13:24:38 +0200
Subject: [PATCH] Test patch

---
 .../display/amdgpu_dm/amdgpu_dm_mst_types.c   | 33 +++----------------
 1 file changed, 5 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index a5e1a93ddaea..5c555a37e367 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -1599,7 +1599,7 @@ enum dc_status dm_dp_mst_is_port_support_mode(
     struct amdgpu_dm_connector *aconnector,
     struct dc_stream_state *stream)
 {
-    int pbn, branch_max_throughput_mps = 0;
+    int bpp, pbn, branch_max_throughput_mps = 0;
     struct dc_link_settings cur_link_settings;
     unsigned int end_to_end_bw_in_kbps = 0;
     unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0;
@@ -1649,34 +1649,11 @@ enum dc_status dm_dp_mst_is_port_support_mode(
             }
         }
     } else {
-        /* Check if mode could be supported within max slot
-         * number of current mst link and full_pbn of mst links.
-         */
-        int pbn_div, slot_num, max_slot_num;
-        enum dc_link_encoding_format link_encoding;
-        uint32_t stream_kbps =
-            dc_bandwidth_in_kbps_from_timing(&stream->timing,
-                dc_link_get_highest_encoding_format(stream->link));
-
-        pbn = kbps_to_peak_pbn(stream_kbps);
-        pbn_div = dm_mst_get_pbn_divider(stream->link);
-        slot_num = DIV_ROUND_UP(pbn, pbn_div);
-
-        link_encoding = dc_link_get_highest_encoding_format(stream->link);
-        if (link_encoding == DC_LINK_ENCODING_DP_8b_10b)
-            max_slot_num = 63;
-        else if (link_encoding == DC_LINK_ENCODING_DP_128b_132b)
-            max_slot_num = 64;
-        else {
-            DRM_DEBUG_DRIVER("Invalid link encoding format\n");
+        /* check if mode could be supported within full_pbn */
+        bpp = convert_dc_color_depth_into_bpc(stream->timing.display_color_depth) * 3;
+        pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp << 4);
+        if (pbn > aconnector->mst_output_port->full_pbn)
             return DC_FAIL_BANDWIDTH_VALIDATE;
-        }
-
-        if (slot_num > max_slot_num ||
-            pbn > aconnector->mst_output_port->full_pbn) {
-            DRM_DEBUG_DRIVER("Mode can not be supported within mst links!");
-            return DC_FAIL_BANDWIDTH_VALIDATE;
-        }
     }
 
     /* check is mst dsc output bandwidth branch_overall_throughput_0_mps */
-- 
2.45.2


Regards,
Kevin

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* RE: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-27 16:42   ` kevin
  2024-07-29  8:16     ` Lin, Wayne
@ 2024-07-30  5:56     ` Lin, Wayne
  2024-07-30  6:20       ` Greg KH
  1 sibling, 1 reply; 11+ messages in thread
From: Lin, Wayne @ 2024-07-30  5:56 UTC (permalink / raw)
  To: kevin@holm.dev, Linux regressions mailing list,
	Deucher, Alexander, Wu, Hersen
  Cc: regressions@lists.linux.dev, stable@vger.kernel.org, LKML,
	ML dri-devel, amd-gfx@lists.freedesktop.org

[Public]

Hi,
Thanks for the report.

Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
is kind of correcting problems causing by commit:
4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")

Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!

Regards,
Wayne Lin
> -----Original Message-----
> From: kevin@holm.dev <kevin@holm.dev>
> Sent: Sunday, July 28, 2024 12:43 AM
> To: Linux regressions mailing list <regressions@lists.linux.dev>; Deucher,
> Alexander <Alexander.Deucher@amd.com>; Wu, Hersen
> <hersenxs.wu@amd.com>; Lin, Wayne <Wayne.Lin@amd.com>
> Cc: regressions@lists.linux.dev; stable@vger.kernel.org; LKML <linux-
> kernel@vger.kernel.org>; ML dri-devel <dri-devel@lists.freedesktop.org>;
> amd-gfx@lists.freedesktop.org
> Subject: Re: [REGRESSION] No image on 4k display port displays connected
> through usb-c dock in kernel 6.10
>
> > [adding a few people and lists to the recipients]
> >
> > Hi! Thx for your rpeort.
> >
> > On 27.07.24 18:07, kevin@holm.dev wrote:
> >
> > >
> > > Connecting two 4k displays with display port through a lenovo usb-c
> > >
> > >  dock (type 40AS) to a Lenovo P14s Gen 2 (type 21A0) results in no
> > >
> > >  image on the connected displays.
> > >
> > >
> > >
> > >  The CPU in the Lenovo P14s is a 'AMD Ryzen 7 PRO 5850U with Radeon
> > >
> > >  Graphics' and it has no discrete GPU.
> > >
> > >
> > >
> > >  I first noticed the issue with kernel version '6.10.0-arch1-2'
> > >
> > >  provided by arch linux. With the previous kernel version
> > >
> > >  '6.9.10.arch1-1' both connected displays worked normally. I reported
> > >
> > >  the issue in the arch forums at
> > >
> > >  https://bbs.archlinux.org/viewtopic.php?id=297999 and was guided to
> > >
> > >  do a bisection to find the commit that caused the problem. Through
> > >
> > >  testing I identified that the issue is not present in the latest
> > >
> > >  kernel directly compiled from the trovalds/linux git repository.
> > >
> > >
> > >
> > >  With git bisect I identified
> 4df96ba66760345471a85ef7bb29e1cd4e956057
> > >
> >
> > That's 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for
> >
> > mst mode validation") [v6.10-rc1] from Hersen Wu.
> >
> > Did you try if reverting that commit is possible and might fix the problem?
>
> Reverting is not easily possible:
>
> $ git checkout v6.10
> [...]
> HEAD is now at 0c3836482481 Linux 6.10
>
> $ git revert 4df96ba66760345471a85ef7bb29e1cd4e956057
> Auto-merging
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> CONFLICT (content): Merge conflict in
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> error: could not revert 4df96ba66760... drm/amd/display: Add timing pixel
> encoding for mst mode validation
>
> I do not know enough to try and solve the conflict myself without breaking
> more things.
>
> >
> > >
> > > as the first bad commit and
> fa57924c76d995e87ca3533ec60d1d5e55769a27
> > >
> >
> > That's fa57924c76d995 ("drm/amd/display: Refactor function
> >
> > dm_dp_mst_is_port_support_mode()") [v6.10-post] from Wayne Lin.
> >
> > >
> > > as the first commit that fixed the problem again.
> > >
> >
> > Hmm, the latter commit does not have a fixes tag and might or might not
> >
> > be to invasive to backport to 6.10. Let's see what the AMD developers say.
> >
> > >
> > > The initial commit only still shows an image on one of the connected
> > >
> > >  4k screens. I have not investigated further to find out at what point
> > >
> > >  both displays stopped showing an image.
> > >
> >
> > 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.
> >

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-29 13:21             ` kevin
@ 2024-07-30  6:05               ` Lin, Wayne
  0 siblings, 0 replies; 11+ messages in thread
From: Lin, Wayne @ 2024-07-30  6:05 UTC (permalink / raw)
  To: kevin@holm.dev, Linux regressions mailing list, Christian Heusel
  Cc: Greg KH, stable@vger.kernel.org, LKML, ML dri-devel,
	amd-gfx@lists.freedesktop.org, Wu, Hersen, Deucher, Alexander

[Public]

Thanks, Kevin.
The revert patch seems correct, but we plan to refactor this function as the following patch
fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")

I'll make time to provide one. Thanks!

Regards,
Wayne

> -----Original Message-----
> From: kevin@holm.dev <kevin@holm.dev>
> Sent: Monday, July 29, 2024 9:22 PM
> To: Linux regressions mailing list <regressions@lists.linux.dev>; Christian
> Heusel <christian@heusel.eu>
> Cc: Greg KH <gregkh@linuxfoundation.org>; Lin, Wayne
> <Wayne.Lin@amd.com>; stable@vger.kernel.org; LKML <linux-
> kernel@vger.kernel.org>; ML dri-devel <dri-devel@lists.freedesktop.org>;
> amd-gfx@lists.freedesktop.org; Wu, Hersen <hersenxs.wu@amd.com>;
> Deucher, Alexander <Alexander.Deucher@amd.com>
> Subject: Re: [REGRESSION] No image on 4k display port displays connected
> through usb-c dock in kernel 6.10
>
> July 29, 2024 at 11:15 AM, "Linux regression tracking (Thorsten Leemhuis)"
> <regressions@leemhuis.info> wrote:
>
>
>
> >
> > On 29.07.24 10:47, Christian Heusel wrote:
> >
> > >
> > > On 24/07/29 10:35AM, Linux regression tracking (Thorsten Leemhuis)
> wrote:
> > >
> > > >
> > > > [+Greg +stable]
> > > >
> > > >  On 29.07.24 10:16, Lin, Wayne wrote:
> > > >
> > >
> > >  Thanks for the report.
> > >
> > >  Patch fa57924c76d995 ("drm/amd/display: Refactor function
> > > dm_dp_mst_is_port_support_mode()")
> > >
> > >  is kind of correcting problems causing by commit:
> > >
> > >  4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst
> > > mode validation")
> > >
> > >  Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!
> > >
> > > >
> > > > Greg, seem it would be wise to pick up fa57924c76d995 for 6.10.y
> > > > as
> > > >
> > > >  well, despite a lack of Fixes or stable tags.
> > > >
> > > >  Ciao, Thorsten
> > > >
> > >
> > >
> > >
> > >  The issue is that the fixing commit does not apply to the 6.10
> > > series
> > >
> > >  without conflict and the offending commit does not revert cleanly
> > >
> > >  aswell.
> > >
> >
> > Hah, many thx, I should have checked that.
> >
> > Lin, Wayne: could you maybe help out here and provide something for
> 6.10.y?
> >
> > Ciao, Thorsten
> >
>
> I reverted 4df96ba6676034 from v6.10.2 from the stable/linux git, resolving
> the conflict by removing everything that git marked as from the current branch
> and kept everything marked as from before the branch to merge. That resulted
> in a patch that is fixing the problem on my machine. Since I don't understand
> what the code is actually doing it might break things on other machines.
>
> From cd1674a469cede83f6b0907f320b6af08c3c8950 Mon Sep 17 00:00:00
> 2001
> From: Kevin Holm <kevin@holm.dev>
> Date: Mon, 29 Jul 2024 13:24:38 +0200
> Subject: [PATCH] Test patch
>
> ---
>  .../display/amdgpu_dm/amdgpu_dm_mst_types.c   | 33 +++----------------
>  1 file changed, 5 insertions(+), 28 deletions(-)
>
> diff --git
> a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index a5e1a93ddaea..5c555a37e367 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -1599,7 +1599,7 @@ enum dc_status
> dm_dp_mst_is_port_support_mode(
>      struct amdgpu_dm_connector *aconnector,
>      struct dc_stream_state *stream)
>  {
> -    int pbn, branch_max_throughput_mps = 0;
> +    int bpp, pbn, branch_max_throughput_mps = 0;
>      struct dc_link_settings cur_link_settings;
>      unsigned int end_to_end_bw_in_kbps = 0;
>      unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0; @@ -
> 1649,34 +1649,11 @@ enum dc_status dm_dp_mst_is_port_support_mode(
>              }
>          }
>      } else {
> -        /* Check if mode could be supported within max slot
> -         * number of current mst link and full_pbn of mst links.
> -         */
> -        int pbn_div, slot_num, max_slot_num;
> -        enum dc_link_encoding_format link_encoding;
> -        uint32_t stream_kbps =
> -            dc_bandwidth_in_kbps_from_timing(&stream->timing,
> -                dc_link_get_highest_encoding_format(stream->link));
> -
> -        pbn = kbps_to_peak_pbn(stream_kbps);
> -        pbn_div = dm_mst_get_pbn_divider(stream->link);
> -        slot_num = DIV_ROUND_UP(pbn, pbn_div);
> -
> -        link_encoding = dc_link_get_highest_encoding_format(stream->link);
> -        if (link_encoding == DC_LINK_ENCODING_DP_8b_10b)
> -            max_slot_num = 63;
> -        else if (link_encoding == DC_LINK_ENCODING_DP_128b_132b)
> -            max_slot_num = 64;
> -        else {
> -            DRM_DEBUG_DRIVER("Invalid link encoding format\n");
> +        /* check if mode could be supported within full_pbn */
> +        bpp = convert_dc_color_depth_into_bpc(stream-
> >timing.display_color_depth) * 3;
> +        pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp
> << 4);
> +        if (pbn > aconnector->mst_output_port->full_pbn)
>              return DC_FAIL_BANDWIDTH_VALIDATE;
> -        }
> -
> -        if (slot_num > max_slot_num ||
> -            pbn > aconnector->mst_output_port->full_pbn) {
> -            DRM_DEBUG_DRIVER("Mode can not be supported within mst links!");
> -            return DC_FAIL_BANDWIDTH_VALIDATE;
> -        }
>      }
>
>      /* check is mst dsc output bandwidth branch_overall_throughput_0_mps
> */
> --
> 2.45.2
>
>
> Regards,
> Kevin

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-30  5:56     ` Lin, Wayne
@ 2024-07-30  6:20       ` Greg KH
  2024-07-30  9:09         ` Lin, Wayne
  0 siblings, 1 reply; 11+ messages in thread
From: Greg KH @ 2024-07-30  6:20 UTC (permalink / raw)
  To: Lin, Wayne
  Cc: kevin@holm.dev, Linux regressions mailing list,
	Deucher, Alexander, Wu, Hersen, stable@vger.kernel.org, LKML,
	ML dri-devel, amd-gfx@lists.freedesktop.org

On Tue, Jul 30, 2024 at 05:56:42AM +0000, Lin, Wayne wrote:
> [Public]
> 
> Hi,
> Thanks for the report.
> 
> Patch fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")
> is kind of correcting problems causing by commit:
> 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst mode validation")
> 
> Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!

Please submit a backported version to the stable@vger.kernel.org list
and we will be glad to consider it.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10
  2024-07-30  6:20       ` Greg KH
@ 2024-07-30  9:09         ` Lin, Wayne
  0 siblings, 0 replies; 11+ messages in thread
From: Lin, Wayne @ 2024-07-30  9:09 UTC (permalink / raw)
  To: Greg KH
  Cc: kevin@holm.dev, Linux regressions mailing list,
	Deucher, Alexander, Wu, Hersen, stable@vger.kernel.org, LKML,
	ML dri-devel, amd-gfx@lists.freedesktop.org

[Public]

Thanks, Greg.
Will do.

Regards,
Wayne Lin

> -----Original Message-----
> From: Greg KH <gregkh@linuxfoundation.org>
> Sent: Tuesday, July 30, 2024 2:21 PM
> To: Lin, Wayne <Wayne.Lin@amd.com>
> Cc: kevin@holm.dev; Linux regressions mailing list
> <regressions@lists.linux.dev>; Deucher, Alexander
> <Alexander.Deucher@amd.com>; Wu, Hersen <hersenxs.wu@amd.com>;
> stable@vger.kernel.org; LKML <linux-kernel@vger.kernel.org>; ML dri-devel
> <dri-devel@lists.freedesktop.org>; amd-gfx@lists.freedesktop.org
> Subject: Re: [REGRESSION] No image on 4k display port displays connected
> through usb-c dock in kernel 6.10
>
> On Tue, Jul 30, 2024 at 05:56:42AM +0000, Lin, Wayne wrote:
> > [Public]
> >
> > Hi,
> > Thanks for the report.
> >
> > Patch fa57924c76d995 ("drm/amd/display: Refactor function
> > dm_dp_mst_is_port_support_mode()")
> > is kind of correcting problems causing by commit:
> > 4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst
> > mode validation")
> >
> > Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!
>
> Please submit a backported version to the stable@vger.kernel.org list and we
> will be glad to consider it.
>
> thanks,
>
> greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-07-30  9:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <d74a7768e957e6ce88c27a5bece0c64dff132e24@holm.dev>
2024-07-27 16:28 ` [REGRESSION] No image on 4k display port displays connected through usb-c dock in kernel 6.10 Linux regression tracking (Thorsten Leemhuis)
2024-07-27 16:42   ` kevin
2024-07-29  8:16     ` Lin, Wayne
2024-07-29  8:35       ` Linux regression tracking (Thorsten Leemhuis)
2024-07-29  8:47         ` Christian Heusel
2024-07-29  9:15           ` Linux regression tracking (Thorsten Leemhuis)
2024-07-29 13:21             ` kevin
2024-07-30  6:05               ` Lin, Wayne
2024-07-30  5:56     ` Lin, Wayne
2024-07-30  6:20       ` Greg KH
2024-07-30  9:09         ` Lin, Wayne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox