Index: sys/dev/pci/agp_i810.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/agp_i810.c,v retrieving revision 1.112 diff -p -u -r1.112 agp_i810.c --- sys/dev/pci/agp_i810.c 25 Jul 2014 23:05:54 -0000 1.112 +++ sys/dev/pci/agp_i810.c 4 Aug 2014 22:56:52 -0000 @@ -405,7 +405,9 @@ agp_i810_attach(device_t parent, device_ apbase = AGP_I965_GMADR; mmadr_bar = AGP_I965_MMADR; mmadr_type |= PCI_MAPREG_MEM_TYPE_64BIT; - isc->size = 512*1024; + if (pci_mapreg_info(isc->vga_pa.pa_pc, isc->vga_pa.pa_tag, + AGP_I965_MMADR, mmadr_type, NULL, &isc->size, NULL)) + isc->size = 512*1024; /* XXX */ gtt_bar = 0; gtt_off = AGP_I965_GTT; break; @@ -413,14 +415,18 @@ agp_i810_attach(device_t parent, device_ apbase = AGP_I965_GMADR; mmadr_bar = AGP_I965_MMADR; mmadr_type |= PCI_MAPREG_MEM_TYPE_64BIT; - isc->size = 512*1024; + if (pci_mapreg_info(isc->vga_pa.pa_pc, isc->vga_pa.pa_tag, + AGP_I965_MMADR, mmadr_type, NULL, &isc->size, NULL)) + isc->size = 512*1024; /* XXX */ gtt_bar = 0; gtt_off = AGP_G4X_GTT; break; default: apbase = AGP_I810_GMADR; mmadr_bar = AGP_I810_MMADR; - isc->size = 512*1024; + if (pci_mapreg_info(isc->vga_pa.pa_pc, isc->vga_pa.pa_tag, + AGP_I965_MMADR, mmadr_type, NULL, &isc->size, NULL)) + isc->size = 512*1024; /* XXX */ gtt_bar = 0; gtt_off = AGP_I810_GTT; break; @@ -1305,6 +1311,7 @@ agp_i810_bind_memory(struct agp_softc *s /* Success! */ mem->am_is_bound = 1; + agp_flush_cache(); return 0; }