]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/radeon/radeon_bios.c
Merge branch 'drm-platform' into drm-testing
[karo-tx-linux.git] / drivers / gpu / drm / radeon / radeon_bios.c
index 8ad71f70131624562ae4d02d6eabe159ede924e4..654787ec43f4d33687f2c7dd0e0318c17be92dd6 100644 (file)
@@ -48,8 +48,12 @@ static bool igp_read_bios_from_vram(struct radeon_device *rdev)
        resource_size_t vram_base;
        resource_size_t size = 256 * 1024; /* ??? */
 
+       if (!(rdev->flags & RADEON_IS_IGP))
+               if (!radeon_card_posted(rdev))
+                       return false;
+
        rdev->bios = NULL;
-       vram_base = drm_get_resource_start(rdev->ddev, 0);
+       vram_base = pci_resource_start(rdev->pdev, 0);
        bios = ioremap(vram_base, size);
        if (!bios) {
                return false;
@@ -85,12 +89,11 @@ static bool radeon_read_bios(struct radeon_device *rdev)
                pci_unmap_rom(rdev->pdev, bios);
                return false;
        }
-       rdev->bios = kmalloc(size, GFP_KERNEL);
+       rdev->bios = kmemdup(bios, size, GFP_KERNEL);
        if (rdev->bios == NULL) {
                pci_unmap_rom(rdev->pdev, bios);
                return false;
        }
-       memcpy(rdev->bios, bios, size);
        pci_unmap_rom(rdev->pdev, bios);
        return true;
 }