Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd: Handle being compiled without SI or CIK support better

If compiled without SI or CIK support but amdgpu tries to load it
will run into failures with uninitialized callbacks.

Show a nicer message in this case and fail probe instead.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4050
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

authored by

Mario Limonciello and committed by
Alex Deucher
5f054dde b03f1810

+24 -20
+24 -20
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
··· 1809 1809 }; 1810 1810 1811 1811 static const struct pci_device_id pciidlist[] = { 1812 - #ifdef CONFIG_DRM_AMDGPU_SI 1813 1812 {0x1002, 0x6780, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI}, 1814 1813 {0x1002, 0x6784, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI}, 1815 1814 {0x1002, 0x6788, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI}, ··· 1881 1882 {0x1002, 0x6665, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HAINAN|AMD_IS_MOBILITY}, 1882 1883 {0x1002, 0x6667, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HAINAN|AMD_IS_MOBILITY}, 1883 1884 {0x1002, 0x666F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HAINAN|AMD_IS_MOBILITY}, 1884 - #endif 1885 - #ifdef CONFIG_DRM_AMDGPU_CIK 1886 1885 /* Kaveri */ 1887 1886 {0x1002, 0x1304, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|AMD_IS_MOBILITY|AMD_IS_APU}, 1888 1887 {0x1002, 0x1305, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|AMD_IS_APU}, ··· 1963 1966 {0x1002, 0x985D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|AMD_IS_MOBILITY|AMD_IS_APU}, 1964 1967 {0x1002, 0x985E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|AMD_IS_MOBILITY|AMD_IS_APU}, 1965 1968 {0x1002, 0x985F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|AMD_IS_MOBILITY|AMD_IS_APU}, 1966 - #endif 1967 1969 /* topaz */ 1968 1970 {0x1002, 0x6900, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TOPAZ}, 1969 1971 {0x1002, 0x6901, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TOPAZ}, ··· 2309 2313 return -ENOTSUPP; 2310 2314 } 2311 2315 2316 + switch (flags & AMD_ASIC_MASK) { 2317 + case CHIP_TAHITI: 2318 + case CHIP_PITCAIRN: 2319 + case CHIP_VERDE: 2320 + case CHIP_OLAND: 2321 + case CHIP_HAINAN: 2312 2322 #ifdef CONFIG_DRM_AMDGPU_SI 2313 - if (!amdgpu_si_support) { 2314 - switch (flags & AMD_ASIC_MASK) { 2315 - case CHIP_TAHITI: 2316 - case CHIP_PITCAIRN: 2317 - case CHIP_VERDE: 2318 - case CHIP_OLAND: 2319 - case CHIP_HAINAN: 2323 + if (!amdgpu_si_support) { 2320 2324 dev_info(&pdev->dev, 2321 2325 "SI support provided by radeon.\n"); 2322 2326 dev_info(&pdev->dev, ··· 2324 2328 ); 2325 2329 return -ENODEV; 2326 2330 } 2327 - } 2331 + break; 2332 + #else 2333 + dev_info(&pdev->dev, "amdgpu is built without SI support.\n"); 2334 + return -ENODEV; 2328 2335 #endif 2336 + case CHIP_KAVERI: 2337 + case CHIP_BONAIRE: 2338 + case CHIP_HAWAII: 2339 + case CHIP_KABINI: 2340 + case CHIP_MULLINS: 2329 2341 #ifdef CONFIG_DRM_AMDGPU_CIK 2330 - if (!amdgpu_cik_support) { 2331 - switch (flags & AMD_ASIC_MASK) { 2332 - case CHIP_KAVERI: 2333 - case CHIP_BONAIRE: 2334 - case CHIP_HAWAII: 2335 - case CHIP_KABINI: 2336 - case CHIP_MULLINS: 2342 + if (!amdgpu_cik_support) { 2337 2343 dev_info(&pdev->dev, 2338 2344 "CIK support provided by radeon.\n"); 2339 2345 dev_info(&pdev->dev, ··· 2343 2345 ); 2344 2346 return -ENODEV; 2345 2347 } 2346 - } 2348 + break; 2349 + #else 2350 + dev_info(&pdev->dev, "amdgpu is built without CIK support.\n"); 2351 + return -ENODEV; 2347 2352 #endif 2353 + default: 2354 + break; 2355 + } 2348 2356 2349 2357 adev = devm_drm_dev_alloc(&pdev->dev, &amdgpu_kms_driver, typeof(*adev), ddev); 2350 2358 if (IS_ERR(adev))