[PATCH] drm/amdgpu: properly byteswap gpu_info firmware

Michel Dänzer michel at daenzer.net
Fri May 12 01:06:35 UTC 2017


On 12/05/17 08:10 AM, Alex Deucher wrote:
> It's stored in LE format.
> 
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index d95d4c9..8a5bb42 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1459,19 +1459,19 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
>  			(const struct gpu_info_firmware_v1_0 *)(fw->data +
>  								le32_to_cpu(hdr->header.ucode_array_offset_bytes));
>  
> -		adev->gfx.config.max_shader_engines = gpu_info_fw->gc_num_se;
> -		adev->gfx.config.max_cu_per_sh = gpu_info_fw->gc_num_cu_per_sh;
> -		adev->gfx.config.max_sh_per_se = gpu_info_fw->gc_num_sh_per_se;
> -		adev->gfx.config.max_backends_per_se = gpu_info_fw->gc_num_rb_per_se;
> +		adev->gfx.config.max_shader_engines = le32_to_cpu(gpu_info_fw->gc_num_se);
> +		adev->gfx.config.max_cu_per_sh = le32_to_cpu(gpu_info_fw->gc_num_cu_per_sh);
> +		adev->gfx.config.max_sh_per_se = le32_to_cpu(gpu_info_fw->gc_num_sh_per_se);
> +		adev->gfx.config.max_backends_per_se = le32_to_cpu(gpu_info_fw->gc_num_rb_per_se);
>  		adev->gfx.config.max_texture_channel_caches =
> -			gpu_info_fw->gc_num_tccs;
> -		adev->gfx.config.max_gprs = gpu_info_fw->gc_num_gprs;
> -		adev->gfx.config.max_gs_threads = gpu_info_fw->gc_num_max_gs_thds;
> -		adev->gfx.config.gs_vgt_table_depth = gpu_info_fw->gc_gs_table_depth;
> -		adev->gfx.config.gs_prim_buffer_depth = gpu_info_fw->gc_gsprim_buff_depth;
> +			le32_to_cpu(gpu_info_fw->gc_num_tccs);
> +		adev->gfx.config.max_gprs = le32_to_cpu(gpu_info_fw->gc_num_gprs);
> +		adev->gfx.config.max_gs_threads = le32_to_cpu(gpu_info_fw->gc_num_max_gs_thds);
> +		adev->gfx.config.gs_vgt_table_depth = le32_to_cpu(gpu_info_fw->gc_gs_table_depth);
> +		adev->gfx.config.gs_prim_buffer_depth = le32_to_cpu(gpu_info_fw->gc_gsprim_buff_depth);
>  		adev->gfx.config.double_offchip_lds_buf =
> -			gpu_info_fw->gc_double_offchip_lds_buffer;
> -		adev->gfx.cu_info.wave_front_size = gpu_info_fw->gc_wave_size;
> +			le32_to_cpu(gpu_info_fw->gc_double_offchip_lds_buffer);
> +		adev->gfx.cu_info.wave_front_size = le32_to_cpu(gpu_info_fw->gc_wave_size);
>  		break;
>  	}
>  	default:
> 

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list