• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/pci/ac97/

Lines Matching refs:ac97

37 static void snd_ac97_proc_read_functions(struct snd_ac97 *ac97, struct snd_info_buffer *buffer)
52 snd_ac97_write(ac97, AC97_FUNC_SELECT, function << 1);
53 info = snd_ac97_read(ac97, AC97_FUNC_INFO);
60 sense_info = snd_ac97_read(ac97, AC97_SENSE_INFO);
107 static void snd_ac97_proc_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx)
116 snd_ac97_get_name(NULL, ac97->id, name, 0);
117 snd_iprintf(buffer, "%d-%d/%d: %s\n\n", ac97->addr, ac97->num, subidx, name);
119 if ((ac97->scaps & AC97_SCAP_AUDIO) == 0)
123 ac97->subsystem_vendor);
125 ac97->subsystem_device);
127 snd_iprintf(buffer, "Flags: %x\n", ac97->flags);
129 if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23) {
130 val = snd_ac97_read(ac97, AC97_INT_PAGING);
131 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
133 tmp = snd_ac97_read(ac97, AC97_CODEC_CLASS_REV);
137 snd_ac97_read(ac97, AC97_PCI_SVID));
139 snd_ac97_read(ac97, AC97_PCI_SID));
140 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
144 // val = snd_ac97_read(ac97, AC97_RESET);
145 val = ac97->caps;
153 tmp = ac97->caps & AC97_BC_DAC_MASK;
159 tmp = ac97->caps & AC97_BC_ADC_MASK;
168 val = snd_ac97_read(ac97, AC97_MIC);
169 snd_iprintf(buffer, "Mic gain : %s [%s]\n", val & 0x0040 ? "+20dB" : "+0dB", ac97->regs[AC97_MIC] & 0x0040 ? "+20dB" : "+0dB");
170 val = snd_ac97_read(ac97, AC97_GENERAL_PURPOSE);
185 if (ac97->ext_id & AC97_EI_DRA)
189 ext = snd_ac97_read(ac97, AC97_EXTENDED_ID);
205 val = snd_ac97_read(ac97, AC97_EXTENDED_STATUS);
222 val = snd_ac97_read(ac97, AC97_PCM_FRONT_DAC_RATE);
225 val = snd_ac97_read(ac97, AC97_PCM_SURR_DAC_RATE);
229 val = snd_ac97_read(ac97, AC97_PCM_LFE_DAC_RATE);
232 val = snd_ac97_read(ac97, AC97_PCM_LR_ADC_RATE);
236 val = snd_ac97_read(ac97, AC97_PCM_MIC_ADC_RATE);
239 if ((ext & AC97_EI_SPDIF) || (ac97->flags & AC97_CS_SPDIF) ||
240 (ac97->id == AC97_ID_YMF743)) {
241 if (ac97->flags & AC97_CS_SPDIF)
242 val = snd_ac97_read(ac97, AC97_CSR_SPDIF);
243 else if (ac97->id == AC97_ID_YMF743) {
244 val = snd_ac97_read(ac97, AC97_YMF7X3_DIT_CTRL);
247 val = snd_ac97_read(ac97, AC97_SPDIF);
256 (ac97->flags & AC97_CS_SPDIF) ?
259 (ac97->flags & AC97_CS_SPDIF) ?
262 (ac97->flags & AC97_CS_SPDIF) ?
266 if ((ac97->id & 0xfffffff0) == 0x414c4720 &&
267 (snd_ac97_read(ac97, AC97_ALC650_CLOCK) & 0x01)) {
268 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2);
270 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS1);
278 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2);
289 if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23) {
290 val = snd_ac97_read(ac97, AC97_INT_PAGING);
291 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
293 snd_ac97_proc_read_functions(ac97, buffer);
294 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
300 mext = snd_ac97_read(ac97, AC97_EXTENDED_MID);
311 val = snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS);
330 val = snd_ac97_read(ac97, AC97_LINE1_RATE);
334 val = snd_ac97_read(ac97, AC97_LINE2_RATE);
338 val = snd_ac97_read(ac97, AC97_HANDSET_RATE);
345 struct snd_ac97 *ac97 = entry->private_data;
347 mutex_lock(&ac97->page_mutex);
348 if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86
351 if (ac97->spec.ad18xx.id[idx]) {
353 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000,
354 ac97->spec.ad18xx.unchained[idx] | ac97->spec.ad18xx.chained[idx]);
355 snd_ac97_proc_read_main(ac97, buffer, idx);
359 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
363 ac97->spec.ad18xx.unchained[0],
364 ac97->spec.ad18xx.unchained[1],
365 ac97->spec.ad18xx.unchained[2]);
367 ac97->spec.ad18xx.chained[0],
368 ac97->spec.ad18xx.chained[1],
369 ac97->spec.ad18xx.chained[2]);
371 snd_ac97_proc_read_main(ac97, buffer, 0);
373 mutex_unlock(&ac97->page_mutex);
380 struct snd_ac97 *ac97 = entry->private_data;
383 mutex_lock(&ac97->page_mutex);
389 snd_ac97_write_cache(ac97, reg, val);
391 mutex_unlock(&ac97->page_mutex);
395 static void snd_ac97_proc_regs_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx)
400 val = snd_ac97_read(ac97, reg);
408 struct snd_ac97 *ac97 = entry->private_data;
410 mutex_lock(&ac97->page_mutex);
411 if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86
415 if (ac97->spec.ad18xx.id[idx]) {
417 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000,
418 ac97->spec.ad18xx.unchained[idx] | ac97->spec.ad18xx.chained[idx]);
419 snd_ac97_proc_regs_read_main(ac97, buffer, idx);
422 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
424 snd_ac97_proc_regs_read_main(ac97, buffer, 0);
426 mutex_unlock(&ac97->page_mutex);
429 void snd_ac97_proc_init(struct snd_ac97 * ac97)
435 if (ac97->bus->proc == NULL)
437 prefix = ac97_is_audio(ac97) ? "ac97" : "mc97";
438 sprintf(name, "%s#%d-%d", prefix, ac97->addr, ac97->num);
439 if ((entry = snd_info_create_card_entry(ac97->bus->card, name, ac97->bus->proc)) != NULL) {
440 snd_info_set_text_ops(entry, ac97, snd_ac97_proc_read);
446 ac97->proc = entry;
447 sprintf(name, "%s#%d-%d+regs", prefix, ac97->addr, ac97->num);
448 if ((entry = snd_info_create_card_entry(ac97->bus->card, name, ac97->bus->proc)) != NULL) {
449 snd_info_set_text_ops(entry, ac97, snd_ac97_proc_regs_read);
459 ac97->proc_regs = entry;
462 void snd_ac97_proc_done(struct snd_ac97 * ac97)
464 snd_info_free_entry(ac97->proc_regs);
465 ac97->proc_regs = NULL;
466 snd_info_free_entry(ac97->proc);
467 ac97->proc = NULL;