]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amd/display: Fix incorrect fw_state address in dmub_srv
authorLo-an Chen <lo-an.chen@amd.com>
Mon, 10 Mar 2025 06:52:22 +0000 (14:52 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 18 Mar 2025 18:03:47 +0000 (14:03 -0400)
[WHY]
The fw_state in dmub_srv was assigned with wrong address.
The address was pointed to the firmware region.

[HOW]
Fix the firmware state by using DMUB_DEBUG_FW_STATE_OFFSET
in dmub_cmd.h.

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Lo-an Chen <lo-an.chen@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c

index 70038f83170cb9236f4024ab14656aee284f8de8..ae8133816b43c95b1f5843645a6bd8fd5d417644 100644 (file)
@@ -708,7 +708,7 @@ enum dmub_status dmub_srv_hw_init(struct dmub_srv *dmub,
        cw6.region.base = DMUB_CW6_BASE;
        cw6.region.top = cw6.region.base + fw_state_fb->size;
 
-       dmub->fw_state = fw_state_fb->cpu_addr;
+       dmub->fw_state = (void *)((uintptr_t)(fw_state_fb->cpu_addr) + DMUB_DEBUG_FW_STATE_OFFSET);
 
        region6.offset.quad_part = shared_state_fb->gpu_addr;
        region6.region.base = DMUB_CW6_BASE;