trident 66 sound/pci/trident/trident.c struct snd_trident *trident; trident 86 sound/pci/trident/trident.c &trident)) < 0) { trident 90 sound/pci/trident/trident.c card->private_data = trident; trident 92 sound/pci/trident/trident.c switch (trident->device) { trident 106 sound/pci/trident/trident.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 113 sound/pci/trident/trident.c card->shortname, trident->port, trident->irq); trident 115 sound/pci/trident/trident.c if ((err = snd_trident_pcm(trident, pcm_dev++)) < 0) { trident 119 sound/pci/trident/trident.c switch (trident->device) { trident 122 sound/pci/trident/trident.c if ((err = snd_trident_foldback_pcm(trident, pcm_dev++)) < 0) { trident 128 sound/pci/trident/trident.c if (trident->device == TRIDENT_DEVICE_ID_NX || trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 129 sound/pci/trident/trident.c if ((err = snd_trident_spdif_pcm(trident, pcm_dev++)) < 0) { trident 134 sound/pci/trident/trident.c if (trident->device != TRIDENT_DEVICE_ID_SI7018 && trident 136 sound/pci/trident/trident.c trident->midi_port, trident 139 sound/pci/trident/trident.c -1, &trident->rmidi)) < 0) { trident 144 sound/pci/trident/trident.c snd_trident_create_gameport(trident); trident 36 sound/pci/trident/trident.h #define TRID_REG(trident, x) ((trident)->port + (x)) trident 240 sound/pci/trident/trident.h struct snd_trident * trident; trident 297 sound/pci/trident/trident.h struct snd_trident *trident; trident 406 sound/pci/trident/trident.h int snd_trident_create_gameport(struct snd_trident *trident); trident 408 sound/pci/trident/trident.h int snd_trident_pcm(struct snd_trident *trident, int device); trident 409 sound/pci/trident/trident.h int snd_trident_foldback_pcm(struct snd_trident *trident, int device); trident 410 sound/pci/trident/trident.h int snd_trident_spdif_pcm(struct snd_trident *trident, int device); trident 411 sound/pci/trident/trident.h int snd_trident_attach_synthesizer(struct snd_trident * trident); trident 412 sound/pci/trident/trident.h struct snd_trident_voice *snd_trident_alloc_voice(struct snd_trident * trident, int type, trident 414 sound/pci/trident/trident.h void snd_trident_free_voice(struct snd_trident * trident, struct snd_trident_voice *voice); trident 415 sound/pci/trident/trident.h void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice); trident 416 sound/pci/trident/trident.h void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice); trident 417 sound/pci/trident/trident.h void snd_trident_write_voice_regs(struct snd_trident * trident, struct snd_trident_voice *voice); trident 421 sound/pci/trident/trident.h struct snd_util_memblk *snd_trident_alloc_pages(struct snd_trident *trident, trident 423 sound/pci/trident/trident.h int snd_trident_free_pages(struct snd_trident *trident, struct snd_util_memblk *blk); trident 424 sound/pci/trident/trident.h struct snd_util_memblk *snd_trident_synth_alloc(struct snd_trident *trident, unsigned int size); trident 425 sound/pci/trident/trident.h int snd_trident_synth_free(struct snd_trident *trident, struct snd_util_memblk *blk); trident 426 sound/pci/trident/trident.h int snd_trident_synth_copy_from_user(struct snd_trident *trident, struct snd_util_memblk *blk, trident 34 sound/pci/trident/trident_main.c static int snd_trident_pcm_mixer_build(struct snd_trident *trident, trident 37 sound/pci/trident/trident_main.c static int snd_trident_pcm_mixer_free(struct snd_trident *trident, trident 41 sound/pci/trident/trident_main.c static int snd_trident_sis_reset(struct snd_trident *trident); trident 43 sound/pci/trident/trident_main.c static void snd_trident_clear_voices(struct snd_trident * trident, trident 45 sound/pci/trident/trident_main.c static int snd_trident_free(struct snd_trident *trident); trident 53 sound/pci/trident/trident_main.c static void snd_trident_print_voice_regs(struct snd_trident *trident, int voice) trident 57 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Trident voice %i:\n", voice); trident 58 sound/pci/trident/trident_main.c outb(voice, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 59 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_LBA)); trident 60 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "LBA: 0x%x\n", val); trident 61 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC)); trident 62 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "GVSel: %i\n", val >> 31); trident 63 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Pan: 0x%x\n", (val >> 24) & 0x7f); trident 64 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Vol: 0x%x\n", (val >> 16) & 0xff); trident 65 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "CTRL: 0x%x\n", (val >> 12) & 0x0f); trident 66 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "EC: 0x%x\n", val & 0x0fff); trident 67 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_NX) { trident 68 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_DX_CSO_ALPHA_FMS)); trident 69 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "CSO: 0x%x\n", val >> 16); trident 70 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Alpha: 0x%x\n", (val >> 4) & 0x0fff); trident 71 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "FMS: 0x%x\n", val & 0x0f); trident 72 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_DX_ESO_DELTA)); trident 73 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "ESO: 0x%x\n", val >> 16); trident 74 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Delta: 0x%x\n", val & 0xffff); trident 75 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_DX_FMC_RVOL_CVOL)); trident 77 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_NX_DELTA_CSO)); trident 79 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "CSO: 0x%x\n", val & 0x00ffffff); trident 80 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_NX_DELTA_ESO)); trident 82 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Delta: 0x%x\n", tmp); trident 83 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "ESO: 0x%x\n", val & 0x00ffffff); trident 84 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, CH_NX_ALPHA_FMS_FMC_RVOL_CVOL)); trident 85 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "Alpha: 0x%x\n", val >> 20); trident 86 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "FMS: 0x%x\n", (val >> 16) & 0x0f); trident 88 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "FMC: 0x%x\n", (val >> 14) & 3); trident 89 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "RVol: 0x%x\n", (val >> 7) & 0x7f); trident 90 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "CVol: 0x%x\n", val & 0x7f); trident 111 sound/pci/trident/trident_main.c struct snd_trident *trident = ac97->private_data; trident 113 sound/pci/trident/trident_main.c spin_lock_irqsave(&trident->reg_lock, flags); trident 114 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_DX) { trident 116 sound/pci/trident/trident_main.c outl(data, TRID_REG(trident, DX_ACR1_AC97_R)); trident 118 sound/pci/trident/trident_main.c data = inl(TRID_REG(trident, DX_ACR1_AC97_R)); trident 122 sound/pci/trident/trident_main.c } else if (trident->device == TRIDENT_DEVICE_ID_NX) { trident 125 sound/pci/trident/trident_main.c outl(data, TRID_REG(trident, treg)); trident 127 sound/pci/trident/trident_main.c data = inl(TRID_REG(trident, treg)); trident 131 sound/pci/trident/trident_main.c } else if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 135 sound/pci/trident/trident_main.c outl(data, TRID_REG(trident, SI_AC97_READ)); trident 137 sound/pci/trident/trident_main.c data = inl(TRID_REG(trident, SI_AC97_READ)); trident 143 sound/pci/trident/trident_main.c if (count == 0 && !trident->ac97_detect) { trident 144 sound/pci/trident/trident_main.c dev_err(trident->card->dev, trident 150 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->reg_lock, flags); trident 174 sound/pci/trident/trident_main.c struct snd_trident *trident = ac97->private_data; trident 178 sound/pci/trident/trident_main.c spin_lock_irqsave(&trident->reg_lock, flags); trident 179 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_DX) { trident 184 sound/pci/trident/trident_main.c if ((inw(TRID_REG(trident, address)) & DX_AC97_BUSY_WRITE) == 0) trident 189 sound/pci/trident/trident_main.c } else if (trident->device == TRIDENT_DEVICE_ID_NX) { trident 194 sound/pci/trident/trident_main.c if ((inw(TRID_REG(trident, address)) & NX_AC97_BUSY_WRITE) == 0) trident 199 sound/pci/trident/trident_main.c } else if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 204 sound/pci/trident/trident_main.c if ((inw(TRID_REG(trident, address)) & (SI_AC97_BUSY_WRITE)) == 0) trident 217 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->reg_lock, flags); trident 220 sound/pci/trident/trident_main.c outl(data, TRID_REG(trident, address)); trident 221 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->reg_lock, flags); trident 236 sound/pci/trident/trident_main.c static void snd_trident_enable_eso(struct snd_trident * trident) trident 240 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, T4D_LFO_GC_CIR)); trident 243 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) trident 245 sound/pci/trident/trident_main.c outl(val, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 263 sound/pci/trident/trident_main.c static void snd_trident_disable_eso(struct snd_trident * trident) trident 267 sound/pci/trident/trident_main.c tmp = inl(TRID_REG(trident, T4D_LFO_GC_CIR)); trident 270 sound/pci/trident/trident_main.c outl(tmp, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 287 sound/pci/trident/trident_main.c void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice) trident 292 sound/pci/trident/trident_main.c outl(mask, TRID_REG(trident, reg)); trident 311 sound/pci/trident/trident_main.c void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice) trident 316 sound/pci/trident/trident_main.c outl(mask, TRID_REG(trident, reg)); trident 332 sound/pci/trident/trident_main.c static int snd_trident_allocate_pcm_channel(struct snd_trident * trident) trident 336 sound/pci/trident/trident_main.c if (trident->ChanPCMcnt >= trident->ChanPCM) trident 339 sound/pci/trident/trident_main.c if (!(trident->ChanMap[T4D_BANK_B] & (1 << idx))) { trident 340 sound/pci/trident/trident_main.c trident->ChanMap[T4D_BANK_B] |= 1 << idx; trident 341 sound/pci/trident/trident_main.c trident->ChanPCMcnt++; trident 360 sound/pci/trident/trident_main.c static void snd_trident_free_pcm_channel(struct snd_trident *trident, int channel) trident 365 sound/pci/trident/trident_main.c if (trident->ChanMap[T4D_BANK_B] & (1 << channel)) { trident 366 sound/pci/trident/trident_main.c trident->ChanMap[T4D_BANK_B] &= ~(1 << channel); trident 367 sound/pci/trident/trident_main.c trident->ChanPCMcnt--; trident 382 sound/pci/trident/trident_main.c static int snd_trident_allocate_synth_channel(struct snd_trident * trident) trident 387 sound/pci/trident/trident_main.c if (!(trident->ChanMap[T4D_BANK_A] & (1 << idx))) { trident 388 sound/pci/trident/trident_main.c trident->ChanMap[T4D_BANK_A] |= 1 << idx; trident 389 sound/pci/trident/trident_main.c trident->synth.ChanSynthCount++; trident 408 sound/pci/trident/trident_main.c static void snd_trident_free_synth_channel(struct snd_trident *trident, int channel) trident 413 sound/pci/trident/trident_main.c if (trident->ChanMap[T4D_BANK_A] & (1 << channel)) { trident 414 sound/pci/trident/trident_main.c trident->ChanMap[T4D_BANK_A] &= ~(1 << channel); trident 415 sound/pci/trident/trident_main.c trident->synth.ChanSynthCount--; trident 431 sound/pci/trident/trident_main.c void snd_trident_write_voice_regs(struct snd_trident * trident, trident 445 sound/pci/trident/trident_main.c switch (trident->device) { trident 478 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 479 sound/pci/trident/trident_main.c outl(regs[0], TRID_REG(trident, CH_START + 0)); trident 480 sound/pci/trident/trident_main.c outl(regs[1], TRID_REG(trident, CH_START + 4)); trident 481 sound/pci/trident/trident_main.c outl(regs[2], TRID_REG(trident, CH_START + 8)); trident 482 sound/pci/trident/trident_main.c outl(regs[3], TRID_REG(trident, CH_START + 12)); trident 483 sound/pci/trident/trident_main.c outl(regs[4], TRID_REG(trident, CH_START + 16)); trident 486 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, "written %i channel:\n", voice->number); trident 487 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, " regs[0] = 0x%x/0x%x\n", trident 488 sound/pci/trident/trident_main.c regs[0], inl(TRID_REG(trident, CH_START + 0))); trident 489 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, " regs[1] = 0x%x/0x%x\n", trident 490 sound/pci/trident/trident_main.c regs[1], inl(TRID_REG(trident, CH_START + 4))); trident 491 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, " regs[2] = 0x%x/0x%x\n", trident 492 sound/pci/trident/trident_main.c regs[2], inl(TRID_REG(trident, CH_START + 8))); trident 493 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, " regs[3] = 0x%x/0x%x\n", trident 494 sound/pci/trident/trident_main.c regs[3], inl(TRID_REG(trident, CH_START + 12))); trident 495 sound/pci/trident/trident_main.c dev_dbg(trident->card->dev, " regs[4] = 0x%x/0x%x\n", trident 496 sound/pci/trident/trident_main.c regs[4], inl(TRID_REG(trident, CH_START + 16))); trident 514 sound/pci/trident/trident_main.c static void snd_trident_write_cso_reg(struct snd_trident * trident, trident 519 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 520 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_NX) { trident 521 sound/pci/trident/trident_main.c outw(voice->CSO, TRID_REG(trident, CH_DX_CSO_ALPHA_FMS) + 2); trident 524 sound/pci/trident/trident_main.c (voice->CSO & 0x00ffffff), TRID_REG(trident, CH_NX_DELTA_CSO)); trident 540 sound/pci/trident/trident_main.c static void snd_trident_write_eso_reg(struct snd_trident * trident, trident 545 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 546 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_NX) { trident 547 sound/pci/trident/trident_main.c outw(voice->ESO, TRID_REG(trident, CH_DX_ESO_DELTA) + 2); trident 550 sound/pci/trident/trident_main.c TRID_REG(trident, CH_NX_DELTA_ESO)); trident 566 sound/pci/trident/trident_main.c static void snd_trident_write_vol_reg(struct snd_trident * trident, trident 571 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 572 sound/pci/trident/trident_main.c switch (trident->device) { trident 575 sound/pci/trident/trident_main.c outb(voice->Vol >> 2, TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC + 2)); trident 580 sound/pci/trident/trident_main.c TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC)); trident 597 sound/pci/trident/trident_main.c static void snd_trident_write_pan_reg(struct snd_trident * trident, trident 602 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 604 sound/pci/trident/trident_main.c TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC + 3)); trident 619 sound/pci/trident/trident_main.c static void snd_trident_write_rvol_reg(struct snd_trident * trident, trident 624 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 627 sound/pci/trident/trident_main.c TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ? trident 643 sound/pci/trident/trident_main.c static void snd_trident_write_cvol_reg(struct snd_trident * trident, trident 648 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 651 sound/pci/trident/trident_main.c TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ? trident 808 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 815 sound/pci/trident/trident_main.c if (trident->tlb.entries) { trident 818 sound/pci/trident/trident_main.c snd_trident_free_pages(trident, voice->memblk); trident 819 sound/pci/trident/trident_main.c voice->memblk = snd_trident_alloc_pages(trident, substream); trident 842 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 851 sound/pci/trident/trident_main.c evoice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); trident 859 sound/pci/trident/trident_main.c snd_trident_free_voice(trident, evoice); trident 903 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 908 sound/pci/trident/trident_main.c if (trident->tlb.entries) { trident 910 sound/pci/trident/trident_main.c snd_trident_free_pages(trident, voice->memblk); trident 916 sound/pci/trident/trident_main.c snd_trident_free_voice(trident, evoice); trident 935 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 939 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[substream->number]; trident 941 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 973 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, voice); trident 983 sound/pci/trident/trident_main.c evoice->GVSel = trident->device == TRIDENT_DEVICE_ID_SI7018 ? 0 : 1; trident 996 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, evoice); trident 1002 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1038 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1043 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1046 sound/pci/trident/trident_main.c outb(0, TRID_REG(trident, LEGACY_DMAR15)); trident 1049 sound/pci/trident/trident_main.c outb(0x54, TRID_REG(trident, LEGACY_DMAR11)); trident 1053 sound/pci/trident/trident_main.c outl(voice->LBA, TRID_REG(trident, LEGACY_DMAR0)); trident 1059 sound/pci/trident/trident_main.c outb((ESO_bytes & 0x00ff0000) >> 16, TRID_REG(trident, LEGACY_DMAR6)); trident 1060 sound/pci/trident/trident_main.c outw((ESO_bytes & 0x0000ffff), TRID_REG(trident, LEGACY_DMAR4)); trident 1065 sound/pci/trident/trident_main.c outw(val, TRID_REG(trident, T4D_SBDELTA_DELTA_R)); trident 1074 sound/pci/trident/trident_main.c outl((val << 16) | val, TRID_REG(trident, T4D_SBBL_SBCL)); trident 1078 sound/pci/trident/trident_main.c trident->bDMAStart = 0x19; // 0001 1001b trident 1081 sound/pci/trident/trident_main.c trident->bDMAStart |= 0x80; trident 1083 sound/pci/trident/trident_main.c trident->bDMAStart |= 0x20; trident 1085 sound/pci/trident/trident_main.c trident->bDMAStart |= 0x40; trident 1110 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, voice); trident 1112 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1152 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1159 sound/pci/trident/trident_main.c snd_trident_free_voice(trident, evoice); trident 1178 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1183 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1208 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, voice); trident 1226 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, evoice); trident 1232 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1249 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1254 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1283 sound/pci/trident/trident_main.c outb(((voice->number & 0x3f) | 0x80), TRID_REG(trident, T4D_RCI + voice->foldback_chan)); trident 1285 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, voice); trident 1295 sound/pci/trident/trident_main.c evoice->GVSel = trident->device == TRIDENT_DEVICE_ID_SI7018 ? 0 : 1; trident 1303 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, evoice); trident 1309 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1328 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1336 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 1343 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1344 sound/pci/trident/trident_main.c old_bits = trident->spdif_pcm_bits; trident 1346 sound/pci/trident/trident_main.c trident->spdif_pcm_bits &= ~IEC958_AES0_PRO_FS; trident 1348 sound/pci/trident/trident_main.c trident->spdif_pcm_bits &= ~(IEC958_AES3_CON_FS << 24); trident 1350 sound/pci/trident/trident_main.c trident->spdif_pcm_ctrl = 0x3c; // 48000 Hz trident 1351 sound/pci/trident/trident_main.c trident->spdif_pcm_bits |= trident 1352 sound/pci/trident/trident_main.c trident->spdif_bits & IEC958_AES0_PROFESSIONAL ? trident 1357 sound/pci/trident/trident_main.c trident->spdif_pcm_ctrl = 0x3e; // 44100 Hz trident 1358 sound/pci/trident/trident_main.c trident->spdif_pcm_bits |= trident 1359 sound/pci/trident/trident_main.c trident->spdif_bits & IEC958_AES0_PROFESSIONAL ? trident 1364 sound/pci/trident/trident_main.c trident->spdif_pcm_ctrl = 0x3d; // 32000 Hz trident 1365 sound/pci/trident/trident_main.c trident->spdif_pcm_bits |= trident 1366 sound/pci/trident/trident_main.c trident->spdif_bits & IEC958_AES0_PROFESSIONAL ? trident 1370 sound/pci/trident/trident_main.c change = old_bits != trident->spdif_pcm_bits; trident 1371 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1374 sound/pci/trident/trident_main.c snd_ctl_notify(trident->card, SNDRV_CTL_EVENT_MASK_VALUE, &trident->spdif_pcm_ctl->id); trident 1392 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1396 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[substream->number]; trident 1400 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1402 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 1440 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, voice); trident 1442 sound/pci/trident/trident_main.c outw((RESO & 0xffff), TRID_REG(trident, NX_SPESO)); trident 1443 sound/pci/trident/trident_main.c outb((RESO >> 16), TRID_REG(trident, NX_SPESO + 2)); trident 1444 sound/pci/trident/trident_main.c outl((LBAO & 0xfffffffc), TRID_REG(trident, NX_SPLBA)); trident 1445 sound/pci/trident/trident_main.c outw((voice->CSO & 0xffff), TRID_REG(trident, NX_SPCTRL_SPCSO)); trident 1446 sound/pci/trident/trident_main.c outb((voice->CSO >> 16), TRID_REG(trident, NX_SPCTRL_SPCSO + 2)); trident 1449 sound/pci/trident/trident_main.c outb(trident->spdif_pcm_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3)); trident 1450 sound/pci/trident/trident_main.c outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 1479 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, voice); trident 1489 sound/pci/trident/trident_main.c evoice->GVSel = trident->device == TRIDENT_DEVICE_ID_SI7018 ? 0 : 1; trident 1497 sound/pci/trident/trident_main.c snd_trident_write_voice_regs(trident, evoice); trident 1503 sound/pci/trident/trident_main.c outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 1504 sound/pci/trident/trident_main.c temp = inl(TRID_REG(trident, T4D_LFO_GC_CIR)); trident 1506 sound/pci/trident/trident_main.c outl(temp, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 1507 sound/pci/trident/trident_main.c temp = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 1509 sound/pci/trident/trident_main.c outl(temp, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 1512 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1533 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1554 sound/pci/trident/trident_main.c spin_lock(&trident->reg_lock); trident 1555 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, T4D_STIMER)) & 0x00ffffff; trident 1557 sound/pci/trident/trident_main.c if ((struct snd_trident *) snd_pcm_substream_chip(s) == trident) { trident 1583 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 1584 sound/pci/trident/trident_main.c outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 1585 sound/pci/trident/trident_main.c val = trident->spdif_pcm_ctrl; trident 1588 sound/pci/trident/trident_main.c outb(val, TRID_REG(trident, NX_SPCTRL_SPCSO + 3)); trident 1590 sound/pci/trident/trident_main.c outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 1591 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) | SPDIF_EN; trident 1592 sound/pci/trident/trident_main.c outl(val, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 1596 sound/pci/trident/trident_main.c outl(what, TRID_REG(trident, T4D_STOP_B)); trident 1597 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, T4D_AINTEN_B)); trident 1603 sound/pci/trident/trident_main.c outl(val, TRID_REG(trident, T4D_AINTEN_B)); trident 1605 sound/pci/trident/trident_main.c outl(what, TRID_REG(trident, T4D_START_B)); trident 1607 sound/pci/trident/trident_main.c if (capture_flag && trident->device != TRIDENT_DEVICE_ID_SI7018) trident 1608 sound/pci/trident/trident_main.c outb(trident->bDMAStart, TRID_REG(trident, T4D_SBCTRL_SBE2R_SBDD)); trident 1610 sound/pci/trident/trident_main.c if (capture_flag && trident->device != TRIDENT_DEVICE_ID_SI7018) trident 1611 sound/pci/trident/trident_main.c outb(0x00, TRID_REG(trident, T4D_SBCTRL_SBE2R_SBDD)); trident 1613 sound/pci/trident/trident_main.c spin_unlock(&trident->reg_lock); trident 1630 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1638 sound/pci/trident/trident_main.c spin_lock(&trident->reg_lock); trident 1640 sound/pci/trident/trident_main.c outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 1642 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_NX) { trident 1643 sound/pci/trident/trident_main.c cso = inw(TRID_REG(trident, CH_DX_CSO_ALPHA_FMS + 2)); trident 1645 sound/pci/trident/trident_main.c cso = (unsigned int) inl(TRID_REG(trident, CH_NX_DELTA_CSO)) & 0x00ffffff; trident 1648 sound/pci/trident/trident_main.c spin_unlock(&trident->reg_lock); trident 1669 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1677 sound/pci/trident/trident_main.c result = inw(TRID_REG(trident, T4D_SBBL_SBCL)); trident 1699 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1707 sound/pci/trident/trident_main.c result = inl(TRID_REG(trident, NX_SPCTRL_SPCSO)) & 0x00ffffff; trident 1834 sound/pci/trident/trident_main.c struct snd_trident *trident; trident 1837 sound/pci/trident/trident_main.c trident = voice->trident; trident 1838 sound/pci/trident/trident_main.c snd_trident_free_voice(trident, voice); trident 1844 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1848 sound/pci/trident/trident_main.c voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); trident 1851 sound/pci/trident/trident_main.c snd_trident_pcm_mixer_build(trident, voice, substream); trident 1872 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1876 sound/pci/trident/trident_main.c snd_trident_pcm_mixer_free(trident, voice, substream); trident 1893 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1897 sound/pci/trident/trident_main.c voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); trident 1902 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1903 sound/pci/trident/trident_main.c trident->spdif_pcm_bits = trident->spdif_bits; trident 1904 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1908 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 1914 sound/pci/trident/trident_main.c trident->spdif_pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; trident 1915 sound/pci/trident/trident_main.c snd_ctl_notify(trident->card, SNDRV_CTL_EVENT_MASK_VALUE | trident 1916 sound/pci/trident/trident_main.c SNDRV_CTL_EVENT_MASK_INFO, &trident->spdif_pcm_ctl->id); trident 1934 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1937 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 1939 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 1940 sound/pci/trident/trident_main.c outb(trident->spdif_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3)); trident 1941 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 1943 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 1944 sound/pci/trident/trident_main.c temp = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 1945 sound/pci/trident/trident_main.c if (trident->spdif_ctrl) { trident 1950 sound/pci/trident/trident_main.c outl(temp, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 1952 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 1953 sound/pci/trident/trident_main.c trident->spdif_pcm_ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; trident 1954 sound/pci/trident/trident_main.c snd_ctl_notify(trident->card, SNDRV_CTL_EVENT_MASK_VALUE | trident 1955 sound/pci/trident/trident_main.c SNDRV_CTL_EVENT_MASK_INFO, &trident->spdif_pcm_ctl->id); trident 1972 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 1976 sound/pci/trident/trident_main.c voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); trident 2016 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 2020 sound/pci/trident/trident_main.c voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); trident 2043 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_pcm_substream_chip(substream); trident 2049 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2050 sound/pci/trident/trident_main.c outb(0x00, TRID_REG(trident, T4D_RCI + voice->foldback_chan)); trident 2051 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2160 sound/pci/trident/trident_main.c int snd_trident_pcm(struct snd_trident *trident, int device) trident 2165 sound/pci/trident/trident_main.c if ((err = snd_pcm_new(trident->card, "trident_dx_nx", device, trident->ChanPCM, 1, &pcm)) < 0) trident 2168 sound/pci/trident/trident_main.c pcm->private_data = trident; trident 2170 sound/pci/trident/trident_main.c if (trident->tlb.entries) { trident 2176 sound/pci/trident/trident_main.c trident->device != TRIDENT_DEVICE_ID_SI7018 ? trident 2183 sound/pci/trident/trident_main.c trident->pcm = pcm; trident 2185 sound/pci/trident/trident_main.c if (trident->tlb.entries) { trident 2189 sound/pci/trident/trident_main.c snd_dma_pci_data(trident->pci), trident 2192 sound/pci/trident/trident_main.c SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(trident->pci), trident 2196 sound/pci/trident/trident_main.c snd_dma_pci_data(trident->pci), 64*1024, 128*1024); trident 2213 sound/pci/trident/trident_main.c int snd_trident_foldback_pcm(struct snd_trident *trident, int device) trident 2220 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX) trident 2222 sound/pci/trident/trident_main.c if ((err = snd_pcm_new(trident->card, "trident_dx_nx", device, 0, num_chan, &foldback)) < 0) trident 2225 sound/pci/trident/trident_main.c foldback->private_data = trident; trident 2226 sound/pci/trident/trident_main.c if (trident->tlb.entries) trident 2242 sound/pci/trident/trident_main.c trident->foldback = foldback; trident 2244 sound/pci/trident/trident_main.c if (trident->tlb.entries) trident 2246 sound/pci/trident/trident_main.c snd_dma_pci_data(trident->pci), 0, 128*1024); trident 2249 sound/pci/trident/trident_main.c snd_dma_pci_data(trident->pci), 64*1024, 128*1024); trident 2265 sound/pci/trident/trident_main.c int snd_trident_spdif_pcm(struct snd_trident *trident, int device) trident 2270 sound/pci/trident/trident_main.c if ((err = snd_pcm_new(trident->card, "trident_dx_nx IEC958", device, 1, 0, &spdif)) < 0) trident 2273 sound/pci/trident/trident_main.c spdif->private_data = trident; trident 2274 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 2281 sound/pci/trident/trident_main.c trident->spdif = spdif; trident 2283 sound/pci/trident/trident_main.c snd_pcm_lib_preallocate_pages_for_all(spdif, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(trident->pci), 64*1024, 128*1024); trident 2304 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2307 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2308 sound/pci/trident/trident_main.c val = trident->spdif_ctrl; trident 2310 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2317 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2322 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2324 sound/pci/trident/trident_main.c change = trident->spdif_ctrl != val; trident 2325 sound/pci/trident/trident_main.c trident->spdif_ctrl = val; trident 2326 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 2327 sound/pci/trident/trident_main.c if ((inb(TRID_REG(trident, NX_SPCTRL_SPCSO + 3)) & 0x10) == 0) { trident 2328 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 2329 sound/pci/trident/trident_main.c outb(trident->spdif_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3)); trident 2332 sound/pci/trident/trident_main.c if (trident->spdif == NULL) { trident 2334 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 2335 sound/pci/trident/trident_main.c temp = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & ~SPDIF_EN; trident 2338 sound/pci/trident/trident_main.c outl(temp, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 2341 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2372 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2374 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2375 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[0] = (trident->spdif_bits >> 0) & 0xff; trident 2376 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[1] = (trident->spdif_bits >> 8) & 0xff; trident 2377 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[2] = (trident->spdif_bits >> 16) & 0xff; trident 2378 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[3] = (trident->spdif_bits >> 24) & 0xff; trident 2379 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2386 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2394 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2395 sound/pci/trident/trident_main.c change = trident->spdif_bits != val; trident 2396 sound/pci/trident/trident_main.c trident->spdif_bits = val; trident 2397 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 2398 sound/pci/trident/trident_main.c if ((inb(TRID_REG(trident, NX_SPCTRL_SPCSO + 3)) & 0x10) == 0) trident 2399 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 2401 sound/pci/trident/trident_main.c if (trident->spdif == NULL) trident 2402 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 2404 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2467 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2469 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2470 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[0] = (trident->spdif_pcm_bits >> 0) & 0xff; trident 2471 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[1] = (trident->spdif_pcm_bits >> 8) & 0xff; trident 2472 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[2] = (trident->spdif_pcm_bits >> 16) & 0xff; trident 2473 sound/pci/trident/trident_main.c ucontrol->value.iec958.status[3] = (trident->spdif_pcm_bits >> 24) & 0xff; trident 2474 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2481 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2489 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2490 sound/pci/trident/trident_main.c change = trident->spdif_pcm_bits != val; trident 2491 sound/pci/trident/trident_main.c trident->spdif_pcm_bits = val; trident 2492 sound/pci/trident/trident_main.c if (trident->spdif != NULL) { trident 2493 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 2494 sound/pci/trident/trident_main.c outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 2496 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 2499 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2524 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2527 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2528 sound/pci/trident/trident_main.c val = trident->ac97_ctrl = inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT)); trident 2530 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2537 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2541 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2542 sound/pci/trident/trident_main.c val = trident->ac97_ctrl = inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT)); trident 2546 sound/pci/trident/trident_main.c change = val != trident->ac97_ctrl; trident 2547 sound/pci/trident/trident_main.c trident->ac97_ctrl = val; trident 2548 sound/pci/trident/trident_main.c outl(trident->ac97_ctrl = val, TRID_REG(trident, NX_ACR0_AC97_COM_STAT)); trident 2549 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2582 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2585 sound/pci/trident/trident_main.c val = trident->musicvol_wavevol; trident 2596 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2600 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2601 sound/pci/trident/trident_main.c val = trident->musicvol_wavevol; trident 2605 sound/pci/trident/trident_main.c change = val != trident->musicvol_wavevol; trident 2606 sound/pci/trident/trident_main.c outl(trident->musicvol_wavevol = val, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL)); trident 2607 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2642 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2648 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) trident 2656 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2657 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2659 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 2670 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2671 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2675 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 2680 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2684 sound/pci/trident/trident_main.c snd_trident_write_vol_reg(trident, mix->voice, val); trident 2685 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2720 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2721 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2735 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2736 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2744 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2748 sound/pci/trident/trident_main.c snd_trident_write_pan_reg(trident, mix->voice, val); trident 2749 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2783 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2784 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2793 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2794 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2799 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2803 sound/pci/trident/trident_main.c snd_trident_write_rvol_reg(trident, mix->voice, val); trident 2804 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2841 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2842 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2851 sound/pci/trident/trident_main.c struct snd_trident *trident = snd_kcontrol_chip(kcontrol); trident 2852 sound/pci/trident/trident_main.c struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; trident 2857 sound/pci/trident/trident_main.c spin_lock_irq(&trident->reg_lock); trident 2861 sound/pci/trident/trident_main.c snd_trident_write_cvol_reg(trident, mix->voice, val); trident 2862 sound/pci/trident/trident_main.c spin_unlock_irq(&trident->reg_lock); trident 2895 sound/pci/trident/trident_main.c static void snd_trident_notify_pcm_change(struct snd_trident *trident, trident 2899 sound/pci/trident/trident_main.c snd_trident_notify_pcm_change1(trident->card, trident->ctl_vol, num, activate); trident 2900 sound/pci/trident/trident_main.c snd_trident_notify_pcm_change1(trident->card, trident->ctl_pan, num, activate); trident 2901 sound/pci/trident/trident_main.c snd_trident_notify_pcm_change1(trident->card, trident->ctl_rvol, num, activate); trident 2902 sound/pci/trident/trident_main.c snd_trident_notify_pcm_change1(trident->card, trident->ctl_cvol, num, activate); trident 2905 sound/pci/trident/trident_main.c static int snd_trident_pcm_mixer_build(struct snd_trident *trident, trident 2911 sound/pci/trident/trident_main.c if (snd_BUG_ON(!trident || !voice || !substream)) trident 2913 sound/pci/trident/trident_main.c tmix = &trident->pcm_mixer[substream->number]; trident 2919 sound/pci/trident/trident_main.c snd_trident_notify_pcm_change(trident, tmix, substream->number, 1); trident 2923 sound/pci/trident/trident_main.c static int snd_trident_pcm_mixer_free(struct snd_trident *trident, struct snd_trident_voice *voice, struct snd_pcm_substream *substream) trident 2927 sound/pci/trident/trident_main.c if (snd_BUG_ON(!trident || !substream)) trident 2929 sound/pci/trident/trident_main.c tmix = &trident->pcm_mixer[substream->number]; trident 2931 sound/pci/trident/trident_main.c snd_trident_notify_pcm_change(trident, tmix, substream->number, 0); trident 2946 sound/pci/trident/trident_main.c static int snd_trident_mixer(struct snd_trident *trident, int pcm_spdif_device) trident 2949 sound/pci/trident/trident_main.c struct snd_card *card = trident->card; trident 2962 sound/pci/trident/trident_main.c if ((err = snd_ac97_bus(trident->card, 0, &ops, NULL, &trident->ac97_bus)) < 0) trident 2966 sound/pci/trident/trident_main.c _ac97.private_data = trident; trident 2967 sound/pci/trident/trident_main.c trident->ac97_detect = 1; trident 2970 sound/pci/trident/trident_main.c if ((err = snd_ac97_mixer(trident->ac97_bus, &_ac97, &trident->ac97)) < 0) { trident 2971 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 2972 sound/pci/trident/trident_main.c if ((err = snd_trident_sis_reset(trident)) < 0) trident 2982 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018 && trident 2983 sound/pci/trident/trident_main.c (inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & SI_AC97_PRIMARY_READY) != 0) { trident 2985 sound/pci/trident/trident_main.c err = snd_ac97_mixer(trident->ac97_bus, &_ac97, &trident->ac97_sec); trident 2987 sound/pci/trident/trident_main.c dev_err(trident->card->dev, trident 2992 sound/pci/trident/trident_main.c err = snd_ac97_modem(trident->card, &_ac97, &mc97); trident 2994 sound/pci/trident/trident_main.c dev_err(trident->card->dev, trident 3000 sound/pci/trident/trident_main.c trident->ac97_detect = 0; trident 3002 sound/pci/trident/trident_main.c if (trident->device != TRIDENT_DEVICE_ID_SI7018) { trident 3003 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_trident_vol_wave_control, trident))) < 0) trident 3006 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_trident_vol_music_control, trident))) < 0) trident 3009 sound/pci/trident/trident_main.c outl(trident->musicvol_wavevol = 0x00000000, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL)); trident 3011 sound/pci/trident/trident_main.c outl(trident->musicvol_wavevol = 0xffff0000, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL)); trident 3017 sound/pci/trident/trident_main.c tmix = &trident->pcm_mixer[idx]; trident 3020 sound/pci/trident/trident_main.c if ((trident->ctl_vol = snd_ctl_new1(&snd_trident_pcm_vol_control, trident)) == NULL) trident 3022 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, trident->ctl_vol))) trident 3025 sound/pci/trident/trident_main.c if ((trident->ctl_pan = snd_ctl_new1(&snd_trident_pcm_pan_control, trident)) == NULL) trident 3027 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, trident->ctl_pan))) trident 3030 sound/pci/trident/trident_main.c if ((trident->ctl_rvol = snd_ctl_new1(&snd_trident_pcm_rvol_control, trident)) == NULL) trident 3032 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, trident->ctl_rvol))) trident 3035 sound/pci/trident/trident_main.c if ((trident->ctl_cvol = snd_ctl_new1(&snd_trident_pcm_cvol_control, trident)) == NULL) trident 3037 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, trident->ctl_cvol))) trident 3040 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX) { trident 3041 sound/pci/trident/trident_main.c if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_trident_ac97_rear_control, trident))) < 0) trident 3045 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX || trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 3047 sound/pci/trident/trident_main.c kctl = snd_ctl_new1(&snd_trident_spdif_control, trident); trident 3052 sound/pci/trident/trident_main.c if (trident->ac97->ext_id & AC97_EI_SPDIF) trident 3054 sound/pci/trident/trident_main.c if (trident->ac97_sec && (trident->ac97_sec->ext_id & AC97_EI_SPDIF)) trident 3061 sound/pci/trident/trident_main.c kctl = snd_ctl_new1(&snd_trident_spdif_default, trident); trident 3071 sound/pci/trident/trident_main.c kctl = snd_ctl_new1(&snd_trident_spdif_mask, trident); trident 3081 sound/pci/trident/trident_main.c kctl = snd_ctl_new1(&snd_trident_spdif_stream, trident); trident 3090 sound/pci/trident/trident_main.c trident->spdif_pcm_ctl = kctl; trident 3218 sound/pci/trident/trident_main.c static int snd_trident_sis_reset(struct snd_trident *trident) trident 3224 sound/pci/trident/trident_main.c r = trident->in_suspend ? 0 : 2; /* count of retries */ trident 3226 sound/pci/trident/trident_main.c pci_write_config_byte(trident->pci, 0x46, 0x04); /* SOFTWARE RESET */ trident 3228 sound/pci/trident/trident_main.c pci_write_config_byte(trident->pci, 0x46, 0x00); trident 3231 sound/pci/trident/trident_main.c outb(0x00, TRID_REG(trident, SI_AC97_GPIO)); trident 3234 sound/pci/trident/trident_main.c outl(i, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 3238 sound/pci/trident/trident_main.c outl(i, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 3243 sound/pci/trident/trident_main.c if ((inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & SI_AC97_PRIMARY_READY) != 0) trident 3245 sound/pci/trident/trident_main.c do_delay(trident); trident 3247 sound/pci/trident/trident_main.c dev_err(trident->card->dev, "AC'97 codec ready error [0x%x]\n", trident 3248 sound/pci/trident/trident_main.c inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL))); trident 3252 sound/pci/trident/trident_main.c do_delay(trident); trident 3259 sound/pci/trident/trident_main.c if ((inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & SI_AC97_SECONDARY_READY) != 0) trident 3261 sound/pci/trident/trident_main.c do_delay(trident); trident 3264 sound/pci/trident/trident_main.c outl(BANK_B_EN, TRID_REG(trident, T4D_LFO_GC_CIR)); trident 3275 sound/pci/trident/trident_main.c struct snd_trident *trident = entry->private_data; trident 3278 sound/pci/trident/trident_main.c switch (trident->device) { trident 3292 sound/pci/trident/trident_main.c snd_iprintf(buffer, "Spurious IRQs : %d\n", trident->spurious_irq_count); trident 3293 sound/pci/trident/trident_main.c snd_iprintf(buffer, "Spurious IRQ dlta: %d\n", trident->spurious_irq_max_delta); trident 3294 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX || trident->device == TRIDENT_DEVICE_ID_SI7018) trident 3295 sound/pci/trident/trident_main.c snd_iprintf(buffer, "IEC958 Mixer Out : %s\n", trident->spdif_ctrl == 0x28 ? "on" : "off"); trident 3296 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX) { trident 3297 sound/pci/trident/trident_main.c snd_iprintf(buffer, "Rear Speakers : %s\n", trident->ac97_ctrl & 0x00000010 ? "on" : "off"); trident 3298 sound/pci/trident/trident_main.c if (trident->tlb.entries) { trident 3300 sound/pci/trident/trident_main.c snd_iprintf(buffer, "Memory Maximum : %d\n", trident->tlb.memhdr->size); trident 3301 sound/pci/trident/trident_main.c snd_iprintf(buffer, "Memory Used : %d\n", trident->tlb.memhdr->used); trident 3302 sound/pci/trident/trident_main.c snd_iprintf(buffer, "Memory Free : %d\n", snd_util_mem_avail(trident->tlb.memhdr)); trident 3307 sound/pci/trident/trident_main.c static void snd_trident_proc_init(struct snd_trident *trident) trident 3311 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_SI7018) trident 3313 sound/pci/trident/trident_main.c snd_card_ro_proc_new(trident->card, s, trident, snd_trident_proc_read); trident 3318 sound/pci/trident/trident_main.c struct snd_trident *trident = device->device_data; trident 3319 sound/pci/trident/trident_main.c return snd_trident_free(trident); trident 3334 sound/pci/trident/trident_main.c static int snd_trident_tlb_alloc(struct snd_trident *trident) trident 3341 sound/pci/trident/trident_main.c if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(trident->pci), trident 3342 sound/pci/trident/trident_main.c 2 * SNDRV_TRIDENT_MAX_PAGES * 4, &trident->tlb.buffer) < 0) { trident 3343 sound/pci/trident/trident_main.c dev_err(trident->card->dev, "unable to allocate TLB buffer\n"); trident 3346 sound/pci/trident/trident_main.c trident->tlb.entries = (__le32 *)ALIGN((unsigned long)trident->tlb.buffer.area, SNDRV_TRIDENT_MAX_PAGES * 4); trident 3347 sound/pci/trident/trident_main.c trident->tlb.entries_dmaaddr = ALIGN(trident->tlb.buffer.addr, SNDRV_TRIDENT_MAX_PAGES * 4); trident 3349 sound/pci/trident/trident_main.c trident->tlb.shadow_entries = trident 3352 sound/pci/trident/trident_main.c if (!trident->tlb.shadow_entries) trident 3356 sound/pci/trident/trident_main.c if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(trident->pci), trident 3357 sound/pci/trident/trident_main.c SNDRV_TRIDENT_PAGE_SIZE, &trident->tlb.silent_page) < 0) { trident 3358 sound/pci/trident/trident_main.c dev_err(trident->card->dev, "unable to allocate silent page\n"); trident 3361 sound/pci/trident/trident_main.c memset(trident->tlb.silent_page.area, 0, SNDRV_TRIDENT_PAGE_SIZE); trident 3363 sound/pci/trident/trident_main.c trident->tlb.entries[i] = cpu_to_le32(trident->tlb.silent_page.addr & ~(SNDRV_TRIDENT_PAGE_SIZE-1)); trident 3364 sound/pci/trident/trident_main.c trident->tlb.shadow_entries[i] = (unsigned long)trident->tlb.silent_page.area; trident 3368 sound/pci/trident/trident_main.c trident->tlb.memhdr = snd_util_memhdr_new(SNDRV_TRIDENT_PAGE_SIZE * SNDRV_TRIDENT_MAX_PAGES); trident 3369 sound/pci/trident/trident_main.c if (trident->tlb.memhdr == NULL) trident 3372 sound/pci/trident/trident_main.c trident->tlb.memhdr->block_extra_size = sizeof(struct snd_trident_memblk_arg); trident 3380 sound/pci/trident/trident_main.c static void snd_trident_stop_all_voices(struct snd_trident *trident) trident 3382 sound/pci/trident/trident_main.c outl(0xffffffff, TRID_REG(trident, T4D_STOP_A)); trident 3383 sound/pci/trident/trident_main.c outl(0xffffffff, TRID_REG(trident, T4D_STOP_B)); trident 3384 sound/pci/trident/trident_main.c outl(0, TRID_REG(trident, T4D_AINTEN_A)); trident 3385 sound/pci/trident/trident_main.c outl(0, TRID_REG(trident, T4D_AINTEN_B)); trident 3388 sound/pci/trident/trident_main.c static int snd_trident_4d_dx_init(struct snd_trident *trident) trident 3390 sound/pci/trident/trident_main.c struct pci_dev *pci = trident->pci; trident 3403 sound/pci/trident/trident_main.c outl(0x00000001, TRID_REG(trident, DX_ACR2_AC97_COM_STAT)); trident 3405 sound/pci/trident/trident_main.c outl(0x00000000, TRID_REG(trident, DX_ACR2_AC97_COM_STAT)); trident 3407 sound/pci/trident/trident_main.c trident->ac97_ctrl = 0x0000004a; trident 3408 sound/pci/trident/trident_main.c outl(trident->ac97_ctrl, TRID_REG(trident, DX_ACR2_AC97_COM_STAT)); trident 3412 sound/pci/trident/trident_main.c if ((inl(TRID_REG(trident, DX_ACR2_AC97_COM_STAT)) & 0x0010) != 0) trident 3414 sound/pci/trident/trident_main.c do_delay(trident); trident 3416 sound/pci/trident/trident_main.c dev_err(trident->card->dev, "AC'97 codec ready error\n"); trident 3420 sound/pci/trident/trident_main.c snd_trident_stop_all_voices(trident); trident 3428 sound/pci/trident/trident_main.c static int snd_trident_4d_nx_init(struct snd_trident *trident) trident 3430 sound/pci/trident/trident_main.c struct pci_dev *pci = trident->pci; trident 3444 sound/pci/trident/trident_main.c outl(0x00000001, TRID_REG(trident, NX_ACR0_AC97_COM_STAT)); trident 3446 sound/pci/trident/trident_main.c outl(0x00000000, TRID_REG(trident, NX_ACR0_AC97_COM_STAT)); trident 3450 sound/pci/trident/trident_main.c if ((inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT)) & 0x0008) != 0) trident 3452 sound/pci/trident/trident_main.c do_delay(trident); trident 3454 sound/pci/trident/trident_main.c dev_err(trident->card->dev, "AC'97 codec ready error [0x%x]\n", trident 3455 sound/pci/trident/trident_main.c inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT))); trident 3460 sound/pci/trident/trident_main.c trident->ac97_ctrl = 0x00000002; trident 3461 sound/pci/trident/trident_main.c outl(trident->ac97_ctrl, TRID_REG(trident, NX_ACR0_AC97_COM_STAT)); trident 3463 sound/pci/trident/trident_main.c outl(NX_SB_IRQ_DISABLE, TRID_REG(trident, T4D_MISCINT)); trident 3465 sound/pci/trident/trident_main.c snd_trident_stop_all_voices(trident); trident 3467 sound/pci/trident/trident_main.c if (trident->tlb.entries != NULL) { trident 3470 sound/pci/trident/trident_main.c i = trident->tlb.entries_dmaaddr; trident 3472 sound/pci/trident/trident_main.c outl(i, TRID_REG(trident, NX_TLBC)); trident 3474 sound/pci/trident/trident_main.c outl(0, TRID_REG(trident, NX_TLBC)); trident 3477 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS)); trident 3478 sound/pci/trident/trident_main.c outb(trident->spdif_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3)); trident 3486 sound/pci/trident/trident_main.c static int snd_trident_sis_init(struct snd_trident *trident) trident 3490 sound/pci/trident/trident_main.c if ((err = snd_trident_sis_reset(trident)) < 0) trident 3493 sound/pci/trident/trident_main.c snd_trident_stop_all_voices(trident); trident 3496 sound/pci/trident/trident_main.c outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS)); trident 3524 sound/pci/trident/trident_main.c struct snd_trident *trident; trident 3546 sound/pci/trident/trident_main.c trident = kzalloc(sizeof(*trident), GFP_KERNEL); trident 3547 sound/pci/trident/trident_main.c if (trident == NULL) { trident 3551 sound/pci/trident/trident_main.c trident->device = (pci->vendor << 16) | pci->device; trident 3552 sound/pci/trident/trident_main.c trident->card = card; trident 3553 sound/pci/trident/trident_main.c trident->pci = pci; trident 3554 sound/pci/trident/trident_main.c spin_lock_init(&trident->reg_lock); trident 3555 sound/pci/trident/trident_main.c spin_lock_init(&trident->event_lock); trident 3556 sound/pci/trident/trident_main.c spin_lock_init(&trident->voice_alloc); trident 3561 sound/pci/trident/trident_main.c trident->ChanPCM = pcm_streams; trident 3564 sound/pci/trident/trident_main.c trident->synth.max_size = max_wavetable_size * 1024; trident 3565 sound/pci/trident/trident_main.c trident->irq = -1; trident 3567 sound/pci/trident/trident_main.c trident->midi_port = TRID_REG(trident, T4D_MPU401_BASE); trident 3571 sound/pci/trident/trident_main.c kfree(trident); trident 3575 sound/pci/trident/trident_main.c trident->port = pci_resource_start(pci, 0); trident 3578 sound/pci/trident/trident_main.c KBUILD_MODNAME, trident)) { trident 3580 sound/pci/trident/trident_main.c snd_trident_free(trident); trident 3583 sound/pci/trident/trident_main.c trident->irq = pci->irq; trident 3586 sound/pci/trident/trident_main.c trident->tlb.entries = NULL; trident 3587 sound/pci/trident/trident_main.c trident->tlb.buffer.area = NULL; trident 3588 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX) { trident 3589 sound/pci/trident/trident_main.c if ((err = snd_trident_tlb_alloc(trident)) < 0) { trident 3590 sound/pci/trident/trident_main.c snd_trident_free(trident); trident 3595 sound/pci/trident/trident_main.c trident->spdif_bits = trident->spdif_pcm_bits = SNDRV_PCM_DEFAULT_CON_SPDIF; trident 3598 sound/pci/trident/trident_main.c switch (trident->device) { trident 3600 sound/pci/trident/trident_main.c err = snd_trident_4d_dx_init(trident); trident 3603 sound/pci/trident/trident_main.c err = snd_trident_4d_nx_init(trident); trident 3606 sound/pci/trident/trident_main.c err = snd_trident_sis_init(trident); trident 3613 sound/pci/trident/trident_main.c snd_trident_free(trident); trident 3617 sound/pci/trident/trident_main.c if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, trident, &ops)) < 0) { trident 3618 sound/pci/trident/trident_main.c snd_trident_free(trident); trident 3622 sound/pci/trident/trident_main.c if ((err = snd_trident_mixer(trident, pcm_spdif_device)) < 0) trident 3627 sound/pci/trident/trident_main.c voice = &trident->synth.voices[i]; trident 3629 sound/pci/trident/trident_main.c voice->trident = trident; trident 3633 sound/pci/trident/trident_main.c tmix = &trident->pcm_mixer[i]; trident 3640 sound/pci/trident/trident_main.c snd_trident_enable_eso(trident); trident 3642 sound/pci/trident/trident_main.c snd_trident_proc_init(trident); trident 3643 sound/pci/trident/trident_main.c *rtrident = trident; trident 3659 sound/pci/trident/trident_main.c static int snd_trident_free(struct snd_trident *trident) trident 3661 sound/pci/trident/trident_main.c snd_trident_free_gameport(trident); trident 3662 sound/pci/trident/trident_main.c snd_trident_disable_eso(trident); trident 3664 sound/pci/trident/trident_main.c if (trident->device == TRIDENT_DEVICE_ID_NX) trident 3665 sound/pci/trident/trident_main.c outb(0x00, TRID_REG(trident, NX_SPCTRL_SPCSO + 3)); trident 3666 sound/pci/trident/trident_main.c else if (trident->device == TRIDENT_DEVICE_ID_SI7018) { trident 3667 sound/pci/trident/trident_main.c outl(0, TRID_REG(trident, SI_SERIAL_INTF_CTRL)); trident 3669 sound/pci/trident/trident_main.c if (trident->irq >= 0) trident 3670 sound/pci/trident/trident_main.c free_irq(trident->irq, trident); trident 3671 sound/pci/trident/trident_main.c if (trident->tlb.buffer.area) { trident 3672 sound/pci/trident/trident_main.c outl(0, TRID_REG(trident, NX_TLBC)); trident 3673 sound/pci/trident/trident_main.c snd_util_memhdr_free(trident->tlb.memhdr); trident 3674 sound/pci/trident/trident_main.c if (trident->tlb.silent_page.area) trident 3675 sound/pci/trident/trident_main.c snd_dma_free_pages(&trident->tlb.silent_page); trident 3676 sound/pci/trident/trident_main.c vfree(trident->tlb.shadow_entries); trident 3677 sound/pci/trident/trident_main.c snd_dma_free_pages(&trident->tlb.buffer); trident 3679 sound/pci/trident/trident_main.c pci_release_regions(trident->pci); trident 3680 sound/pci/trident/trident_main.c pci_disable_device(trident->pci); trident 3681 sound/pci/trident/trident_main.c kfree(trident); trident 3705 sound/pci/trident/trident_main.c struct snd_trident *trident = dev_id; trident 3710 sound/pci/trident/trident_main.c audio_int = inl(TRID_REG(trident, T4D_MISCINT)); trident 3715 sound/pci/trident/trident_main.c spin_lock(&trident->reg_lock); trident 3716 sound/pci/trident/trident_main.c stimer = inl(TRID_REG(trident, T4D_STIMER)) & 0x00ffffff; trident 3717 sound/pci/trident/trident_main.c chn_int = inl(TRID_REG(trident, T4D_AINT_A)); trident 3720 sound/pci/trident/trident_main.c outl(chn_int, TRID_REG(trident, T4D_AINT_A)); /* ack */ trident 3722 sound/pci/trident/trident_main.c chn_int = inl(TRID_REG(trident, T4D_AINT_B)); trident 3729 sound/pci/trident/trident_main.c voice = &trident->synth.voices[channel]; trident 3731 sound/pci/trident/trident_main.c outl(mask, TRID_REG(trident, T4D_STOP_B)); trident 3739 sound/pci/trident/trident_main.c trident->spurious_irq_count++; trident 3740 sound/pci/trident/trident_main.c if (trident->spurious_irq_max_delta < (unsigned int)delta) trident 3741 sound/pci/trident/trident_main.c trident->spurious_irq_max_delta = delta; trident 3747 sound/pci/trident/trident_main.c tmp = inw(TRID_REG(trident, T4D_SBBL_SBCL)); trident 3748 sound/pci/trident/trident_main.c if (trident->bDMAStart & 0x40) trident 3753 sound/pci/trident/trident_main.c tmp = inl(TRID_REG(trident, NX_SPCTRL_SPCSO)) & 0x00ffffff; trident 3761 sound/pci/trident/trident_main.c snd_trident_stop_voice(trident, voice->number); trident 3762 sound/pci/trident/trident_main.c snd_trident_write_eso_reg(trident, voice, tmp); trident 3763 sound/pci/trident/trident_main.c snd_trident_start_voice(trident, voice->number); trident 3768 sound/pci/trident/trident_main.c snd_trident_stop_voice(trident, voice->number); trident 3769 sound/pci/trident/trident_main.c snd_trident_write_cso_reg(trident, voice, voice->isync_mark); trident 3770 sound/pci/trident/trident_main.c snd_trident_write_eso_reg(trident, voice, voice->ESO); trident 3771 sound/pci/trident/trident_main.c snd_trident_start_voice(trident, voice->number); trident 3776 sound/pci/trident/trident_main.c snd_trident_stop_voice(trident, voice->extra->number); trident 3777 sound/pci/trident/trident_main.c snd_trident_write_cso_reg(trident, voice->extra, 0); trident 3778 sound/pci/trident/trident_main.c snd_trident_start_voice(trident, voice->extra->number); trident 3781 sound/pci/trident/trident_main.c spin_unlock(&trident->reg_lock); trident 3783 sound/pci/trident/trident_main.c spin_lock(&trident->reg_lock); trident 3785 sound/pci/trident/trident_main.c outl(chn_int, TRID_REG(trident, T4D_AINT_B)); /* ack */ trident 3787 sound/pci/trident/trident_main.c spin_unlock(&trident->reg_lock); trident 3790 sound/pci/trident/trident_main.c if (trident->rmidi) { trident 3791 sound/pci/trident/trident_main.c snd_mpu401_uart_interrupt(irq, trident->rmidi->private_data); trident 3793 sound/pci/trident/trident_main.c inb(TRID_REG(trident, T4D_MPUR0)); trident 3800 sound/pci/trident/trident_main.c struct snd_trident_voice *snd_trident_alloc_voice(struct snd_trident * trident, int type, int client, int port) trident 3806 sound/pci/trident/trident_main.c spin_lock_irqsave(&trident->voice_alloc, flags); trident 3808 sound/pci/trident/trident_main.c idx = snd_trident_allocate_pcm_channel(trident); trident 3810 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->voice_alloc, flags); trident 3813 sound/pci/trident/trident_main.c pvoice = &trident->synth.voices[idx]; trident 3820 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->voice_alloc, flags); trident 3824 sound/pci/trident/trident_main.c idx = snd_trident_allocate_synth_channel(trident); trident 3826 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->voice_alloc, flags); trident 3829 sound/pci/trident/trident_main.c pvoice = &trident->synth.voices[idx]; trident 3835 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->voice_alloc, flags); trident 3840 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->voice_alloc, flags); trident 3846 sound/pci/trident/trident_main.c void snd_trident_free_voice(struct snd_trident * trident, struct snd_trident_voice *voice) trident 3853 sound/pci/trident/trident_main.c snd_trident_clear_voices(trident, voice->number, voice->number); trident 3854 sound/pci/trident/trident_main.c spin_lock_irqsave(&trident->voice_alloc, flags); trident 3859 sound/pci/trident/trident_main.c snd_trident_free_pcm_channel(trident, voice->number); trident 3861 sound/pci/trident/trident_main.c snd_trident_free_synth_channel(trident, voice->number); trident 3867 sound/pci/trident/trident_main.c spin_unlock_irqrestore(&trident->voice_alloc, flags); trident 3874 sound/pci/trident/trident_main.c static void snd_trident_clear_voices(struct snd_trident * trident, unsigned short v_min, unsigned short v_max) trident 3883 sound/pci/trident/trident_main.c outl(mask[0], TRID_REG(trident, T4D_STOP_A)); trident 3884 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, T4D_AINTEN_A)); trident 3885 sound/pci/trident/trident_main.c outl(val & ~mask[0], TRID_REG(trident, T4D_AINTEN_A)); trident 3888 sound/pci/trident/trident_main.c outl(mask[1], TRID_REG(trident, T4D_STOP_B)); trident 3889 sound/pci/trident/trident_main.c val = inl(TRID_REG(trident, T4D_AINTEN_B)); trident 3890 sound/pci/trident/trident_main.c outl(val & ~mask[1], TRID_REG(trident, T4D_AINTEN_B)); trident 3898 sound/pci/trident/trident_main.c struct snd_trident *trident = card->private_data; trident 3900 sound/pci/trident/trident_main.c trident->in_suspend = 1; trident 3902 sound/pci/trident/trident_main.c snd_ac97_suspend(trident->ac97); trident 3903 sound/pci/trident/trident_main.c snd_ac97_suspend(trident->ac97_sec); trident 3910 sound/pci/trident/trident_main.c struct snd_trident *trident = card->private_data; trident 3912 sound/pci/trident/trident_main.c switch (trident->device) { trident 3914 sound/pci/trident/trident_main.c snd_trident_4d_dx_init(trident); trident 3917 sound/pci/trident/trident_main.c snd_trident_4d_nx_init(trident); trident 3920 sound/pci/trident/trident_main.c snd_trident_sis_init(trident); trident 3924 sound/pci/trident/trident_main.c snd_ac97_resume(trident->ac97); trident 3925 sound/pci/trident/trident_main.c snd_ac97_resume(trident->ac97_sec); trident 3928 sound/pci/trident/trident_main.c outl(trident->musicvol_wavevol, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL)); trident 3930 sound/pci/trident/trident_main.c snd_trident_enable_eso(trident); trident 3933 sound/pci/trident/trident_main.c trident->in_suspend = 0; trident 22 sound/pci/trident/trident_memory.c #define __set_tlb_bus(trident,page,ptr,addr) \ trident 23 sound/pci/trident/trident_memory.c do { (trident)->tlb.entries[page] = cpu_to_le32((addr) & ~(SNDRV_TRIDENT_PAGE_SIZE-1)); \ trident 24 sound/pci/trident/trident_memory.c (trident)->tlb.shadow_entries[page] = (ptr); } while (0) trident 25 sound/pci/trident/trident_memory.c #define __tlb_to_ptr(trident,page) \ trident 26 sound/pci/trident/trident_memory.c (void*)((trident)->tlb.shadow_entries[page]) trident 27 sound/pci/trident/trident_memory.c #define __tlb_to_addr(trident,page) \ trident 28 sound/pci/trident/trident_memory.c (dma_addr_t)le32_to_cpu((trident->tlb.entries[page]) & ~(SNDRV_TRIDENT_PAGE_SIZE - 1)) trident 35 sound/pci/trident/trident_memory.c #define set_tlb_bus(trident,page,ptr,addr) __set_tlb_bus(trident,page,ptr,addr) trident 37 sound/pci/trident/trident_memory.c #define set_silent_tlb(trident,page) __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr) trident 43 sound/pci/trident/trident_memory.c #define page_to_ptr(trident,page) __tlb_to_ptr(trident, page) trident 45 sound/pci/trident/trident_memory.c #define page_to_addr(trident,page) __tlb_to_addr(trident, page) trident 53 sound/pci/trident/trident_memory.c #define page_to_ptr(trident,page) __tlb_to_ptr(trident, (page) << 1) trident 54 sound/pci/trident/trident_memory.c #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) << 1) trident 57 sound/pci/trident/trident_memory.c static inline void set_tlb_bus(struct snd_trident *trident, int page, trident 61 sound/pci/trident/trident_memory.c __set_tlb_bus(trident, page, ptr, addr); trident 62 sound/pci/trident/trident_memory.c __set_tlb_bus(trident, page+1, ptr + SNDRV_TRIDENT_PAGE_SIZE, addr + SNDRV_TRIDENT_PAGE_SIZE); trident 64 sound/pci/trident/trident_memory.c static inline void set_silent_tlb(struct snd_trident *trident, int page) trident 67 sound/pci/trident/trident_memory.c __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr); trident 68 sound/pci/trident/trident_memory.c __set_tlb_bus(trident, page+1, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr); trident 83 sound/pci/trident/trident_memory.c #define page_to_ptr(trident,page) __tlb_to_ptr(trident, (page) * UNIT_PAGES) trident 84 sound/pci/trident/trident_memory.c #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) * UNIT_PAGES) trident 87 sound/pci/trident/trident_memory.c static inline void set_tlb_bus(struct snd_trident *trident, int page, trident 93 sound/pci/trident/trident_memory.c __set_tlb_bus(trident, page, ptr, addr); trident 98 sound/pci/trident/trident_memory.c static inline void set_silent_tlb(struct snd_trident *trident, int page) trident 103 sound/pci/trident/trident_memory.c __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr); trident 109 sound/pci/trident/trident_memory.c static inline void *offset_ptr(struct snd_trident *trident, int offset) trident 112 sound/pci/trident/trident_memory.c ptr = page_to_ptr(trident, get_aligned_page(offset)); trident 174 sound/pci/trident/trident_memory.c snd_trident_alloc_sg_pages(struct snd_trident *trident, trident 186 sound/pci/trident/trident_memory.c hdr = trident->tlb.memhdr; trident 211 sound/pci/trident/trident_memory.c set_tlb_bus(trident, page, ptr, addr); trident 221 sound/pci/trident/trident_memory.c snd_trident_alloc_cont_pages(struct snd_trident *trident, trident 235 sound/pci/trident/trident_memory.c hdr = trident->tlb.memhdr; trident 256 sound/pci/trident/trident_memory.c set_tlb_bus(trident, page, ptr, addr); trident 266 sound/pci/trident/trident_memory.c snd_trident_alloc_pages(struct snd_trident *trident, trident 269 sound/pci/trident/trident_memory.c if (snd_BUG_ON(!trident || !substream)) trident 272 sound/pci/trident/trident_memory.c return snd_trident_alloc_sg_pages(trident, substream); trident 274 sound/pci/trident/trident_memory.c return snd_trident_alloc_cont_pages(trident, substream); trident 281 sound/pci/trident/trident_memory.c int snd_trident_free_pages(struct snd_trident *trident, trident 287 sound/pci/trident/trident_memory.c if (snd_BUG_ON(!trident || !blk)) trident 290 sound/pci/trident/trident_memory.c hdr = trident->tlb.memhdr; trident 294 sound/pci/trident/trident_memory.c set_silent_tlb(trident, page);