We define IO_APIC_ADDR in <arch/ioapic.h>, let's use it.
[coreboot.git] / src / southbridge / sis / sis966 / sis966_lpc.c
index a3b79f078a02cc0b1202f1dd829dec22bcc382d3..c6a1fce20deb7eccac5c61fa14cafe4e3784d6f6 100644 (file)
@@ -178,7 +178,7 @@ static void sis966_lpc_read_resources(device_t dev)
                     IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
 
        res = new_resource(dev, 3); /* IOAPIC */
-       res->base = 0xfec00000;
+       res->base = IO_APIC_ADDR;
        res->size = 0x00001000;
        res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
 }
@@ -188,27 +188,19 @@ static void sis966_lpc_read_resources(device_t dev)
  *
  * @param dev the device whos children's resources are to be enabled
  *
- * This function is call by the global enable_resources() indirectly via the
- * device_operation::enable_resources() method of devices.
- *
- * Indirect mutual recursion:
- *      enable_childrens_resources() -> enable_resources()
- *      enable_resources() -> device_operation::enable_resources()
- *      device_operation::enable_resources() -> enable_children_resources()
  */
 static void sis966_lpc_enable_childrens_resources(device_t dev)
 {
-       unsigned link;
+       struct bus *link;
        uint32_t reg, reg_var[4];
        int i;
        int var_num = 0;
 
        reg = pci_read_config32(dev, 0xa0);
 
-       for (link = 0; link < dev->links; link++) {
+       for (link = dev->link_list; link; link = link->next) {
                device_t child;
-               for (child = dev->link[link].children; child; child = child->sibling) {
-                       enable_resources(child);
+               for (child = link->children; child; child = child->sibling) {
                        if(child->enabled && (child->path.type == DEVICE_PATH_PNP)) {
                                struct resource *res;
                                for(res = child->resource_list; res; res = res->next) {