diff options
author | Hawking Zhang <Hawking.Zhang@amd.com> | 2017-08-09 23:24:43 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-08-15 14:46:20 -0400 |
commit | b416bf14bdd2019ed62b1a20876a33cf2480bbfd (patch) | |
tree | f8c83d7c74ea14b40a06c213da668e912a890af2 | |
parent | 2ce3f5dcdf2787e2bd777ddc3eaefd370dc6c050 (diff) |
drm/amdgpu: ignore digest_size when loading sdma fw for raven
digest_size has been retired from sdma v4 fw
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c index 79a9e44dc8eb..fd7c72aaafa6 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | |||
@@ -799,15 +799,12 @@ static int sdma_v4_0_load_microcode(struct amdgpu_device *adev) | |||
799 | const struct sdma_firmware_header_v1_0 *hdr; | 799 | const struct sdma_firmware_header_v1_0 *hdr; |
800 | const __le32 *fw_data; | 800 | const __le32 *fw_data; |
801 | u32 fw_size; | 801 | u32 fw_size; |
802 | u32 digest_size = 0; | ||
803 | int i, j; | 802 | int i, j; |
804 | 803 | ||
805 | /* halt the MEs */ | 804 | /* halt the MEs */ |
806 | sdma_v4_0_enable(adev, false); | 805 | sdma_v4_0_enable(adev, false); |
807 | 806 | ||
808 | for (i = 0; i < adev->sdma.num_instances; i++) { | 807 | for (i = 0; i < adev->sdma.num_instances; i++) { |
809 | uint16_t version_major; | ||
810 | uint16_t version_minor; | ||
811 | if (!adev->sdma.instance[i].fw) | 808 | if (!adev->sdma.instance[i].fw) |
812 | return -EINVAL; | 809 | return -EINVAL; |
813 | 810 | ||
@@ -815,23 +812,12 @@ static int sdma_v4_0_load_microcode(struct amdgpu_device *adev) | |||
815 | amdgpu_ucode_print_sdma_hdr(&hdr->header); | 812 | amdgpu_ucode_print_sdma_hdr(&hdr->header); |
816 | fw_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4; | 813 | fw_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4; |
817 | 814 | ||
818 | version_major = le16_to_cpu(hdr->header.header_version_major); | ||
819 | version_minor = le16_to_cpu(hdr->header.header_version_minor); | ||
820 | |||
821 | if (version_major == 1 && version_minor >= 1) { | ||
822 | const struct sdma_firmware_header_v1_1 *sdma_v1_1_hdr = (const struct sdma_firmware_header_v1_1 *) hdr; | ||
823 | digest_size = le32_to_cpu(sdma_v1_1_hdr->digest_size); | ||
824 | } | ||
825 | |||
826 | fw_size -= digest_size; | ||
827 | |||
828 | fw_data = (const __le32 *) | 815 | fw_data = (const __le32 *) |
829 | (adev->sdma.instance[i].fw->data + | 816 | (adev->sdma.instance[i].fw->data + |
830 | le32_to_cpu(hdr->header.ucode_array_offset_bytes)); | 817 | le32_to_cpu(hdr->header.ucode_array_offset_bytes)); |
831 | 818 | ||
832 | WREG32(sdma_v4_0_get_reg_offset(i, mmSDMA0_UCODE_ADDR), 0); | 819 | WREG32(sdma_v4_0_get_reg_offset(i, mmSDMA0_UCODE_ADDR), 0); |
833 | 820 | ||
834 | |||
835 | for (j = 0; j < fw_size; j++) | 821 | for (j = 0; j < fw_size; j++) |
836 | WREG32(sdma_v4_0_get_reg_offset(i, mmSDMA0_UCODE_DATA), le32_to_cpup(fw_data++)); | 822 | WREG32(sdma_v4_0_get_reg_offset(i, mmSDMA0_UCODE_DATA), le32_to_cpup(fw_data++)); |
837 | 823 | ||