[bug report] drm/amd: Enable SMU 15_0_0 support
Dan Carpenter <[email protected]> Sat, 8 Aug 2026 14:44:38 +0300
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
Hello Pratik Vishwakarma,
Commit c7fc0f372374 ("drm/amd: Enable SMU 15_0_0 support") from Dec
5, 2025 (linux-next), leads to the following Smatch static checker
warning:
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu15/smu_v15_0.c:135 smu_v15_0_load_microcode()
error: uninitialized symbol 'mp1_fw_flags'.
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu15/smu_v15_0.c
109 int smu_v15_0_load_microcode(struct smu_context *smu)
110 {
111 struct amdgpu_device *adev = smu->adev;
112 const uint32_t *src;
113 const struct smc_firmware_header_v1_0 *hdr;
114 uint32_t addr_start = MP1_SRAM;
115 uint32_t i;
116 uint32_t smc_fw_size;
117 uint32_t mp1_fw_flags;
118
119 hdr = (const struct smc_firmware_header_v1_0 *) adev->pm.fw->data;
120 src = (const uint32_t *)(adev->pm.fw->data +
121 le32_to_cpu(hdr->header.ucode_array_offset_bytes));
122 smc_fw_size = hdr->header.ucode_size_bytes;
123
124 for (i = 1; i < smc_fw_size/4 - 1; i++) {
125 WREG32_PCIE(addr_start, src[i]);
126 addr_start += 4;
127 }
128
129
130 for (i = 0; i < adev->usec_timeout; i++) {
131 if (smu->is_apu)
132 mp1_fw_flags = RREG32_PCIE(MP1_Public |
133 (smnMP1_FIRMWARE_FLAGS & 0xffffffff));
mp1_fw_flags is uninitialized if smu->is_apu is false.
134
--> 135 if ((mp1_fw_flags & MP1_CRU1_MP1_FIRMWARE_FLAGS__INTERRUPTS_ENABLED_MASK) >>
136 MP1_CRU1_MP1_FIRMWARE_FLAGS__INTERRUPTS_ENABLED__SHIFT)
137 break;
138 udelay(1);
139 }
140
141 if (i == adev->usec_timeout)
142 return -ETIME;
143
144 return 0;
145 }
This email is a free service from the Smatch-CI project [smatch.sf.net].
regards,
dan carpenter