~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/pci/au88x0/au88x0_mixer.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0
  2 /*
  3  * Vortex Mixer support.
  4  *
  5  * There is much more than just the AC97 mixer...
  6  *
  7  */
  8 
  9 #include <linux/time.h>
 10 #include <linux/init.h>
 11 #include <sound/core.h>
 12 #include "au88x0.h"
 13 
 14 static int remove_ctl(struct snd_card *card, const char *name)
 15 {
 16         struct snd_ctl_elem_id id;
 17         memset(&id, 0, sizeof(id));
 18         strcpy(id.name, name);
 19         id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
 20         return snd_ctl_remove_id(card, &id);
 21 }
 22 
 23 static int snd_vortex_mixer(vortex_t *vortex)
 24 {
 25         struct snd_ac97_bus *pbus;
 26         struct snd_ac97_template ac97;
 27         int err;
 28         static const struct snd_ac97_bus_ops ops = {
 29                 .write = vortex_codec_write,
 30                 .read = vortex_codec_read,
 31         };
 32 
 33         err = snd_ac97_bus(vortex->card, 0, &ops, NULL, &pbus);
 34         if (err < 0)
 35                 return err;
 36         memset(&ac97, 0, sizeof(ac97));
 37         // Initialize AC97 codec stuff.
 38         ac97.private_data = vortex;
 39         ac97.scaps = AC97_SCAP_NO_SPDIF;
 40         err = snd_ac97_mixer(pbus, &ac97, &vortex->codec);
 41         vortex->isquad = ((vortex->codec == NULL) ?  0 : (vortex->codec->ext_id&0x80));
 42         remove_ctl(vortex->card, "Master Mono Playback Volume");
 43         remove_ctl(vortex->card, "Master Mono Playback Switch");
 44         return err;
 45 }
 46 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php