Lines Matching +full:1 +full:x64 +full:- +full:bit

1 /* SPDX-License-Identifier: GPL-2.0+
24 /* specific - SigmaTel */
25 #define AC97_SIGMATEL_OUTSEL 0x64 /* Output Select, STAC9758 */
33 #define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */
37 /* specific - Analog Devices */
47 /* specific - Cirrus Logic */
56 /* specific - Conexant */
58 #define AC97_CXR_SPDIFEN (1<<3)
59 #define AC97_CXR_COPYRGT (1<<2)
64 /* specific - ALC */
66 /* S/PDIF input status 1 bit defines */
79 /* S/PDIF input status 2 bit defines */
93 #define AC97_ALC650_SURR_DAC_VOL 0x64
106 /* specific - Yamaha YMF7x3 */
110 /* specific - C-Media */
112 #define AC97_CM9739_MULTI_CHAN 0x64
113 #define AC97_CM9739_SPDIF_IN_STATUS 0x68 /* 32bit */
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 */
127 #define AC97_SCAP_SURROUND_DAC (1<<2) /* surround L&R DACs are present */
128 #define AC97_SCAP_CENTER_LFE_DAC (1<<3) /* center and LFE DACs are present */
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 */
131 #define AC97_SCAP_INDEP_SDIN (1<<6) /* independent SDIN */
132 #define AC97_SCAP_INV_EAPD (1<<7) /* inverted EAPD */
133 #define AC97_SCAP_DETECT_BY_VENDOR (1<<8) /* use vendor registers for read tests */
134 #define AC97_SCAP_NO_SPDIF (1<<9) /* don't build SPDIF controls */
135 #define AC97_SCAP_EAPD_LED (1<<10) /* EAPD as mute LED */
136 #define AC97_SCAP_POWER_SAVE (1<<11) /* capable for aggressive power-saving */
138 /* ac97->flags */
139 #define AC97_HAS_PC_BEEP (1<<0) /* force PC Speaker usage */
140 #define AC97_AD_MULTI (1<<1) /* Analog Devices - multi codecs */
141 #define AC97_CS_SPDIF (1<<2) /* Cirrus Logic uses funky SPDIF */
142 #define AC97_CX_SPDIF (1<<3) /* Conexant's spdif interface */
143 #define AC97_STEREO_MUTES (1<<4) /* has stereo mute bits */
144 #define AC97_DOUBLE_RATE (1<<5) /* supports double rate playback */
145 #define AC97_HAS_NO_MASTER_VOL (1<<6) /* no Master volume */
146 #define AC97_HAS_NO_PCM_VOL (1<<7) /* no PCM volume */
147 #define AC97_DEFAULT_POWER_OFF (1<<8) /* no RESET write */
148 #define AC97_MODEM_PATCH (1<<9) /* modem patch */
149 #define AC97_HAS_NO_REC_GAIN (1<<10) /* no Record gain */
150 #define AC97_HAS_NO_PHONE (1<<11) /* no PHONE volume */
151 #define AC97_HAS_NO_PC_BEEP (1<<12) /* no PC Beep volume */
152 #define AC97_HAS_NO_VIDEO (1<<13) /* no Video volume */
153 #define AC97_HAS_NO_CD (1<<14) /* no CD volume */
154 #define AC97_HAS_NO_MIC (1<<15) /* no MIC volume */
155 #define AC97_HAS_NO_TONE (1<<16) /* no Tone volume */
156 #define AC97_HAS_NO_STD_PCM (1<<17) /* no standard AC97 PCM volume and mute */
157 #define AC97_HAS_NO_AUX (1<<18) /* no standard AC97 AUX volume and mute */
158 #define AC97_HAS_8CH (1<<19) /* supports 8-channel output */
162 #define AC97_RATES_SURR_DAC 1
186 void (*update_jacks) (struct snd_ac97 *ac97); /* for jack-sharing */
199 /* -- lowlevel (hardware) driver specific -- */
203 /* --- */
206 unsigned short no_vra: 1, /* bridge doesn't support VRA */
207 dra: 1, /* bridge supports double rate */
208 isdin: 1;/* independent SDIN */
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] */
260 DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
263 unsigned short unchained[3]; // 0 = C34, 1 = C79, 2 = C69
264 unsigned short chained[3]; // 0 = C34, 1 = C79, 2 = C69
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()
344 AC97_TUNE_DEFAULT = -1, /* use default from quirk list (not valid in list) */
346 AC97_TUNE_HP_ONLY, /* headphone (true line-out) control as master only */
349 AC97_TUNE_AD_SHARING, /* for AD1985, turn on OMS bit and use headphone */
352 AC97_TUNE_MUTE_LED, /* EAPD bit works as mute LED */
353 AC97_TUNE_HP_MUTE_LED, /* EAPD bit works as mute LED, use headphone control as master */
359 unsigned short mask; /* device id bit mask, 0 = accept all */
385 unsigned int stream: 1, /* stream type: 1 = capture */
386 exclusive: 1, /* exclusive mode, don't override with other pcms */
387 copy_flag: 1, /* lowlevel driver must fill all entries */
388 spdif: 1; /* spdif pcm */
390 unsigned short cur_dbl; /* current double-rate state */
397 } r[2]; /* 0 = standard rates, 1 = double rates */
415 ac97->dev.platform_data = data; in snd_ac97_dev_add_pdata()