summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_state.c
diff options
context:
space:
mode:
authorMarcin Slusarz2010-05-16 17:33:09 +0200
committerDave Airlie2010-05-18 08:19:30 +0200
commit3b9676e7ac6eff4f50f1b48b6c36664f55b79507 (patch)
treeb9c1367db290a66f1cba4f78a488f7e25e779b79 /drivers/gpu/drm/nouveau/nouveau_state.c
parentfbmem, drm/nouveau: kick firmware framebuffers as soon as possible (diff)
downloadkernel-qcow2-linux-3b9676e7ac6eff4f50f1b48b6c36664f55b79507.tar.gz
kernel-qcow2-linux-3b9676e7ac6eff4f50f1b48b6c36664f55b79507.tar.xz
kernel-qcow2-linux-3b9676e7ac6eff4f50f1b48b6c36664f55b79507.zip
vga16fb, drm: vga16fb->drm handoff
let vga16fb claim 0xA0000+0x10000 region as its aperture; drm drivers don't use it, so we have to detect it and kick vga16fb manually - but only if drm is driving the primary card Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Cc: James Simmons <jsimmons@infradead.org> Cc: Dave Airlie <airlied@redhat.com> Cc: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_state.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_state.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
index 75c5c465e08e..c667a1138c33 100644
--- a/drivers/gpu/drm/nouveau/nouveau_state.c
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
@@ -668,11 +668,16 @@ static struct apertures_struct *nouveau_get_apertures(struct drm_device *dev)
static int nouveau_remove_conflicting_drivers(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
+ bool primary = false;
dev_priv->apertures = nouveau_get_apertures(dev);
if (!dev_priv->apertures)
return -ENOMEM;
- remove_conflicting_framebuffers(dev_priv->apertures, "nouveaufb");
+#ifdef CONFIG_X86
+ primary = dev->pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
+#endif
+
+ remove_conflicting_framebuffers(dev_priv->apertures, "nouveaufb", primary);
return 0;
}