aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-09-30 09:51:02 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-10-01 09:00:10 -0400
commit38aea07167b6f51a42e09812212a000ce84afb77 (patch)
tree480eb675d84fa9c95878aad33c7b078d5fbcdfd4 /drivers/gpu/drm
parent9d0223d5f883bd85f5b24a6eacb79ee5a446d648 (diff)
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>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/radeon/cik.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index 0d761f73a7fa..05c2f43421aa 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -4235,7 +4235,7 @@ static int cik_cp_gfx_load_microcode(struct radeon_device *rdev)
4235 WREG32(CP_PFP_UCODE_ADDR, 0); 4235 WREG32(CP_PFP_UCODE_ADDR, 0);
4236 for (i = 0; i < fw_size; i++) 4236 for (i = 0; i < fw_size; i++)
4237 WREG32(CP_PFP_UCODE_DATA, le32_to_cpup(fw_data++)); 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 /* CE */ 4240 /* CE */
4241 fw_data = (const __le32 *) 4241 fw_data = (const __le32 *)
@@ -4244,7 +4244,7 @@ static int cik_cp_gfx_load_microcode(struct radeon_device *rdev)
4244 WREG32(CP_CE_UCODE_ADDR, 0); 4244 WREG32(CP_CE_UCODE_ADDR, 0);
4245 for (i = 0; i < fw_size; i++) 4245 for (i = 0; i < fw_size; i++)
4246 WREG32(CP_CE_UCODE_DATA, le32_to_cpup(fw_data++)); 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 /* ME */ 4249 /* ME */
4250 fw_data = (const __be32 *) 4250 fw_data = (const __be32 *)
@@ -4253,7 +4253,8 @@ static int cik_cp_gfx_load_microcode(struct radeon_device *rdev)
4253 WREG32(CP_ME_RAM_WADDR, 0); 4253 WREG32(CP_ME_RAM_WADDR, 0);
4254 for (i = 0; i < fw_size; i++) 4254 for (i = 0; i < fw_size; i++)
4255 WREG32(CP_ME_RAM_DATA, le32_to_cpup(fw_data++)); 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 } else { 4258 } else {
4258 const __be32 *fw_data; 4259 const __be32 *fw_data;
4259 4260
@@ -4279,10 +4280,6 @@ static int cik_cp_gfx_load_microcode(struct radeon_device *rdev)
4279 WREG32(CP_ME_RAM_WADDR, 0); 4280 WREG32(CP_ME_RAM_WADDR, 0);
4280 } 4281 }
4281 4282
4282 WREG32(CP_PFP_UCODE_ADDR, 0);
4283 WREG32(CP_CE_UCODE_ADDR, 0);
4284 WREG32(CP_ME_RAM_WADDR, 0);
4285 WREG32(CP_ME_RAM_RADDR, 0);
4286 return 0; 4283 return 0;
4287} 4284}
4288 4285
@@ -4564,7 +4561,7 @@ static int cik_cp_compute_load_microcode(struct radeon_device *rdev)
4564 WREG32(CP_MEC_ME1_UCODE_ADDR, 0); 4561 WREG32(CP_MEC_ME1_UCODE_ADDR, 0);
4565 for (i = 0; i < fw_size; i++) 4562 for (i = 0; i < fw_size; i++)
4566 WREG32(CP_MEC_ME1_UCODE_DATA, le32_to_cpup(fw_data++)); 4563 WREG32(CP_MEC_ME1_UCODE_DATA, le32_to_cpup(fw_data++));
4567 WREG32(CP_MEC_ME1_UCODE_ADDR, 0); 4564 WREG32(CP_MEC_ME1_UCODE_ADDR, le32_to_cpu(mec_hdr->header.ucode_version));
4568 4565
4569 /* MEC2 */ 4566 /* MEC2 */
4570 if (rdev->family == CHIP_KAVERI) { 4567 if (rdev->family == CHIP_KAVERI) {
@@ -4578,7 +4575,7 @@ static int cik_cp_compute_load_microcode(struct radeon_device *rdev)
4578 WREG32(CP_MEC_ME2_UCODE_ADDR, 0); 4575 WREG32(CP_MEC_ME2_UCODE_ADDR, 0);
4579 for (i = 0; i < fw_size; i++) 4576 for (i = 0; i < fw_size; i++)
4580 WREG32(CP_MEC_ME2_UCODE_DATA, le32_to_cpup(fw_data++)); 4577 WREG32(CP_MEC_ME2_UCODE_DATA, le32_to_cpup(fw_data++));
4581 WREG32(CP_MEC_ME2_UCODE_ADDR, 0); 4578 WREG32(CP_MEC_ME2_UCODE_ADDR, le32_to_cpu(mec2_hdr->header.ucode_version));
4582 } 4579 }
4583 } else { 4580 } else {
4584 const __be32 *fw_data; 4581 const __be32 *fw_data;
@@ -6227,7 +6224,7 @@ static int cik_rlc_resume(struct radeon_device *rdev)
6227 WREG32(RLC_GPM_UCODE_ADDR, 0); 6224 WREG32(RLC_GPM_UCODE_ADDR, 0);
6228 for (i = 0; i < size; i++) 6225 for (i = 0; i < size; i++)
6229 WREG32(RLC_GPM_UCODE_DATA, le32_to_cpup(fw_data++)); 6226 WREG32(RLC_GPM_UCODE_DATA, le32_to_cpup(fw_data++));
6230 WREG32(RLC_GPM_UCODE_ADDR, 0); 6227 WREG32(RLC_GPM_UCODE_ADDR, le32_to_cpu(hdr->header.ucode_version));
6231 } else { 6228 } else {
6232 const __be32 *fw_data; 6229 const __be32 *fw_data;
6233 6230