aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sound/pci/fm801.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/sound/pci/fm801.c')
-rw-r--r--sys/dev/sound/pci/fm801.c15
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)