• 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/cs5535audio/

Lines Matching refs:cs5535au

69 static void wait_till_cmd_acked(struct cs5535audio *cs5535au, unsigned long timeout)
73 tmp = cs_readl(cs5535au, ACC_CODEC_CNTL);
82 static unsigned short snd_cs5535audio_codec_read(struct cs5535audio *cs5535au,
93 cs_writel(cs5535au, ACC_CODEC_CNTL, regdata);
94 wait_till_cmd_acked(cs5535au, 50);
98 val = cs_readl(cs5535au, ACC_CODEC_STATUS);
110 static void snd_cs5535audio_codec_write(struct cs5535audio *cs5535au,
121 cs_writel(cs5535au, ACC_CODEC_CNTL, regdata);
122 wait_till_cmd_acked(cs5535au, 50);
128 struct cs5535audio *cs5535au = ac97->private_data;
129 snd_cs5535audio_codec_write(cs5535au, reg, val);
135 struct cs5535audio *cs5535au = ac97->private_data;
136 return snd_cs5535audio_codec_read(cs5535au, reg);
139 static int __devinit snd_cs5535audio_mixer(struct cs5535audio *cs5535au)
141 struct snd_card *card = cs5535au->card;
156 ac97.private_data = cs5535au;
157 ac97.pci = cs5535au->pci;
162 if ((err = snd_ac97_mixer(pbus, &ac97, &cs5535au->ac97)) < 0) {
167 snd_ac97_tune_hardware(cs5535au->ac97, ac97_quirks, ac97_quirk);
169 err = olpc_quirks(card, cs5535au->ac97);
178 static void process_bm0_irq(struct cs5535audio *cs5535au)
181 spin_lock(&cs5535au->reg_lock);
182 bm_stat = cs_readb(cs5535au, ACC_BM0_STATUS);
183 spin_unlock(&cs5535au->reg_lock);
186 dma = cs5535au->playback_substream->runtime->private_data;
187 snd_pcm_period_elapsed(cs5535au->playback_substream);
194 static void process_bm1_irq(struct cs5535audio *cs5535au)
197 spin_lock(&cs5535au->reg_lock);
198 bm_stat = cs_readb(cs5535au, ACC_BM1_STATUS);
199 spin_unlock(&cs5535au->reg_lock);
202 dma = cs5535au->capture_substream->runtime->private_data;
203 snd_pcm_period_elapsed(cs5535au->capture_substream);
211 struct cs5535audio *cs5535au = dev_id;
213 if (cs5535au == NULL)
216 acc_irq_stat = cs_readw(cs5535au, ACC_IRQ_STATUS);
224 cs_readl(cs5535au, ACC_GPIO_STATUS);
227 cs_readl(cs5535au, ACC_GPIO_STATUS);
230 process_bm0_irq(cs5535au);
233 process_bm1_irq(cs5535au);
245 static int snd_cs5535audio_free(struct cs5535audio *cs5535au)
247 synchronize_irq(cs5535au->irq);
248 pci_set_power_state(cs5535au->pci, 3);
250 if (cs5535au->irq >= 0)
251 free_irq(cs5535au->irq, cs5535au);
253 pci_release_regions(cs5535au->pci);
254 pci_disable_device(cs5535au->pci);
255 kfree(cs5535au);
261 struct cs5535audio *cs5535au = device->device_data;
262 return snd_cs5535audio_free(cs5535au);
269 struct cs5535audio *cs5535au;
287 cs5535au = kzalloc(sizeof(*cs5535au), GFP_KERNEL);
288 if (cs5535au == NULL) {
293 spin_lock_init(&cs5535au->reg_lock);
294 cs5535au->card = card;
295 cs5535au->pci = pci;
296 cs5535au->irq = -1;
299 kfree(cs5535au);
303 cs5535au->port = pci_resource_start(pci, 0);
306 IRQF_SHARED, "CS5535 Audio", cs5535au)) {
312 cs5535au->irq = pci->irq;
316 cs5535au, &ops)) < 0)
321 *rcs5535au = cs5535au;
325 snd_cs5535audio_free(cs5535au);
338 struct cs5535audio *cs5535au;
352 if ((err = snd_cs5535audio_create(card, pci, &cs5535au)) < 0)
355 card->private_data = cs5535au;
357 if ((err = snd_cs5535audio_mixer(cs5535au)) < 0)
360 if ((err = snd_cs5535audio_pcm(cs5535au)) < 0)
368 cs5535au->port, cs5535au->irq);