Lines Matching +full:pcm +full:- +full:clock +full:- +full:mode
1 /* SPDX-License-Identifier: GPL-2.0+
17 #include <sound/pcm.h>
24 /* specific - SigmaTel */
33 #define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */
37 /* specific - Analog Devices */
47 /* specific - Cirrus Logic */
48 #define AC97_CSR_ACMODE 0x5e /* AC Mode Register */
56 /* specific - Conexant */
64 /* specific - ALC */
88 #define AC97_ALC650_CLOCK_ACCURACY 0x3000 /* Clock accuracy */
90 #define AC97_ALC650_CLOCK_LOCK 0x4000 /* Clock locked status */
106 /* specific - Yamaha YMF7x3 */
108 #define AC97_YMF7X3_3D_MODE_SEL 0x68 /* 3D Mode Select */
110 /* specific - C-Media */
116 /* specific - wolfson */
124 /* ac97->scaps */
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 */
146 #define AC97_HAS_NO_PCM_VOL (1<<7) /* no PCM volume */
156 #define AC97_HAS_NO_STD_PCM (1<<17) /* no standard AC97 PCM volume and mute */
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 /* --- */
209 unsigned int clock; /* AC'97 base clock (usually 48000Hz) */ member
211 unsigned short used_slots[2][4]; /* actually used PCM slots */
227 struct pci_dev *pci; /* assigned PCI device - used for quirks */
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) */
249 unsigned short addr; /* physical address of codec [0-3] */
265 unsigned short id[3]; // codec IDs (lower 16-bit word)
266 unsigned short pcmreg[3]; // PCM registers
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()
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 */
374 * PCM allocation
389 exclusive: 1, /* exclusive mode, don't override with other pcms */
391 spdif: 1; /* spdif pcm */
393 unsigned short cur_dbl; /* current double-rate state */
407 int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate,
409 int snd_ac97_pcm_close(struct ac97_pcm *pcm);
418 ac97->dev.platform_data = data; in snd_ac97_dev_add_pdata()