• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/pci/ac97/

Lines Matching refs:ac97

39 static void snd_ac97_proc_read_functions(struct snd_ac97 *ac97, struct snd_info_buffer *buffer)
54 snd_ac97_write(ac97, AC97_FUNC_SELECT, function << 1);
55 info = snd_ac97_read(ac97, AC97_FUNC_INFO);
62 sense_info = snd_ac97_read(ac97, AC97_SENSE_INFO);
109 static void snd_ac97_proc_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx)
118 snd_ac97_get_name(NULL, ac97->id, name, 0);
119 snd_iprintf(buffer, "%d-%d/%d: %s\n\n", ac97->addr, ac97->num, subidx, name);
121 if ((ac97->scaps & AC97_SCAP_AUDIO) == 0)
125 ac97->subsystem_vendor);
127 ac97->subsystem_device);
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 if (ac97->flags & AC97_CS_SPDIF)
241 val = snd_ac97_read(ac97, AC97_CSR_SPDIF);
243 val = snd_ac97_read(ac97, AC97_SPDIF);
252 (ac97->flags & AC97_CS_SPDIF) ?
255 (ac97->flags & AC97_CS_SPDIF) ?
258 (ac97->flags & AC97_CS_SPDIF) ?
262 if ((ac97->id & 0xfffffff0) == 0x414c4720 &&
263 (snd_ac97_read(ac97, AC97_ALC650_CLOCK) & 0x01)) {
264 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2);
266 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS1);
274 val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2);
285 if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23) {
286 val = snd_ac97_read(ac97, AC97_INT_PAGING);
287 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
289 snd_ac97_proc_read_functions(ac97, buffer);
290 snd_ac97_update_bits(ac97, AC97_INT_PAGING,
296 mext = snd_ac97_read(ac97, AC97_EXTENDED_MID);
307 val = snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS);
326 val = snd_ac97_read(ac97, AC97_LINE1_RATE);
330 val = snd_ac97_read(ac97, AC97_LINE2_RATE);
334 val = snd_ac97_read(ac97, AC97_HANDSET_RATE);
341 struct snd_ac97 *ac97 = entry->private_data;
343 mutex_lock(&ac97->page_mutex);
344 if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86
347 if (ac97->spec.ad18xx.id[idx]) {
349 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000,
350 ac97->spec.ad18xx.unchained[idx] | ac97->spec.ad18xx.chained[idx]);
351 snd_ac97_proc_read_main(ac97, buffer, idx);
355 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
359 ac97->spec.ad18xx.unchained[0],
360 ac97->spec.ad18xx.unchained[1],
361 ac97->spec.ad18xx.unchained[2]);
363 ac97->spec.ad18xx.chained[0],
364 ac97->spec.ad18xx.chained[1],
365 ac97->spec.ad18xx.chained[2]);
367 snd_ac97_proc_read_main(ac97, buffer, 0);
369 mutex_unlock(&ac97->page_mutex);
376 struct snd_ac97 *ac97 = entry->private_data;
379 mutex_lock(&ac97->page_mutex);
385 snd_ac97_write_cache(ac97, reg, val);
387 mutex_unlock(&ac97->page_mutex);
391 static void snd_ac97_proc_regs_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx)
396 val = snd_ac97_read(ac97, reg);
404 struct snd_ac97 *ac97 = entry->private_data;
406 mutex_lock(&ac97->page_mutex);
407 if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86
411 if (ac97->spec.ad18xx.id[idx]) {
413 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000,
414 ac97->spec.ad18xx.unchained[idx] | ac97->spec.ad18xx.chained[idx]);
415 snd_ac97_proc_regs_read_main(ac97, buffer, idx);
418 snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
420 snd_ac97_proc_regs_read_main(ac97, buffer, 0);
422 mutex_unlock(&ac97->page_mutex);
425 void snd_ac97_proc_init(struct snd_ac97 * ac97)
431 if (ac97->bus->proc == NULL)
433 prefix = ac97_is_audio(ac97) ? "ac97" : "mc97";
434 sprintf(name, "%s#%d-%d", prefix, ac97->addr, ac97->num);
435 if ((entry = snd_info_create_card_entry(ac97->bus->card, name, ac97->bus->proc)) != NULL) {
436 snd_info_set_text_ops(entry, ac97, snd_ac97_proc_read);
442 ac97->proc = entry;
443 sprintf(name, "%s#%d-%d+regs", prefix, ac97->addr, ac97->num);
444 if ((entry = snd_info_create_card_entry(ac97->bus->card, name, ac97->bus->proc)) != NULL) {
445 snd_info_set_text_ops(entry, ac97, snd_ac97_proc_regs_read);
455 ac97->proc_regs = entry;
458 void snd_ac97_proc_done(struct snd_ac97 * ac97)
460 snd_info_free_entry(ac97->proc_regs);
461 ac97->proc_regs = NULL;
462 snd_info_free_entry(ac97->proc);
463 ac97->proc = NULL;