• Home
  • Raw
  • Download

Lines Matching full:chip

13  *  Note: Some chip revisions have hardware bug. Changing capture
15 * 16bit DMA transfers from DSP chip (capture) until 8bit transfer
16 * to DSP chip (playback) starts. This bug can be avoided with
56 static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_playback_prepare() argument
58 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_playback_prepare()
59 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_playback_prepare()
89 if (csp->ops.csp_start(csp, (chip->mode & SB_MODE_PLAYBACK_16) ? in snd_sb16_csp_playback_prepare()
97 chip->open = SNDRV_SB_CSP_MODE_DSP_WRITE; in snd_sb16_csp_playback_prepare()
104 static void snd_sb16_csp_capture_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_capture_prepare() argument
106 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_capture_prepare()
107 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_capture_prepare()
127 if (csp->ops.csp_start(csp, (chip->mode & SB_MODE_CAPTURE_16) ? in snd_sb16_csp_capture_prepare()
135 chip->open = SNDRV_SB_CSP_MODE_DSP_READ; in snd_sb16_csp_capture_prepare()
142 static void snd_sb16_csp_update(struct snd_sb *chip) in snd_sb16_csp_update() argument
144 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_update()
145 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_update()
148 spin_lock(&chip->reg_lock); in snd_sb16_csp_update()
150 spin_unlock(&chip->reg_lock); in snd_sb16_csp_update()
155 static void snd_sb16_csp_playback_open(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_playback_open() argument
158 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_playback_open()
159 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_playback_open()
174 static void snd_sb16_csp_playback_close(struct snd_sb *chip) in snd_sb16_csp_playback_close() argument
176 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) { in snd_sb16_csp_playback_close()
177 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_playback_close()
181 chip->open = 0; in snd_sb16_csp_playback_close()
186 static void snd_sb16_csp_capture_open(struct snd_sb *chip, struct snd_pcm_runtime *runtime) in snd_sb16_csp_capture_open() argument
189 if (chip->hardware == SB_HW_16CSP) { in snd_sb16_csp_capture_open()
190 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_capture_open()
205 static void snd_sb16_csp_capture_close(struct snd_sb *chip) in snd_sb16_csp_capture_close() argument
207 if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) { in snd_sb16_csp_capture_close()
208 struct snd_sb_csp *csp = chip->csp; in snd_sb16_csp_capture_close()
212 chip->open = 0; in snd_sb16_csp_capture_close()
217 #define snd_sb16_csp_playback_prepare(chip, runtime) /*nop*/ argument
218 #define snd_sb16_csp_capture_prepare(chip, runtime) /*nop*/ argument
219 #define snd_sb16_csp_update(chip) /*nop*/ argument
220 #define snd_sb16_csp_playback_open(chip, runtime) /*nop*/ argument
221 #define snd_sb16_csp_playback_close(chip) /*nop*/ argument
222 #define snd_sb16_csp_capture_open(chip, runtime) /*nop*/ argument
223 #define snd_sb16_csp_capture_close(chip) /*nop*/ argument
227 static void snd_sb16_setup_rate(struct snd_sb *chip, in snd_sb16_setup_rate() argument
233 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_setup_rate()
234 if (chip->mode & (channel == SNDRV_PCM_STREAM_PLAYBACK ? SB_MODE_PLAYBACK_16 : SB_MODE_CAPTURE_16)) in snd_sb16_setup_rate()
235 snd_sb_ack_16bit(chip); in snd_sb16_setup_rate()
237 snd_sb_ack_8bit(chip); in snd_sb16_setup_rate()
238 if (!(chip->mode & SB_RATE_LOCK)) { in snd_sb16_setup_rate()
239 chip->locked_rate = rate; in snd_sb16_setup_rate()
240 snd_sbdsp_command(chip, SB_DSP_SAMPLE_RATE_IN); in snd_sb16_setup_rate()
241 snd_sbdsp_command(chip, rate >> 8); in snd_sb16_setup_rate()
242 snd_sbdsp_command(chip, rate & 0xff); in snd_sb16_setup_rate()
243 snd_sbdsp_command(chip, SB_DSP_SAMPLE_RATE_OUT); in snd_sb16_setup_rate()
244 snd_sbdsp_command(chip, rate >> 8); in snd_sb16_setup_rate()
245 snd_sbdsp_command(chip, rate & 0xff); in snd_sb16_setup_rate()
247 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_setup_rate()
265 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_prepare() local
270 snd_sb16_csp_playback_prepare(chip, runtime); in snd_sb16_playback_prepare()
277 snd_sb16_setup_rate(chip, runtime->rate, SNDRV_PCM_STREAM_PLAYBACK); in snd_sb16_playback_prepare()
278 size = chip->p_dma_size = snd_pcm_lib_buffer_bytes(substream); in snd_sb16_playback_prepare()
279 dma = (chip->mode & SB_MODE_PLAYBACK_8) ? chip->dma8 : chip->dma16; in snd_sb16_playback_prepare()
283 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_playback_prepare()
284 if (chip->mode & SB_MODE_PLAYBACK_16) { in snd_sb16_playback_prepare()
287 snd_sbdsp_command(chip, SB_DSP4_OUT16_AI); in snd_sb16_playback_prepare()
288 snd_sbdsp_command(chip, format); in snd_sb16_playback_prepare()
289 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_playback_prepare()
290 snd_sbdsp_command(chip, count >> 8); in snd_sb16_playback_prepare()
291 snd_sbdsp_command(chip, SB_DSP_DMA16_OFF); in snd_sb16_playback_prepare()
294 snd_sbdsp_command(chip, SB_DSP4_OUT8_AI); in snd_sb16_playback_prepare()
295 snd_sbdsp_command(chip, format); in snd_sb16_playback_prepare()
296 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_playback_prepare()
297 snd_sbdsp_command(chip, count >> 8); in snd_sb16_playback_prepare()
298 snd_sbdsp_command(chip, SB_DSP_DMA8_OFF); in snd_sb16_playback_prepare()
300 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_playback_prepare()
307 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_trigger() local
310 spin_lock(&chip->reg_lock); in snd_sb16_playback_trigger()
314 chip->mode |= SB_RATE_LOCK_PLAYBACK; in snd_sb16_playback_trigger()
315 snd_sbdsp_command(chip, chip->mode & SB_MODE_PLAYBACK_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_playback_trigger()
319 snd_sbdsp_command(chip, chip->mode & SB_MODE_PLAYBACK_16 ? SB_DSP_DMA16_OFF : SB_DSP_DMA8_OFF); in snd_sb16_playback_trigger()
321 if (chip->mode & SB_RATE_LOCK_CAPTURE) in snd_sb16_playback_trigger()
322 snd_sbdsp_command(chip, chip->mode & SB_MODE_CAPTURE_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_playback_trigger()
323 chip->mode &= ~SB_RATE_LOCK_PLAYBACK; in snd_sb16_playback_trigger()
328 spin_unlock(&chip->reg_lock); in snd_sb16_playback_trigger()
335 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_prepare() local
340 snd_sb16_csp_capture_prepare(chip, runtime); in snd_sb16_capture_prepare()
346 snd_sb16_setup_rate(chip, runtime->rate, SNDRV_PCM_STREAM_CAPTURE); in snd_sb16_capture_prepare()
347 size = chip->c_dma_size = snd_pcm_lib_buffer_bytes(substream); in snd_sb16_capture_prepare()
348 dma = (chip->mode & SB_MODE_CAPTURE_8) ? chip->dma8 : chip->dma16; in snd_sb16_capture_prepare()
352 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_capture_prepare()
353 if (chip->mode & SB_MODE_CAPTURE_16) { in snd_sb16_capture_prepare()
356 snd_sbdsp_command(chip, SB_DSP4_IN16_AI); in snd_sb16_capture_prepare()
357 snd_sbdsp_command(chip, format); in snd_sb16_capture_prepare()
358 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_capture_prepare()
359 snd_sbdsp_command(chip, count >> 8); in snd_sb16_capture_prepare()
360 snd_sbdsp_command(chip, SB_DSP_DMA16_OFF); in snd_sb16_capture_prepare()
363 snd_sbdsp_command(chip, SB_DSP4_IN8_AI); in snd_sb16_capture_prepare()
364 snd_sbdsp_command(chip, format); in snd_sb16_capture_prepare()
365 snd_sbdsp_command(chip, count & 0xff); in snd_sb16_capture_prepare()
366 snd_sbdsp_command(chip, count >> 8); in snd_sb16_capture_prepare()
367 snd_sbdsp_command(chip, SB_DSP_DMA8_OFF); in snd_sb16_capture_prepare()
369 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_capture_prepare()
376 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_trigger() local
379 spin_lock(&chip->reg_lock); in snd_sb16_capture_trigger()
383 chip->mode |= SB_RATE_LOCK_CAPTURE; in snd_sb16_capture_trigger()
384 snd_sbdsp_command(chip, chip->mode & SB_MODE_CAPTURE_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_capture_trigger()
388 snd_sbdsp_command(chip, chip->mode & SB_MODE_CAPTURE_16 ? SB_DSP_DMA16_OFF : SB_DSP_DMA8_OFF); in snd_sb16_capture_trigger()
390 if (chip->mode & SB_RATE_LOCK_PLAYBACK) in snd_sb16_capture_trigger()
391 snd_sbdsp_command(chip, chip->mode & SB_MODE_PLAYBACK_16 ? SB_DSP_DMA16_ON : SB_DSP_DMA8_ON); in snd_sb16_capture_trigger()
392 chip->mode &= ~SB_RATE_LOCK_CAPTURE; in snd_sb16_capture_trigger()
397 spin_unlock(&chip->reg_lock); in snd_sb16_capture_trigger()
403 struct snd_sb *chip = dev_id; in snd_sb16dsp_interrupt() local
407 spin_lock(&chip->mixer_lock); in snd_sb16dsp_interrupt()
408 status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS); in snd_sb16dsp_interrupt()
409 spin_unlock(&chip->mixer_lock); in snd_sb16dsp_interrupt()
410 if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi_callback) in snd_sb16dsp_interrupt()
411 chip->rmidi_callback(irq, chip->rmidi->private_data); in snd_sb16dsp_interrupt()
414 if (chip->mode & SB_MODE_PLAYBACK_8) { in snd_sb16dsp_interrupt()
415 snd_pcm_period_elapsed(chip->playback_substream); in snd_sb16dsp_interrupt()
416 snd_sb16_csp_update(chip); in snd_sb16dsp_interrupt()
419 if (chip->mode & SB_MODE_CAPTURE_8) { in snd_sb16dsp_interrupt()
420 snd_pcm_period_elapsed(chip->capture_substream); in snd_sb16dsp_interrupt()
423 spin_lock(&chip->reg_lock); in snd_sb16dsp_interrupt()
425 snd_sbdsp_command(chip, SB_DSP_DMA8_OFF); in snd_sb16dsp_interrupt()
426 snd_sb_ack_8bit(chip); in snd_sb16dsp_interrupt()
427 spin_unlock(&chip->reg_lock); in snd_sb16dsp_interrupt()
431 if (chip->mode & SB_MODE_PLAYBACK_16) { in snd_sb16dsp_interrupt()
432 snd_pcm_period_elapsed(chip->playback_substream); in snd_sb16dsp_interrupt()
433 snd_sb16_csp_update(chip); in snd_sb16dsp_interrupt()
436 if (chip->mode & SB_MODE_CAPTURE_16) { in snd_sb16dsp_interrupt()
437 snd_pcm_period_elapsed(chip->capture_substream); in snd_sb16dsp_interrupt()
440 spin_lock(&chip->reg_lock); in snd_sb16dsp_interrupt()
442 snd_sbdsp_command(chip, SB_DSP_DMA16_OFF); in snd_sb16dsp_interrupt()
443 snd_sb_ack_16bit(chip); in snd_sb16dsp_interrupt()
444 spin_unlock(&chip->reg_lock); in snd_sb16dsp_interrupt()
455 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_pointer() local
459 dma = (chip->mode & SB_MODE_PLAYBACK_8) ? chip->dma8 : chip->dma16; in snd_sb16_playback_pointer()
460 ptr = snd_dma_pointer(dma, chip->p_dma_size); in snd_sb16_playback_pointer()
466 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_pointer() local
470 dma = (chip->mode & SB_MODE_CAPTURE_8) ? chip->dma8 : chip->dma16; in snd_sb16_capture_pointer()
471 ptr = snd_dma_pointer(dma, chip->c_dma_size); in snd_sb16_capture_pointer()
522 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_open() local
525 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_playback_open()
526 if (chip->mode & SB_MODE_PLAYBACK) { in snd_sb16_playback_open()
527 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_open()
533 if (chip->force_mode16 & SB_MODE_CAPTURE_16) in snd_sb16_playback_open()
536 if (chip->dma16 >= 0 && !(chip->mode & SB_MODE_CAPTURE_16)) { in snd_sb16_playback_open()
537 chip->mode |= SB_MODE_PLAYBACK_16; in snd_sb16_playback_open()
540 if (chip->dma16 <= 3) { in snd_sb16_playback_open()
544 snd_sb16_csp_playback_open(chip, runtime); in snd_sb16_playback_open()
550 if (chip->dma8 >= 0 && !(chip->mode & SB_MODE_CAPTURE_8)) { in snd_sb16_playback_open()
551 chip->mode |= SB_MODE_PLAYBACK_8; in snd_sb16_playback_open()
553 if (chip->dma16 < 0) { in snd_sb16_playback_open()
555 chip->mode |= SB_MODE_PLAYBACK_16; in snd_sb16_playback_open()
563 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_open()
567 if (chip->hardware == SB_HW_ALS100) in snd_sb16_playback_open()
569 if (chip->hardware == SB_HW_CS5530) { in snd_sb16_playback_open()
574 if (chip->mode & SB_RATE_LOCK) in snd_sb16_playback_open()
575 runtime->hw.rate_min = runtime->hw.rate_max = chip->locked_rate; in snd_sb16_playback_open()
576 chip->playback_substream = substream; in snd_sb16_playback_open()
577 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_open()
584 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_playback_close() local
586 snd_sb16_csp_playback_close(chip); in snd_sb16_playback_close()
587 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_playback_close()
588 chip->playback_substream = NULL; in snd_sb16_playback_close()
589 chip->mode &= ~SB_MODE_PLAYBACK; in snd_sb16_playback_close()
590 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_playback_close()
597 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_open() local
600 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_capture_open()
601 if (chip->mode & SB_MODE_CAPTURE) { in snd_sb16_capture_open()
602 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_open()
608 if (chip->force_mode16 & SB_MODE_PLAYBACK_16) in snd_sb16_capture_open()
611 if (chip->dma16 >= 0 && !(chip->mode & SB_MODE_PLAYBACK_16)) { in snd_sb16_capture_open()
612 chip->mode |= SB_MODE_CAPTURE_16; in snd_sb16_capture_open()
615 if (chip->dma16 <= 3) { in snd_sb16_capture_open()
619 snd_sb16_csp_capture_open(chip, runtime); in snd_sb16_capture_open()
625 if (chip->dma8 >= 0 && !(chip->mode & SB_MODE_PLAYBACK_8)) { in snd_sb16_capture_open()
626 chip->mode |= SB_MODE_CAPTURE_8; in snd_sb16_capture_open()
628 if (chip->dma16 < 0) { in snd_sb16_capture_open()
630 chip->mode |= SB_MODE_CAPTURE_16; in snd_sb16_capture_open()
638 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_open()
642 if (chip->hardware == SB_HW_ALS100) in snd_sb16_capture_open()
644 if (chip->hardware == SB_HW_CS5530) { in snd_sb16_capture_open()
649 if (chip->mode & SB_RATE_LOCK) in snd_sb16_capture_open()
650 runtime->hw.rate_min = runtime->hw.rate_max = chip->locked_rate; in snd_sb16_capture_open()
651 chip->capture_substream = substream; in snd_sb16_capture_open()
652 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_open()
659 struct snd_sb *chip = snd_pcm_substream_chip(substream); in snd_sb16_capture_close() local
661 snd_sb16_csp_capture_close(chip); in snd_sb16_capture_close()
662 spin_lock_irqsave(&chip->open_lock, flags); in snd_sb16_capture_close()
663 chip->capture_substream = NULL; in snd_sb16_capture_close()
664 chip->mode &= ~SB_MODE_CAPTURE; in snd_sb16_capture_close()
665 spin_unlock_irqrestore(&chip->open_lock, flags); in snd_sb16_capture_close()
673 static int snd_sb16_set_dma_mode(struct snd_sb *chip, int what) in snd_sb16_set_dma_mode() argument
675 if (chip->dma8 < 0 || chip->dma16 < 0) { in snd_sb16_set_dma_mode()
681 chip->force_mode16 = 0; in snd_sb16_set_dma_mode()
683 chip->force_mode16 = SB_MODE_PLAYBACK_16; in snd_sb16_set_dma_mode()
685 chip->force_mode16 = SB_MODE_CAPTURE_16; in snd_sb16_set_dma_mode()
692 static int snd_sb16_get_dma_mode(struct snd_sb *chip) in snd_sb16_get_dma_mode() argument
694 if (chip->dma8 < 0 || chip->dma16 < 0) in snd_sb16_get_dma_mode()
696 switch (chip->force_mode16) { in snd_sb16_get_dma_mode()
717 struct snd_sb *chip = snd_kcontrol_chip(kcontrol); in snd_sb16_dma_control_get() local
720 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_dma_control_get()
721 ucontrol->value.enumerated.item[0] = snd_sb16_get_dma_mode(chip); in snd_sb16_dma_control_get()
722 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_dma_control_get()
728 struct snd_sb *chip = snd_kcontrol_chip(kcontrol); in snd_sb16_dma_control_put() local
735 spin_lock_irqsave(&chip->reg_lock, flags); in snd_sb16_dma_control_put()
736 oval = snd_sb16_get_dma_mode(chip); in snd_sb16_dma_control_put()
738 snd_sb16_set_dma_mode(chip, nval); in snd_sb16_dma_control_put()
739 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_sb16_dma_control_put()
755 int snd_sb16dsp_configure(struct snd_sb * chip) in snd_sb16dsp_configure() argument
762 …KERN_DEBUG "codec->irq=%i, codec->dma8=%i, codec->dma16=%i\n", chip->irq, chip->dma8, chip->dma16); in snd_sb16dsp_configure()
763 spin_lock_irqsave(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
764 mpureg = snd_sbmixer_read(chip, SB_DSP4_MPUSETUP) & ~0x06; in snd_sb16dsp_configure()
765 spin_unlock_irqrestore(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
766 switch (chip->irq) { in snd_sb16dsp_configure()
783 if (chip->dma8 >= 0) { in snd_sb16dsp_configure()
784 switch (chip->dma8) { in snd_sb16dsp_configure()
798 if (chip->dma16 >= 0 && chip->dma16 != chip->dma8) { in snd_sb16dsp_configure()
799 switch (chip->dma16) { in snd_sb16dsp_configure()
813 switch (chip->mpu_port) { in snd_sb16dsp_configure()
823 spin_lock_irqsave(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
825 snd_sbmixer_write(chip, SB_DSP4_IRQSETUP, irqreg); in snd_sb16dsp_configure()
826 realirq = snd_sbmixer_read(chip, SB_DSP4_IRQSETUP); in snd_sb16dsp_configure()
828 snd_sbmixer_write(chip, SB_DSP4_DMASETUP, dmareg); in snd_sb16dsp_configure()
829 realdma = snd_sbmixer_read(chip, SB_DSP4_DMASETUP); in snd_sb16dsp_configure()
831 snd_sbmixer_write(chip, SB_DSP4_MPUSETUP, mpureg); in snd_sb16dsp_configure()
832 realmpureg = snd_sbmixer_read(chip, SB_DSP4_MPUSETUP); in snd_sb16dsp_configure()
834 spin_unlock_irqrestore(&chip->mixer_lock, flags); in snd_sb16dsp_configure()
836 snd_printk(KERN_ERR "SB16 [0x%lx]: unable to set DMA & IRQ (PnP device?)\n", chip->port); in snd_sb16dsp_configure()
837 …snd_printk(KERN_ERR "SB16 [0x%lx]: wanted: irqreg=0x%x, dmareg=0x%x, mpureg = 0x%x\n", chip->port,… in snd_sb16dsp_configure()
838 …snd_printk(KERN_ERR "SB16 [0x%lx]: got: irqreg=0x%x, dmareg=0x%x, mpureg = 0x%x\n", chip->port,… in snd_sb16dsp_configure()
866 int snd_sb16dsp_pcm(struct snd_sb *chip, int device) in snd_sb16dsp_pcm() argument
868 struct snd_card *card = chip->card; in snd_sb16dsp_pcm()
874 sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff); in snd_sb16dsp_pcm()
876 pcm->private_data = chip; in snd_sb16dsp_pcm()
877 chip->pcm = pcm; in snd_sb16dsp_pcm()
882 if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) in snd_sb16dsp_pcm()
883 snd_ctl_add(card, snd_ctl_new1(&snd_sb16_dma_control, chip)); in snd_sb16dsp_pcm()