diff options
-rw-r--r-- | src/sna/sna_driver.c | 9 |
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, |