From 4a403e747b313b6f9ec792563b814f6ce871902b Mon Sep 17 00:00:00 2001 From: usbpc Date: Mon, 29 Jul 2024 20:46:02 +0200 Subject: [PATCH] Added the patch file to the repository instead of hosting it externally. --- 0001-Revert-4df96ba66760.patch | 75 ++++++++++++++++++++++++++++++++++ PKGBUILD | 2 +- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 0001-Revert-4df96ba66760.patch diff --git a/0001-Revert-4df96ba66760.patch b/0001-Revert-4df96ba66760.patch new file mode 100644 index 0000000..51cd599 --- /dev/null +++ b/0001-Revert-4df96ba66760.patch @@ -0,0 +1,75 @@ +From 6cd3a114e90c1b9be60871d2a324d71386f9ae6b Mon Sep 17 00:00:00 2001 +From: Kevin Holm +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 + diff --git a/PKGBUILD b/PKGBUILD index b07f704..780a960 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -35,7 +35,7 @@ source=( https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign} $url/releases/download/$_srctag/linux-$_srctag.patch.zst{,.sig} config # the main kernel config file - https://dl.holm.dev/linux-patches/0001-Revert-4df96ba66760.patch + 0001-Revert-4df96ba66760.patch ) validpgpkeys=( ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds