aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2005-02-28 01:27:24 +0000
committerWarner Losh <imp@FreeBSD.org>2005-02-28 01:27:24 +0000
commitaf5e97c122bb5930176ecb450af087c0fd35a3ca (patch)
treecb9c6e7d15ff512cd8adc62c7d69944031bc8052 /sys/dev
parentc3c08f307c6b60a21f458c04cc7736d090f18f74 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/cardbus/cardbus.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sys/dev/cardbus/cardbus.c b/sys/dev/cardbus/cardbus.c
index d6ffbe996cbb5..19974cd4219ea 100644
--- a/sys/dev/cardbus/cardbus.c
+++ b/sys/dev/cardbus/cardbus.c
@@ -471,10 +471,10 @@ cardbus_attach_card(device_t cbdev)
}
cardbus_pickup_maps(cbdev, child);
cardbus_alloc_resources(cbdev, child);
+ pci_cfg_save(child, &dinfo->pci, 0);
+ pci_cfg_restore(child, &dinfo->pci);
pci_print_verbose(&dinfo->pci);
- if (device_probe_and_attach(child) != 0)
- cardbus_release_all_resources(cbdev, dinfo);
- else
+ if (device_probe_and_attach(child) == 0)
cardattached++;
}
}
@@ -545,10 +545,8 @@ cardbus_driver_added(device_t cbdev, driver_t *driver)
continue;
dinfo = device_get_ivars(dev);
pci_print_verbose(&dinfo->pci);
- resource_list_init(&dinfo->pci.resources);
- cardbus_do_cis(cbdev, dev);
- if (device_probe_and_attach(dev) != 0)
- cardbus_release_all_resources(cbdev, dinfo);
+ pci_cfg_restore(dev, &dinfo->pci);
+ device_probe_and_attach(dev);
}
free(devlist, M_TEMP);
}