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 as the first bad commit and fa57924c76d995e87ca3533ec60d1d5e55769a27 as the first commit that fixed the problem again.
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.
Best Regards, Kevin
#regzbot introduced: 4df96ba66760345471a85ef7bb29e1cd4e956057
[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.
[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.
[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.
[+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.
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
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
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 */
[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
[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.
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
[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
linux-stable-mirror@lists.linaro.org