Lines Matching defs:ac97

22 static void snd_ac97_proc_read_functions(struct snd_ac97 *ac97, struct snd_info_buffer *buffer)
37 snd_ac97_write(ac97, AC97_FUNC_SELECT, function << 1);
38 info = snd_ac97_read(ac97, AC97_FUNC_INFO);
45 sense_info = snd_ac97_read(ac97, AC97_SENSE_INFO);
92 static void snd_ac97_proc_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx)
101 snd_ac97_get_name(NULL, ac97->id, name, 0);
102 snd_iprintf(buffer, "%d-%d/%d: %s\n\n", ac97->addr, ac97->num, subidx, name);
104 if ((ac97->scaps & AC97_SCAP_AUDIO) == 0)
108 ac97->subsystem_vendor);
110 ac97->subsystem_device);
112 snd_iprintf(buffer, "Flags: %x\n", ac97->flags);
114 if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23) {
115 val = snd_ac97_read(ac97, AC97_INT_PAGING);
116 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
118 tmp = snd_ac97_read(ac97, AC97_CODEC_CLASS_REV);
122 snd_ac97_read(ac97, AC97_PCI_SVID));
124 snd_ac97_read(ac97, AC97_PCI_SID));
125 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
129 // val = snd_ac97_read(ac97, AC97_RESET);
130 val = ac97->caps;
138 tmp = ac97->caps & AC97_BC_DAC_MASK;
144 tmp = ac97->caps & AC97_BC_ADC_MASK;
153 val = snd_ac97_read(ac97, AC97_MIC);
154 snd_iprintf(buffer, "Mic gain : %s [%s]\n", val & 0x0040 ? "+20dB" : "+0dB", ac97->regs[AC97_MIC] & 0x0040 ? "+20dB" : "+0dB");
155 val = snd_ac97_read(ac97, AC97_GENERAL_PURPOSE);
170 if (ac97->ext_id & AC97_EI_DRA)
174 ext = snd_ac97_read(ac97, AC97_EXTENDED_ID);
190 val = snd_ac97_read(ac97, AC97_EXTENDED_STATUS);
207 val = snd_ac97_read(ac97, AC97_PCM_FRONT_DAC_RATE);
210 val = snd_ac97_read(ac97, AC97_PCM_SURR_DAC_RATE);
214 val = snd_ac97_read(ac97, AC97_PCM_LFE_DAC_RATE);
217 val = snd_ac97_read(ac97, AC97_PCM_LR_ADC_RATE);
221 val = snd_ac97_read(ac97, AC97_PCM_MIC_ADC_RATE);
224 if ((ext & AC97_EI_SPDIF) || (ac97->flags & AC97_CS_SPDIF) ||
225 (ac97->id == AC97_ID_YMF743)) {
226 if (ac97->flags & AC97_CS_SPDIF)
227 val = snd_ac97_read(ac97, AC97_CSR_SPDIF);
228 else if (ac97->id == AC97_ID_YMF743) {
229 val = snd_ac97_read(ac97, AC97_YMF7X3_DIT_CTRL);
232 val = snd_ac97_read(ac97, AC97_SPDIF);
241 (ac97->flags & AC97_CS_SPDIF) ?
244 (ac97->flags & AC97_CS_SPDIF) ?
247 (ac97->flags & AC97_CS_SPDIF) ?
251 if ((ac97->id & 0xfffffff0) == 0x414c4720 &&
252 (snd_ac97_read(ac97, AC97_ALC650_CLOCK) & 0x01)) {
253 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2);
255 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS1);
263 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2);
274 if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23) {
275 val = snd_ac97_read(ac97, AC97_INT_PAGING);
276 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
278 snd_ac97_proc_read_functions(ac97, buffer);
279 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
285 mext = snd_ac97_read(ac97, AC97_EXTENDED_MID);
296 val = snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS);
315 val = snd_ac97_read(ac97, AC97_LINE1_RATE);
319 val = snd_ac97_read(ac97, AC97_LINE2_RATE);
323 val = snd_ac97_read(ac97, AC97_HANDSET_RATE);
330 struct snd_ac97 *ac97 = entry->private_data;
332 mutex_lock(&ac97->page_mutex);
333 if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86
336 if (ac97->spec.ad18xx.id[idx]) {
338 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000,
339 ac97->spec.ad18xx.unchained[idx] | ac97->spec.ad18xx.chained[idx]);
340 snd_ac97_proc_read_main(ac97, buffer, idx);
344 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
348 ac97->spec.ad18xx.unchained[0],
349 ac97->spec.ad18xx.unchained[1],
350 ac97->spec.ad18xx.unchained[2]);
352 ac97->spec.ad18xx.chained[0],
353 ac97->spec.ad18xx.chained[1],
354 ac97->spec.ad18xx.chained[2]);
356 snd_ac97_proc_read_main(ac97, buffer, 0);
358 mutex_unlock(&ac97->page_mutex);
365 struct snd_ac97 *ac97 = entry->private_data;
368 mutex_lock(&ac97->page_mutex);
374 snd_ac97_write_cache(ac97, reg, val);
376 mutex_unlock(&ac97->page_mutex);
380 static void snd_ac97_proc_regs_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx)
385 val = snd_ac97_read(ac97, reg);
393 struct snd_ac97 *ac97 = entry->private_data;
395 mutex_lock(&ac97->page_mutex);
396 if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86
400 if (ac97->spec.ad18xx.id[idx]) {
402 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000,
403 ac97->spec.ad18xx.unchained[idx] | ac97->spec.ad18xx.chained[idx]);
404 snd_ac97_proc_regs_read_main(ac97, buffer, idx);
407 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
409 snd_ac97_proc_regs_read_main(ac97, buffer, 0);
411 mutex_unlock(&ac97->page_mutex);
414 void snd_ac97_proc_init(struct snd_ac97 * ac97)
420 if (ac97->bus->proc == NULL)
422 prefix = ac97_is_audio(ac97) ? "ac97" : "mc97";
423 sprintf(name, "%s#%d-%d", prefix, ac97->addr, ac97->num);
424 entry = snd_info_create_card_entry(ac97->bus->card, name,
425 ac97->bus->proc);
427 snd_info_set_text_ops(entry, ac97, snd_ac97_proc_read);
428 ac97->proc = entry;
429 sprintf(name, "%s#%d-%d+regs", prefix, ac97->addr, ac97->num);
430 entry = snd_info_create_card_entry(ac97->bus->card, name,
431 ac97->bus->proc);
433 snd_info_set_text_ops(entry, ac97, snd_ac97_proc_regs_read);
439 ac97->proc_regs = entry;
442 void snd_ac97_proc_done(struct snd_ac97 * ac97)
444 snd_info_free_entry(ac97->proc_regs);
445 ac97->proc_regs = NULL;
446 snd_info_free_entry(ac97->proc);
447 ac97->proc = NULL;