Lines Matching refs:ac97

215 static unsigned short snd_cs46xx_ac97_read(struct snd_ac97 * ac97,  in snd_cs46xx_ac97_read()  argument
218 struct snd_cs46xx *chip = ac97->private_data; in snd_cs46xx_ac97_read()
220 int codec_index = ac97->num; in snd_cs46xx_ac97_read()
299 static void snd_cs46xx_ac97_write(struct snd_ac97 *ac97, in snd_cs46xx_ac97_write() argument
303 struct snd_cs46xx *chip = ac97->private_data; in snd_cs46xx_ac97_write()
304 int codec_index = ac97->num; in snd_cs46xx_ac97_write()
1886 static void snd_cs46xx_mixer_free_ac97(struct snd_ac97 *ac97) in snd_cs46xx_mixer_free_ac97() argument
1888 struct snd_cs46xx *chip = ac97->private_data; in snd_cs46xx_mixer_free_ac97()
1890 if (snd_BUG_ON(ac97 != chip->ac97[CS46XX_PRIMARY_CODEC_INDEX] && in snd_cs46xx_mixer_free_ac97()
1891 ac97 != chip->ac97[CS46XX_SECONDARY_CODEC_INDEX])) in snd_cs46xx_mixer_free_ac97()
1894 if (ac97 == chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]) { in snd_cs46xx_mixer_free_ac97()
1895 chip->ac97[CS46XX_PRIMARY_CODEC_INDEX] = NULL; in snd_cs46xx_mixer_free_ac97()
1899 chip->ac97[CS46XX_SECONDARY_CODEC_INDEX] = NULL; in snd_cs46xx_mixer_free_ac97()
2360 val = snd_ac97_read(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX], AC97_CSR_ACMODE); in snd_cs46xx_front_dup_get()
2369 return snd_ac97_update_bits(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX], in snd_cs46xx_front_dup_put()
2396 static void snd_cs46xx_codec_reset (struct snd_ac97 * ac97) in snd_cs46xx_codec_reset() argument
2402 snd_ac97_write(ac97, AC97_RESET, 0); in snd_cs46xx_codec_reset()
2405 if (ac97->num == CS46XX_PRIMARY_CODEC_INDEX) { in snd_cs46xx_codec_reset()
2406 dev_dbg(ac97->bus->card->dev, "CODEC1 mode %04x\n", 0x0); in snd_cs46xx_codec_reset()
2407 snd_cs46xx_ac97_write(ac97, AC97_CSR_ACMODE, 0x0); in snd_cs46xx_codec_reset()
2408 } else if (ac97->num == CS46XX_SECONDARY_CODEC_INDEX) { in snd_cs46xx_codec_reset()
2409 dev_dbg(ac97->bus->card->dev, "CODEC2 mode %04x\n", 0x3); in snd_cs46xx_codec_reset()
2410 snd_cs46xx_ac97_write(ac97, AC97_CSR_ACMODE, 0x3); in snd_cs46xx_codec_reset()
2425 snd_ac97_read(ac97, AC97_RESET); in snd_cs46xx_codec_reset()
2426 snd_ac97_read(ac97, AC97_VENDOR_ID1); in snd_cs46xx_codec_reset()
2427 snd_ac97_read(ac97, AC97_VENDOR_ID2); in snd_cs46xx_codec_reset()
2429 ext_mid = snd_ac97_read(ac97, AC97_EXTENDED_MID); in snd_cs46xx_codec_reset()
2434 snd_ac97_write(ac97, AC97_REC_GAIN, 0x8a05); in snd_cs46xx_codec_reset()
2435 if ((err = snd_ac97_read(ac97, AC97_REC_GAIN)) == 0x8a05) in snd_cs46xx_codec_reset()
2441 dev_err(ac97->bus->card->dev, in snd_cs46xx_codec_reset()
2449 struct snd_ac97_template ac97; in cs46xx_detect_codec() local
2451 memset(&ac97, 0, sizeof(ac97)); in cs46xx_detect_codec()
2452 ac97.private_data = chip; in cs46xx_detect_codec()
2453 ac97.private_free = snd_cs46xx_mixer_free_ac97; in cs46xx_detect_codec()
2454 ac97.num = codec; in cs46xx_detect_codec()
2456 ac97.scaps = AC97_SCAP_INV_EAPD; in cs46xx_detect_codec()
2471 err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97[codec]); in cs46xx_detect_codec()
2530 unsigned int id2 = chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]->id & 0xffff; in snd_cs46xx_mixer()
2535 snd_ac97_write_cache(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX], in snd_cs46xx_mixer()
3791 snd_ac97_suspend(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]); in snd_cs46xx_suspend()
3792 snd_ac97_suspend(chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]); in snd_cs46xx_suspend()
3845 snd_ac97_resume(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]); in snd_cs46xx_resume()
3846 snd_ac97_resume(chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]); in snd_cs46xx_resume()