]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amdgpu: Use wafl version for xgmi
authorLijo Lazar <lijo.lazar@amd.com>
Tue, 25 Feb 2025 05:59:47 +0000 (11:29 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 18 Mar 2025 18:03:47 +0000 (14:03 -0400)
XGMI and WAFL share the same versions. Use WAFL version if XGMI version
is not present in discovery.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Asad Kamal <asad.kamal@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c

index 967a992829bdbc9433c690f5784da5174f0e85f9..8425e5dbf80e1e88b95bf378ad4b7854212305a8 100644 (file)
@@ -1290,6 +1290,7 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
        uint16_t die_offset;
        uint16_t ip_offset;
        uint16_t num_dies;
+       uint32_t wafl_ver;
        uint16_t num_ips;
        uint16_t hw_id;
        uint8_t inst;
@@ -1303,6 +1304,7 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
                return r;
        }
 
+       wafl_ver = 0;
        adev->gfx.xcc_mask = 0;
        adev->sdma.sdma_mask = 0;
        adev->vcn.inst_mask = 0;
@@ -1403,6 +1405,10 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
                                adev->gfx.xcc_mask |=
                                        (1U << ip->instance_number);
 
+                       if (!wafl_ver && le16_to_cpu(ip->hw_id) == WAFLC_HWID)
+                               wafl_ver = IP_VERSION_FULL(ip->major, ip->minor,
+                                                          ip->revision, 0, 0);
+
                        for (k = 0; k < num_base_address; k++) {
                                /*
                                 * convert the endianness of base addresses in place,
@@ -1468,6 +1474,9 @@ next_ip:
                }
        }
 
+       if (wafl_ver && !adev->ip_versions[XGMI_HWIP][0])
+               adev->ip_versions[XGMI_HWIP][0] = wafl_ver;
+
        return 0;
 }
 
@@ -2772,10 +2781,6 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
                break;
        }
 
-       if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
-           amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4))
-               adev->ip_versions[XGMI_HWIP][0] = IP_VERSION(6, 4, 0);
-
        /* set NBIO version */
        switch (amdgpu_ip_version(adev, NBIO_HWIP, 0)) {
        case IP_VERSION(6, 1, 0):