summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2002-01-31 04:22:20 +0000
committernyan <nyan@FreeBSD.org>2002-01-31 04:22:20 +0000
commit9e96f2c1278b382b8ed7a64b0cc7aa00cf822428 (patch)
treed0a9586f3822fdb1ec86ebbf94c0d10738f5f247 /sys
parentb0b42236aa80431126dabf63f36ef60686a66444 (diff)
downloadFreeBSD-src-9e96f2c1278b382b8ed7a64b0cc7aa00cf822428.zip
FreeBSD-src-9e96f2c1278b382b8ed7a64b0cc7aa00cf822428.tar.gz
MFi386: revision 1.52
Diffstat (limited to 'sys')
-rw-r--r--sys/pc98/pc98/spkr.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/sys/pc98/pc98/spkr.c b/sys/pc98/pc98/spkr.c
index 7b8f4b2..9393ad2 100644
--- a/sys/pc98/pc98/spkr.c
+++ b/sys/pc98/pc98/spkr.c
@@ -622,14 +622,6 @@ spkrioctl(dev, cmd, cmdarg, flags, td)
return(EINVAL);
}
-static void
-spkr_drvinit(void *unused)
-{
- make_dev(&spkr_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "speaker");
-}
-
-SYSINIT(spkrdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,spkr_drvinit,NULL)
-
/*
* Install placeholder to claim the resources owned by the
* AT tone generator.
@@ -639,6 +631,8 @@ static struct isa_pnp_id atspeaker_ids[] = {
{ 0 }
};
+static dev_t atspeaker_dev;
+
static int
atspeaker_probe(device_t dev)
{
@@ -648,14 +642,23 @@ atspeaker_probe(device_t dev)
static int
atspeaker_attach(device_t dev)
{
- return(0);
+ atspeaker_dev = make_dev(&spkr_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600,
+ "speaker");
+ return (0);
+}
+
+static int
+atspeaker_detach(device_t dev)
+{
+ destroy_dev(atspeaker_dev);
+ return (0);
}
static device_method_t atspeaker_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, atspeaker_probe),
DEVMETHOD(device_attach, atspeaker_attach),
- DEVMETHOD(device_detach, bus_generic_detach),
+ DEVMETHOD(device_detach, atspeaker_detach),
DEVMETHOD(device_shutdown, bus_generic_shutdown),
DEVMETHOD(device_suspend, bus_generic_suspend),
DEVMETHOD(device_resume, bus_generic_resume),
OpenPOWER on IntegriCloud