From: Chris Wilson Date: Sun, 26 Aug 2012 20:22:15 +0000 (+0100) Subject: mmio: Limit the uc- mapping to only map the registers X-Git-Tag: 1.3~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7a02aa4cbfe4c63bb9435cf9cab487bd1df10185;p=platform%2Fupstream%2Fintel-gpu-tools.git mmio: Limit the uc- mapping to only map the registers In the future, we may like to enable wc mapping of at least the GATT, and so causing a conflict if we attempt to map the entire bar as uc- here. Obviously we need a better fallback plan, but for the moment only attempt to map the portion of the pci space that we use for register access. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter --- diff --git a/lib/intel_mmio.c b/lib/intel_mmio.c index b266847..ecb049b 100644 --- a/lib/intel_mmio.c +++ b/lib/intel_mmio.c @@ -80,8 +80,8 @@ intel_map_file(char *file) void intel_get_mmio(struct pci_device *pci_dev) { - uint32_t devid; - int mmio_bar; + uint32_t devid, gen; + int mmio_bar, mmio_size; int error; devid = pci_dev->device_id; @@ -90,11 +90,19 @@ intel_get_mmio(struct pci_device *pci_dev) else mmio_bar = 0; + gen = intel_gen(devid); + if (gen < 3) + mmio_size = 64*1024; + else if (gen < 5) + mmio_size = 512*1024; + else + mmio_size = 2*1024*1024; + error = pci_device_map_range (pci_dev, - pci_dev->regions[mmio_bar].base_addr, - pci_dev->regions[mmio_bar].size, - PCI_DEV_MAP_FLAG_WRITABLE, - &mmio); + pci_dev->regions[mmio_bar].base_addr, + mmio_size, + PCI_DEV_MAP_FLAG_WRITABLE, + &mmio); if (error != 0) { fprintf(stderr, "Couldn't map MMIO region: %s\n",