diff options
-rw-r--r-- | sys/dev/sound/pci/envy24ht.c | 5 | ||||
-rw-r--r-- | sys/dev/sound/pci/hda/hdac.c | 18 | ||||
-rw-r--r-- | sys/dev/sound/pcm/ac97.c | 6 | ||||
-rw-r--r-- | sys/dev/sound/usb/uaudio_pcm.c | 38 |
4 files changed, 26 insertions, 41 deletions
diff --git a/sys/dev/sound/pci/envy24ht.c b/sys/dev/sound/pci/envy24ht.c index e095ff3..4b08c0c 100644 --- a/sys/dev/sound/pci/envy24ht.c +++ b/sys/dev/sound/pci/envy24ht.c @@ -1836,7 +1836,6 @@ static int envy24htmixer_init(struct snd_mixer *m) { struct sc_info *sc = mix_getdevinfo(m); - struct snddev_info *d; #if(0) device_printf(sc->dev, "envy24htmixer_init()\n"); @@ -1850,9 +1849,7 @@ envy24htmixer_init(struct snd_mixer *m) envy24ht_wrmt(sc, ENVY24HT_MT_VOLRATE, 0x30, 1); /* 0x30 is default value */ #endif - d = device_get_softc(sc->dev); - if (d != NULL) - d->flags |= SD_F_SOFTPCMVOL; + pcm_setflags(sc->dev, pcm_getflags(sc->dev) | SD_F_SOFTPCMVOL); mix_setdevs(m, ENVY24HT_MIX_MASK); mix_setrecdevs(m, ENVY24HT_MIX_REC_MASK); diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index 4484803..7ae9342 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -3309,17 +3309,13 @@ hdac_audio_ctl_ossmixer_init(struct snd_mixer *m) } if (softpcmvol == 1 || ctl == NULL) { - struct snddev_info *d = NULL; - d = device_get_softc(sc->dev); - if (d != NULL) { - d->flags |= SD_F_SOFTPCMVOL; - HDA_BOOTVERBOSE( - device_printf(sc->dev, - "HDA_DEBUG: %s Soft PCM volume\n", - (softpcmvol == 1) ? - "Forcing" : "Enabling"); - ); - } + pcm_setflags(sc->dev, pcm_getflags(sc->dev) | SD_F_SOFTPCMVOL); + HDA_BOOTVERBOSE( + device_printf(sc->dev, + "HDA_DEBUG: %s Soft PCM volume\n", + (softpcmvol == 1) ? + "Forcing" : "Enabling"); + ); i = 0; /* * XXX Temporary quirk for STAC9220, until the parser diff --git a/sys/dev/sound/pcm/ac97.c b/sys/dev/sound/pcm/ac97.c index da8a17c..279d5e5 100644 --- a/sys/dev/sound/pcm/ac97.c +++ b/sys/dev/sound/pcm/ac97.c @@ -922,7 +922,6 @@ static int ac97mix_init(struct snd_mixer *m) { struct ac97_info *codec = mix_getdevinfo(m); - struct snddev_info *d; u_int32_t i, mask; if (codec == NULL) @@ -964,9 +963,8 @@ ac97mix_init(struct snd_mixer *m) ac97_wrcd(codec, AC97_MIX_PCM, 0); bzero(&codec->mix[SOUND_MIXER_PCM], sizeof(codec->mix[SOUND_MIXER_PCM])); - d = device_get_softc(codec->dev); - if (d != NULL) - d->flags |= SD_F_SOFTPCMVOL; + pcm_setflags(codec->dev, pcm_getflags(codec->dev) | + SD_F_SOFTPCMVOL); /* XXX How about master volume ? */ break; default: diff --git a/sys/dev/sound/usb/uaudio_pcm.c b/sys/dev/sound/usb/uaudio_pcm.c index 19588a1..e2f9511 100644 --- a/sys/dev/sound/usb/uaudio_pcm.c +++ b/sys/dev/sound/usb/uaudio_pcm.c @@ -274,27 +274,22 @@ ua_mixer_init(struct snd_mixer *m) { u_int32_t mask; device_t pa_dev; - struct snddev_info *d; struct ua_info *ua = mix_getdevinfo(m); pa_dev = device_get_parent(ua->sc_dev); - d = device_get_softc(ua->sc_dev); mask = uaudio_query_mix_info(pa_dev); - if (d != NULL) { - if (!(mask & SOUND_MASK_PCM)) { - /* - * Emulate missing pcm mixer controller - * through FEEDER_VOLUME - */ - d->flags |= SD_F_SOFTPCMVOL; - } - if (!(mask & SOUND_MASK_VOLUME)) { - mix_setparentchild(m, SOUND_MIXER_VOLUME, - SOUND_MASK_PCM); - mix_setrealdev(m, SOUND_MIXER_VOLUME, - SOUND_MIXER_NONE); - } + if (!(mask & SOUND_MASK_PCM)) { + /* + * Emulate missing pcm mixer controller + * through FEEDER_VOLUME + */ + pcm_setflags(ua->sc_dev, pcm_getflags(ua->sc_dev) | + SD_F_SOFTPCMVOL); + } + if (!(mask & SOUND_MASK_VOLUME)) { + mix_setparentchild(m, SOUND_MIXER_VOLUME, SOUND_MASK_PCM); + mix_setrealdev(m, SOUND_MIXER_VOLUME, SOUND_MIXER_NONE); } mix_setdevs(m, mask); @@ -360,10 +355,9 @@ ua_attach(device_t dev) { struct ua_info *ua; struct sndcard_func *func; - struct snddev_info *d; char status[SND_STATUSLEN]; device_t pa_dev; - u_int32_t nplay, nrec; + u_int32_t nplay, nrec, flags; int i; ua = (struct ua_info *)malloc(sizeof *ua, M_DEVBUF, M_ZERO | M_NOWAIT); @@ -408,14 +402,14 @@ ua_attach(device_t dev) if (nrec > 1) nrec = 1; - d = device_get_softc(dev); - for (i = 0; d != NULL && - i < (sizeof(ua_quirks) / sizeof(ua_quirks[0])); i++) { + flags = pcm_getflags(dev); + for (i = 0; i < (sizeof(ua_quirks) / sizeof(ua_quirks[0])); i++) { if (ua->vendor == ua_quirks[i].vendor && ua->product == ua_quirks[i].product && ua->release == ua_quirks[i].release) - d->flags |= ua_quirks[i].dflags; + flags |= ua_quirks[i].dflags; } + pcm_setflags(dev, flags); #ifndef NO_RECORDING if (pcm_register(dev, ua, nplay, nrec)) { |