Bug#972794: linux-image-4.19.0-12-amd64: amdgpu-dkms 19.50-20.40 fails to build with error: implicit declaration of function âpci _platform_rom’ ;
Dear All,
For amdgpu 20.10, patching amd/amdgpu/amdgpu_bios.c in /usr/src/amdgpu-5.4.7.53-1048554/ with the attached patch (posted
by Mikel Rychliski at https://lore.kernel.org/amd-gfx/20200319021623.5426-1-
mikel@mikelr.com/#Z30drivers:gpu:drm:amd:amdgpu:amdgpu_bios.c) fixes the issue.
Best wishes:
Elemér K. Nagy
--- a/amd/amdgpu/amdgpu_bios.c
+++ b/amd/amdgpu/amdgpu_bios.c
@@ -192,30 +192,35 @@ static bool amdgpu_read_bios_from_rom(struct amdgpu_device *adev)
static bool amdgpu_read_platform_bios(struct amdgpu_device *adev)
{
- uint8_t __iomem *bios;
- size_t size;
+ phys_addr_t rom = adev->pdev->rom;
+ size_t romlen = adev->pdev->romlen;
+ void __iomem *bios;
adev->bios = NULL;
- bios = pci_platform_rom(adev->pdev, &size);
- if (!bios) {
+ if (!rom || romlen == 0)
return false;
- }
- adev->bios = kzalloc(size, GFP_KERNEL);
- if (adev->bios == NULL)
+ adev->bios = kzalloc(romlen, GFP_KERNEL);
+ if (!adev->bios)
return false;
- memcpy_fromio(adev->bios, bios, size);
+ bios = ioremap(rom, romlen);
+ if (!bios)
+ goto free_bios;
- if (!check_atom_bios(adev->bios, size)) {
- kfree(adev->bios);
- return false;
- }
+ memcpy_fromio(adev->bios, bios, romlen);
+ iounmap(bios);
- adev->bios_size = size;
+ if (!check_atom_bios(adev->bios, romlen))
+ goto free_bios;
+
+ adev->bios_size = romlen;
return true;
+free_bios:
+ kfree(adev->bios);
+ return false;
}
#ifdef CONFIG_ACPI
Reply to: