Lines Matching +full:codec +full:- +full:analog +full:- +full:controls
1 /* SPDX-License-Identifier: GPL-2.0+
4 * Universal interface for Audio Codec '97
24 /* specific - SigmaTel */
28 #define AC97_SIGMATEL_ANALOG 0x6c /* Analog Special */
33 #define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */
37 /* specific - Analog Devices */
41 #define AC97_AD_CODEC_CFG 0x70 /* codec configuration */
47 /* specific - Cirrus Logic */
56 /* specific - Conexant */
64 /* specific - ALC */
106 /* specific - Yamaha YMF7x3 */
110 /* specific - C-Media */
116 /* specific - wolfson */
124 /* ac97->scaps */
125 #define AC97_SCAP_AUDIO (1<<0) /* audio codec 97 */
126 #define AC97_SCAP_MODEM (1<<1) /* modem codec 97 */
129 #define AC97_SCAP_SKIP_AUDIO (1<<4) /* skip audio part of codec */
130 #define AC97_SCAP_SKIP_MODEM (1<<5) /* skip modem part of codec */
134 #define AC97_SCAP_NO_SPDIF (1<<9) /* don't build SPDIF controls */
136 #define AC97_SCAP_POWER_SAVE (1<<11) /* capable for aggressive power-saving */
138 /* ac97->flags */
140 #define AC97_AD_MULTI (1<<1) /* Analog Devices - multi codecs */
158 #define AC97_HAS_8CH (1<<19) /* supports 8-channel output */
186 void (*update_jacks) (struct snd_ac97 *ac97); /* for jack-sharing */
199 /* -- lowlevel (hardware) driver specific -- */
203 /* --- */
214 struct snd_ac97 *codec[4]; member
227 struct pci_dev *pci; /* assigned PCI device - used for quirks */
228 unsigned short num; /* number of codec: 0 = primary, 1 = secondary */
229 unsigned short addr; /* physical address of codec [0-3] */
235 /* -- lowlevel (hardware) driver specific -- */
239 /* --- */
241 struct pci_dev *pci; /* assigned PCI device - used for quirks */
247 struct mutex page_mutex; /* mutex for AD18xx multi-codecs and paging (2.3) */
248 unsigned short num; /* number of codec: 0 = primary, 1 = secondary */
249 unsigned short addr; /* physical address of codec [0-3] */
250 unsigned int id; /* identification of codec */
265 unsigned short id[3]; // codec IDs (lower 16-bit word)
273 /* jack-sharing info */
284 struct snd_pcm_chmap *chmaps[2]; /* channel-maps (optional) */
292 return (ac97->scaps & AC97_SCAP_AUDIO); in ac97_is_audio()
296 return (ac97->scaps & AC97_SCAP_MODEM); in ac97_is_modem()
300 return (ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_22; in ac97_is_rev22()
304 return (ac97->ext_id & AC97_EI_AMAP) != 0; in ac97_can_amap()
308 return (ac97->ext_id & AC97_EI_SPDIF) != 0; in ac97_can_spdif()
316 /* create mixer controls */
347 AC97_TUNE_DEFAULT = -1, /* use default from quirk list (not valid in list) */
349 AC97_TUNE_HP_ONLY, /* headphone (true line-out) control as master only */
350 AC97_TUNE_SWAP_HP, /* swap headphone and master controls */
351 AC97_TUNE_SWAP_SURROUND, /* swap master and surround controls */
363 unsigned int codec_id; /* codec id (if any), 0 = accept all */
393 unsigned short cur_dbl; /* current double-rate state */
399 struct snd_ac97 *codec[4]; /* allocated codecs */ member
418 ac97->dev.platform_data = data; in snd_ac97_dev_add_pdata()