diff options
author | 2021-10-04 15:19:10 -0400 | |
---|---|---|
committer | 2021-10-04 15:23:01 -0400 | |
commit | 1d789535a03679e5ce0b56a0d32a5e44596dfcdb (patch) | |
tree | ccc2b1827bb7efc4b939f56b49fc4bb7236d100b /drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | |
parent | drm/amdgpu: set CHIP_IP_DISCOVERY as the asic type by default (diff) | |
download | linux-1d789535a03679e5ce0b56a0d32a5e44596dfcdb.tar.gz linux-1d789535a03679e5ce0b56a0d32a5e44596dfcdb.tar.bz2 linux-1d789535a03679e5ce0b56a0d32a5e44596dfcdb.zip |
drm/amdgpu: convert IP version array to include instances
Allow us to query instances versions more cleanly.
Instancing support is not consistent unfortunately. SDMA is a
good example. Sienna cichlid has 4 total SDMA instances, each
enumerated separately (HWIDs 42, 43, 68, 69). Arcturus has 8
total SDMA instances, but they are enumerated as multiple
instances of the same HWIDs (4x HWID 42, 4x HWID 43). UMC
is another example. On most chips there are multiple
instances with the same HWID. This allows us to support both
forms.
v2: rebase
v3: clarify instancing support
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/psp_v13_0.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c index 64b52c5ea981..17655bc6d2f1 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c @@ -47,7 +47,7 @@ static int psp_v13_0_init_microcode(struct psp_context *psp) const char *chip_name; int err = 0; - switch (adev->ip_versions[MP0_HWIP]) { + switch (adev->ip_versions[MP0_HWIP][0]) { case IP_VERSION(13, 0, 2): chip_name = "aldebaran"; break; @@ -58,7 +58,7 @@ static int psp_v13_0_init_microcode(struct psp_context *psp) default: BUG(); } - switch (adev->ip_versions[MP0_HWIP]) { + switch (adev->ip_versions[MP0_HWIP][0]) { case IP_VERSION(13, 0, 2): err = psp_init_sos_microcode(psp, chip_name); if (err) |