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 | ||
