summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sna/sna_driver.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 7cf3ef14..7b3cfcee 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -820,20 +820,25 @@ sna_register_all_privates(void)
return TRUE;
}
+static size_t
+agp_aperture_size(struct pci_device *dev, int gen)
+{
+ return dev->regions[gen < 30 ? 0 : 2].size;
+}
+
static Bool
sna_screen_init(int scrnIndex, ScreenPtr screen, int argc, char **argv)
{
ScrnInfoPtr scrn = xf86Screens[screen->myNum];
struct sna *sna = to_sna(scrn);
VisualPtr visual;
- struct pci_device *const device = sna->PciInfo;
DBG(("%s\n", __FUNCTION__));
if (!sna_register_all_privates())
return FALSE;
- scrn->videoRam = device->regions[2].size / 1024;
+ scrn->videoRam = agp_aperture_size(sna->PciInfo, sna->kgem.gen) / 1024;
miClearVisualTypes();
if (!miSetVisualTypes(scrn->depth,