• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/sound/pci/emu10k1/

Lines Matching refs:emu

332 	struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
338 spin_lock_irqsave(&emu->reg_lock, flags);
341 spin_unlock_irqrestore(&emu->reg_lock, flags);
347 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
355 spin_lock_irqsave(&emu->reg_lock, flags);
367 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[i], 0, val);
370 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[i], 0, db_table[val]);
378 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, bass_table[val][j]);
386 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, treble_table[val][j]);
389 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[i], 0, onoff_table[val]);
394 spin_unlock_irqrestore(&emu->reg_lock, flags);
402 static void snd_emu10k1_fx8010_interrupt(struct snd_emu10k1 *emu)
406 irq = emu->fx8010.irq_handlers;
409 if (snd_emu10k1_ptr_read(emu, emu->gpr_base + irq->gpr_running, 0) & 0xffff0000) {
411 irq->handler(emu, irq->private_data);
412 snd_emu10k1_ptr_write(emu, emu->gpr_base + irq->gpr_running, 0, 1);
418 int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu,
434 spin_lock_irqsave(&emu->fx8010.irq_lock, flags);
435 if (emu->fx8010.irq_handlers == NULL) {
436 emu->fx8010.irq_handlers = irq;
437 emu->dsp_interrupt = snd_emu10k1_fx8010_interrupt;
438 snd_emu10k1_intr_enable(emu, INTE_FXDSPENABLE);
440 irq->next = emu->fx8010.irq_handlers;
441 emu->fx8010.irq_handlers = irq;
443 spin_unlock_irqrestore(&emu->fx8010.irq_lock, flags);
449 int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,
455 spin_lock_irqsave(&emu->fx8010.irq_lock, flags);
456 if ((tmp = emu->fx8010.irq_handlers) == irq) {
457 emu->fx8010.irq_handlers = tmp->next;
458 if (emu->fx8010.irq_handlers == NULL) {
459 snd_emu10k1_intr_disable(emu, INTE_FXDSPENABLE);
460 emu->dsp_interrupt = NULL;
468 spin_unlock_irqrestore(&emu->fx8010.irq_lock, flags);
509 static void snd_emu10k1_efx_write(struct snd_emu10k1 *emu, unsigned int pc, unsigned int data)
511 pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE;
512 snd_emu10k1_ptr_write(emu, pc, 0, data);
515 unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc)
517 pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE;
518 return snd_emu10k1_ptr_read(emu, pc, 0);
521 static int snd_emu10k1_gpr_poke(struct snd_emu10k1 *emu,
527 for (gpr = 0; gpr < (emu->audigy ? 0x200 : 0x100); gpr++) {
532 snd_emu10k1_ptr_write(emu, emu->gpr_base + gpr, 0, val);
537 static int snd_emu10k1_gpr_peek(struct snd_emu10k1 *emu,
543 for (gpr = 0; gpr < (emu->audigy ? 0x200 : 0x100); gpr++) {
545 val = snd_emu10k1_ptr_read(emu, emu->gpr_base + gpr, 0);
552 static int snd_emu10k1_tram_poke(struct snd_emu10k1 *emu,
558 for (tram = 0; tram < (emu->audigy ? 0x100 : 0xa0); tram++) {
564 snd_emu10k1_ptr_write(emu, TANKMEMDATAREGBASE + tram, 0, val);
565 if (!emu->audigy) {
566 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + tram, 0, addr);
568 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + tram, 0, addr << 12);
569 snd_emu10k1_ptr_write(emu, A_TANKMEMCTLREGBASE + tram, 0, addr >> 20);
575 static int snd_emu10k1_tram_peek(struct snd_emu10k1 *emu,
582 for (tram = 0; tram < (emu->audigy ? 0x100 : 0xa0); tram++) {
584 val = snd_emu10k1_ptr_read(emu, TANKMEMDATAREGBASE + tram, 0);
585 if (!emu->audigy) {
586 addr = snd_emu10k1_ptr_read(emu, TANKMEMADDRREGBASE + tram, 0);
588 addr = snd_emu10k1_ptr_read(emu, TANKMEMADDRREGBASE + tram, 0) >> 12;
589 addr |= snd_emu10k1_ptr_read(emu, A_TANKMEMCTLREGBASE + tram, 0) << 20;
598 static int snd_emu10k1_code_poke(struct snd_emu10k1 *emu,
603 for (pc = 0; pc < (emu->audigy ? 2*1024 : 2*512); pc += 2) {
609 snd_emu10k1_efx_write(emu, pc + 0, lo);
610 snd_emu10k1_efx_write(emu, pc + 1, hi);
615 static int snd_emu10k1_code_peek(struct snd_emu10k1 *emu,
621 for (pc = 0; pc < (emu->audigy ? 2*1024 : 2*512); pc += 2) {
623 if (put_user(snd_emu10k1_efx_read(emu, pc + 0), &icode->code[pc + 0]))
625 if (put_user(snd_emu10k1_efx_read(emu, pc + 1), &icode->code[pc + 1]))
632 snd_emu10k1_look_for_ctl(struct snd_emu10k1 *emu, struct snd_ctl_elem_id *id)
638 list_for_each(list, &emu->fx8010.gpr_ctl) {
673 static int copy_gctl(struct snd_emu10k1 *emu,
680 if (emu->support_tlv)
689 static int copy_gctl_to_user(struct snd_emu10k1 *emu,
696 if (emu->support_tlv)
703 static int snd_emu10k1_verify_controls(struct snd_emu10k1 *emu,
716 if (snd_emu10k1_look_for_ctl(emu, &id) == NULL)
724 if (copy_gctl(emu, gctl, icode->gpr_add_controls, i)) {
728 if (snd_emu10k1_look_for_ctl(emu, &gctl->id))
730 down_read(&emu->card->controls_rwsem);
731 if (snd_ctl_find_id(emu->card, &gctl->id) != NULL) {
732 up_read(&emu->card->controls_rwsem);
736 up_read(&emu->card->controls_rwsem);
744 if (copy_gctl(emu, gctl, icode->gpr_list_controls, i)) {
766 static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu,
786 if (copy_gctl(emu, gctl, icode->gpr_add_controls, i)) {
799 ctl = snd_emu10k1_look_for_ctl(emu, &gctl->id);
833 if ((err = snd_ctl_add(emu->card, kctl = snd_ctl_new1(&knew, emu))) < 0) {
840 list_add_tail(&ctl->list, &emu->fx8010.gpr_ctl);
846 snd_ctl_notify(emu->card, SNDRV_CTL_EVENT_MASK_VALUE |
858 static int snd_emu10k1_del_controls(struct snd_emu10k1 *emu,
865 struct snd_card *card = emu->card;
872 ctl = snd_emu10k1_look_for_ctl(emu, &id);
880 static int snd_emu10k1_list_controls(struct snd_emu10k1 *emu,
894 list_for_each(list, &emu->fx8010.gpr_ctl) {
915 if (copy_gctl_to_user(emu, icode->gpr_list_controls,
928 static int snd_emu10k1_icode_poke(struct snd_emu10k1 *emu,
933 mutex_lock(&emu->fx8010.lock);
934 if ((err = snd_emu10k1_verify_controls(emu, icode)) < 0)
936 strlcpy(emu->fx8010.name, icode->name, sizeof(emu->fx8010.name));
939 if (emu->audigy)
940 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg | A_DBG_SINGLE_STEP);
942 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg | EMU10K1_DBG_SINGLE_STEP);
944 if ((err = snd_emu10k1_del_controls(emu, icode)) < 0 ||
945 (err = snd_emu10k1_gpr_poke(emu, icode)) < 0 ||
946 (err = snd_emu10k1_tram_poke(emu, icode)) < 0 ||
947 (err = snd_emu10k1_code_poke(emu, icode)) < 0 ||
948 (err = snd_emu10k1_add_controls(emu, icode)) < 0)
951 if (emu->audigy)
952 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg);
954 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg);
956 mutex_unlock(&emu->fx8010.lock);
960 static int snd_emu10k1_icode_peek(struct snd_emu10k1 *emu,
965 mutex_lock(&emu->fx8010.lock);
966 strlcpy(icode->name, emu->fx8010.name, sizeof(icode->name));
968 err = snd_emu10k1_gpr_peek(emu, icode);
970 err = snd_emu10k1_tram_peek(emu, icode);
972 err = snd_emu10k1_code_peek(emu, icode);
974 err = snd_emu10k1_list_controls(emu, icode);
975 mutex_unlock(&emu->fx8010.lock);
979 static int snd_emu10k1_ipcm_poke(struct snd_emu10k1 *emu,
990 pcm = &emu->fx8010.pcm[ipcm->substream];
991 mutex_lock(&emu->fx8010.lock);
992 spin_lock_irq(&emu->reg_lock);
1019 spin_unlock_irq(&emu->reg_lock);
1020 mutex_unlock(&emu->fx8010.lock);
1024 static int snd_emu10k1_ipcm_peek(struct snd_emu10k1 *emu,
1033 pcm = &emu->fx8010.pcm[ipcm->substream];
1034 mutex_lock(&emu->fx8010.lock);
1035 spin_lock_irq(&emu->reg_lock);
1049 spin_unlock_irq(&emu->reg_lock);
1050 mutex_unlock(&emu->fx8010.lock);
1135 static int __devinit _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu)
1182 snd_emu10k1_ptr_write(emu, A_DBG, 0, (emu->fx8010.dbg = 0) | A_DBG_SINGLE_STEP);
1197 if (emu->card_capabilities->spk71) {
1248 if (emu->card_capabilities->emu1010) {
1272 emu->card_capabilities->ac97_chip ? "Audigy CD Playback Volume" : "CD Playback Volume",
1279 emu->card_capabilities->ac97_chip ? "Audigy CD Capture Volume" : "CD Capture Volume",
1298 emu->card_capabilities->ac97_chip ? "Line2 Playback Volume" : "Line Playback Volume",
1305 emu->card_capabilities->ac97_chip ? "Line2 Capture Volume" : "Line Capture Volume",
1324 emu->card_capabilities->ac97_chip ? "Aux2 Playback Volume" : "Aux Playback Volume",
1331 emu->card_capabilities->ac97_chip ? "Aux2 Capture Volume" : "Aux Capture Volume",
1359 if (emu->card_capabilities->spk71) {
1393 if (emu->card_capabilities->spk71) {
1486 if (emu->card_capabilities->spk71)
1494 if (emu->card_capabilities->emu1010) {
1514 if ((z==1) && (emu->card_capabilities->spdif_bug)) {
1516 snd_printk(KERN_INFO "Installing spdif_bug patch: %s\n", emu->card_capabilities->name);
1538 if (emu->card_capabilities->emu1010) {
1599 emu->support_tlv = 1; /* support TLV */
1600 err = snd_emu10k1_icode_poke(emu, icode);
1601 emu->support_tlv = 0; /* clear again */
1666 static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
1713 snd_emu10k1_ptr_write(emu, DBG, 0, (emu->fx8010.dbg = 0) | EMU10K1_DBG_SINGLE_STEP);
1895 if (emu->fx8010.extin_mask & ((1<<EXTIN_AC97_L)|(1<<EXTIN_AC97_R))) {
1906 if (emu->fx8010.extin_mask & ((1<<EXTIN_SPDIF_CD_L)|(1<<EXTIN_SPDIF_CD_R))) {
1923 if (emu->fx8010.extin_mask & ((1<<EXTIN_ZOOM_L)|(1<<EXTIN_ZOOM_R))) {
1940 if (emu->fx8010.extin_mask & ((1<<EXTIN_TOSLINK_L)|(1<<EXTIN_TOSLINK_R))) {
1957 if (emu->fx8010.extin_mask & ((1<<EXTIN_LINE1_L)|(1<<EXTIN_LINE1_R))) {
1974 if (emu->fx8010.extin_mask & ((1<<EXTIN_COAX_SPDIF_L)|(1<<EXTIN_COAX_SPDIF_R))) {
1991 if (emu->fx8010.extin_mask & ((1<<EXTIN_LINE2_L)|(1<<EXTIN_LINE2_R))) {
2094 if (emu->fx8010.extout_mask & ((1<<EXTOUT_AC97_L)|(1<<EXTOUT_AC97_R))) {
2101 if (emu->fx8010.extout_mask & ((1<<EXTOUT_TOSLINK_L)|(1<<EXTOUT_TOSLINK_R))) {
2118 if (emu->fx8010.extout_mask & ((1<<EXTOUT_HEADPHONE_L)|(1<<EXTOUT_HEADPHONE_R))) {
2139 if (emu->fx8010.extout_mask & ((1<<EXTOUT_REAR_L)|(1<<EXTOUT_REAR_R)))
2143 if (emu->fx8010.extout_mask & ((1<<EXTOUT_AC97_REAR_L)|(1<<EXTOUT_AC97_REAR_R)))
2147 if (emu->fx8010.extout_mask & (1<<EXTOUT_AC97_CENTER)) {
2157 if (emu->fx8010.extout_mask & (1<<EXTOUT_AC97_LFE)) {
2172 if (emu->fx8010.extout_mask & (1<<EXTOUT_MIC_CAP))
2176 if (emu->card_capabilities->sblive51) {
2213 if ((err = snd_emu10k1_fx8010_tram_setup(emu, ipcm->buffer_size)) < 0)
2218 emu->support_tlv = 1; /* support TLV */
2219 err = snd_emu10k1_icode_poke(emu, icode);
2220 emu->support_tlv = 0; /* clear again */
2223 err = snd_emu10k1_ipcm_poke(emu, ipcm);
2234 int __devinit snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
2236 spin_lock_init(&emu->fx8010.irq_lock);
2237 INIT_LIST_HEAD(&emu->fx8010.gpr_ctl);
2238 if (emu->audigy)
2239 return _snd_emu10k1_audigy_init_efx(emu);
2241 return _snd_emu10k1_init_efx(emu);
2244 void snd_emu10k1_free_efx(struct snd_emu10k1 *emu)
2247 if (emu->audigy)
2248 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg = A_DBG_SINGLE_STEP);
2250 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg = EMU10K1_DBG_SINGLE_STEP);
2254 int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size)
2268 if ((emu->fx8010.etram_pages.bytes / 2) == size)
2270 spin_lock_irq(&emu->emu_lock);
2271 outl(HCFG_LOCKTANKCACHE_MASK | inl(emu->port + HCFG), emu->port + HCFG);
2272 spin_unlock_irq(&emu->emu_lock);
2273 snd_emu10k1_ptr_write(emu, TCB, 0, 0);
2274 snd_emu10k1_ptr_write(emu, TCBS, 0, 0);
2275 if (emu->fx8010.etram_pages.area != NULL) {
2276 snd_dma_free_pages(&emu->fx8010.etram_pages);
2277 emu->fx8010.etram_pages.area = NULL;
2278 emu->fx8010.etram_pages.bytes = 0;
2282 if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci),
2283 size * 2, &emu->fx8010.etram_pages) < 0)
2285 memset(emu->fx8010.etram_pages.area, 0, size * 2);
2286 snd_emu10k1_ptr_write(emu, TCB, 0, emu->fx8010.etram_pages.addr);
2287 snd_emu10k1_ptr_write(emu, TCBS, 0, size_reg);
2288 spin_lock_irq(&emu->emu_lock);
2289 outl(inl(emu->port + HCFG) & ~HCFG_LOCKTANKCACHE_MASK, emu->port + HCFG);
2290 spin_unlock_irq(&emu->emu_lock);
2309 static int snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
2317 info->internal_tram_size = emu->fx8010.itram_size;
2318 info->external_tram_size = emu->fx8010.etram_pages.bytes / 2;
2320 extin = emu->audigy ? audigy_ins : creative_ins;
2321 extout = emu->audigy ? audigy_outs : creative_outs;
2322 fxbus_mask = emu->fx8010.fxbus_mask;
2323 extin_mask = emu->fx8010.extin_mask;
2324 extout_mask = emu->fx8010.extout_mask;
2332 info->gpr_controls = emu->fx8010.gpr_count;
2338 struct snd_emu10k1 *emu = hw->private_data;
2348 emu->support_tlv = 1;
2354 if ((res = snd_emu10k1_fx8010_info(emu, info)) < 0) {
2374 res = snd_emu10k1_icode_poke(emu, icode);
2385 res = snd_emu10k1_icode_peek(emu, icode);
2400 res = snd_emu10k1_ipcm_poke(emu, ipcm);
2411 res = snd_emu10k1_ipcm_peek(emu, ipcm);
2423 mutex_lock(&emu->fx8010.lock);
2424 res = snd_emu10k1_fx8010_tram_setup(emu, addr);
2425 mutex_unlock(&emu->fx8010.lock);
2430 if (emu->audigy)
2431 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg |= A_DBG_SINGLE_STEP);
2433 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg |= EMU10K1_DBG_SINGLE_STEP);
2438 if (emu->audigy)
2439 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg = 0);
2441 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg = 0);
2446 if (emu->audigy)
2447 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg | A_DBG_ZC);
2449 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg | EMU10K1_DBG_ZC);
2451 if (emu->audigy)
2452 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg);
2454 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg);
2463 if (emu->audigy)
2464 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg |= A_DBG_SINGLE_STEP | addr);
2466 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg |= EMU10K1_DBG_SINGLE_STEP | addr);
2468 if (emu->audigy)
2469 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg |= A_DBG_SINGLE_STEP | A_DBG_STEP_ADDR | addr);
2471 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg |= EMU10K1_DBG_SINGLE_STEP | EMU10K1_DBG_STEP | addr);
2474 if (emu->audigy)
2475 addr = snd_emu10k1_ptr_read(emu, A_DBG, 0);
2477 addr = snd_emu10k1_ptr_read(emu, DBG, 0);
2490 int __devinit snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep)
2497 if ((err = snd_hwdep_new(emu->card, "FX8010", device, &hw)) < 0)
2504 hw->private_data = emu;
2511 int __devinit snd_emu10k1_efx_alloc_pm_buffer(struct snd_emu10k1 *emu)
2515 len = emu->audigy ? 0x200 : 0x100;
2516 emu->saved_gpr = kmalloc(len * 4, GFP_KERNEL);
2517 if (! emu->saved_gpr)
2519 len = emu->audigy ? 0x100 : 0xa0;
2520 emu->tram_val_saved = kmalloc(len * 4, GFP_KERNEL);
2521 emu->tram_addr_saved = kmalloc(len * 4, GFP_KERNEL);
2522 if (! emu->tram_val_saved || ! emu->tram_addr_saved)
2524 len = emu->audigy ? 2 * 1024 : 2 * 512;
2525 emu->saved_icode = vmalloc(len * 4);
2526 if (! emu->saved_icode)
2531 void snd_emu10k1_efx_free_pm_buffer(struct snd_emu10k1 *emu)
2533 kfree(emu->saved_gpr);
2534 kfree(emu->tram_val_saved);
2535 kfree(emu->tram_addr_saved);
2536 vfree(emu->saved_icode);
2542 void snd_emu10k1_efx_suspend(struct snd_emu10k1 *emu)
2546 len = emu->audigy ? 0x200 : 0x100;
2548 emu->saved_gpr[i] = snd_emu10k1_ptr_read(emu, emu->gpr_base + i, 0);
2550 len = emu->audigy ? 0x100 : 0xa0;
2552 emu->tram_val_saved[i] = snd_emu10k1_ptr_read(emu, TANKMEMDATAREGBASE + i, 0);
2553 emu->tram_addr_saved[i] = snd_emu10k1_ptr_read(emu, TANKMEMADDRREGBASE + i, 0);
2554 if (emu->audigy) {
2555 emu->tram_addr_saved[i] >>= 12;
2556 emu->tram_addr_saved[i] |=
2557 snd_emu10k1_ptr_read(emu, A_TANKMEMCTLREGBASE + i, 0) << 20;
2561 len = emu->audigy ? 2 * 1024 : 2 * 512;
2563 emu->saved_icode[i] = snd_emu10k1_efx_read(emu, i);
2566 void snd_emu10k1_efx_resume(struct snd_emu10k1 *emu)
2571 if (emu->fx8010.etram_pages.bytes > 0) {
2573 size = emu->fx8010.etram_pages.bytes / 2;
2579 outl(HCFG_LOCKTANKCACHE_MASK | inl(emu->port + HCFG), emu->port + HCFG);
2580 snd_emu10k1_ptr_write(emu, TCB, 0, emu->fx8010.etram_pages.addr);
2581 snd_emu10k1_ptr_write(emu, TCBS, 0, size_reg);
2582 outl(inl(emu->port + HCFG) & ~HCFG_LOCKTANKCACHE_MASK, emu->port + HCFG);
2585 if (emu->audigy)
2586 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg | A_DBG_SINGLE_STEP);
2588 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg | EMU10K1_DBG_SINGLE_STEP);
2590 len = emu->audigy ? 0x200 : 0x100;
2592 snd_emu10k1_ptr_write(emu, emu->gpr_base + i, 0, emu->saved_gpr[i]);
2594 len = emu->audigy ? 0x100 : 0xa0;
2596 snd_emu10k1_ptr_write(emu, TANKMEMDATAREGBASE + i, 0,
2597 emu->tram_val_saved[i]);
2598 if (! emu->audigy)
2599 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + i, 0,
2600 emu->tram_addr_saved[i]);
2602 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + i, 0,
2603 emu->tram_addr_saved[i] << 12);
2604 snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + i, 0,
2605 emu->tram_addr_saved[i] >> 20);
2609 len = emu->audigy ? 2 * 1024 : 2 * 512;
2611 snd_emu10k1_efx_write(emu, i, emu->saved_icode[i]);
2614 if (emu->audigy)
2615 snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg);
2617 snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg);