FAILED: patch "[PATCH] drm/amd/display: fix the white screen issue when >= 64GB DRAM" failed to apply to 5.10-stable tree
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x a4246c63516600ce6feb4e2ee2124b8796f7a664
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023112430-supernova-express-3486@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..
Possible dependencies:
a4246c635166 ("drm/amd/display: fix the white screen issue when >= 64GB DRAM") c0fb85ae02b6 ("drm/amd/display: setup system context in dm_init")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From a4246c63516600ce6feb4e2ee2124b8796f7a664 Mon Sep 17 00:00:00 2001
From: Yifan Zhang <[email protected]>
Date: Fri, 8 Sep 2023 16:46:39 +0800
Subject: [PATCH] drm/amd/display: fix the white screen issue when >= 64GB DRAM
Dropping bit 31:4 of page table base is wrong, it makes page table base points to wrong address if phys addr is beyond 64GB; dropping page_table_start/end bit 31:4 is unnecessary since dcn20_vmid_setup will do that. Also, while we are at it, cleanup the assignments using upper_32_bits()/lower_32_bits() and AMDGPU_GPU_PAGE_SHIFT.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +9 -5
@@ -1283,11 +1283,15 @@ static void mmhub_read_system_context(struct amdgpu_device *adev, struct dc_phy_ pt_base =amdgpu_gmc_pd_addr (adev->gart.bo); - page_table_start.high_part = (u32)(adev->gmc.gart_start >>44 ) &0xF ; - page_table_start.low_part = (u32)(adev->gmc.gart_start >>12 ); - page_table_end.high_part = (u32)(adev->gmc.gart_end >>44 ) &0xF ; - page_table_end.low_part = (u32)(adev->gmc.gart_end >>12 ); - page_table_base.high_part =upper_32_bits (pt_base) &0xF ; + page_table_start.high_part =upper_32_bits (adev->gmc.gart_start >> +AMDGPU_GPU_PAGE_SHIFT ); + page_table_start.low_part =lower_32_bits (adev->gmc.gart_start >> +AMDGPU_GPU_PAGE_SHIFT ); + page_table_end.high_part =upper_32_bits (adev->gmc.gart_end >> +AMDGPU_GPU_PAGE_SHIFT ); + page_table_end.low_part =lower_32_bits (adev->gmc.gart_end >> +AMDGPU_GPU_PAGE_SHIFT ); + page_table_base.high_part =upper_32_bits (pt_base); page_table_base.low_part =lower_32_bits (pt_base); pa_config->system_aperture.start_addr = (uint64_t )logical_addr_low <<18 ;