public inbox for linux-kernel@vger.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: Yifan Zhang, stable, Hamza Mahfooz, Alex Deucher,
	Christian König, Pan, Xinhui, David Airlie, Daniel Vetter,
	Harry Wentland, Leo Li, Rodrigo Siqueira, Lijo Lazar,
	Hawking Zhang, Felix Kuehling, Le Ma, Candice Li, Lang Yu,
	Maarten Lankhorst, Victor Zhao, Mario Limonciello,
	Srinivasan Shanmugam, Shashank Sharma, Qingqing Zhuo,
	Aurabindo Pillai, Hersen Wu, Stylon Wang, Wayne Lin, Alan Liu,
	Luben Tuikov, dri-devel, linux-kernel

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 21:59 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