Lines Matching refs:solo_dev
57 struct solo6010_dev *solo_dev;
61 static void solo_g723_config(struct solo6010_dev *solo_dev)
67 solo_reg_write(solo_dev, SOLO_AUDIO_SAMPLE,
71 solo_reg_write(solo_dev, SOLO_AUDIO_FDMA_INTR,
74 SOLO_AUDIO_FDMA_BASE(SOLO_G723_EXT_ADDR(solo_dev) >> 16));
76 solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL,
81 void solo_g723_isr(struct solo6010_dev *solo_dev)
84 &solo_dev->snd_pcm->streams[SNDRV_PCM_STREAM_CAPTURE];
88 solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_G723);
95 if (snd_pcm_substream_chip(ss) == solo_dev)
138 struct solo6010_dev *solo_dev = snd_pcm_substream_chip(ss);
146 solo_pcm->solo_dev = solo_dev;
158 snd_pcm_substream_chip(ss) = solo_pcm->solo_dev;
167 struct solo6010_dev *solo_dev = solo_pcm->solo_dev;
176 if (atomic_inc_return(&solo_dev->snd_users) == 1)
177 solo6010_irq_on(solo_dev, SOLO_IRQ_G723);
184 if (atomic_dec_return(&solo_dev->snd_users) == 0)
185 solo6010_irq_off(solo_dev, SOLO_IRQ_G723);
206 struct solo6010_dev *solo_dev = solo_pcm->solo_dev;
207 snd_pcm_uframes_t idx = solo_reg_read(solo_dev, SOLO_AUDIO_STA) & 0x1f;
217 struct solo6010_dev *solo_dev = solo_pcm->solo_dev;
223 err = solo_p2m_dma(solo_dev, SOLO_P2M_DMA_ID_G723E, 0,
225 SOLO_G723_EXT_ADDR(solo_dev) +
269 struct solo6010_dev *solo_dev = snd_kcontrol_chip(kcontrol);
272 value->value.integer.value[0] = tw28_get_audio_gain(solo_dev, ch);
280 struct solo6010_dev *solo_dev = snd_kcontrol_chip(kcontrol);
284 old_val = tw28_get_audio_gain(solo_dev, ch);
288 tw28_set_audio_gain(solo_dev, ch, value->value.integer.value[0]);
301 static int solo_snd_pcm_init(struct solo6010_dev *solo_dev)
303 struct snd_card *card = solo_dev->snd_card;
309 ret = snd_pcm_new(card, card->driver, 0, 0, solo_dev->nr_chans,
317 snd_pcm_chip(pcm) = solo_dev;
332 solo_dev->snd_pcm = pcm;
337 int solo_g723_init(struct solo6010_dev *solo_dev)
345 atomic_set(&solo_dev->snd_users, 0);
348 sprintf(name, "Softlogic%d", solo_dev->vfd->num);
351 &solo_dev->snd_card);
355 card = solo_dev->snd_card;
360 pci_name(solo_dev->pdev), solo_dev->pdev->irq);
361 snd_card_set_dev(card, &solo_dev->pdev->dev);
363 ret = snd_device_new(card, SNDRV_DEV_LOWLEVEL, solo_dev, &ops);
370 kctl.count = solo_dev->nr_chans;
371 ret = snd_ctl_add(card, snd_ctl_new1(&kctl, solo_dev));
375 if ((ret = solo_snd_pcm_init(solo_dev)) < 0)
381 solo_g723_config(solo_dev);
383 dev_info(&solo_dev->pdev->dev, "Alsa sound card as %s\n", name);
392 void solo_g723_exit(struct solo6010_dev *solo_dev)
394 solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL, 0);
395 solo6010_irq_off(solo_dev, SOLO_IRQ_G723);
397 snd_card_free(solo_dev->snd_card);