[AMD Official Use Only - General]

Reviewed-by: Huang Rui <ray.hu...@amd.com>

-----Original Message-----
From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of Alex Deucher
Sent: Wednesday, November 30, 2022 2:17 AM
To: amd-gfx@lists.freedesktop.org
Cc: Deucher, Alexander <alexander.deuc...@amd.com>
Subject: [PATCH] drm/amd/display: use the proper fb offset for DM

This fixes DMCU initialization in APU GPU passthrough.  The DMCU needs the GPU 
physical address, not the CPU physical address.  This ends up working out on 
bare metal because we always use the physical address, but doesn't work in 
passthrough because the addresses are different.

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 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 3792a181253b..850432e220a8 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1096,7 +1096,7 @@ static int dm_dmub_hw_init(struct amdgpu_device *adev)
        /* Initialize hardware. */
        memset(&hw_params, 0, sizeof(hw_params));
        hw_params.fb_base = adev->gmc.fb_start;
-       hw_params.fb_offset = adev->gmc.aper_base;
+       hw_params.fb_offset = adev->vm_manager.vram_base_offset;
 
        /* backdoor load firmware and trigger dmub running */
        if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) @@ -1218,7 +1218,7 
@@ static void mmhub_read_system_context(struct amdgpu_device *adev, struct 
dc_phy_
        pa_config->system_aperture.agp_top = (uint64_t)agp_top << 24;
 
        pa_config->system_aperture.fb_base = adev->gmc.fb_start;
-       pa_config->system_aperture.fb_offset = adev->gmc.aper_base;
+       pa_config->system_aperture.fb_offset = 
+adev->vm_manager.vram_base_offset;
        pa_config->system_aperture.fb_top = adev->gmc.fb_end;
 
        pa_config->gart_config.page_table_start_addr = 
page_table_start.quad_part << 12;
--
2.38.1

<<attachment: winmail.dat>>

Reply via email to