mirror of
https://github.com/torvalds/linux.git
synced 2025-08-16 06:31:34 +02:00
drm/amdgpu/discovery: optionally use fw based ip discovery
On chips without native IP discovery support, use the fw binary if available, otherwise we can continue without it. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Flora Cui <flora.cui@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
25f602fbbc
commit
80a0e82829
1 changed files with 32 additions and 8 deletions
|
@ -2545,6 +2545,38 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
switch (adev->asic_type) {
|
||||||
|
case CHIP_VEGA10:
|
||||||
|
case CHIP_VEGA12:
|
||||||
|
case CHIP_RAVEN:
|
||||||
|
case CHIP_VEGA20:
|
||||||
|
case CHIP_ARCTURUS:
|
||||||
|
case CHIP_ALDEBARAN:
|
||||||
|
/* this is not fatal. We have a fallback below
|
||||||
|
* if the new firmwares are not present. some of
|
||||||
|
* this will be overridden below to keep things
|
||||||
|
* consistent with the current behavior.
|
||||||
|
*/
|
||||||
|
r = amdgpu_discovery_reg_base_init(adev);
|
||||||
|
if (!r) {
|
||||||
|
amdgpu_discovery_harvest_ip(adev);
|
||||||
|
amdgpu_discovery_get_gfx_info(adev);
|
||||||
|
amdgpu_discovery_get_mall_info(adev);
|
||||||
|
amdgpu_discovery_get_vcn_info(adev);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
r = amdgpu_discovery_reg_base_init(adev);
|
||||||
|
if (r)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
amdgpu_discovery_harvest_ip(adev);
|
||||||
|
amdgpu_discovery_get_gfx_info(adev);
|
||||||
|
amdgpu_discovery_get_mall_info(adev);
|
||||||
|
amdgpu_discovery_get_vcn_info(adev);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
switch (adev->asic_type) {
|
switch (adev->asic_type) {
|
||||||
case CHIP_VEGA10:
|
case CHIP_VEGA10:
|
||||||
vega10_reg_base_init(adev);
|
vega10_reg_base_init(adev);
|
||||||
|
@ -2709,14 +2741,6 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
|
||||||
adev->ip_versions[XGMI_HWIP][0] = IP_VERSION(6, 1, 0);
|
adev->ip_versions[XGMI_HWIP][0] = IP_VERSION(6, 1, 0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
r = amdgpu_discovery_reg_base_init(adev);
|
|
||||||
if (r)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
amdgpu_discovery_harvest_ip(adev);
|
|
||||||
amdgpu_discovery_get_gfx_info(adev);
|
|
||||||
amdgpu_discovery_get_mall_info(adev);
|
|
||||||
amdgpu_discovery_get_vcn_info(adev);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue