Lines Matching defs:solo_dev

48 	struct solo_dev			*solo_dev;
53 static void solo_g723_config(struct solo_dev *solo_dev)
57 clk_div = (solo_dev->clock_mhz * 1000000)
60 solo_reg_write(solo_dev, SOLO_AUDIO_SAMPLE,
64 solo_reg_write(solo_dev, SOLO_AUDIO_FDMA_INTR,
67 | SOLO_AUDIO_FDMA_BASE(SOLO_G723_EXT_ADDR(solo_dev) >> 16));
69 solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL,
76 void solo_g723_isr(struct solo_dev *solo_dev)
79 &solo_dev->snd_pcm->streams[SNDRV_PCM_STREAM_CAPTURE];
88 if (snd_pcm_substream_chip(ss) == solo_dev)
120 struct solo_dev *solo_dev = snd_pcm_substream_chip(ss);
127 solo_pcm->g723_buf = dma_alloc_coherent(&solo_dev->pdev->dev,
135 solo_pcm->solo_dev = solo_dev;
151 snd_pcm_substream_chip(ss) = solo_pcm->solo_dev;
152 dma_free_coherent(&solo_pcm->solo_dev->pdev->dev, G723_PERIOD_BYTES,
162 struct solo_dev *solo_dev = solo_pcm->solo_dev;
171 if (atomic_inc_return(&solo_dev->snd_users) == 1)
172 solo_irq_on(solo_dev, SOLO_IRQ_G723);
179 if (atomic_dec_return(&solo_dev->snd_users) == 0)
180 solo_irq_off(solo_dev, SOLO_IRQ_G723);
201 struct solo_dev *solo_dev = solo_pcm->solo_dev;
202 snd_pcm_uframes_t idx = solo_reg_read(solo_dev, SOLO_AUDIO_STA) & 0x1f;
212 struct solo_dev *solo_dev = solo_pcm->solo_dev;
218 err = solo_p2m_dma_t(solo_dev, 0, solo_pcm->g723_dma,
219 SOLO_G723_EXT_ADDR(solo_dev) +
258 struct solo_dev *solo_dev = snd_kcontrol_chip(kcontrol);
261 value->value.integer.value[0] = tw28_get_audio_gain(solo_dev, ch);
269 struct solo_dev *solo_dev = snd_kcontrol_chip(kcontrol);
273 old_val = tw28_get_audio_gain(solo_dev, ch);
277 tw28_set_audio_gain(solo_dev, ch, value->value.integer.value[0]);
290 static int solo_snd_pcm_init(struct solo_dev *solo_dev)
292 struct snd_card *card = solo_dev->snd_card;
298 ret = snd_pcm_new(card, card->driver, 0, 0, solo_dev->nr_chans,
306 snd_pcm_chip(pcm) = solo_dev;
320 solo_dev->snd_pcm = pcm;
325 int solo_g723_init(struct solo_dev *solo_dev)
333 atomic_set(&solo_dev->snd_users, 0);
336 sprintf(name, "Softlogic%d", solo_dev->vfd->num);
338 ret = snd_card_new(&solo_dev->pdev->dev,
340 &solo_dev->snd_card);
344 card = solo_dev->snd_card;
349 pci_name(solo_dev->pdev), solo_dev->pdev->irq);
351 ret = snd_device_new(card, SNDRV_DEV_LOWLEVEL, solo_dev, &ops);
358 kctl.count = solo_dev->nr_chans;
360 ret = snd_ctl_add(card, snd_ctl_new1(&kctl, solo_dev));
364 ret = solo_snd_pcm_init(solo_dev);
372 solo_g723_config(solo_dev);
374 dev_info(&solo_dev->pdev->dev, "Alsa sound card as %s\n", name);
383 void solo_g723_exit(struct solo_dev *solo_dev)
385 if (!solo_dev->snd_card)
388 solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL, 0);
389 solo_irq_off(solo_dev, SOLO_IRQ_G723);
391 snd_card_free(solo_dev->snd_card);
392 solo_dev->snd_card = NULL;