aboutsummaryrefslogtreecommitdiff
path: root/src/southbridge/amd
diff options
context:
space:
mode:
authorMyles Watson <mylesgw@gmail.com>2010-06-17 16:16:56 +0000
committerMyles Watson <mylesgw@gmail.com>2010-06-17 16:16:56 +0000
commit7eac4450b32f6961d5abd8dae32c5eefc1a07c11 (patch)
tree455e0181fea42d7c6bab09878ef35dc666789977 /src/southbridge/amd
parente10757ed525cdd1a5263b9d79e284310c999c0f7 (diff)
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.c8
-rw-r--r--src/southbridge/amd/cs5530/cs5530_isa.c9
-rw-r--r--src/southbridge/amd/cs5535/cs5535.c9
-rw-r--r--src/southbridge/amd/cs5536/cs5536.c9
-rw-r--r--src/southbridge/amd/sb600/sb600_lpc.c8
-rw-r--r--src/southbridge/amd/sb700/sb700_lpc.c8
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;