]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: properly handle family setting for early GC 11.5.4
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 23 Apr 2026 16:29:03 +0000 (12:29 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 28 Apr 2026 19:51:17 +0000 (15:51 -0400)
Early variants need an override.

Fixes: 57d00816c6a9 ("drm/amdgpu: set family for GC 11.5.4")
Cc: Pratik Vishwakarma <Pratik.Vishwakarma@amd.com>
Cc: Roman Li <Roman.Li@amd.com>
Cc: Mario Limonciello <superm1@kernel.org>
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Tested-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 922fccc2d3f8186008c19ba08a49ae8a9463cb50)

drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index fcad7daaa41b54d20ef0c3b86a95c32287f9031e..8d99bfaa498f688dcc41c0f2116496c3b268767e 100644 (file)
@@ -3090,10 +3090,8 @@ int amdgpu_discovery_set_ip_blocks(struct amdgpu_device *adev)
        case IP_VERSION(11, 5, 1):
        case IP_VERSION(11, 5, 2):
        case IP_VERSION(11, 5, 3):
-               adev->family = AMDGPU_FAMILY_GC_11_5_0;
-               break;
        case IP_VERSION(11, 5, 4):
-               adev->family = AMDGPU_FAMILY_GC_11_5_4;
+               adev->family = AMDGPU_FAMILY_GC_11_5_0;
                break;
        case IP_VERSION(12, 0, 0):
        case IP_VERSION(12, 0, 1):
index e96a12ff2d31e12b298a938539f300dcb0663600..f8f9953565f6d26677ea755dac77b082e819d090 100644 (file)
@@ -1903,7 +1903,11 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
                goto error;
        }
 
-       init_data.asic_id.chip_family = adev->family;
+       /* special handling for early revisions of GC 11.5.4 */
+       if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(11, 5, 4))
+               init_data.asic_id.chip_family = AMDGPU_FAMILY_GC_11_5_4;
+       else
+               init_data.asic_id.chip_family = adev->family;
 
        init_data.asic_id.pci_revision_id = adev->pdev->revision;
        init_data.asic_id.hw_internal_rev = adev->external_rev_id;