summaryrefslogtreecommitdiff
path: root/src/devices
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/Config.lb1
-rw-r--r--src/devices/chip.c11
2 files changed, 11 insertions, 1 deletions
diff --git a/src/devices/Config.lb b/src/devices/Config.lb
index 3dd2ac3935..199c7da46b 100644
--- a/src/devices/Config.lb
+++ b/src/devices/Config.lb
@@ -1,3 +1,4 @@
object device.o
object device_util.o
object pci_device.o
+object chip.o
diff --git a/src/devices/chip.c b/src/devices/chip.c
index d25c92e0d7..e99d731043 100644
--- a/src/devices/chip.c
+++ b/src/devices/chip.c
@@ -10,6 +10,15 @@
void
chip_configure(struct chip *root, enum chip_pass pass)
{
- while (root) {
+ struct chip *c;
+
+ for (c = root; c; c = c->next) {
+ if (root->control && root->control->enable)
+ root->control->enable(root, pass);
+ }
+
+ for (c = root; c; c = c->next) {
+ if (root->children)
+ chip_configure(root->children, pass);
}
}