aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon/radeon_drv.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-12-22 19:47:37 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-12-22 19:47:37 -0800
commite819eb8687767cefca7b6abf5ac6d5efcf581eeb (patch)
treeef40a82ddbce3fe12b4205a87b5195e8e9fbb136 /drivers/gpu/drm/radeon/radeon_drv.c
parentca5f73a05ebfbf74ea9874d5eaad8d63d7e69b4f (diff)
parent0f16830e9f6de0a44cf1e473ffa80cbe612d5beb (diff)
Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm: Include the connector name in the output_poll_execute() debug message drm/radeon/kms: fix bug in r600_gpu_is_lockup drm/radeon/kms: reorder display resume to avoid problems drm/radeon/kms/evergreen: reset the grbm blocks at resume and init drm/radeon/kms: fix evergreen asic reset Revert "drm: Don't try and disable an encoder that was never enabled" drm/radeon: Add early unregister of firmware fb's drm/radeon: use aperture size not vram size for overlap tests drm/radeon/kms/evergreen: flush hdp cache when flushing gart tlb drm/radeon/kms: disable the r600 cb offset checker for linear surfaces drm/radeon/kms: disable ss fixed ref divide drm/i915/bios: Reverse order of 100/120 Mhz SSC clocks agp/intel: Fix missed cached memory flags setting in i965_write_entry() drm/i915/sdvo: Only use the SDVO pin if it is in the valid range drm/i915/ringbuffer: Handle wrapping of the autoreported HEAD drm/i915/dp: Fix I2C/EDID handling with active DisplayPort to DVI converter
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_drv.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 88e4ea92590..60e689f2d04 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -232,9 +232,28 @@ static struct drm_driver driver_old = {
static struct drm_driver kms_driver;
+static void radeon_kick_out_firmware_fb(struct pci_dev *pdev)
+{
+ struct apertures_struct *ap;
+ bool primary = false;
+
+ ap = alloc_apertures(1);
+ ap->ranges[0].base = pci_resource_start(pdev, 0);
+ ap->ranges[0].size = pci_resource_len(pdev, 0);
+
+#ifdef CONFIG_X86
+ primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
+#endif
+ remove_conflicting_framebuffers(ap, "radeondrmfb", primary);
+ kfree(ap);
+}
+
static int __devinit
radeon_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
+ /* Get rid of things like offb */
+ radeon_kick_out_firmware_fb(pdev);
+
return drm_get_pci_dev(pdev, ent, &kms_driver);
}