diff options
Diffstat (limited to 'sys/dev/sound/pci/fm801.c')
-rw-r--r-- | sys/dev/sound/pci/fm801.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/sys/dev/sound/pci/fm801.c b/sys/dev/sound/pci/fm801.c index cbc74249c04d..3537c7807ded 100644 --- a/sys/dev/sound/pci/fm801.c +++ b/sys/dev/sound/pci/fm801.c @@ -642,13 +642,14 @@ fm801_pci_attach(device_t dev) device_get_nameunit(device_get_parent(dev))); #define FM801_MAXPLAYCH 1 - if (pcm_register(dev, fm801, FM801_MAXPLAYCH, 1)) goto oops; + pcm_init(dev, fm801); pcm_addchan(dev, PCMDIR_PLAY, &fm801ch_class, fm801); pcm_addchan(dev, PCMDIR_REC, &fm801ch_class, fm801); - pcm_setstatus(dev, status); + if (pcm_register(dev, status)) + goto oops; - fm801->radio = device_add_child(dev, "radio", -1); - bus_generic_attach(dev); + fm801->radio = device_add_child(dev, "radio", DEVICE_UNIT_ANY); + bus_attach_children(dev); return 0; @@ -675,12 +676,6 @@ fm801_pci_detach(device_t dev) r = bus_generic_detach(dev); if (r) return r; - if (fm801->radio != NULL) { - r = device_delete_child(dev, fm801->radio); - if (r) - return r; - fm801->radio = NULL; - } r = pcm_unregister(dev); if (r) |