Unified · Split
| @@ -1642,6 +1642,7 @@ struct amdgpu_sdma { · 1641 unmodified lines | ||
| 1642 | 1642 | /* SDMA firmware */ |
| 1643 | 1643 | const struct firmware *fw; |
| 1644 | 1644 | uint32_t fw_version; |
| 1645 | + uint32_t feature_version; | |
| 1645 | 1646 | |
| 1646 | 1647 | struct amdgpu_ring ring; |
| 1647 | 1648 | }; |
| @@ -337,7 +337,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file · 336 unmodified lines | ||
| 337 | 337 | if (info->query_fw.index >= 2) |
| 338 | 338 | return -EINVAL; |
| 339 | 339 | fw_info.ver = adev->sdma[info->query_fw.index].fw_version; |
| 340 | − fw_info.feature = 0; | |
| 340 | + fw_info.feature = adev->sdma[info->query_fw.index].feature_version; | |
| 341 | 341 | break; |
| 342 | 342 | default: |
| 343 | 343 | return -EINVAL; |
| @@ -500,6 +500,7 @@ static int cik_sdma_load_microcode(struct amdgpu_device *adev) · 499 unmodified lines | ||
| 500 | 500 | amdgpu_ucode_print_sdma_hdr(&hdr->header); |
| 501 | 501 | fw_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4; |
| 502 | 502 | adev->sdma[i].fw_version = le32_to_cpu(hdr->header.ucode_version); |
| 503 | + adev->sdma[i].feature_version = le32_to_cpu(hdr->ucode_feature_version); | |
| 503 | 504 | fw_data = (const __le32 *) |
| 504 | 505 | (adev->sdma[i].fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes)); |
| 505 | 506 | WREG32(mmSDMA0_UCODE_ADDR + sdma_offsets[i], 0); |
| @@ -542,6 +542,7 @@ static int sdma_v2_4_load_microcode(struct amdgpu_device *adev) · 541 unmodified lines | ||
| 542 | 542 | amdgpu_ucode_print_sdma_hdr(&hdr->header); |
| 543 | 543 | fw_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4; |
| 544 | 544 | adev->sdma[i].fw_version = le32_to_cpu(hdr->header.ucode_version); |
| 545 | + adev->sdma[i].feature_version = le32_to_cpu(hdr->ucode_feature_version); | |
| 545 | 546 | |
| 546 | 547 | fw_data = (const __le32 *) |
| 547 | 548 | (adev->sdma[i].fw->data + |
| @@ -631,6 +631,7 @@ static int sdma_v3_0_load_microcode(struct amdgpu_device *adev) · 630 unmodified lines | ||
| 631 | 631 | amdgpu_ucode_print_sdma_hdr(&hdr->header); |
| 632 | 632 | fw_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4; |
| 633 | 633 | adev->sdma[i].fw_version = le32_to_cpu(hdr->header.ucode_version); |
| 634 | + adev->sdma[i].feature_version = le32_to_cpu(hdr->ucode_feature_version); | |
| 634 | 635 | |
| 635 | 636 | fw_data = (const __le32 *) |
| 636 | 637 | (adev->sdma[i].fw->data + |