|
@@ -39,18 +39,6 @@ int fallback_aper_force __initdata;
|
|
|
|
|
|
int fix_aperture __initdata = 1;
|
|
|
|
|
|
-struct bus_dev_range {
|
|
|
- int bus;
|
|
|
- int dev_base;
|
|
|
- int dev_limit;
|
|
|
-};
|
|
|
-
|
|
|
-static struct bus_dev_range bus_dev_ranges[] __initdata = {
|
|
|
- { 0x00, 0x18, 0x20},
|
|
|
- { 0xff, 0x00, 0x20},
|
|
|
- { 0xfe, 0x00, 0x20}
|
|
|
-};
|
|
|
-
|
|
|
static struct resource gart_resource = {
|
|
|
.name = "GART",
|
|
|
.flags = IORESOURCE_MEM,
|
|
@@ -294,13 +282,13 @@ void __init early_gart_iommu_check(void)
|
|
|
search_agp_bridge(&agp_aper_order, &valid_agp);
|
|
|
|
|
|
fix = 0;
|
|
|
- for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) {
|
|
|
+ for (i = 0; amd_nb_bus_dev_ranges[i].dev_limit; i++) {
|
|
|
int bus;
|
|
|
int dev_base, dev_limit;
|
|
|
|
|
|
- bus = bus_dev_ranges[i].bus;
|
|
|
- dev_base = bus_dev_ranges[i].dev_base;
|
|
|
- dev_limit = bus_dev_ranges[i].dev_limit;
|
|
|
+ bus = amd_nb_bus_dev_ranges[i].bus;
|
|
|
+ dev_base = amd_nb_bus_dev_ranges[i].dev_base;
|
|
|
+ dev_limit = amd_nb_bus_dev_ranges[i].dev_limit;
|
|
|
|
|
|
for (slot = dev_base; slot < dev_limit; slot++) {
|
|
|
if (!early_is_amd_nb(read_pci_config(bus, slot, 3, 0x00)))
|
|
@@ -349,13 +337,13 @@ void __init early_gart_iommu_check(void)
|
|
|
return;
|
|
|
|
|
|
/* disable them all at first */
|
|
|
- for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) {
|
|
|
+ for (i = 0; i < amd_nb_bus_dev_ranges[i].dev_limit; i++) {
|
|
|
int bus;
|
|
|
int dev_base, dev_limit;
|
|
|
|
|
|
- bus = bus_dev_ranges[i].bus;
|
|
|
- dev_base = bus_dev_ranges[i].dev_base;
|
|
|
- dev_limit = bus_dev_ranges[i].dev_limit;
|
|
|
+ bus = amd_nb_bus_dev_ranges[i].bus;
|
|
|
+ dev_base = amd_nb_bus_dev_ranges[i].dev_base;
|
|
|
+ dev_limit = amd_nb_bus_dev_ranges[i].dev_limit;
|
|
|
|
|
|
for (slot = dev_base; slot < dev_limit; slot++) {
|
|
|
if (!early_is_amd_nb(read_pci_config(bus, slot, 3, 0x00)))
|
|
@@ -390,14 +378,14 @@ int __init gart_iommu_hole_init(void)
|
|
|
|
|
|
fix = 0;
|
|
|
node = 0;
|
|
|
- for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) {
|
|
|
+ for (i = 0; i < amd_nb_bus_dev_ranges[i].dev_limit; i++) {
|
|
|
int bus;
|
|
|
int dev_base, dev_limit;
|
|
|
u32 ctl;
|
|
|
|
|
|
- bus = bus_dev_ranges[i].bus;
|
|
|
- dev_base = bus_dev_ranges[i].dev_base;
|
|
|
- dev_limit = bus_dev_ranges[i].dev_limit;
|
|
|
+ bus = amd_nb_bus_dev_ranges[i].bus;
|
|
|
+ dev_base = amd_nb_bus_dev_ranges[i].dev_base;
|
|
|
+ dev_limit = amd_nb_bus_dev_ranges[i].dev_limit;
|
|
|
|
|
|
for (slot = dev_base; slot < dev_limit; slot++) {
|
|
|
if (!early_is_amd_nb(read_pci_config(bus, slot, 3, 0x00)))
|
|
@@ -505,7 +493,7 @@ out:
|
|
|
}
|
|
|
|
|
|
/* Fix up the north bridges */
|
|
|
- for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) {
|
|
|
+ for (i = 0; i < amd_nb_bus_dev_ranges[i].dev_limit; i++) {
|
|
|
int bus, dev_base, dev_limit;
|
|
|
|
|
|
/*
|
|
@@ -514,9 +502,9 @@ out:
|
|
|
*/
|
|
|
u32 ctl = DISTLBWALKPRB | aper_order << 1;
|
|
|
|
|
|
- bus = bus_dev_ranges[i].bus;
|
|
|
- dev_base = bus_dev_ranges[i].dev_base;
|
|
|
- dev_limit = bus_dev_ranges[i].dev_limit;
|
|
|
+ bus = amd_nb_bus_dev_ranges[i].bus;
|
|
|
+ dev_base = amd_nb_bus_dev_ranges[i].dev_base;
|
|
|
+ dev_limit = amd_nb_bus_dev_ranges[i].dev_limit;
|
|
|
for (slot = dev_base; slot < dev_limit; slot++) {
|
|
|
if (!early_is_amd_nb(read_pci_config(bus, slot, 3, 0x00)))
|
|
|
continue;
|