diff options
| author | Dave Airlie <airlied@redhat.com> | 2020-12-10 16:55:41 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2020-12-10 16:55:53 +1000 | 
| commit | b10733527bfd864605c33ab2e9a886eec317ec39 (patch) | |
| tree | d7d671d2fa69e628e2ac898ba8e9ab10c6481c3c /drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | |
| parent | 60f2f74978e69fdb63e7a26179cbd5c50d4845c2 (diff) | |
| parent | f8aab60422c371425365d386dfd51e0c6c5b1041 (diff) | |
Merge tag 'amd-drm-next-5.11-2020-12-09' of git://people.freedesktop.org/~agd5f/linux into drm-next
amd-drm-next-5.11-2020-12-09:
amdgpu:
- SR-IOV fixes
- Navy Flounder updates
- Sienna Cichlid updates
- Dimgrey Cavefish updates
- Vangogh updates
- Misc SMU fixes
- Misc display fixes
- Last big hunk of W=1 warning fixes
- Cursor validation fixes
- CI BACO updates
From: Alex Deucher <alexdeucher@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201210045344.21566-1-alexander.deucher@amd.com
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 29 | 
1 files changed, 19 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c index 2b7c90b7a712..1beb08af347f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c @@ -68,23 +68,32 @@ void amdgpu_ucode_print_smc_hdr(const struct common_firmware_header *hdr)  {  	uint16_t version_major = le16_to_cpu(hdr->header_version_major);  	uint16_t version_minor = le16_to_cpu(hdr->header_version_minor); +	const struct smc_firmware_header_v1_0 *v1_0_hdr; +	const struct smc_firmware_header_v2_0 *v2_0_hdr; +	const struct smc_firmware_header_v2_1 *v2_1_hdr;  	DRM_DEBUG("SMC\n");  	amdgpu_ucode_print_common_hdr(hdr);  	if (version_major == 1) { -		const struct smc_firmware_header_v1_0 *smc_hdr = -			container_of(hdr, struct smc_firmware_header_v1_0, header); - -		DRM_DEBUG("ucode_start_addr: %u\n", le32_to_cpu(smc_hdr->ucode_start_addr)); +		v1_0_hdr = container_of(hdr, struct smc_firmware_header_v1_0, header); +		DRM_DEBUG("ucode_start_addr: %u\n", le32_to_cpu(v1_0_hdr->ucode_start_addr));  	} else if (version_major == 2) { -		const struct smc_firmware_header_v1_0 *v1_hdr = -			container_of(hdr, struct smc_firmware_header_v1_0, header); -		const struct smc_firmware_header_v2_0 *v2_hdr = -			container_of(v1_hdr, struct smc_firmware_header_v2_0, v1_0); +		switch (version_minor) { +		case 0: +			v2_0_hdr = container_of(hdr, struct smc_firmware_header_v2_0, v1_0.header); +			DRM_DEBUG("ppt_offset_bytes: %u\n", le32_to_cpu(v2_0_hdr->ppt_offset_bytes)); +			DRM_DEBUG("ppt_size_bytes: %u\n", le32_to_cpu(v2_0_hdr->ppt_size_bytes)); +			break; +		case 1: +			v2_1_hdr = container_of(hdr, struct smc_firmware_header_v2_1, v1_0.header); +			DRM_DEBUG("pptable_count: %u\n", le32_to_cpu(v2_1_hdr->pptable_count)); +			DRM_DEBUG("pptable_entry_offset: %u\n", le32_to_cpu(v2_1_hdr->pptable_entry_offset)); +			break; +		default: +			break; +		} -		DRM_DEBUG("ppt_offset_bytes: %u\n", le32_to_cpu(v2_hdr->ppt_offset_bytes)); -		DRM_DEBUG("ppt_size_bytes: %u\n", le32_to_cpu(v2_hdr->ppt_size_bytes));  	} else {  		DRM_ERROR("Unknown SMC ucode version: %u.%u\n", version_major, version_minor);  	}  | 
