Convert some comments to proper Doxygen syntax.
[coreboot.git] / src / southbridge / sis / sis966 / sis966_lpc.c
index 39f1996ff47237f633bc63f28c792421319543a7..26f60dd3af11bb6fe271ded7d1a072920a063778 100644 (file)
@@ -55,6 +55,8 @@
 #define CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL     MAINBOARD_POWER_ON
 #endif
 
+#undef SLAVE_INIT
+
 static void lpc_common_init(device_t dev)
 {
        uint8_t byte;
@@ -69,11 +71,12 @@ static void lpc_common_init(device_t dev)
        setup_ioapic(ioapic_base, 0); // Don't rename IO APIC ID
 }
 
+#ifdef SLAVE_INIT
 static void lpc_slave_init(device_t dev)
 {
        lpc_common_init(dev);
 }
-
+#endif
 
 static void lpc_usb_legacy_init(device_t dev)
 {
@@ -175,42 +178,32 @@ 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;
 }
 
 /**
- * @brief Enable resources for children devices
- *
- * @param dev the device whos children's resources are to be enabled
+ * Enable resources for children devices.
  *
- * 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()
+ * @param dev The device whos children's resources are to be enabled.
  */
 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)) {
-                               for(i=0;i<child->resources;i++) {
-                                       struct resource *res;
+                               struct resource *res;
+                               for(res = child->resource_list; res; res = res->next) {
                                        unsigned long base, end; // don't need long long
-                                       res = &child->resource[i];
                                        if(!(res->flags & IORESOURCE_IO)) continue;
                                        base = res->base;
                                        end = resource_end(res);
@@ -271,12 +264,14 @@ static struct device_operations lpc_ops  = {
 //     .enable         = sis966_enable,
        .ops_pci        = &lops_pci,
 };
+
 static const struct pci_driver lpc_driver __pci_driver = {
        .ops    = &lpc_ops,
        .vendor = PCI_VENDOR_ID_SIS,
        .device = PCI_DEVICE_ID_SIS_SIS966_LPC,
 };
 
+#ifdef SLAVE_INIT // No device?
 static struct device_operations lpc_slave_ops  = {
        .read_resources = sis966_lpc_read_resources,
        .set_resources  = pci_dev_set_resources,
@@ -285,3 +280,4 @@ static struct device_operations lpc_slave_ops  = {
 //     .enable         = sis966_enable,
        .ops_pci        = &lops_pci,
 };
+#endif