diff options
author | Myles Watson <mylesgw@gmail.com> | 2010-06-17 16:16:56 +0000 |
---|---|---|
committer | Myles Watson <mylesgw@gmail.com> | 2010-06-17 16:16:56 +0000 |
commit | 7eac4450b32f6961d5abd8dae32c5eefc1a07c11 (patch) | |
tree | 455e0181fea42d7c6bab09878ef35dc666789977 /src/southbridge/amd | |
parent | e10757ed525cdd1a5263b9d79e284310c999c0f7 (diff) | |
download | coreboot-7eac4450b32f6961d5abd8dae32c5eefc1a07c11.tar.xz |
Always enable parent resources before child resources.
Always initialize parents before children.
Move s2881 code into a driver.
Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5633 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/southbridge/amd')
-rw-r--r-- | src/southbridge/amd/amd8111/amd8111_lpc.c | 8 | ||||
-rw-r--r-- | src/southbridge/amd/cs5530/cs5530_isa.c | 9 | ||||
-rw-r--r-- | src/southbridge/amd/cs5535/cs5535.c | 9 | ||||
-rw-r--r-- | src/southbridge/amd/cs5536/cs5536.c | 9 | ||||
-rw-r--r-- | src/southbridge/amd/sb600/sb600_lpc.c | 8 | ||||
-rw-r--r-- | src/southbridge/amd/sb700/sb700_lpc.c | 8 |
6 files changed, 4 insertions, 47 deletions
diff --git a/src/southbridge/amd/amd8111/amd8111_lpc.c b/src/southbridge/amd/amd8111/amd8111_lpc.c index 8fe4982721..83887b2199 100644 --- a/src/southbridge/amd/amd8111/amd8111_lpc.c +++ b/src/southbridge/amd/amd8111/amd8111_lpc.c @@ -106,12 +106,6 @@ static void amd8111_lpc_read_resources(device_t dev) res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; } -static void amd8111_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device) { pci_write_config32(dev, 0x70, @@ -125,7 +119,7 @@ static struct pci_operations lops_pci = { static struct device_operations lpc_ops = { .read_resources = amd8111_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = amd8111_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = amd8111_enable, diff --git a/src/southbridge/amd/cs5530/cs5530_isa.c b/src/southbridge/amd/cs5530/cs5530_isa.c index c949cbf681..c7e8f43f75 100644 --- a/src/southbridge/amd/cs5530/cs5530_isa.c +++ b/src/southbridge/amd/cs5530/cs5530_isa.c @@ -47,17 +47,10 @@ static void isa_init(struct device *dev) { } -static void cs5530_pci_dev_enable_resources(device_t dev) -{ - // TODO: Needed? - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations isa_ops = { .read_resources = cs5530_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = cs5530_pci_dev_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = isa_init, .enable = 0, .scan_bus = scan_static_bus, diff --git a/src/southbridge/amd/cs5535/cs5535.c b/src/southbridge/amd/cs5535/cs5535.c index c1fed9f815..402362bf1e 100644 --- a/src/southbridge/amd/cs5535/cs5535.c +++ b/src/southbridge/amd/cs5535/cs5535.c @@ -87,17 +87,10 @@ static void cs5535_read_resources(device_t dev) res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; } -static void cs5535_pci_dev_enable_resources(device_t dev) -{ - printk(BIOS_DEBUG, "%s()\n", __func__); - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations southbridge_ops = { .read_resources = cs5535_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = cs5535_pci_dev_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = southbridge_init, .enable = southbridge_enable, .scan_bus = scan_static_bus, diff --git a/src/southbridge/amd/cs5536/cs5536.c b/src/southbridge/amd/cs5536/cs5536.c index d2dbcb152a..c4ceaea4f7 100644 --- a/src/southbridge/amd/cs5536/cs5536.c +++ b/src/southbridge/amd/cs5536/cs5536.c @@ -667,17 +667,10 @@ static void southbridge_enable(struct device *dev) } -static void cs5536_pci_dev_enable_resources(device_t dev) -{ - printk(BIOS_DEBUG, "%s()\n", __func__); - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations southbridge_ops = { .read_resources = cs5536_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = cs5536_pci_dev_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = southbridge_init, // .enable = southbridge_enable, .scan_bus = scan_static_bus, diff --git a/src/southbridge/amd/sb600/sb600_lpc.c b/src/southbridge/amd/sb600/sb600_lpc.c index fd06f4478d..67703d15eb 100644 --- a/src/southbridge/amd/sb600/sb600_lpc.c +++ b/src/southbridge/amd/sb600/sb600_lpc.c @@ -96,13 +96,6 @@ static void sb600_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 sb600_lpc_enable_childrens_resources(device_t dev) { @@ -118,7 +111,6 @@ static void sb600_lpc_enable_childrens_resources(device_t dev) device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if (child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; diff --git a/src/southbridge/amd/sb700/sb700_lpc.c b/src/southbridge/amd/sb700/sb700_lpc.c index e8bfbfac5d..87b77ca28f 100644 --- a/src/southbridge/amd/sb700/sb700_lpc.c +++ b/src/southbridge/amd/sb700/sb700_lpc.c @@ -108,13 +108,6 @@ static void sb700_lpc_set_resources(struct device *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 sb700_lpc_enable_childrens_resources(device_t dev) { @@ -130,7 +123,6 @@ static void sb700_lpc_enable_childrens_resources(device_t dev) device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if (child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; |