setup-res.c (879f99ef2c4c05d9a7f0a67a05f1415663119825) | setup-res.c (5b28541552ef5eeffc41d6936105f38c2508e566) |
---|---|
1/* 2 * drivers/pci/setup-res.c 3 * 4 * Extruded from code written by 5 * Dave Rusling (david.rusling@reo.mts.dec.com) 6 * David Mosberger (davidm@cs.arizona.edu) 7 * David Miller (davem@redhat.com) 8 * --- 197 unchanged lines hidden (view full) --- 206 struct resource *res = dev->resource + resno; 207 resource_size_t min; 208 int ret; 209 210 min = (res->flags & IORESOURCE_IO) ? PCIBIOS_MIN_IO : PCIBIOS_MIN_MEM; 211 212 /* First, try exact prefetching match.. */ 213 ret = pci_bus_alloc_resource(bus, res, size, align, min, | 1/* 2 * drivers/pci/setup-res.c 3 * 4 * Extruded from code written by 5 * Dave Rusling (david.rusling@reo.mts.dec.com) 6 * David Mosberger (davidm@cs.arizona.edu) 7 * David Miller (davem@redhat.com) 8 * --- 197 unchanged lines hidden (view full) --- 206 struct resource *res = dev->resource + resno; 207 resource_size_t min; 208 int ret; 209 210 min = (res->flags & IORESOURCE_IO) ? PCIBIOS_MIN_IO : PCIBIOS_MIN_MEM; 211 212 /* First, try exact prefetching match.. */ 213 ret = pci_bus_alloc_resource(bus, res, size, align, min, |
214 IORESOURCE_PREFETCH, | 214 IORESOURCE_PREFETCH | IORESOURCE_MEM_64, |
215 pcibios_align_resource, dev); 216 | 215 pcibios_align_resource, dev); 216 |
217 if (ret < 0 && (res->flags & IORESOURCE_PREFETCH)) { | 217 if (ret < 0 && 218 (res->flags & (IORESOURCE_PREFETCH | IORESOURCE_MEM_64)) == 219 (IORESOURCE_PREFETCH | IORESOURCE_MEM_64)) { |
218 /* 219 * That failed. 220 * | 220 /* 221 * That failed. 222 * |
223 * Try 32bit pref 224 */ 225 ret = pci_bus_alloc_resource(bus, res, size, align, min, 226 IORESOURCE_PREFETCH, 227 pcibios_align_resource, dev); 228 } 229 230 if (ret < 0 && 231 (res->flags & (IORESOURCE_PREFETCH | IORESOURCE_MEM_64))) { 232 /* 233 * That failed. 234 * |
|
221 * But a prefetching area can handle a non-prefetching 222 * window (it will just not perform as well). | 235 * But a prefetching area can handle a non-prefetching 236 * window (it will just not perform as well). |
237 * 238 * Also can put 64bit under 32bit range. (below 4g). |
|
223 */ 224 ret = pci_bus_alloc_resource(bus, res, size, align, min, 0, 225 pcibios_align_resource, dev); 226 } 227 return ret; 228} 229 230static int _pci_assign_resource(struct pci_dev *dev, int resno, --- 140 unchanged lines hidden --- | 239 */ 240 ret = pci_bus_alloc_resource(bus, res, size, align, min, 0, 241 pcibios_align_resource, dev); 242 } 243 return ret; 244} 245 246static int _pci_assign_resource(struct pci_dev *dev, int resno, --- 140 unchanged lines hidden --- |