]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/gpu/drm/radeon/radeon_bios.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
[net-next-2.6.git] / drivers / gpu / drm / radeon / radeon_bios.c
index 8ad71f70131624562ae4d02d6eabe159ede924e4..2c92137399995f17d9df664c2ae28aa9ad8bbefa 100644 (file)
@@ -48,6 +48,10 @@ 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);
        bios = ioremap(vram_base, size);
@@ -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;
 }