diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-09-30 09:51:02 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-10-01 09:00:10 -0400 |
commit | 38aea07167b6f51a42e09812212a000ce84afb77 (patch) | |
tree | 480eb675d84fa9c95878aad33c7b078d5fbcdfd4 /drivers/gpu | |
parent | 9d0223d5f883bd85f5b24a6eacb79ee5a446d648 (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')
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 17 |
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 | ||