Lines Matching refs:emu
20 static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu,
31 dev_dbg(emu->card->dev,
33 epcm->substream->runtime->hw->pointer(emu, epcm->substream),
40 static void snd_emu10k1_pcm_ac97adc_interrupt(struct snd_emu10k1 *emu,
45 if (emu->pcm_capture_substream->runtime->mode == SNDRV_PCM_MODE_FRAME)
49 snd_pcm_period_elapsed(emu->pcm_capture_substream);
52 static void snd_emu10k1_pcm_ac97mic_interrupt(struct snd_emu10k1 *emu,
57 if (emu->pcm_capture_mic_substream->runtime->mode == SNDRV_PCM_MODE_FRAME)
61 snd_pcm_period_elapsed(emu->pcm_capture_mic_substream);
64 static void snd_emu10k1_pcm_efx_interrupt(struct snd_emu10k1 *emu,
69 if (emu->pcm_capture_efx_substream->runtime->mode == SNDRV_PCM_MODE_FRAME)
73 snd_pcm_period_elapsed(emu->pcm_capture_efx_substream);
80 snd_emu10k1_voice_free(epcm->emu, epcm->voices[i]);
93 err = snd_emu10k1_voice_alloc(epcm->emu,
104 err = snd_emu10k1_voice_alloc(epcm->emu,
109 dev_dbg(emu->card->dev, "pcm_channel_alloc: "
205 static void snd_emu10k1_constrain_capture_rates(struct snd_emu10k1 *emu,
208 if (emu->card_capabilities->emu_model &&
209 emu->emu1010.word_clock == 44100) {
219 emu->audigy ? &hw_constraints_audigy_capture_rates :
223 static void snd_emu1010_constrain_efx_rate(struct snd_emu10k1 *emu,
228 rate = emu->emu1010.word_clock;
281 static void snd_emu10k1_pcm_init_voice(struct snd_emu10k1 *emu,
294 silent_page = ((unsigned int)emu->silent_page.addr << emu->address_mode) |
295 (emu->address_mode ? MAP_PTI_MASK1 : MAP_PTI_MASK0);
296 snd_emu10k1_ptr_write_multiple(emu, voice,
317 if (emu->audigy) {
318 snd_emu10k1_ptr_write_multiple(emu, voice,
326 snd_emu10k1_ptr_write(emu, A_CSBA + i, voice, (amh << 16) | aml);
329 snd_emu10k1_ptr_write(emu, FXRT, voice,
333 emu->voices[voice].dirty = 1;
336 static void snd_emu10k1_pcm_init_voices(struct snd_emu10k1 *emu,
343 spin_lock_irq(&emu->reg_lock);
344 snd_emu10k1_pcm_init_voice(emu, evoice, w_16, stereo,
349 snd_emu10k1_pcm_init_voice(emu, evoice + 1, w_16, true,
353 spin_unlock_irq(&emu->reg_lock);
356 static void snd_emu10k1_pcm_init_extra_voice(struct snd_emu10k1 *emu,
365 snd_emu10k1_pcm_init_voice(emu, evoice, w_16, false,
373 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
394 if (emu->iommu_workaround)
399 if (emu->iommu_workaround && runtime->dma_bytes >= EMUPAGESIZE)
404 snd_emu10k1_free_pages(emu, epcm->memblk);
405 epcm->memblk = snd_emu10k1_alloc_pages(emu, substream);
419 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
427 snd_emu10k1_voice_free(epcm->emu, epcm->extra);
432 snd_emu10k1_free_pages(emu, epcm->memblk);
442 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
451 if (emu->card_capabilities->emu_model &&
452 emu->emu1010.word_clock == 44100)
458 snd_emu10k1_pcm_init_extra_voice(emu, epcm->extra, w_16,
463 snd_emu10k1_pcm_init_voices(emu, epcm->voices[0], w_16, stereo,
465 &emu->pcm_mixer[substream->number]);
472 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
486 snd_emu10k1_pcm_init_extra_voice(emu, epcm->extra, true,
491 snd_emu10k1_pcm_init_voices(emu, epcm->voices[i], true, false,
493 &emu->efx_pcm_mixer[i]);
521 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
527 snd_emu10k1_ptr_write(emu, epcm->capture_bs_reg, 0, 0);
530 snd_emu10k1_ptr_write(emu, ADCCR, 0, 0);
533 if (emu->card_capabilities->emu_model) {
539 if (emu->audigy) {
540 snd_emu10k1_ptr_write_multiple(emu, 0,
545 snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
550 snd_emu10k1_ptr_write(emu, epcm->capture_ba_reg, 0, runtime->dma_addr);
568 epcm->capture_cr_val = emu->audigy ? A_ADCCR_LCHANENABLE : ADCCR_LCHANENABLE;
570 epcm->capture_cr_val |= emu->audigy ? A_ADCCR_RCHANENABLE : ADCCR_RCHANENABLE;
571 epcm->capture_cr_val |= emu->audigy ?
578 static void snd_emu10k1_playback_fill_cache(struct snd_emu10k1 *emu,
591 snd_emu10k1_ptr_write(emu, CD0 + i, voice, sample);
597 snd_emu10k1_ptr_write(emu, CCR, voice + 1, ccr);
599 snd_emu10k1_ptr_write(emu, CCR, voice, ccr);
602 static void snd_emu10k1_playback_prepare_voices(struct snd_emu10k1 *emu,
622 snd_emu10k1_ptr_write(emu, CCCA_CURRADDR, voice, loop_start);
624 snd_emu10k1_playback_fill_cache(emu, voice, sample, stereo);
644 snd_emu10k1_ptr_write(emu, CCCA_CURRADDR, epcm->extra->number, eloop_start);
650 static void snd_emu10k1_playback_commit_volume(struct snd_emu10k1 *emu,
654 snd_emu10k1_ptr_write_multiple(emu, evoice->number,
660 static void snd_emu10k1_playback_unmute_voice(struct snd_emu10k1 *emu,
670 snd_emu10k1_playback_commit_volume(emu, evoice, vattn);
673 static void snd_emu10k1_playback_unmute_voices(struct snd_emu10k1 *emu,
678 snd_emu10k1_playback_unmute_voice(emu, evoice, stereo, true, mix);
680 snd_emu10k1_playback_unmute_voice(emu, evoice + 1, true, false, mix);
683 static void snd_emu10k1_playback_mute_voice(struct snd_emu10k1 *emu,
686 snd_emu10k1_playback_commit_volume(emu, evoice, 0);
689 static void snd_emu10k1_playback_mute_voices(struct snd_emu10k1 *emu,
693 snd_emu10k1_playback_mute_voice(emu, evoice);
695 snd_emu10k1_playback_mute_voice(emu, evoice + 1);
698 static void snd_emu10k1_playback_commit_pitch(struct snd_emu10k1 *emu,
701 u32 ptrx = snd_emu10k1_ptr_read(emu, PTRX, voice);
702 u32 cpf = snd_emu10k1_ptr_read(emu, CPF, voice);
703 snd_emu10k1_ptr_write_multiple(emu, voice,
709 static void snd_emu10k1_playback_trigger_voice(struct snd_emu10k1 *emu,
715 snd_emu10k1_playback_commit_pitch(emu, voice, evoice->epcm->pitch_target << 16);
718 static void snd_emu10k1_playback_stop_voice(struct snd_emu10k1 *emu,
724 snd_emu10k1_playback_commit_pitch(emu, voice, 0);
727 static void snd_emu10k1_playback_set_running(struct snd_emu10k1 *emu,
731 snd_emu10k1_voice_intr_enable(emu, epcm->extra->number);
734 static void snd_emu10k1_playback_set_stopped(struct snd_emu10k1 *emu,
737 snd_emu10k1_voice_intr_disable(emu, epcm->extra->number);
744 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
753 dev_dbg(emu->card->dev,
755 (int)emu, cmd, substream->ops->pointer(substream))
757 spin_lock(&emu->reg_lock);
760 snd_emu10k1_playback_prepare_voices(emu, epcm, w_16, stereo, 1);
764 mix = &emu->pcm_mixer[substream->number];
765 snd_emu10k1_playback_unmute_voices(emu, epcm->voices[0], stereo, mix);
766 snd_emu10k1_playback_set_running(emu, epcm);
767 snd_emu10k1_playback_trigger_voice(emu, epcm->voices[0]);
768 snd_emu10k1_playback_trigger_voice(emu, epcm->extra);
773 snd_emu10k1_playback_stop_voice(emu, epcm->voices[0]);
774 snd_emu10k1_playback_stop_voice(emu, epcm->extra);
775 snd_emu10k1_playback_set_stopped(emu, epcm);
776 snd_emu10k1_playback_mute_voices(emu, epcm->voices[0], stereo);
782 spin_unlock(&emu->reg_lock);
789 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
794 spin_lock(&emu->reg_lock);
799 outl(epcm->capture_ipr, emu->port + IPR);
800 snd_emu10k1_intr_enable(emu, epcm->capture_inte);
802 dev_dbg(emu->card->dev, "adccr = 0x%x, adcbs = 0x%x\n",
807 snd_emu10k1_ptr_write(emu, ADCCR, 0, epcm->capture_cr_val);
810 if (emu->audigy) {
811 snd_emu10k1_ptr_write_multiple(emu, 0,
815 dev_dbg(emu->card->dev,
820 snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
825 snd_emu10k1_ptr_write(emu, epcm->capture_bs_reg, 0, epcm->capture_bs_val);
832 snd_emu10k1_intr_disable(emu, epcm->capture_inte);
833 outl(epcm->capture_ipr, emu->port + IPR);
834 snd_emu10k1_ptr_write(emu, epcm->capture_bs_reg, 0, 0);
837 snd_emu10k1_ptr_write(emu, ADCCR, 0, 0);
840 if (emu->audigy) {
841 snd_emu10k1_ptr_write_multiple(emu, 0,
846 snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
855 spin_unlock(&emu->reg_lock);
861 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
869 ptr = snd_emu10k1_ptr_read(emu, CCCA, epcm->voices[0]->number) & 0x00ffffff;
886 dev_dbg(emu->card->dev,
906 static void snd_emu10k1_efx_playback_freeze_voices(struct snd_emu10k1 *emu,
912 snd_emu10k1_ptr_write(emu, CPF_STOP, voice, 1);
913 snd_emu10k1_playback_commit_pitch(emu, voice, PITCH_48000 << 16);
917 static void snd_emu10k1_efx_playback_unmute_voices(struct snd_emu10k1 *emu,
922 snd_emu10k1_playback_unmute_voice(emu, epcm->voices[i], false, true,
923 &emu->efx_pcm_mixer[i]);
926 static void snd_emu10k1_efx_playback_stop_voices(struct snd_emu10k1 *emu,
931 snd_emu10k1_playback_stop_voice(emu, epcm->voices[i]);
932 snd_emu10k1_playback_set_stopped(emu, epcm);
935 snd_emu10k1_playback_mute_voice(emu, epcm->voices[i]);
941 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
947 spin_lock(&emu->reg_lock);
957 snd_emu10k1_voice_set_loop_stop_multiple(emu, mask);
959 emu, epcm, runtime->channels);
961 emu, epcm, true, false, runtime->channels);
967 snd_emu10k1_efx_playback_unmute_voices(emu, epcm, runtime->channels);
969 snd_emu10k1_playback_set_running(emu, epcm);
970 result = snd_emu10k1_voice_clear_loop_stop_multiple_atomic(emu, mask);
973 snd_emu10k1_playback_trigger_voice(emu, epcm->extra);
978 emu, epcm, runtime->channels);
984 snd_emu10k1_voice_clear_loop_stop_multiple(emu, mask);
989 snd_emu10k1_playback_stop_voice(emu, epcm->extra);
991 emu, epcm, runtime->channels);
1000 spin_unlock(&emu->reg_lock);
1007 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1018 ptr = snd_emu10k1_ptr_read(emu, epcm->capture_idx_reg, 0) & 0x0000ffff;
1093 static void snd_emu10k1_pcm_mixer_notify1(struct snd_emu10k1 *emu, struct snd_kcontrol *kctl, int idx, int activate)
1103 snd_ctl_notify(emu->card, SNDRV_CTL_EVENT_MASK_VALUE |
1108 static void snd_emu10k1_pcm_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate)
1110 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_routing, idx, activate);
1111 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_volume, idx, activate);
1112 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_attn, idx, activate);
1115 static void snd_emu10k1_pcm_efx_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate)
1117 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_routing, idx, activate);
1118 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_volume, idx, activate);
1119 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_attn, idx, activate);
1129 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1134 mix = &emu->efx_pcm_mixer[i];
1136 snd_emu10k1_pcm_efx_mixer_notify(emu, i, 0);
1159 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1168 epcm->emu = emu;
1175 if (emu->card_capabilities->emu_model)
1176 snd_emu1010_constrain_efx_rate(emu, runtime);
1184 mix = &emu->efx_pcm_mixer[i];
1191 snd_emu10k1_pcm_efx_mixer_notify(emu, i, 1);
1198 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1207 epcm->emu = emu;
1218 if (emu->card_capabilities->emu_model)
1219 sample_rate = emu->emu1010.word_clock;
1227 mix = &emu->pcm_mixer[substream->number];
1235 snd_emu10k1_pcm_mixer_notify(emu, substream->number, 1);
1241 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1242 struct snd_emu10k1_pcm_mixer *mix = &emu->pcm_mixer[substream->number];
1245 snd_emu10k1_pcm_mixer_notify(emu, substream->number, 0);
1251 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1258 epcm->emu = emu;
1265 epcm->capture_idx_reg = emu->audigy ? A_ADCIDX : ADCIDX;
1269 snd_emu10k1_constrain_capture_rates(emu, runtime);
1272 emu->capture_interrupt = snd_emu10k1_pcm_ac97adc_interrupt;
1273 emu->pcm_capture_substream = substream;
1279 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1281 emu->capture_interrupt = NULL;
1282 emu->pcm_capture_substream = NULL;
1288 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1295 epcm->emu = emu;
1302 epcm->capture_idx_reg = emu->audigy ? A_MICIDX : MICIDX;
1310 emu->capture_mic_interrupt = snd_emu10k1_pcm_ac97mic_interrupt;
1311 emu->pcm_capture_mic_substream = substream;
1317 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1319 emu->capture_mic_interrupt = NULL;
1320 emu->pcm_capture_mic_substream = NULL;
1326 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1329 int nefx = emu->audigy ? 64 : 32;
1335 epcm->emu = emu;
1346 if (emu->card_capabilities->emu_model) {
1347 snd_emu1010_constrain_efx_rate(emu, runtime);
1369 spin_lock_irq(&emu->reg_lock);
1372 if (emu->efx_voices_mask[idx/32] & (1 << (idx%32))) {
1377 epcm->capture_cr_val = emu->efx_voices_mask[0];
1378 epcm->capture_cr_val2 = emu->efx_voices_mask[1];
1379 spin_unlock_irq(&emu->reg_lock);
1389 emu->capture_efx_interrupt = snd_emu10k1_pcm_efx_interrupt;
1390 emu->pcm_capture_efx_substream = substream;
1396 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1398 emu->capture_efx_interrupt = NULL;
1399 emu->pcm_capture_efx_substream = NULL;
1432 int snd_emu10k1_pcm(struct snd_emu10k1 *emu, int device)
1438 err = snd_pcm_new(emu->card, "emu10k1", device, 32, 1, &pcm);
1442 pcm->private_data = emu;
1450 emu->pcm = pcm;
1455 &emu->pci->dev,
1460 &emu->pci->dev, 64*1024, 64*1024);
1465 int snd_emu10k1_pcm_multi(struct snd_emu10k1 *emu, int device)
1471 err = snd_pcm_new(emu->card, "emu10k1", device, 1, 0, &pcm);
1475 pcm->private_data = emu;
1482 emu->pcm_multi = pcm;
1486 &emu->pci->dev,
1501 int snd_emu10k1_pcm_mic(struct snd_emu10k1 *emu, int device)
1506 err = snd_pcm_new(emu->card, "emu10k1 mic", device, 0, 1, &pcm);
1510 pcm->private_data = emu;
1516 emu->pcm_mic = pcm;
1518 snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, &emu->pci->dev,
1526 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1527 int nefx = emu->audigy ? 64 : 32;
1537 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1538 int nefx = emu->audigy ? 64 : 32;
1542 ucontrol->value.integer.value[idx] = (emu->efx_voices_mask[idx / 32] & (1 << (idx % 32))) ? 1 : 0;
1548 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1550 int nefx = emu->audigy ? 64 : 32;
1563 spin_lock_irq(&emu->reg_lock);
1564 change = (nval[0] != emu->efx_voices_mask[0]) ||
1565 (nval[1] != emu->efx_voices_mask[1]);
1566 emu->efx_voices_mask[0] = nval[0];
1567 emu->efx_voices_mask[1] = nval[1];
1568 spin_unlock_irq(&emu->reg_lock);
1594 static void snd_emu10k1_fx8010_playback_irq(struct snd_emu10k1 *emu, void *private_data)
1607 dev_dbg(emu->card->dev,
1628 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1629 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1638 snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + tram_pos,
1639 (unsigned short *)emu->fx8010.etram_pages.area + tram_pos + tram_size / 2,
1646 snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + tram_pos,
1647 (unsigned short *)emu->fx8010.etram_pages.area + tram_pos + tram_size / 2,
1656 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1657 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1665 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1666 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1670 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + 0x80 + pcm->etram[i], 0, 0);
1676 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1678 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1682 dev_dbg(emu->card->dev, "prepare: etram_pages = 0x%p, dma_area = 0x%x, "
1684 emu->fx8010.etram_pages, runtime->dma_area,
1692 snd_emu10k1_ptr_write_multiple(emu, 0,
1693 emu->gpr_base + pcm->gpr_running, 0, /* reset */
1694 emu->gpr_base + pcm->gpr_trigger, 0, /* reset */
1695 emu->gpr_base + pcm->gpr_size, runtime->buffer_size,
1696 emu->gpr_base + pcm->gpr_ptr, 0, /* reset ptr number */
1697 emu->gpr_base + pcm->gpr_count, runtime->period_size,
1698 emu->gpr_base + pcm->gpr_tmpcount, runtime->period_size,
1701 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + 0x80 + pcm->etram[i], 0, (TANKMEMADDRREG_READ|TANKMEMADDRREG_ALIGN) + i * (runtime->buffer_size / pcm->channels));
1707 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1708 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1711 spin_lock(&emu->reg_lock);
1725 snd_emu10k1_ptr_write(emu, SPCS0 + i, 0, bits);
1729 result = snd_emu10k1_fx8010_register_irq_handler(emu, snd_emu10k1_fx8010_playback_irq, pcm->gpr_running, substream, &pcm->irq);
1733 snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 1);
1738 snd_emu10k1_fx8010_unregister_irq_handler(emu, &pcm->irq);
1739 snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 0);
1748 spin_unlock(&emu->reg_lock);
1754 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1755 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1758 if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0))
1760 ptr = snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_ptr, 0) << 2;
1786 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1788 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1793 spin_lock_irq(&emu->reg_lock);
1795 spin_unlock_irq(&emu->reg_lock);
1799 spin_unlock_irq(&emu->reg_lock);
1805 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1806 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1808 spin_lock_irq(&emu->reg_lock);
1810 spin_unlock_irq(&emu->reg_lock);
1824 int snd_emu10k1_pcm_efx(struct snd_emu10k1 *emu, int device)
1830 err = snd_pcm_new(emu->card, "emu10k1 efx", device, emu->audigy ? 0 : 8, 1, &pcm);
1834 pcm->private_data = emu;
1836 if (!emu->audigy)
1841 if (emu->audigy)
1845 emu->pcm_efx = pcm;
1847 if (!emu->card_capabilities->emu_model) {
1851 if (emu->audigy) {
1852 emu->efx_voices_mask[0] = 0;
1853 emu->efx_voices_mask[1] = 0xffff;
1855 emu->efx_voices_mask[0] = 0xffff0000;
1856 emu->efx_voices_mask[1] = 0;
1858 kctl = snd_ctl_new1(&snd_emu10k1_pcm_efx_voices_mask, emu);
1862 err = snd_ctl_add(emu->card, kctl);
1871 snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, &emu->pci->dev,