Lines Matching refs:ac97

174 static int set_spdif_rate(struct snd_ac97 *ac97, unsigned short rate)  in set_spdif_rate()  argument
179 if (! (ac97->ext_id & AC97_EI_SPDIF)) in set_spdif_rate()
183 if (ac97->flags & AC97_CS_SPDIF) { in set_spdif_rate()
188 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0); in set_spdif_rate()
194 if (ac97->id == AC97_ID_CM9739 && rate != 48000) { in set_spdif_rate()
195 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0); in set_spdif_rate()
203 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0); in set_spdif_rate()
210 mutex_lock(&ac97->reg_mutex); in set_spdif_rate()
211 old = snd_ac97_read(ac97, reg) & mask; in set_spdif_rate()
213 snd_ac97_update_bits_nolock(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, 0); in set_spdif_rate()
214 snd_ac97_update_bits_nolock(ac97, reg, mask, bits); in set_spdif_rate()
216 sbits = ac97->spdif_status; in set_spdif_rate()
232 ac97->spdif_status = sbits; in set_spdif_rate()
234 snd_ac97_update_bits_nolock(ac97, AC97_EXTENDED_STATUS, AC97_EA_SPDIF, AC97_EA_SPDIF); in set_spdif_rate()
235 mutex_unlock(&ac97->reg_mutex); in set_spdif_rate()
258 int snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate) in snd_ac97_set_rate() argument
265 if (!(ac97->flags & AC97_DOUBLE_RATE)) in snd_ac97_set_rate()
271 snd_ac97_update_power(ac97, reg, 1); in snd_ac97_set_rate()
274 if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRM) == 0) /* MIC VRA */ in snd_ac97_set_rate()
280 if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRA) == 0) /* VRA */ in snd_ac97_set_rate()
285 if (! (ac97->scaps & AC97_SCAP_SURROUND_DAC)) in snd_ac97_set_rate()
289 if (! (ac97->scaps & AC97_SCAP_CENTER_LFE_DAC)) in snd_ac97_set_rate()
294 return set_spdif_rate(ac97, rate); in snd_ac97_set_rate()
300 tmp = (rate * ac97->bus->clock) / 48000; in snd_ac97_set_rate()
303 if ((ac97->ext_id & AC97_EI_DRA) && reg == AC97_PCM_FRONT_DAC_RATE) in snd_ac97_set_rate()
304 snd_ac97_update_bits(ac97, AC97_EXTENDED_STATUS, in snd_ac97_set_rate()
306 snd_ac97_update(ac97, reg, tmp & 0xffff); in snd_ac97_set_rate()
307 snd_ac97_read(ac97, reg); in snd_ac97_set_rate()
308 if ((ac97->ext_id & AC97_EI_DRA) && reg == AC97_PCM_FRONT_DAC_RATE) { in snd_ac97_set_rate()
312 snd_ac97_update_bits(ac97, AC97_GENERAL_PURPOSE, in snd_ac97_set_rate()
315 snd_ac97_read(ac97, AC97_GENERAL_PURPOSE); in snd_ac97_set_rate()
322 static unsigned short get_pslots(struct snd_ac97 *ac97, unsigned char *rate_table, unsigned short *… in get_pslots() argument
324 if (!ac97_is_audio(ac97)) in get_pslots()
326 if (ac97_is_rev22(ac97) || ac97_can_amap(ac97)) { in get_pslots()
328 if (ac97_is_rev22(ac97)) { in get_pslots()
331 es = ac97->regs[AC97_EXTENDED_ID] &= ~AC97_EI_DACS_SLOT_MASK; in get_pslots()
332 switch (ac97->addr) { in get_pslots()
337 snd_ac97_write_cache(ac97, AC97_EXTENDED_ID, es); in get_pslots()
339 switch (ac97->addr) { in get_pslots()
342 if (ac97->scaps & AC97_SCAP_SURROUND_DAC) in get_pslots()
344 if (ac97->scaps & AC97_SCAP_CENTER_LFE_DAC) in get_pslots()
346 if (ac97->ext_id & AC97_EI_SPDIF) { in get_pslots()
347 if (!(ac97->scaps & AC97_SCAP_SURROUND_DAC)) in get_pslots()
349 else if (!(ac97->scaps & AC97_SCAP_CENTER_LFE_DAC)) in get_pslots()
359 if (ac97->scaps & AC97_SCAP_SURROUND_DAC) in get_pslots()
361 if (ac97->ext_id & AC97_EI_SPDIF) { in get_pslots()
362 if (!(ac97->scaps & AC97_SCAP_SURROUND_DAC)) in get_pslots()
371 if (ac97->ext_id & AC97_EI_SPDIF) in get_pslots()
380 if (ac97->scaps & AC97_SCAP_SURROUND_DAC) in get_pslots()
382 if (ac97->scaps & AC97_SCAP_CENTER_LFE_DAC) in get_pslots()
384 if (ac97->ext_id & AC97_EI_SPDIF) { in get_pslots()
385 if (!(ac97->scaps & AC97_SCAP_SURROUND_DAC)) in get_pslots()
387 else if (!(ac97->scaps & AC97_SCAP_CENTER_LFE_DAC)) in get_pslots()
397 static unsigned short get_cslots(struct snd_ac97 *ac97) in get_cslots() argument
401 if (!ac97_is_audio(ac97)) in get_cslots()