AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] drm/amd/display: fix the white screen issue when >= 64GB DRAM
@ 2023-09-08 14:55 Hamza Mahfooz
  2023-09-08 14:55 ` [PATCH v2 2/2] Revert "drm/amd: Disable S/G for APUs when 64GB or more host memory" Hamza Mahfooz
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Hamza Mahfooz @ 2023-09-08 14:55 UTC (permalink / raw)
  To: amd-gfx
  Cc: Alan Liu, Lijo Lazar, dri-devel, Mario Limonciello, David Airlie,
	Shashank Sharma, Rodrigo Siqueira, Aurabindo Pillai,
	Qingqing Zhuo, Harry Wentland, Stylon Wang, Victor Zhao,
	Srinivasan Shanmugam, Leo Li, Maarten Lankhorst, Le Ma, Hersen Wu,
	Yifan Zhang, Felix Kuehling, Pan, Xinhui, linux-kernel, stable,
	Hawking Zhang, Daniel Vetter, Wayne Lin, Alex Deucher, Candice Li,
	Lang Yu, Christian König, Luben Tuikov, Hamza Mahfooz

From: Yifan Zhang <yifan1.zhang@amd.com>

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.

Cc: stable@vger.kernel.org
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2354
Fixes: 81d0bcf99009 ("drm/amdgpu: make display pinning more flexible (v2)")
Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
---
v2: use upper_32_bits()/lower_32_bits() and AMDGPU_GPU_PAGE_SHIFT
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 1bb1a394f55f..5f14cd9391ca 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -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;
-- 
2.41.0


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

end of thread, other threads:[~2023-09-11  8:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-08 14:55 [PATCH v2 1/2] drm/amd/display: fix the white screen issue when >= 64GB DRAM Hamza Mahfooz
2023-09-08 14:55 ` [PATCH v2 2/2] Revert "drm/amd: Disable S/G for APUs when 64GB or more host memory" Hamza Mahfooz
2023-09-08 15:05   ` Harry Wentland
2023-09-08 15:06 ` [PATCH v2 1/2] drm/amd/display: fix the white screen issue when >= 64GB DRAM Alex Deucher
2023-09-11  8:38 ` Christian König

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