Compare commits

...

3 Commits

2 changed files with 81 additions and 3 deletions

View File

@ -0,0 +1,75 @@
From 6cd3a114e90c1b9be60871d2a324d71386f9ae6b Mon Sep 17 00:00:00 2001
From: Kevin Holm <kevin@holm.dev>
Date: Mon, 29 Jul 2024 20:03:54 +0200
Subject: [PATCH] Revert "drm/amd/display: Add timing pixel encoding for mst
mode validation"
This reverts commit 4df96ba66760345471a85ef7bb29e1cd4e956057.
[Why] The commit caused some external displays to not show any image when
connected through a usb-c hub.
[How] Manually solved the merge conflict by removing everything git marked
belonging to v6.10.2 and adding everything git marked to belong to the
version before the problem commit.
Link: https://lore.kernel.org/stable/fd8ece71459cd79f669efcfd25e4ce38b80d4164@holm.dev/T/#t
---
.../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

View File

@ -1,6 +1,6 @@
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org> # Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
pkgbase=linux pkgbase=linux-kjh
pkgver=6.10.2.arch1 pkgver=6.10.2.arch1
pkgrel=1 pkgrel=1
pkgdesc='Linux' pkgdesc='Linux'
@ -35,6 +35,7 @@ source=(
https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign} https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign}
$url/releases/download/$_srctag/linux-$_srctag.patch.zst{,.sig} $url/releases/download/$_srctag/linux-$_srctag.patch.zst{,.sig}
config # the main kernel config file config # the main kernel config file
0001-Revert-4df96ba66760.patch
) )
validpgpkeys=( validpgpkeys=(
ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds
@ -46,12 +47,14 @@ sha256sums=('73d8520dd9cba5acfc5e7208e76b35d9740b8aae38210a9224e32ec4c0d29b70'
'SKIP' 'SKIP'
'a4efb43085bdfff93b11f26dd276859d347752958717b99c9f4a97133b857515' 'a4efb43085bdfff93b11f26dd276859d347752958717b99c9f4a97133b857515'
'SKIP' 'SKIP'
'db35dc40884ec866a32225b2f7916fa7ae24273e08f9e204cddb010816255e17') 'db35dc40884ec866a32225b2f7916fa7ae24273e08f9e204cddb010816255e17'
'012a9dfcf711661e3200949cfdf0682be4afb7fe357d27c638b898c80bfec680')
b2sums=('ab1d2e79a1bb8a9b78ab5b1af93db7ef356cb5e14bba1121bbd3ae06b9589c8bfc32bab373acdd0ecf965ac132130e7eb34e70b35a9df1bd85b49dab97e2c02a' b2sums=('ab1d2e79a1bb8a9b78ab5b1af93db7ef356cb5e14bba1121bbd3ae06b9589c8bfc32bab373acdd0ecf965ac132130e7eb34e70b35a9df1bd85b49dab97e2c02a'
'SKIP' 'SKIP'
'9c16132af733ba448db39467d0d20df7143e2f2c1acf01653afa898a3e10f5fa170db24bdede4e7083b72064a3dc4bc4e6d616d3ac7cdc0a6b25d5725ff633fc' '9c16132af733ba448db39467d0d20df7143e2f2c1acf01653afa898a3e10f5fa170db24bdede4e7083b72064a3dc4bc4e6d616d3ac7cdc0a6b25d5725ff633fc'
'SKIP' 'SKIP'
'3f8f9bbde186b92bca111978c7df904446465b63e612fb2220d063758b0d11eab2f6907d41512170056cd35233021a2614302911a1ac796e5e1fbd42eaed3b8a') '3f8f9bbde186b92bca111978c7df904446465b63e612fb2220d063758b0d11eab2f6907d41512170056cd35233021a2614302911a1ac796e5e1fbd42eaed3b8a'
'feb57cfa4a1db0d68ea9733afdd507489e23ee4fa782511adf79c18510c20d6d776b2b6b1ae0ce1c0f54a9cc69b47e3f42dcf45eb3ca4b58351add85fe01da61')
export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_USER=$pkgbase