Lines Matching full:chip

14  *  Note: Some chip revisions have hardware bug. Changing capture
16 * 16bit DMA transfers from DSP chip (capture) until 8bit transfer
17 * to DSP chip (playback) starts. This bug can be avoided with
41 static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_playback_prepare() argument
43 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_playback_prepare()
44 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_playback_prepare()
74 if (csp->ops.csp_start(csp, (chip->mode & SB_MODE_PLAYBACK_16) ? in snd_sb16_csp_playback_prepare()
82 chip->open = SNDRV_SB_CSP_MODE_DSP_WRITE; in snd_sb16_csp_playback_prepare()
89 static void snd_sb16_csp_capture_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_capture_prepare() argument
91 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_capture_prepare()
92 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_capture_prepare()
112 if (csp->ops.csp_start(csp, (chip->mode & SB_MODE_CAPTURE_16) ? in snd_sb16_csp_capture_prepare()
120 chip->open = SNDRV_SB_CSP_MODE_DSP_READ; in snd_sb16_csp_capture_prepare()
127 static void snd_sb16_csp_update(struct snd_sb *chip) in snd_sb16_csp_update() argument
129 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_update()
130 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_update()
133 spin_lock(&chip->reg_lock); in snd_sb16_csp_update()
135 spin_unlock(&chip->reg_lock); in snd_sb16_csp_update()
140 static void snd_sb16_csp_playback_open(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_playback_open() argument
143 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_playback_open()
144 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_playback_open()
159 static void snd_sb16_csp_playback_close(struct snd_sb *chip) in snd_sb16_csp_playback_close() argument
161 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) { in snd_sb16_csp_playback_close()
162 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_playback_close()
166 chip->open = 0; in snd_sb16_csp_playback_close()
171 static void snd_sb16_csp_capture_open(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_capture_open() argument
174 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_capture_open()
175 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_capture_open()
190 static void snd_sb16_csp_capture_close(struct snd_sb *chip) in snd_sb16_csp_capture_close() argument
192 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) { in snd_sb16_csp_capture_close()
193 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_capture_close()
197 chip->open = 0; in snd_sb16_csp_capture_close()
202 #define snd_sb16_csp_playback_prepare(chip, runtime) /*nop*/ argument
203 #define snd_sb16_csp_capture_prepare(chip, runtime) /*nop*/ argument
204 #define snd_sb16_csp_update(chip) /*nop*/ argument
205 #define snd_sb16_csp_playback_open(chip, runtime) /*nop*/ argument
206 #define snd_sb16_csp_playback_close(chip) /*nop*/ argument
207 #define snd_sb16_csp_capture_open(chip, runtime) /*nop*/ argument
208 #define snd_sb16_csp_capture_close(chip) /*nop*/ argument
212 static void snd_sb16_setup_rate(struct snd_sb *chip, in snd_sb16_setup_rate() argument
218 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_setup_rate()
219 if (chip->mode & (channel == SNDRV_PCM_STREAM_PLAYBACK ? SB_MODE_PLAYBACK_16 : SB_MODE_CAPTURE_16)) in snd_sb16_setup_rate()
220 snd_sb_ack_16bit(chip); in snd_sb16_setup_rate()
222 snd_sb_ack_8bit(chip); in snd_sb16_setup_rate()
223 if (!(chip->mode & SB_RATE_LOCK)) { in snd_sb16_setup_rate()
224 chip->locked_rate = rate; in snd_sb16_setup_rate()
225 snd_sbdsp_command(chip, SB_DSP_SAMPLE_RATE_IN); in snd_sb16_setup_rate()
226 snd_sbdsp_command(chip, rate >> 8); in snd_sb16_setup_rate()
227 snd_sbdsp_command(chip, rate & 0xff); in snd_sb16_setup_rate()
228 snd_sbdsp_command(chip, SB_DSP_SAMPLE_RATE_OUT); in snd_sb16_setup_rate()
229 snd_sbdsp_command(chip, rate >> 8); in snd_sb16_setup_rate()
230 snd_sbdsp_command(chip, rate & 0xff); in snd_sb16_setup_rate()
232 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_setup_rate()
250 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_prepare() local
255 snd_sb16_csp_playback_prepare(chip, runtime); in snd_sb16_playback_prepare()
262 snd_sb16_setup_rate(chip, runtime->rate, SNDRV_PCM_STREAM_PLAYBACK); in snd_sb16_playback_prepare()
263 size = chip->p_dma_size = snd_pcm_lib_buffer_bytes(substream); in snd_sb16_playback_prepare()
264 dma = (chip->mode & SB_MODE_PLAYBACK_8) ? chip->dma8 : chip->dma16; in snd_sb16_playback_prepare()
268 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_playback_prepare()
269 if (chip->mode & SB_MODE_PLAYBACK_16) { in snd_sb16_playback_prepare()
272 snd_sbdsp_command(chip, SB_DSP4_OUT16_AI); in snd_sb16_playback_prepare()
273 snd_sbdsp_command(chip, format); in snd_sb16_playback_prepare()
274 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_playback_prepare()
275 snd_sbdsp_command(chip, count >> 8); in snd_sb16_playback_prepare()
276 snd_sbdsp_command(chip, SB_DSP_DMA16_OFF); in snd_sb16_playback_prepare()
279 snd_sbdsp_command(chip, SB_DSP4_OUT8_AI); in snd_sb16_playback_prepare()
280 snd_sbdsp_command(chip, format); in snd_sb16_playback_prepare()
281 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_playback_prepare()
282 snd_sbdsp_command(chip, count >> 8); in snd_sb16_playback_prepare()
283 snd_sbdsp_command(chip, SB_DSP_DMA8_OFF); in snd_sb16_playback_prepare()
285 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_playback_prepare()
292 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_trigger() local
295 spin_lock(&chip->reg_lock); in snd_sb16_playback_trigger()
299 chip->mode |= SB_RATE_LOCK_PLAYBACK; in snd_sb16_playback_trigger()
300 snd_sbdsp_command(chip, chip->mode & SB_MODE_PLAYBACK_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_playback_trigger()
304 snd_sbdsp_command(chip, chip->mode & SB_MODE_PLAYBACK_16 ? SB_DSP_DMA16_OFF : SB_DSP_DMA8_OFF); in snd_sb16_playback_trigger()
306 if (chip->mode & SB_RATE_LOCK_CAPTURE) in snd_sb16_playback_trigger()
307 snd_sbdsp_command(chip, chip->mode & SB_MODE_CAPTURE_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_playback_trigger()
308 chip->mode &= ~SB_RATE_LOCK_PLAYBACK; in snd_sb16_playback_trigger()
313 spin_unlock(&chip->reg_lock); in snd_sb16_playback_trigger()
320 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_prepare() local
325 snd_sb16_csp_capture_prepare(chip, runtime); in snd_sb16_capture_prepare()
331 snd_sb16_setup_rate(chip, runtime->rate, SNDRV_PCM_STREAM_CAPTURE); in snd_sb16_capture_prepare()
332 size = chip->c_dma_size = snd_pcm_lib_buffer_bytes(substream); in snd_sb16_capture_prepare()
333 dma = (chip->mode & SB_MODE_CAPTURE_8) ? chip->dma8 : chip->dma16; in snd_sb16_capture_prepare()
337 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_capture_prepare()
338 if (chip->mode & SB_MODE_CAPTURE_16) { in snd_sb16_capture_prepare()
341 snd_sbdsp_command(chip, SB_DSP4_IN16_AI); in snd_sb16_capture_prepare()
342 snd_sbdsp_command(chip, format); in snd_sb16_capture_prepare()
343 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_capture_prepare()
344 snd_sbdsp_command(chip, count >> 8); in snd_sb16_capture_prepare()
345 snd_sbdsp_command(chip, SB_DSP_DMA16_OFF); in snd_sb16_capture_prepare()
348 snd_sbdsp_command(chip, SB_DSP4_IN8_AI); in snd_sb16_capture_prepare()
349 snd_sbdsp_command(chip, format); in snd_sb16_capture_prepare()
350 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_capture_prepare()
351 snd_sbdsp_command(chip, count >> 8); in snd_sb16_capture_prepare()
352 snd_sbdsp_command(chip, SB_DSP_DMA8_OFF); in snd_sb16_capture_prepare()
354 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_capture_prepare()
361 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_trigger() local
364 spin_lock(&chip->reg_lock); in snd_sb16_capture_trigger()
368 chip->mode |= SB_RATE_LOCK_CAPTURE; in snd_sb16_capture_trigger()
369 snd_sbdsp_command(chip, chip->mode & SB_MODE_CAPTURE_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_capture_trigger()
373 snd_sbdsp_command(chip, chip->mode & SB_MODE_CAPTURE_16 ? SB_DSP_DMA16_OFF : SB_DSP_DMA8_OFF); in snd_sb16_capture_trigger()
375 if (chip->mode & SB_RATE_LOCK_PLAYBACK) in snd_sb16_capture_trigger()
376 snd_sbdsp_command(chip, chip->mode & SB_MODE_PLAYBACK_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_capture_trigger()
377 chip->mode &= ~SB_RATE_LOCK_CAPTURE; in snd_sb16_capture_trigger()
382 spin_unlock(&chip->reg_lock); in snd_sb16_capture_trigger()
388 struct snd_sb *chip = dev_id; in snd_sb16dsp_interrupt() local
392 spin_lock(&chip->mixer_lock); in snd_sb16dsp_interrupt()
393 status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS); in snd_sb16dsp_interrupt()
394 spin_unlock(&chip->mixer_lock); in snd_sb16dsp_interrupt()
395 if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi_callback) in snd_sb16dsp_interrupt()
396 chip->rmidi_callback(irq, chip->rmidi->private_data); in snd_sb16dsp_interrupt()
399 if (chip->mode & SB_MODE_PLAYBACK_8) { in snd_sb16dsp_interrupt()
400 snd_pcm_period_elapsed(chip->playback_substream); in snd_sb16dsp_interrupt()
401 snd_sb16_csp_update(chip); in snd_sb16dsp_interrupt()
404 if (chip->mode & SB_MODE_CAPTURE_8) { in snd_sb16dsp_interrupt()
405 snd_pcm_period_elapsed(chip->capture_substream); in snd_sb16dsp_interrupt()
408 spin_lock(&chip->reg_lock); in snd_sb16dsp_interrupt()
410 snd_sbdsp_command(chip, SB_DSP_DMA8_OFF); in snd_sb16dsp_interrupt()
411 snd_sb_ack_8bit(chip); in snd_sb16dsp_interrupt()
412 spin_unlock(&chip->reg_lock); in snd_sb16dsp_interrupt()
416 if (chip->mode & SB_MODE_PLAYBACK_16) { in snd_sb16dsp_interrupt()
417 snd_pcm_period_elapsed(chip->playback_substream); in snd_sb16dsp_interrupt()
418 snd_sb16_csp_update(chip); in snd_sb16dsp_interrupt()
421 if (chip->mode & SB_MODE_CAPTURE_16) { in snd_sb16dsp_interrupt()
422 snd_pcm_period_elapsed(chip->capture_substream); in snd_sb16dsp_interrupt()
425 spin_lock(&chip->reg_lock); in snd_sb16dsp_interrupt()
427 snd_sbdsp_command(chip, SB_DSP_DMA16_OFF); in snd_sb16dsp_interrupt()
428 snd_sb_ack_16bit(chip); in snd_sb16dsp_interrupt()
429 spin_unlock(&chip->reg_lock); in snd_sb16dsp_interrupt()
440 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_pointer() local
444 dma = (chip->mode & SB_MODE_PLAYBACK_8) ? chip->dma8 : chip->dma16; in snd_sb16_playback_pointer()
445 ptr = snd_dma_pointer(dma, chip->p_dma_size); in snd_sb16_playback_pointer()
451 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_pointer() local
455 dma = (chip->mode & SB_MODE_CAPTURE_8) ? chip->dma8 : chip->dma16; in snd_sb16_capture_pointer()
456 ptr = snd_dma_pointer(dma, chip->c_dma_size); in snd_sb16_capture_pointer()
507 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_open() local
510 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_playback_open()
511 if (chip->mode & SB_MODE_PLAYBACK) { in snd_sb16_playback_open()
512 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_open()
518 if (chip->force_mode16 & SB_MODE_CAPTURE_16) in snd_sb16_playback_open()
521 if (chip->dma16 >= 0 && !(chip->mode & SB_MODE_CAPTURE_16)) { in snd_sb16_playback_open()
522 chip->mode |= SB_MODE_PLAYBACK_16; in snd_sb16_playback_open()
525 if (chip->dma16 <= 3) { in snd_sb16_playback_open()
529 snd_sb16_csp_playback_open(chip, runtime); in snd_sb16_playback_open()
535 if (chip->dma8 >= 0 && !(chip->mode & SB_MODE_CAPTURE_8)) { in snd_sb16_playback_open()
536 chip->mode |= SB_MODE_PLAYBACK_8; in snd_sb16_playback_open()
538 if (chip->dma16 < 0) { in snd_sb16_playback_open()
540 chip->mode |= SB_MODE_PLAYBACK_16; in snd_sb16_playback_open()
548 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_open()
552 if (chip->hardware == SB_HW_ALS100) in snd_sb16_playback_open()
554 if (chip->hardware == SB_HW_CS5530) { in snd_sb16_playback_open()
559 if (chip->mode & SB_RATE_LOCK) in snd_sb16_playback_open()
560 runtime->hw.rate_min = runtime->hw.rate_max = chip->locked_rate; in snd_sb16_playback_open()
561 chip->playback_substream = substream; in snd_sb16_playback_open()
562 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_open()
569 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_close() local
571 snd_sb16_csp_playback_close(chip); in snd_sb16_playback_close()
572 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_playback_close()
573 chip->playback_substream = NULL; in snd_sb16_playback_close()
574 chip->mode &= ~SB_MODE_PLAYBACK; in snd_sb16_playback_close()
575 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_close()
582 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_open() local
585 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_capture_open()
586 if (chip->mode & SB_MODE_CAPTURE) { in snd_sb16_capture_open()
587 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_open()
593 if (chip->force_mode16 & SB_MODE_PLAYBACK_16) in snd_sb16_capture_open()
596 if (chip->dma16 >= 0 && !(chip->mode & SB_MODE_PLAYBACK_16)) { in snd_sb16_capture_open()
597 chip->mode |= SB_MODE_CAPTURE_16; in snd_sb16_capture_open()
600 if (chip->dma16 <= 3) { in snd_sb16_capture_open()
604 snd_sb16_csp_capture_open(chip, runtime); in snd_sb16_capture_open()
610 if (chip->dma8 >= 0 && !(chip->mode & SB_MODE_PLAYBACK_8)) { in snd_sb16_capture_open()
611 chip->mode |= SB_MODE_CAPTURE_8; in snd_sb16_capture_open()
613 if (chip->dma16 < 0) { in snd_sb16_capture_open()
615 chip->mode |= SB_MODE_CAPTURE_16; in snd_sb16_capture_open()
623 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_open()
627 if (chip->hardware == SB_HW_ALS100) in snd_sb16_capture_open()
629 if (chip->hardware == SB_HW_CS5530) { in snd_sb16_capture_open()
634 if (chip->mode & SB_RATE_LOCK) in snd_sb16_capture_open()
635 runtime->hw.rate_min = runtime->hw.rate_max = chip->locked_rate; in snd_sb16_capture_open()
636 chip->capture_substream = substream; in snd_sb16_capture_open()
637 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_open()
644 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_close() local
646 snd_sb16_csp_capture_close(chip); in snd_sb16_capture_close()
647 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_capture_close()
648 chip->capture_substream = NULL; in snd_sb16_capture_close()
649 chip->mode &= ~SB_MODE_CAPTURE; in snd_sb16_capture_close()
650 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_close()
658 static int snd_sb16_set_dma_mode(struct snd_sb *chip, int what) in snd_sb16_set_dma_mode() argument
660 if (chip->dma8 < 0 || chip->dma16 < 0) { in snd_sb16_set_dma_mode()
666 chip->force_mode16 = 0; in snd_sb16_set_dma_mode()
668 chip->force_mode16 = SB_MODE_PLAYBACK_16; in snd_sb16_set_dma_mode()
670 chip->force_mode16 = SB_MODE_CAPTURE_16; in snd_sb16_set_dma_mode()
677 static int snd_sb16_get_dma_mode(struct snd_sb *chip) in snd_sb16_get_dma_mode() argument
679 if (chip->dma8 < 0 || chip->dma16 < 0) in snd_sb16_get_dma_mode()
681 switch (chip->force_mode16) { in snd_sb16_get_dma_mode()
702 struct snd_sb *chip = snd_kcontrol_chip(kcontrol); in snd_sb16_dma_control_get() local
705 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_dma_control_get()
706 ucontrol->value.enumerated.item[0] = snd_sb16_get_dma_mode(chip); in snd_sb16_dma_control_get()
707 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_dma_control_get()
713 struct snd_sb *chip = snd_kcontrol_chip(kcontrol); in snd_sb16_dma_control_put() local
720 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_dma_control_put()
721 oval = snd_sb16_get_dma_mode(chip); in snd_sb16_dma_control_put()
723 snd_sb16_set_dma_mode(chip, nval); in snd_sb16_dma_control_put()
724 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_dma_control_put()
740 int snd_sb16dsp_configure(struct snd_sb * chip) in snd_sb16dsp_configure() argument
747 …KERN_DEBUG "codec->irq=%i, codec->dma8=%i, codec->dma16=%i\n", chip->irq, chip->dma8, chip->dma16); in snd_sb16dsp_configure()
748 spin_lock_irqsave(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
749 mpureg = snd_sbmixer_read(chip, SB_DSP4_MPUSETUP) & ~0x06; in snd_sb16dsp_configure()
750 spin_unlock_irqrestore(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
751 switch (chip->irq) { in snd_sb16dsp_configure()
768 if (chip->dma8 >= 0) { in snd_sb16dsp_configure()
769 switch (chip->dma8) { in snd_sb16dsp_configure()
783 if (chip->dma16 >= 0 && chip->dma16 != chip->dma8) { in snd_sb16dsp_configure()
784 switch (chip->dma16) { in snd_sb16dsp_configure()
798 switch (chip->mpu_port) { in snd_sb16dsp_configure()
808 spin_lock_irqsave(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
810 snd_sbmixer_write(chip, SB_DSP4_IRQSETUP, irqreg); in snd_sb16dsp_configure()
811 realirq = snd_sbmixer_read(chip, SB_DSP4_IRQSETUP); in snd_sb16dsp_configure()
813 snd_sbmixer_write(chip, SB_DSP4_DMASETUP, dmareg); in snd_sb16dsp_configure()
814 realdma = snd_sbmixer_read(chip, SB_DSP4_DMASETUP); in snd_sb16dsp_configure()
816 snd_sbmixer_write(chip, SB_DSP4_MPUSETUP, mpureg); in snd_sb16dsp_configure()
817 realmpureg = snd_sbmixer_read(chip, SB_DSP4_MPUSETUP); in snd_sb16dsp_configure()
819 spin_unlock_irqrestore(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
821 snd_printk(KERN_ERR "SB16 [0x%lx]: unable to set DMA & IRQ (PnP device?)\n", chip->port); in snd_sb16dsp_configure()
822 …snd_printk(KERN_ERR "SB16 [0x%lx]: wanted: irqreg=0x%x, dmareg=0x%x, mpureg = 0x%x\n", chip->port,… in snd_sb16dsp_configure()
823 …snd_printk(KERN_ERR "SB16 [0x%lx]: got: irqreg=0x%x, dmareg=0x%x, mpureg = 0x%x\n", chip->port,… in snd_sb16dsp_configure()
851 int snd_sb16dsp_pcm(struct snd_sb *chip, int device) in snd_sb16dsp_pcm() argument
853 struct snd_card *card = chip->card; in snd_sb16dsp_pcm()
859 sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff); in snd_sb16dsp_pcm()
861 pcm->private_data = chip; in snd_sb16dsp_pcm()
862 chip->pcm = pcm; in snd_sb16dsp_pcm()
867 if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) { in snd_sb16dsp_pcm()
869 &snd_sb16_dma_control, chip)); in snd_sb16dsp_pcm()