Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon/cik: write gfx ucode version to ucode addr reg

Helpful for debugging as the version shows up in a
register dump.

Cc: Jay Cornwall <jay.cornwall@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+7 -10
+7 -10
drivers/gpu/drm/radeon/cik.c
··· 4235 4235 WREG32(CP_PFP_UCODE_ADDR, 0); 4236 4236 for (i = 0; i < fw_size; i++) 4237 4237 WREG32(CP_PFP_UCODE_DATA, le32_to_cpup(fw_data++)); 4238 - WREG32(CP_PFP_UCODE_ADDR, 0); 4238 + WREG32(CP_PFP_UCODE_ADDR, le32_to_cpu(pfp_hdr->header.ucode_version)); 4239 4239 4240 4240 /* CE */ 4241 4241 fw_data = (const __le32 *) ··· 4244 4244 WREG32(CP_CE_UCODE_ADDR, 0); 4245 4245 for (i = 0; i < fw_size; i++) 4246 4246 WREG32(CP_CE_UCODE_DATA, le32_to_cpup(fw_data++)); 4247 - WREG32(CP_CE_UCODE_ADDR, 0); 4247 + WREG32(CP_CE_UCODE_ADDR, le32_to_cpu(ce_hdr->header.ucode_version)); 4248 4248 4249 4249 /* ME */ 4250 4250 fw_data = (const __be32 *) ··· 4253 4253 WREG32(CP_ME_RAM_WADDR, 0); 4254 4254 for (i = 0; i < fw_size; i++) 4255 4255 WREG32(CP_ME_RAM_DATA, le32_to_cpup(fw_data++)); 4256 - WREG32(CP_ME_RAM_WADDR, 0); 4256 + WREG32(CP_ME_RAM_WADDR, le32_to_cpu(me_hdr->header.ucode_version)); 4257 + WREG32(CP_ME_RAM_RADDR, le32_to_cpu(me_hdr->header.ucode_version)); 4257 4258 } else { 4258 4259 const __be32 *fw_data; 4259 4260 ··· 4280 4279 WREG32(CP_ME_RAM_WADDR, 0); 4281 4280 } 4282 4281 4283 - WREG32(CP_PFP_UCODE_ADDR, 0); 4284 - WREG32(CP_CE_UCODE_ADDR, 0); 4285 - WREG32(CP_ME_RAM_WADDR, 0); 4286 - WREG32(CP_ME_RAM_RADDR, 0); 4287 4282 return 0; 4288 4283 } 4289 4284 ··· 4561 4564 WREG32(CP_MEC_ME1_UCODE_ADDR, 0); 4562 4565 for (i = 0; i < fw_size; i++) 4563 4566 WREG32(CP_MEC_ME1_UCODE_DATA, le32_to_cpup(fw_data++)); 4564 - WREG32(CP_MEC_ME1_UCODE_ADDR, 0); 4567 + WREG32(CP_MEC_ME1_UCODE_ADDR, le32_to_cpu(mec_hdr->header.ucode_version)); 4565 4568 4566 4569 /* MEC2 */ 4567 4570 if (rdev->family == CHIP_KAVERI) { ··· 4575 4578 WREG32(CP_MEC_ME2_UCODE_ADDR, 0); 4576 4579 for (i = 0; i < fw_size; i++) 4577 4580 WREG32(CP_MEC_ME2_UCODE_DATA, le32_to_cpup(fw_data++)); 4578 - WREG32(CP_MEC_ME2_UCODE_ADDR, 0); 4581 + WREG32(CP_MEC_ME2_UCODE_ADDR, le32_to_cpu(mec2_hdr->header.ucode_version)); 4579 4582 } 4580 4583 } else { 4581 4584 const __be32 *fw_data; ··· 6224 6227 WREG32(RLC_GPM_UCODE_ADDR, 0); 6225 6228 for (i = 0; i < size; i++) 6226 6229 WREG32(RLC_GPM_UCODE_DATA, le32_to_cpup(fw_data++)); 6227 - WREG32(RLC_GPM_UCODE_ADDR, 0); 6230 + WREG32(RLC_GPM_UCODE_ADDR, le32_to_cpu(hdr->header.ucode_version)); 6228 6231 } else { 6229 6232 const __be32 *fw_data; 6230 6233