diff options
| author | Warner Losh <imp@FreeBSD.org> | 2005-02-28 01:27:24 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2005-02-28 01:27:24 +0000 |
| commit | af5e97c122bb5930176ecb450af087c0fd35a3ca (patch) | |
| tree | cb9c6e7d15ff512cd8adc62c7d69944031bc8052 /sys/dev | |
| parent | c3c08f307c6b60a21f458c04cc7736d090f18f74 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/cardbus/cardbus.c | 12 |
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); } |
