Lines Matching refs:cs5535au
82 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_playback_open() local
86 runtime->hw.rates = cs5535au->ac97->rates[AC97_RATES_FRONT_DAC]; in snd_cs5535audio_playback_open()
88 cs5535au->playback_substream = substream; in snd_cs5535audio_playback_open()
89 runtime->private_data = &(cs5535au->dmas[CS5535AUDIO_DMA_PLAYBACK]); in snd_cs5535audio_playback_open()
105 static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au, in cs5535audio_build_dma_packets() argument
120 &cs5535au->pci->dev, in cs5535audio_build_dma_packets()
154 spin_lock_irq(&cs5535au->reg_lock); in cs5535audio_build_dma_packets()
155 dma->ops->disable_dma(cs5535au); in cs5535audio_build_dma_packets()
156 dma->ops->setup_prd(cs5535au, jmpprd_addr); in cs5535audio_build_dma_packets()
157 spin_unlock_irq(&cs5535au->reg_lock); in cs5535audio_build_dma_packets()
161 static void cs5535audio_playback_enable_dma(struct cs5535audio *cs5535au) in cs5535audio_playback_enable_dma() argument
163 cs_writeb(cs5535au, ACC_BM0_CMD, BM_CTL_EN); in cs5535audio_playback_enable_dma()
166 static void cs5535audio_playback_disable_dma(struct cs5535audio *cs5535au) in cs5535audio_playback_disable_dma() argument
168 cs_writeb(cs5535au, ACC_BM0_CMD, 0); in cs5535audio_playback_disable_dma()
171 static void cs5535audio_playback_pause_dma(struct cs5535audio *cs5535au) in cs5535audio_playback_pause_dma() argument
173 cs_writeb(cs5535au, ACC_BM0_CMD, BM_CTL_PAUSE); in cs5535audio_playback_pause_dma()
176 static void cs5535audio_playback_setup_prd(struct cs5535audio *cs5535au, in cs5535audio_playback_setup_prd() argument
179 cs_writel(cs5535au, ACC_BM0_PRD, prd_addr); in cs5535audio_playback_setup_prd()
182 static u32 cs5535audio_playback_read_prd(struct cs5535audio *cs5535au) in cs5535audio_playback_read_prd() argument
184 return cs_readl(cs5535au, ACC_BM0_PRD); in cs5535audio_playback_read_prd()
187 static u32 cs5535audio_playback_read_dma_pntr(struct cs5535audio *cs5535au) in cs5535audio_playback_read_dma_pntr() argument
189 return cs_readl(cs5535au, ACC_BM0_PNTR); in cs5535audio_playback_read_dma_pntr()
192 static void cs5535audio_capture_enable_dma(struct cs5535audio *cs5535au) in cs5535audio_capture_enable_dma() argument
194 cs_writeb(cs5535au, ACC_BM1_CMD, BM_CTL_EN); in cs5535audio_capture_enable_dma()
197 static void cs5535audio_capture_disable_dma(struct cs5535audio *cs5535au) in cs5535audio_capture_disable_dma() argument
199 cs_writeb(cs5535au, ACC_BM1_CMD, 0); in cs5535audio_capture_disable_dma()
202 static void cs5535audio_capture_pause_dma(struct cs5535audio *cs5535au) in cs5535audio_capture_pause_dma() argument
204 cs_writeb(cs5535au, ACC_BM1_CMD, BM_CTL_PAUSE); in cs5535audio_capture_pause_dma()
207 static void cs5535audio_capture_setup_prd(struct cs5535audio *cs5535au, in cs5535audio_capture_setup_prd() argument
210 cs_writel(cs5535au, ACC_BM1_PRD, prd_addr); in cs5535audio_capture_setup_prd()
213 static u32 cs5535audio_capture_read_prd(struct cs5535audio *cs5535au) in cs5535audio_capture_read_prd() argument
215 return cs_readl(cs5535au, ACC_BM1_PRD); in cs5535audio_capture_read_prd()
218 static u32 cs5535audio_capture_read_dma_pntr(struct cs5535audio *cs5535au) in cs5535audio_capture_read_dma_pntr() argument
220 return cs_readl(cs5535au, ACC_BM1_PNTR); in cs5535audio_capture_read_dma_pntr()
223 static void cs5535audio_clear_dma_packets(struct cs5535audio *cs5535au, in cs5535audio_clear_dma_packets() argument
235 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_hw_params() local
242 err = cs5535audio_build_dma_packets(cs5535au, dma, substream, in snd_cs5535audio_hw_params()
253 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_hw_free() local
257 if (substream == cs5535au->playback_substream) in snd_cs5535audio_hw_free()
258 snd_ac97_update_power(cs5535au->ac97, in snd_cs5535audio_hw_free()
261 snd_ac97_update_power(cs5535au->ac97, in snd_cs5535audio_hw_free()
265 cs5535audio_clear_dma_packets(cs5535au, dma, substream); in snd_cs5535audio_hw_free()
271 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_playback_prepare() local
272 return snd_ac97_set_rate(cs5535au->ac97, AC97_PCM_FRONT_DAC_RATE, in snd_cs5535audio_playback_prepare()
278 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_trigger() local
282 spin_lock(&cs5535au->reg_lock); in snd_cs5535audio_trigger()
285 dma->ops->pause_dma(cs5535au); in snd_cs5535audio_trigger()
288 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
291 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
294 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
297 dma->ops->disable_dma(cs5535au); in snd_cs5535audio_trigger()
300 dma->ops->disable_dma(cs5535au); in snd_cs5535audio_trigger()
303 dev_err(cs5535au->card->dev, "unhandled trigger\n"); in snd_cs5535audio_trigger()
307 spin_unlock(&cs5535au->reg_lock); in snd_cs5535audio_trigger()
314 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_pcm_pointer() local
319 curdma = dma->ops->read_dma_pntr(cs5535au); in snd_cs5535audio_pcm_pointer()
321 dev_err(cs5535au->card->dev, "curdma=%x < %x bufaddr.\n", in snd_cs5535audio_pcm_pointer()
327 dev_err(cs5535au->card->dev, "diff=%x >= %x buf_bytes.\n", in snd_cs5535audio_pcm_pointer()
337 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_capture_open() local
341 runtime->hw.rates = cs5535au->ac97->rates[AC97_RATES_ADC]; in snd_cs5535audio_capture_open()
343 cs5535au->capture_substream = substream; in snd_cs5535audio_capture_open()
344 runtime->private_data = &(cs5535au->dmas[CS5535AUDIO_DMA_CAPTURE]); in snd_cs5535audio_capture_open()
348 olpc_capture_open(cs5535au->ac97); in snd_cs5535audio_capture_open()
354 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_capture_close() local
355 olpc_capture_close(cs5535au->ac97); in snd_cs5535audio_capture_close()
361 struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); in snd_cs5535audio_capture_prepare() local
362 return snd_ac97_set_rate(cs5535au->ac97, AC97_PCM_LR_ADC_RATE, in snd_cs5535audio_capture_prepare()
406 int snd_cs5535audio_pcm(struct cs5535audio *cs5535au) in snd_cs5535audio_pcm() argument
411 err = snd_pcm_new(cs5535au->card, "CS5535 Audio", 0, 1, 1, &pcm); in snd_cs5535audio_pcm()
415 cs5535au->dmas[CS5535AUDIO_DMA_PLAYBACK].ops = in snd_cs5535audio_pcm()
417 cs5535au->dmas[CS5535AUDIO_DMA_CAPTURE].ops = in snd_cs5535audio_pcm()
424 pcm->private_data = cs5535au; in snd_cs5535audio_pcm()
429 &cs5535au->pci->dev, in snd_cs5535audio_pcm()
431 cs5535au->pcm = pcm; in snd_cs5535audio_pcm()