• 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

172 static int set_spdif_rate(struct snd_ac97 *ac97, unsigned short rate)
177 if (! (ac97->ext_id & AC97_EI_SPDIF))
181 if (ac97->flags & AC97_CS_SPDIF) {
186 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0);
192 if (ac97->id == AC97_ID_CM9739 && rate != 48000) {
193 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0);
201 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0);
208 mutex_lock(&ac97->reg_mutex);
209 old = snd_ac97_read(ac97, reg) & mask;
211 snd_ac97_update_bits_nolock(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0);
212 snd_ac97_update_bits_nolock(ac97, reg, mask, bits);
214 sbits = ac97->spdif_status;
230 ac97->spdif_status = sbits;
232 snd_ac97_update_bits_nolock(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, AC97_EA_SPDIF);
233 mutex_unlock(&ac97->reg_mutex);
239 * @ac97: the ac97 instance
256 int snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate)
263 if (!(ac97->flags & AC97_DOUBLE_RATE))
269 snd_ac97_update_power(ac97, reg, 1);
272 if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRM) == 0) /* MIC VRA */
278 if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRA) == 0) /* VRA */
283 if (! (ac97->scaps & AC97_SCAP_SURROUND_DAC))
287 if (! (ac97->scaps & AC97_SCAP_CENTER_LFE_DAC))
292 return set_spdif_rate(ac97, rate);
298 tmp = (rate * ac97->bus->clock) / 48000;
301 if ((ac97->ext_id & AC97_EI_DRA) && reg == AC97_PCM_FRONT_DAC_RATE)
302 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS,
304 snd_ac97_update(ac97, reg, tmp & 0xffff);
305 snd_ac97_read(ac97, reg);
306 if ((ac97->ext_id & AC97_EI_DRA) && reg == AC97_PCM_FRONT_DAC_RATE) {
310 snd_ac97_update_bits(ac97, AC97_GENERAL_PURPOSE,
313 snd_ac97_read(ac97, AC97_GENERAL_PURPOSE);
320 static unsigned short get_pslots(struct snd_ac97 *ac97, unsigned char *rate_table, unsigned short *spdif_slots)
322 if (!ac97_is_audio(ac97))
324 if (ac97_is_rev22(ac97) || ac97_can_amap(ac97)) {
326 if (ac97_is_rev22(ac97)) {
329 es = ac97->regs[AC97_EXTENDED_ID] &= ~AC97_EI_DACS_SLOT_MASK;
330 switch (ac97->addr) {
335 snd_ac97_write_cache(ac97, AC97_EXTENDED_ID, es);
337 switch (ac97->addr) {
340 if (ac97->scaps & AC97_SCAP_SURROUND_DAC)
342 if (ac97->scaps & AC97_SCAP_CENTER_LFE_DAC)
344 if (ac97->ext_id & AC97_EI_SPDIF) {
345 if (!(ac97->scaps & AC97_SCAP_SURROUND_DAC))
347 else if (!(ac97->scaps & AC97_SCAP_CENTER_LFE_DAC))
357 if (ac97->scaps & AC97_SCAP_SURROUND_DAC)
359 if (ac97->ext_id & AC97_EI_SPDIF) {
360 if (!(ac97->scaps & AC97_SCAP_SURROUND_DAC))
369 if (ac97->ext_id & AC97_EI_SPDIF)
378 if (ac97->scaps & AC97_SCAP_SURROUND_DAC)
380 if (ac97->scaps & AC97_SCAP_CENTER_LFE_DAC)
382 if (ac97->ext_id & AC97_EI_SPDIF) {
383 if (!(ac97->scaps & AC97_SCAP_SURROUND_DAC))
385 else if (!(ac97->scaps & AC97_SCAP_CENTER_LFE_DAC))
395 static unsigned short get_cslots(struct snd_ac97 *ac97)
399 if (!ac97_is_audio(ac97))
547 * @pcm: the ac97 pcm instance
610 //printk(KERN_DEBUG "setting ac97 reg 0x%x to rate %d\n", reg, rate);
632 * @pcm: the ac97 pcm instance
705 * @runtime: the runtime of the ac97 front playback pcm