gus 19 include/sound/gus.h #define GUSP(gus, x) ((gus)->gf1.port + SNDRV_g_u_s_##x) gus 201 include/sound/gus.h void (*ack)(struct snd_gus_card * gus, void *private_data); gus 208 include/sound/gus.h struct snd_gus_card * gus; gus 250 include/sound/gus.h void (*handler_wave) (struct snd_gus_card * gus, struct snd_gus_voice * voice); gus 251 include/sound/gus.h void (*handler_volume) (struct snd_gus_card * gus, struct snd_gus_voice * voice); gus 252 include/sound/gus.h void (*handler_effect) (struct snd_gus_card * gus, struct snd_gus_voice * voice); gus 253 include/sound/gus.h void (*volume_change) (struct snd_gus_card * gus); gus 330 include/sound/gus.h void (*interrupt_handler_midi_out) (struct snd_gus_card * gus); gus 331 include/sound/gus.h void (*interrupt_handler_midi_in) (struct snd_gus_card * gus); gus 332 include/sound/gus.h void (*interrupt_handler_timer1) (struct snd_gus_card * gus); gus 333 include/sound/gus.h void (*interrupt_handler_timer2) (struct snd_gus_card * gus); gus 334 include/sound/gus.h void (*interrupt_handler_dma_write) (struct snd_gus_card * gus); gus 335 include/sound/gus.h void (*interrupt_handler_dma_read) (struct snd_gus_card * gus); gus 372 include/sound/gus.h void (*dma_ack)(struct snd_gus_card * gus, void *private_data); gus 436 include/sound/gus.h static inline void snd_gf1_select_voice(struct snd_gus_card * gus, int voice) gus 440 include/sound/gus.h spin_lock_irqsave(&gus->active_voice_lock, flags); gus 441 include/sound/gus.h if (voice != gus->gf1.active_voice) { gus 442 include/sound/gus.h gus->gf1.active_voice = voice; gus 443 include/sound/gus.h outb(voice, GUSP(gus, GF1PAGE)); gus 445 include/sound/gus.h spin_unlock_irqrestore(&gus->active_voice_lock, flags); gus 448 include/sound/gus.h static inline void snd_gf1_uart_cmd(struct snd_gus_card * gus, unsigned char b) gus 450 include/sound/gus.h outb(gus->gf1.uart_cmd = b, GUSP(gus, MIDICTRL)); gus 453 include/sound/gus.h static inline unsigned char snd_gf1_uart_stat(struct snd_gus_card * gus) gus 455 include/sound/gus.h return inb(GUSP(gus, MIDISTAT)); gus 458 include/sound/gus.h static inline void snd_gf1_uart_put(struct snd_gus_card * gus, unsigned char b) gus 460 include/sound/gus.h outb(b, GUSP(gus, MIDIDATA)); gus 463 include/sound/gus.h static inline unsigned char snd_gf1_uart_get(struct snd_gus_card * gus) gus 465 include/sound/gus.h return inb(GUSP(gus, MIDIDATA)); gus 468 include/sound/gus.h extern void snd_gf1_delay(struct snd_gus_card * gus); gus 470 include/sound/gus.h extern void snd_gf1_ctrl_stop(struct snd_gus_card * gus, unsigned char reg); gus 472 include/sound/gus.h extern void snd_gf1_write8(struct snd_gus_card * gus, unsigned char reg, unsigned char data); gus 473 include/sound/gus.h extern unsigned char snd_gf1_look8(struct snd_gus_card * gus, unsigned char reg); gus 474 include/sound/gus.h static inline unsigned char snd_gf1_read8(struct snd_gus_card * gus, unsigned char reg) gus 476 include/sound/gus.h return snd_gf1_look8(gus, reg | 0x80); gus 478 include/sound/gus.h extern void snd_gf1_write16(struct snd_gus_card * gus, unsigned char reg, unsigned int data); gus 479 include/sound/gus.h extern unsigned short snd_gf1_look16(struct snd_gus_card * gus, unsigned char reg); gus 480 include/sound/gus.h static inline unsigned short snd_gf1_read16(struct snd_gus_card * gus, unsigned char reg) gus 482 include/sound/gus.h return snd_gf1_look16(gus, reg | 0x80); gus 484 include/sound/gus.h extern void snd_gf1_adlib_write(struct snd_gus_card * gus, unsigned char reg, unsigned char data); gus 485 include/sound/gus.h extern void snd_gf1_dram_addr(struct snd_gus_card * gus, unsigned int addr); gus 486 include/sound/gus.h extern void snd_gf1_poke(struct snd_gus_card * gus, unsigned int addr, unsigned char data); gus 487 include/sound/gus.h extern unsigned char snd_gf1_peek(struct snd_gus_card * gus, unsigned int addr); gus 488 include/sound/gus.h extern void snd_gf1_write_addr(struct snd_gus_card * gus, unsigned char reg, unsigned int addr, short w_16bit); gus 489 include/sound/gus.h extern unsigned int snd_gf1_read_addr(struct snd_gus_card * gus, unsigned char reg, short w_16bit); gus 490 include/sound/gus.h extern void snd_gf1_i_ctrl_stop(struct snd_gus_card * gus, unsigned char reg); gus 491 include/sound/gus.h extern void snd_gf1_i_write8(struct snd_gus_card * gus, unsigned char reg, unsigned char data); gus 492 include/sound/gus.h extern unsigned char snd_gf1_i_look8(struct snd_gus_card * gus, unsigned char reg); gus 493 include/sound/gus.h extern void snd_gf1_i_write16(struct snd_gus_card * gus, unsigned char reg, unsigned int data); gus 494 include/sound/gus.h static inline unsigned char snd_gf1_i_read8(struct snd_gus_card * gus, unsigned char reg) gus 496 include/sound/gus.h return snd_gf1_i_look8(gus, reg | 0x80); gus 498 include/sound/gus.h extern unsigned short snd_gf1_i_look16(struct snd_gus_card * gus, unsigned char reg); gus 499 include/sound/gus.h static inline unsigned short snd_gf1_i_read16(struct snd_gus_card * gus, unsigned char reg) gus 501 include/sound/gus.h return snd_gf1_i_look16(gus, reg | 0x80); gus 504 include/sound/gus.h extern void snd_gf1_select_active_voices(struct snd_gus_card * gus); gus 517 include/sound/gus.h extern irqreturn_t snd_gf1_lfo_effect_interrupt(struct snd_gus_card * gus, snd_gf1_voice_t * voice); gus 519 include/sound/gus.h extern void snd_gf1_lfo_init(struct snd_gus_card * gus); gus 520 include/sound/gus.h extern void snd_gf1_lfo_done(struct snd_gus_card * gus); gus 521 include/sound/gus.h extern void snd_gf1_lfo_program(struct snd_gus_card * gus, int voice, int lfo_type, struct _SND_IW_LFO_PROGRAM *program); gus 522 include/sound/gus.h extern void snd_gf1_lfo_enable(struct snd_gus_card * gus, int voice, int lfo_type); gus 523 include/sound/gus.h extern void snd_gf1_lfo_disable(struct snd_gus_card * gus, int voice, int lfo_type); gus 524 include/sound/gus.h extern void snd_gf1_lfo_change_freq(struct snd_gus_card * gus, int voice, int lfo_type, int freq); gus 525 include/sound/gus.h extern void snd_gf1_lfo_change_depth(struct snd_gus_card * gus, int voice, int lfo_type, int depth); gus 526 include/sound/gus.h extern void snd_gf1_lfo_setup(struct snd_gus_card * gus, int voice, int lfo_type, int freq, int current_depth, int depth, int sweep, int shape); gus 527 include/sound/gus.h extern void snd_gf1_lfo_shutdown(struct snd_gus_card * gus, int voice, int lfo_type); gus 529 include/sound/gus.h extern void snd_gf1_lfo_command(struct snd_gus_card * gus, int voice, unsigned char *command); gus 541 include/sound/gus.h int snd_gf1_mem_init(struct snd_gus_card * gus); gus 542 include/sound/gus.h int snd_gf1_mem_done(struct snd_gus_card * gus); gus 546 include/sound/gus.h int snd_gf1_mem_proc_init(struct snd_gus_card * gus); gus 550 include/sound/gus.h int snd_gf1_dma_init(struct snd_gus_card * gus); gus 551 include/sound/gus.h int snd_gf1_dma_done(struct snd_gus_card * gus); gus 552 include/sound/gus.h int snd_gf1_dma_transfer_block(struct snd_gus_card * gus, gus 560 include/sound/gus.h unsigned short snd_gf1_translate_freq(struct snd_gus_card * gus, unsigned int freq2); gus 564 include/sound/gus.h void snd_gf1_set_default_handlers(struct snd_gus_card * gus, unsigned int what); gus 565 include/sound/gus.h void snd_gf1_smart_stop_voice(struct snd_gus_card * gus, unsigned short voice); gus 566 include/sound/gus.h void snd_gf1_stop_voice(struct snd_gus_card * gus, unsigned short voice); gus 567 include/sound/gus.h void snd_gf1_stop_voices(struct snd_gus_card * gus, unsigned short v_min, unsigned short v_max); gus 568 include/sound/gus.h struct snd_gus_voice *snd_gf1_alloc_voice(struct snd_gus_card * gus, int type, int client, int port); gus 569 include/sound/gus.h void snd_gf1_free_voice(struct snd_gus_card * gus, struct snd_gus_voice *voice); gus 570 include/sound/gus.h int snd_gf1_start(struct snd_gus_card * gus); gus 571 include/sound/gus.h int snd_gf1_stop(struct snd_gus_card * gus); gus 575 include/sound/gus.h int snd_gf1_new_mixer(struct snd_gus_card * gus); gus 579 include/sound/gus.h int snd_gf1_pcm_new(struct snd_gus_card *gus, int pcm_dev, int control_index); gus 582 include/sound/gus.h extern void snd_gf1_print_voice_registers(struct snd_gus_card * gus); gus 587 include/sound/gus.h int snd_gus_use_inc(struct snd_gus_card * gus); gus 588 include/sound/gus.h void snd_gus_use_dec(struct snd_gus_card * gus); gus 597 include/sound/gus.h int snd_gus_initialize(struct snd_gus_card * gus); gus 603 include/sound/gus.h void snd_gus_irq_profile_init(struct snd_gus_card *gus); gus 608 include/sound/gus.h int snd_gf1_rawmidi_new(struct snd_gus_card *gus, int device); gus 611 include/sound/gus.h int snd_gus_dram_write(struct snd_gus_card *gus, char __user *ptr, gus 613 include/sound/gus.h int snd_gus_dram_read(struct snd_gus_card *gus, char __user *ptr, gus 12 sound/isa/gus/gus_dma.c static void snd_gf1_dma_ack(struct snd_gus_card * gus) gus 16 sound/isa/gus/gus_dma.c spin_lock_irqsave(&gus->reg_lock, flags); gus 17 sound/isa/gus/gus_dma.c snd_gf1_write8(gus, SNDRV_GF1_GB_DRAM_DMA_CONTROL, 0x00); gus 18 sound/isa/gus/gus_dma.c snd_gf1_look8(gus, SNDRV_GF1_GB_DRAM_DMA_CONTROL); gus 19 sound/isa/gus/gus_dma.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 22 sound/isa/gus/gus_dma.c static void snd_gf1_dma_program(struct snd_gus_card * gus, gus 36 sound/isa/gus/gus_dma.c if (gus->gf1.dma1 > 3) { gus 37 sound/isa/gus/gus_dma.c if (gus->gf1.enh_mode) { gus 58 sound/isa/gus/gus_dma.c if (gus->gf1.dma1 > 3) { gus 63 sound/isa/gus/gus_dma.c snd_gf1_dma_ack(gus); gus 64 sound/isa/gus/gus_dma.c snd_dma_program(gus->gf1.dma1, buf_addr, count, dma_cmd & SNDRV_GF1_DMA_READ ? DMA_MODE_READ : DMA_MODE_WRITE); gus 69 sound/isa/gus/gus_dma.c spin_lock_irqsave(&gus->reg_lock, flags); gus 70 sound/isa/gus/gus_dma.c if (gus->gf1.enh_mode) { gus 72 sound/isa/gus/gus_dma.c snd_gf1_write16(gus, SNDRV_GF1_GW_DRAM_DMA_LOW, (unsigned short) (address >> 4)); gus 73 sound/isa/gus/gus_dma.c snd_gf1_write8(gus, SNDRV_GF1_GB_DRAM_DMA_HIGH, (unsigned char) address_high); gus 75 sound/isa/gus/gus_dma.c snd_gf1_write16(gus, SNDRV_GF1_GW_DRAM_DMA_LOW, (unsigned short) (address >> 4)); gus 76 sound/isa/gus/gus_dma.c snd_gf1_write8(gus, SNDRV_GF1_GB_DRAM_DMA_CONTROL, dma_cmd); gus 77 sound/isa/gus/gus_dma.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 80 sound/isa/gus/gus_dma.c static struct snd_gf1_dma_block *snd_gf1_dma_next_block(struct snd_gus_card * gus) gus 85 sound/isa/gus/gus_dma.c if (gus->gf1.dma_data_pcm) { gus 86 sound/isa/gus/gus_dma.c block = gus->gf1.dma_data_pcm; gus 87 sound/isa/gus/gus_dma.c if (gus->gf1.dma_data_pcm_last == block) { gus 88 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm = gus 89 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm_last = NULL; gus 91 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm = block->next; gus 93 sound/isa/gus/gus_dma.c } else if (gus->gf1.dma_data_synth) { gus 94 sound/isa/gus/gus_dma.c block = gus->gf1.dma_data_synth; gus 95 sound/isa/gus/gus_dma.c if (gus->gf1.dma_data_synth_last == block) { gus 96 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth = gus 97 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth_last = NULL; gus 99 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth = block->next; gus 105 sound/isa/gus/gus_dma.c gus->gf1.dma_ack = block->ack; gus 106 sound/isa/gus/gus_dma.c gus->gf1.dma_private_data = block->private_data; gus 112 sound/isa/gus/gus_dma.c static void snd_gf1_dma_interrupt(struct snd_gus_card * gus) gus 116 sound/isa/gus/gus_dma.c snd_gf1_dma_ack(gus); gus 117 sound/isa/gus/gus_dma.c if (gus->gf1.dma_ack) gus 118 sound/isa/gus/gus_dma.c gus->gf1.dma_ack(gus, gus->gf1.dma_private_data); gus 119 sound/isa/gus/gus_dma.c spin_lock(&gus->dma_lock); gus 120 sound/isa/gus/gus_dma.c if (gus->gf1.dma_data_pcm == NULL && gus 121 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth == NULL) { gus 122 sound/isa/gus/gus_dma.c gus->gf1.dma_ack = NULL; gus 123 sound/isa/gus/gus_dma.c gus->gf1.dma_flags &= ~SNDRV_GF1_DMA_TRIGGER; gus 124 sound/isa/gus/gus_dma.c spin_unlock(&gus->dma_lock); gus 127 sound/isa/gus/gus_dma.c block = snd_gf1_dma_next_block(gus); gus 128 sound/isa/gus/gus_dma.c spin_unlock(&gus->dma_lock); gus 129 sound/isa/gus/gus_dma.c snd_gf1_dma_program(gus, block->addr, block->buf_addr, block->count, (unsigned short) block->cmd); gus 138 sound/isa/gus/gus_dma.c int snd_gf1_dma_init(struct snd_gus_card * gus) gus 140 sound/isa/gus/gus_dma.c mutex_lock(&gus->dma_mutex); gus 141 sound/isa/gus/gus_dma.c gus->gf1.dma_shared++; gus 142 sound/isa/gus/gus_dma.c if (gus->gf1.dma_shared > 1) { gus 143 sound/isa/gus/gus_dma.c mutex_unlock(&gus->dma_mutex); gus 146 sound/isa/gus/gus_dma.c gus->gf1.interrupt_handler_dma_write = snd_gf1_dma_interrupt; gus 147 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm = gus 148 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm_last = gus 149 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth = gus 150 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth_last = NULL; gus 151 sound/isa/gus/gus_dma.c mutex_unlock(&gus->dma_mutex); gus 155 sound/isa/gus/gus_dma.c int snd_gf1_dma_done(struct snd_gus_card * gus) gus 159 sound/isa/gus/gus_dma.c mutex_lock(&gus->dma_mutex); gus 160 sound/isa/gus/gus_dma.c gus->gf1.dma_shared--; gus 161 sound/isa/gus/gus_dma.c if (!gus->gf1.dma_shared) { gus 162 sound/isa/gus/gus_dma.c snd_dma_disable(gus->gf1.dma1); gus 163 sound/isa/gus/gus_dma.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_DMA_WRITE); gus 164 sound/isa/gus/gus_dma.c snd_gf1_dma_ack(gus); gus 165 sound/isa/gus/gus_dma.c while ((block = gus->gf1.dma_data_pcm)) { gus 166 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm = block->next; gus 169 sound/isa/gus/gus_dma.c while ((block = gus->gf1.dma_data_synth)) { gus 170 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth = block->next; gus 173 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm_last = gus 174 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth_last = NULL; gus 176 sound/isa/gus/gus_dma.c mutex_unlock(&gus->dma_mutex); gus 180 sound/isa/gus/gus_dma.c int snd_gf1_dma_transfer_block(struct snd_gus_card * gus, gus 200 sound/isa/gus/gus_dma.c (long)gus->gf1.dma_data_pcm_last); gus 202 sound/isa/gus/gus_dma.c (long)gus->gf1.dma_data_pcm); gus 204 sound/isa/gus/gus_dma.c spin_lock_irqsave(&gus->dma_lock, flags); gus 206 sound/isa/gus/gus_dma.c if (gus->gf1.dma_data_synth_last) { gus 207 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth_last->next = block; gus 208 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth_last = block; gus 210 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth = gus 211 sound/isa/gus/gus_dma.c gus->gf1.dma_data_synth_last = block; gus 214 sound/isa/gus/gus_dma.c if (gus->gf1.dma_data_pcm_last) { gus 215 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm_last->next = block; gus 216 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm_last = block; gus 218 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm = gus 219 sound/isa/gus/gus_dma.c gus->gf1.dma_data_pcm_last = block; gus 222 sound/isa/gus/gus_dma.c if (!(gus->gf1.dma_flags & SNDRV_GF1_DMA_TRIGGER)) { gus 223 sound/isa/gus/gus_dma.c gus->gf1.dma_flags |= SNDRV_GF1_DMA_TRIGGER; gus 224 sound/isa/gus/gus_dma.c block = snd_gf1_dma_next_block(gus); gus 225 sound/isa/gus/gus_dma.c spin_unlock_irqrestore(&gus->dma_lock, flags); gus 228 sound/isa/gus/gus_dma.c snd_gf1_dma_program(gus, block->addr, block->buf_addr, block->count, (unsigned short) block->cmd); gus 232 sound/isa/gus/gus_dma.c spin_unlock_irqrestore(&gus->dma_lock, flags); gus 13 sound/isa/gus/gus_dram.c static int snd_gus_dram_poke(struct snd_gus_card *gus, char __user *_buffer, gus 24 sound/isa/gus/gus_dram.c if (gus->interwave) { gus 25 sound/isa/gus/gus_dram.c spin_lock_irqsave(&gus->reg_lock, flags); gus 26 sound/isa/gus/gus_dram.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x01); gus 27 sound/isa/gus/gus_dram.c snd_gf1_dram_addr(gus, address); gus 28 sound/isa/gus/gus_dram.c outsb(GUSP(gus, DRAM), buffer, size1); gus 29 sound/isa/gus/gus_dram.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 35 sound/isa/gus/gus_dram.c snd_gf1_poke(gus, address++, *pbuffer++); gus 44 sound/isa/gus/gus_dram.c int snd_gus_dram_write(struct snd_gus_card *gus, char __user *buffer, gus 47 sound/isa/gus/gus_dram.c return snd_gus_dram_poke(gus, buffer, address, size); gus 50 sound/isa/gus/gus_dram.c static int snd_gus_dram_peek(struct snd_gus_card *gus, char __user *_buffer, gus 60 sound/isa/gus/gus_dram.c if (gus->interwave) { gus 61 sound/isa/gus/gus_dram.c spin_lock_irqsave(&gus->reg_lock, flags); gus 62 sound/isa/gus/gus_dram.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, rom ? 0x03 : 0x01); gus 63 sound/isa/gus/gus_dram.c snd_gf1_dram_addr(gus, address); gus 64 sound/isa/gus/gus_dram.c insb(GUSP(gus, DRAM), buffer, size1); gus 65 sound/isa/gus/gus_dram.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x01); gus 66 sound/isa/gus/gus_dram.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 72 sound/isa/gus/gus_dram.c *pbuffer++ = snd_gf1_peek(gus, address++); gus 82 sound/isa/gus/gus_dram.c int snd_gus_dram_read(struct snd_gus_card *gus, char __user *buffer, gus 86 sound/isa/gus/gus_dram.c return snd_gus_dram_peek(gus, buffer, address, size, rom); gus 12 sound/isa/gus/gus_io.c void snd_gf1_delay(struct snd_gus_card * gus) gus 18 sound/isa/gus/gus_io.c inb(GUSP(gus, DRAM)); gus 31 sound/isa/gus/gus_io.c static inline void __snd_gf1_ctrl_stop(struct snd_gus_card * gus, unsigned char reg) gus 35 sound/isa/gus/gus_io.c outb(reg | 0x80, gus->gf1.reg_regsel); gus 37 sound/isa/gus/gus_io.c value = inb(gus->gf1.reg_data8); gus 39 sound/isa/gus/gus_io.c outb(reg, gus->gf1.reg_regsel); gus 41 sound/isa/gus/gus_io.c outb((value | 0x03) & ~(0x80 | 0x20), gus->gf1.reg_data8); gus 45 sound/isa/gus/gus_io.c static inline void __snd_gf1_write8(struct snd_gus_card * gus, gus 49 sound/isa/gus/gus_io.c outb(reg, gus->gf1.reg_regsel); gus 51 sound/isa/gus/gus_io.c outb(data, gus->gf1.reg_data8); gus 55 sound/isa/gus/gus_io.c static inline unsigned char __snd_gf1_look8(struct snd_gus_card * gus, gus 58 sound/isa/gus/gus_io.c outb(reg, gus->gf1.reg_regsel); gus 60 sound/isa/gus/gus_io.c return inb(gus->gf1.reg_data8); gus 63 sound/isa/gus/gus_io.c static inline void __snd_gf1_write16(struct snd_gus_card * gus, gus 66 sound/isa/gus/gus_io.c outb(reg, gus->gf1.reg_regsel); gus 68 sound/isa/gus/gus_io.c outw((unsigned short) data, gus->gf1.reg_data16); gus 72 sound/isa/gus/gus_io.c static inline unsigned short __snd_gf1_look16(struct snd_gus_card * gus, gus 75 sound/isa/gus/gus_io.c outb(reg, gus->gf1.reg_regsel); gus 77 sound/isa/gus/gus_io.c return inw(gus->gf1.reg_data16); gus 80 sound/isa/gus/gus_io.c static inline void __snd_gf1_adlib_write(struct snd_gus_card * gus, gus 83 sound/isa/gus/gus_io.c outb(reg, gus->gf1.reg_timerctrl); gus 84 sound/isa/gus/gus_io.c inb(gus->gf1.reg_timerctrl); gus 85 sound/isa/gus/gus_io.c inb(gus->gf1.reg_timerctrl); gus 86 sound/isa/gus/gus_io.c outb(data, gus->gf1.reg_timerdata); gus 87 sound/isa/gus/gus_io.c inb(gus->gf1.reg_timerctrl); gus 88 sound/isa/gus/gus_io.c inb(gus->gf1.reg_timerctrl); gus 91 sound/isa/gus/gus_io.c static inline void __snd_gf1_write_addr(struct snd_gus_card * gus, unsigned char reg, gus 94 sound/isa/gus/gus_io.c if (gus->gf1.enh_mode) { gus 97 sound/isa/gus/gus_io.c __snd_gf1_write8(gus, SNDRV_GF1_VB_UPPER_ADDRESS, (unsigned char) ((addr >> 26) & 0x03)); gus 100 sound/isa/gus/gus_io.c __snd_gf1_write16(gus, reg, (unsigned short) (addr >> 11)); gus 101 sound/isa/gus/gus_io.c __snd_gf1_write16(gus, reg + 1, (unsigned short) (addr << 5)); gus 104 sound/isa/gus/gus_io.c static inline unsigned int __snd_gf1_read_addr(struct snd_gus_card * gus, gus 109 sound/isa/gus/gus_io.c res = ((unsigned int) __snd_gf1_look16(gus, reg | 0x80) << 11) & 0xfff800; gus 110 sound/isa/gus/gus_io.c res |= ((unsigned int) __snd_gf1_look16(gus, (reg + 1) | 0x80) >> 5) & 0x0007ff; gus 111 sound/isa/gus/gus_io.c if (gus->gf1.enh_mode) { gus 112 sound/isa/gus/gus_io.c res |= (unsigned int) __snd_gf1_look8(gus, SNDRV_GF1_VB_UPPER_ADDRESS | 0x80) << 26; gus 125 sound/isa/gus/gus_io.c void snd_gf1_ctrl_stop(struct snd_gus_card * gus, unsigned char reg) gus 127 sound/isa/gus/gus_io.c __snd_gf1_ctrl_stop(gus, reg); gus 130 sound/isa/gus/gus_io.c void snd_gf1_write8(struct snd_gus_card * gus, gus 134 sound/isa/gus/gus_io.c __snd_gf1_write8(gus, reg, data); gus 137 sound/isa/gus/gus_io.c unsigned char snd_gf1_look8(struct snd_gus_card * gus, unsigned char reg) gus 139 sound/isa/gus/gus_io.c return __snd_gf1_look8(gus, reg); gus 142 sound/isa/gus/gus_io.c void snd_gf1_write16(struct snd_gus_card * gus, gus 146 sound/isa/gus/gus_io.c __snd_gf1_write16(gus, reg, data); gus 149 sound/isa/gus/gus_io.c unsigned short snd_gf1_look16(struct snd_gus_card * gus, unsigned char reg) gus 151 sound/isa/gus/gus_io.c return __snd_gf1_look16(gus, reg); gus 154 sound/isa/gus/gus_io.c void snd_gf1_adlib_write(struct snd_gus_card * gus, gus 158 sound/isa/gus/gus_io.c __snd_gf1_adlib_write(gus, reg, data); gus 161 sound/isa/gus/gus_io.c void snd_gf1_write_addr(struct snd_gus_card * gus, unsigned char reg, gus 164 sound/isa/gus/gus_io.c __snd_gf1_write_addr(gus, reg, addr, w_16bit); gus 167 sound/isa/gus/gus_io.c unsigned int snd_gf1_read_addr(struct snd_gus_card * gus, gus 171 sound/isa/gus/gus_io.c return __snd_gf1_read_addr(gus, reg, w_16bit); gus 178 sound/isa/gus/gus_io.c void snd_gf1_i_ctrl_stop(struct snd_gus_card * gus, unsigned char reg) gus 182 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 183 sound/isa/gus/gus_io.c __snd_gf1_ctrl_stop(gus, reg); gus 184 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 187 sound/isa/gus/gus_io.c void snd_gf1_i_write8(struct snd_gus_card * gus, gus 193 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 194 sound/isa/gus/gus_io.c __snd_gf1_write8(gus, reg, data); gus 195 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 198 sound/isa/gus/gus_io.c unsigned char snd_gf1_i_look8(struct snd_gus_card * gus, unsigned char reg) gus 203 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 204 sound/isa/gus/gus_io.c res = __snd_gf1_look8(gus, reg); gus 205 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 209 sound/isa/gus/gus_io.c void snd_gf1_i_write16(struct snd_gus_card * gus, gus 215 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 216 sound/isa/gus/gus_io.c __snd_gf1_write16(gus, reg, data); gus 217 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 220 sound/isa/gus/gus_io.c unsigned short snd_gf1_i_look16(struct snd_gus_card * gus, unsigned char reg) gus 225 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 226 sound/isa/gus/gus_io.c res = __snd_gf1_look16(gus, reg); gus 227 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 233 sound/isa/gus/gus_io.c void snd_gf1_i_adlib_write(struct snd_gus_card * gus, gus 239 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 240 sound/isa/gus/gus_io.c __snd_gf1_adlib_write(gus, reg, data); gus 241 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 244 sound/isa/gus/gus_io.c void snd_gf1_i_write_addr(struct snd_gus_card * gus, unsigned char reg, gus 249 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 250 sound/isa/gus/gus_io.c __snd_gf1_write_addr(gus, reg, addr, w_16bit); gus 251 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 257 sound/isa/gus/gus_io.c static unsigned int snd_gf1_i_read_addr(struct snd_gus_card * gus, gus 263 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 264 sound/isa/gus/gus_io.c res = __snd_gf1_read_addr(gus, reg, w_16bit); gus 265 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 274 sound/isa/gus/gus_io.c void snd_gf1_dram_addr(struct snd_gus_card * gus, unsigned int addr) gus 276 sound/isa/gus/gus_io.c outb(0x43, gus->gf1.reg_regsel); gus 278 sound/isa/gus/gus_io.c outw((unsigned short) addr, gus->gf1.reg_data16); gus 280 sound/isa/gus/gus_io.c outb(0x44, gus->gf1.reg_regsel); gus 282 sound/isa/gus/gus_io.c outb((unsigned char) (addr >> 16), gus->gf1.reg_data8); gus 286 sound/isa/gus/gus_io.c void snd_gf1_poke(struct snd_gus_card * gus, unsigned int addr, unsigned char data) gus 290 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 291 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO_LOW, gus->gf1.reg_regsel); gus 293 sound/isa/gus/gus_io.c outw((unsigned short) addr, gus->gf1.reg_data16); gus 295 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GB_DRAM_IO_HIGH, gus->gf1.reg_regsel); gus 297 sound/isa/gus/gus_io.c outb((unsigned char) (addr >> 16), gus->gf1.reg_data8); gus 299 sound/isa/gus/gus_io.c outb(data, gus->gf1.reg_dram); gus 300 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 303 sound/isa/gus/gus_io.c unsigned char snd_gf1_peek(struct snd_gus_card * gus, unsigned int addr) gus 308 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 309 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO_LOW, gus->gf1.reg_regsel); gus 311 sound/isa/gus/gus_io.c outw((unsigned short) addr, gus->gf1.reg_data16); gus 313 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GB_DRAM_IO_HIGH, gus->gf1.reg_regsel); gus 315 sound/isa/gus/gus_io.c outb((unsigned char) (addr >> 16), gus->gf1.reg_data8); gus 317 sound/isa/gus/gus_io.c res = inb(gus->gf1.reg_dram); gus 318 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 324 sound/isa/gus/gus_io.c void snd_gf1_pokew(struct snd_gus_card * gus, unsigned int addr, unsigned short data) gus 329 sound/isa/gus/gus_io.c if (!gus->interwave) gus 332 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 333 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO_LOW, gus->gf1.reg_regsel); gus 335 sound/isa/gus/gus_io.c outw((unsigned short) addr, gus->gf1.reg_data16); gus 337 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GB_DRAM_IO_HIGH, gus->gf1.reg_regsel); gus 339 sound/isa/gus/gus_io.c outb((unsigned char) (addr >> 16), gus->gf1.reg_data8); gus 341 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO16, gus->gf1.reg_regsel); gus 343 sound/isa/gus/gus_io.c outw(data, gus->gf1.reg_data16); gus 344 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 347 sound/isa/gus/gus_io.c unsigned short snd_gf1_peekw(struct snd_gus_card * gus, unsigned int addr) gus 353 sound/isa/gus/gus_io.c if (!gus->interwave) gus 356 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 357 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO_LOW, gus->gf1.reg_regsel); gus 359 sound/isa/gus/gus_io.c outw((unsigned short) addr, gus->gf1.reg_data16); gus 361 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GB_DRAM_IO_HIGH, gus->gf1.reg_regsel); gus 363 sound/isa/gus/gus_io.c outb((unsigned char) (addr >> 16), gus->gf1.reg_data8); gus 365 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO16, gus->gf1.reg_regsel); gus 367 sound/isa/gus/gus_io.c res = inw(gus->gf1.reg_data16); gus 368 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 372 sound/isa/gus/gus_io.c void snd_gf1_dram_setmem(struct snd_gus_card * gus, unsigned int addr, gus 379 sound/isa/gus/gus_io.c if (!gus->interwave) gus 384 sound/isa/gus/gus_io.c port = GUSP(gus, GF1DATALOW); gus 385 sound/isa/gus/gus_io.c spin_lock_irqsave(&gus->reg_lock, flags); gus 386 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO_LOW, gus->gf1.reg_regsel); gus 388 sound/isa/gus/gus_io.c outw((unsigned short) addr, gus->gf1.reg_data16); gus 390 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GB_DRAM_IO_HIGH, gus->gf1.reg_regsel); gus 392 sound/isa/gus/gus_io.c outb((unsigned char) (addr >> 16), gus->gf1.reg_data8); gus 394 sound/isa/gus/gus_io.c outb(SNDRV_GF1_GW_DRAM_IO16, gus->gf1.reg_regsel); gus 397 sound/isa/gus/gus_io.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 402 sound/isa/gus/gus_io.c void snd_gf1_select_active_voices(struct snd_gus_card * gus) gus 412 sound/isa/gus/gus_io.c voices = gus->gf1.active_voices; gus 417 sound/isa/gus/gus_io.c if (gus->gf1.enh_mode) gus 419 sound/isa/gus/gus_io.c gus->gf1.active_voices = voices; gus 420 sound/isa/gus/gus_io.c gus->gf1.playback_freq = gus 421 sound/isa/gus/gus_io.c gus->gf1.enh_mode ? 44100 : voices_tbl[voices - 14]; gus 422 sound/isa/gus/gus_io.c if (!gus->gf1.enh_mode) { gus 423 sound/isa/gus/gus_io.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_ACTIVE_VOICES, 0xc0 | (voices - 1)); gus 430 sound/isa/gus/gus_io.c void snd_gf1_print_voice_registers(struct snd_gus_card * gus) gus 435 sound/isa/gus/gus_io.c voice = gus->gf1.active_voice; gus 436 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 voice ctrl, ramp ctrl = 0x%x, 0x%x\n", voice, ctrl = snd_gf1_i_read8(gus, 0), snd_gf1_i_read8(gus, 0x0d)); gus 437 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 frequency = 0x%x\n", voice, snd_gf1_i_read16(gus, 1)); gus 438 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 loop start, end = 0x%x (0x%x), 0x%x (0x%x)\n", voice, snd_gf1_i_read_addr(gus, 2, ctrl & 4), snd_gf1_i_read_addr(gus, 2, (ctrl & 4) ^ 4), snd_gf1_i_read_addr(gus, 4, ctrl & 4), snd_gf1_i_read_addr(gus, 4, (ctrl & 4) ^ 4)); gus 439 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 ramp start, end, rate = 0x%x, 0x%x, 0x%x\n", voice, snd_gf1_i_read8(gus, 7), snd_gf1_i_read8(gus, 8), snd_gf1_i_read8(gus, 6)); gus 440 sound/isa/gus/gus_io.c printk(KERN_INFO" -%i- GF1 volume = 0x%x\n", voice, snd_gf1_i_read16(gus, 9)); gus 441 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 position = 0x%x (0x%x)\n", voice, snd_gf1_i_read_addr(gus, 0x0a, ctrl & 4), snd_gf1_i_read_addr(gus, 0x0a, (ctrl & 4) ^ 4)); gus 442 sound/isa/gus/gus_io.c if (gus->interwave && snd_gf1_i_read8(gus, 0x19) & 0x01) { /* enhanced mode */ gus 443 sound/isa/gus/gus_io.c mode = snd_gf1_i_read8(gus, 0x15); gus 446 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 effect address = 0x%x\n", voice, snd_gf1_i_read_addr(gus, 0x11, ctrl & 4)); gus 447 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 effect volume = 0x%x\n", voice, snd_gf1_i_read16(gus, 0x16)); gus 448 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 effect volume final = 0x%x\n", voice, snd_gf1_i_read16(gus, 0x1d)); gus 449 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 effect accumulator = 0x%x\n", voice, snd_gf1_i_read8(gus, 0x14)); gus 452 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 left offset = 0x%x (%i)\n", voice, snd_gf1_i_read16(gus, 0x13), snd_gf1_i_read16(gus, 0x13) >> 4); gus 453 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 left offset final = 0x%x (%i)\n", voice, snd_gf1_i_read16(gus, 0x1c), snd_gf1_i_read16(gus, 0x1c) >> 4); gus 454 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 right offset = 0x%x (%i)\n", voice, snd_gf1_i_read16(gus, 0x0c), snd_gf1_i_read16(gus, 0x0c) >> 4); gus 455 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GFA1 right offset final = 0x%x (%i)\n", voice, snd_gf1_i_read16(gus, 0x1b), snd_gf1_i_read16(gus, 0x1b) >> 4); gus 457 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 pan = 0x%x\n", voice, snd_gf1_i_read8(gus, 0x0c)); gus 459 sound/isa/gus/gus_io.c printk(KERN_INFO " -%i- GF1 pan = 0x%x\n", voice, snd_gf1_i_read8(gus, 0x0c)); gus 464 sound/isa/gus/gus_io.c void snd_gf1_print_global_registers(struct snd_gus_card * gus) gus 468 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 active voices = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_ACTIVE_VOICES)); gus 469 sound/isa/gus/gus_io.c if (gus->interwave) { gus 470 sound/isa/gus/gus_io.c global_mode = snd_gf1_i_read8(gus, SNDRV_GF1_GB_GLOBAL_MODE); gus 474 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 LFO base = 0x%x\n", snd_gf1_i_look16(gus, SNDRV_GF1_GW_LFO_BASE)); gus 475 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 voices IRQ read = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_VOICES_IRQ_READ)); gus 476 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 DRAM DMA control = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_DMA_CONTROL)); gus 477 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 DRAM DMA high/low = 0x%x/0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_DMA_HIGH), snd_gf1_i_read16(gus, SNDRV_GF1_GW_DRAM_DMA_LOW)); gus 478 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 DRAM IO high/low = 0x%x/0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_IO_HIGH), snd_gf1_i_read16(gus, SNDRV_GF1_GW_DRAM_IO_LOW)); gus 479 sound/isa/gus/gus_io.c if (!gus->interwave) gus 480 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 record DMA control = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL)); gus 481 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GF1 DRAM IO 16 = 0x%x\n", snd_gf1_i_look16(gus, SNDRV_GF1_GW_DRAM_IO16)); gus 482 sound/isa/gus/gus_io.c if (gus->gf1.enh_mode) { gus 483 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GFA1 memory config = 0x%x\n", snd_gf1_i_look16(gus, SNDRV_GF1_GW_MEMORY_CONFIG)); gus 484 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GFA1 memory control = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_MEMORY_CONTROL)); gus 485 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GFA1 FIFO record base = 0x%x\n", snd_gf1_i_look16(gus, SNDRV_GF1_GW_FIFO_RECORD_BASE_ADDR)); gus 486 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GFA1 FIFO playback base = 0x%x\n", snd_gf1_i_look16(gus, SNDRV_GF1_GW_FIFO_PLAY_BASE_ADDR)); gus 487 sound/isa/gus/gus_io.c printk(KERN_INFO " -G- GFA1 interleave control = 0x%x\n", snd_gf1_i_look16(gus, SNDRV_GF1_GW_INTERLEAVE)); gus 491 sound/isa/gus/gus_io.c void snd_gf1_print_setup_registers(struct snd_gus_card * gus) gus 493 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- mix control = 0x%x\n", inb(GUSP(gus, MIXCNTRLREG))); gus 494 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- IRQ status = 0x%x\n", inb(GUSP(gus, IRQSTAT))); gus 495 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- timer control = 0x%x\n", inb(GUSP(gus, TIMERCNTRL))); gus 496 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- timer data = 0x%x\n", inb(GUSP(gus, TIMERDATA))); gus 497 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- status read = 0x%x\n", inb(GUSP(gus, REGCNTRLS))); gus 498 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- Sound Blaster control = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL)); gus 499 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- AdLib timer 1/2 = 0x%x/0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_ADLIB_TIMER_1), snd_gf1_i_look8(gus, SNDRV_GF1_GB_ADLIB_TIMER_2)); gus 500 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- reset = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)); gus 501 sound/isa/gus/gus_io.c if (gus->interwave) { gus 502 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- compatibility = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_COMPATIBILITY)); gus 503 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- decode control = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_DECODE_CONTROL)); gus 504 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- version number = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_VERSION_NUMBER)); gus 505 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- MPU-401 emul. control A/B = 0x%x/0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_MPU401_CONTROL_A), snd_gf1_i_look8(gus, SNDRV_GF1_GB_MPU401_CONTROL_B)); gus 506 sound/isa/gus/gus_io.c printk(KERN_INFO " -S- emulation IRQ = 0x%x\n", snd_gf1_i_look8(gus, SNDRV_GF1_GB_EMULATION_IRQ)); gus 510 sound/isa/gus/gus_io.c void snd_gf1_peek_print_block(struct snd_gus_card * gus, unsigned int addr, int count, int w_16bit) gus 514 sound/isa/gus/gus_io.c printk(count > 0 ? "%02x:" : "%02x", snd_gf1_peek(gus, addr++)); gus 517 sound/isa/gus/gus_io.c printk(count > 0 ? "%04x:" : "%04x", snd_gf1_peek(gus, addr) | (snd_gf1_peek(gus, addr + 1) << 8)); gus 19 sound/isa/gus/gus_irq.c struct snd_gus_card * gus = dev_id; gus 25 sound/isa/gus/gus_irq.c status = inb(gus->gf1.reg_irqstat); gus 31 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_midi_in); gus 32 sound/isa/gus/gus_irq.c if (gus->gf1.interrupt_handler_midi_in) gus 33 sound/isa/gus/gus_irq.c gus->gf1.interrupt_handler_midi_in(gus); gus 36 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_midi_out); gus 37 sound/isa/gus/gus_irq.c if (gus->gf1.interrupt_handler_midi_out) gus 38 sound/isa/gus/gus_irq.c gus->gf1.interrupt_handler_midi_out(gus); gus 46 sound/isa/gus/gus_irq.c while (((voice_status = snd_gf1_i_read8(gus, SNDRV_GF1_GB_VOICES_IRQ)) & 0xc0) != 0xc0) { gus 55 sound/isa/gus/gus_irq.c voice, voice_status, inb(GUSP(gus, GF1PAGE))); gus 57 sound/isa/gus/gus_irq.c pvoice = &gus->gf1.voices[voice]; gus 61 sound/isa/gus/gus_irq.c pvoice->handler_wave(gus, pvoice); gus 65 sound/isa/gus/gus_irq.c pvoice->handler_volume(gus, pvoice); gus 68 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_voice_lost); gus 69 sound/isa/gus/gus_irq.c snd_gf1_i_ctrl_stop(gus, SNDRV_GF1_VB_ADDRESS_CONTROL); gus 70 sound/isa/gus/gus_irq.c snd_gf1_i_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL); gus 75 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_timer1); gus 76 sound/isa/gus/gus_irq.c if (gus->gf1.interrupt_handler_timer1) gus 77 sound/isa/gus/gus_irq.c gus->gf1.interrupt_handler_timer1(gus); gus 80 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_timer2); gus 81 sound/isa/gus/gus_irq.c if (gus->gf1.interrupt_handler_timer2) gus 82 sound/isa/gus/gus_irq.c gus->gf1.interrupt_handler_timer2(gus); gus 85 sound/isa/gus/gus_irq.c if (snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_DMA_CONTROL) & 0x40) { gus 86 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_dma_write); gus 87 sound/isa/gus/gus_irq.c if (gus->gf1.interrupt_handler_dma_write) gus 88 sound/isa/gus/gus_irq.c gus->gf1.interrupt_handler_dma_write(gus); gus 90 sound/isa/gus/gus_irq.c if (snd_gf1_i_look8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL) & 0x40) { gus 91 sound/isa/gus/gus_irq.c STAT_ADD(gus->gf1.interrupt_stat_dma_read); gus 92 sound/isa/gus/gus_irq.c if (gus->gf1.interrupt_handler_dma_read) gus 93 sound/isa/gus/gus_irq.c gus->gf1.interrupt_handler_dma_read(gus); gus 105 sound/isa/gus/gus_irq.c struct snd_gus_card *gus; gus 109 sound/isa/gus/gus_irq.c gus = entry->private_data; gus 110 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "midi out = %u\n", gus->gf1.interrupt_stat_midi_out); gus 111 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "midi in = %u\n", gus->gf1.interrupt_stat_midi_in); gus 112 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "timer1 = %u\n", gus->gf1.interrupt_stat_timer1); gus 113 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "timer2 = %u\n", gus->gf1.interrupt_stat_timer2); gus 114 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "dma write = %u\n", gus->gf1.interrupt_stat_dma_write); gus 115 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "dma read = %u\n", gus->gf1.interrupt_stat_dma_read); gus 116 sound/isa/gus/gus_irq.c snd_iprintf(buffer, "voice lost = %u\n", gus->gf1.interrupt_stat_voice_lost); gus 118 sound/isa/gus/gus_irq.c pvoice = &gus->gf1.voices[idx]; gus 126 sound/isa/gus/gus_irq.c void snd_gus_irq_profile_init(struct snd_gus_card *gus) gus 128 sound/isa/gus/gus_irq.c snd_card_ro_proc_new(gus->card, "gusirq", gus, snd_gus_irq_info_read); gus 23 sound/isa/gus/gus_main.c static int snd_gus_init_dma_irq(struct snd_gus_card * gus, int latches); gus 25 sound/isa/gus/gus_main.c int snd_gus_use_inc(struct snd_gus_card * gus) gus 27 sound/isa/gus/gus_main.c if (!try_module_get(gus->card->module)) gus 32 sound/isa/gus/gus_main.c void snd_gus_use_dec(struct snd_gus_card * gus) gus 34 sound/isa/gus/gus_main.c module_put(gus->card->module); gus 48 sound/isa/gus/gus_main.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 50 sound/isa/gus/gus_main.c ucontrol->value.integer.value[0] = gus->joystick_dac & 31; gus 56 sound/isa/gus/gus_main.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 62 sound/isa/gus/gus_main.c spin_lock_irqsave(&gus->reg_lock, flags); gus 63 sound/isa/gus/gus_main.c change = gus->joystick_dac != nval; gus 64 sound/isa/gus/gus_main.c gus->joystick_dac = nval; gus 65 sound/isa/gus/gus_main.c snd_gf1_write8(gus, SNDRV_GF1_GB_JOYSTICK_DAC_LEVEL, gus->joystick_dac); gus 66 sound/isa/gus/gus_main.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 78 sound/isa/gus/gus_main.c static void snd_gus_init_control(struct snd_gus_card *gus) gus 82 sound/isa/gus/gus_main.c if (!gus->ace_flag) { gus 84 sound/isa/gus/gus_main.c snd_ctl_add(gus->card, gus 86 sound/isa/gus/gus_main.c gus)); gus 97 sound/isa/gus/gus_main.c static int snd_gus_free(struct snd_gus_card *gus) gus 99 sound/isa/gus/gus_main.c if (gus->gf1.res_port2 == NULL) gus 101 sound/isa/gus/gus_main.c snd_gf1_stop(gus); gus 102 sound/isa/gus/gus_main.c snd_gus_init_dma_irq(gus, 0); gus 104 sound/isa/gus/gus_main.c release_and_free_resource(gus->gf1.res_port1); gus 105 sound/isa/gus/gus_main.c release_and_free_resource(gus->gf1.res_port2); gus 106 sound/isa/gus/gus_main.c if (gus->gf1.irq >= 0) gus 107 sound/isa/gus/gus_main.c free_irq(gus->gf1.irq, (void *) gus); gus 108 sound/isa/gus/gus_main.c if (gus->gf1.dma1 >= 0) { gus 109 sound/isa/gus/gus_main.c disable_dma(gus->gf1.dma1); gus 110 sound/isa/gus/gus_main.c free_dma(gus->gf1.dma1); gus 112 sound/isa/gus/gus_main.c if (!gus->equal_dma && gus->gf1.dma2 >= 0) { gus 113 sound/isa/gus/gus_main.c disable_dma(gus->gf1.dma2); gus 114 sound/isa/gus/gus_main.c free_dma(gus->gf1.dma2); gus 116 sound/isa/gus/gus_main.c kfree(gus); gus 122 sound/isa/gus/gus_main.c struct snd_gus_card *gus = device->device_data; gus 123 sound/isa/gus/gus_main.c return snd_gus_free(gus); gus 135 sound/isa/gus/gus_main.c struct snd_gus_card *gus; gus 142 sound/isa/gus/gus_main.c gus = kzalloc(sizeof(*gus), GFP_KERNEL); gus 143 sound/isa/gus/gus_main.c if (gus == NULL) gus 145 sound/isa/gus/gus_main.c spin_lock_init(&gus->reg_lock); gus 146 sound/isa/gus/gus_main.c spin_lock_init(&gus->voice_alloc); gus 147 sound/isa/gus/gus_main.c spin_lock_init(&gus->active_voice_lock); gus 148 sound/isa/gus/gus_main.c spin_lock_init(&gus->event_lock); gus 149 sound/isa/gus/gus_main.c spin_lock_init(&gus->dma_lock); gus 150 sound/isa/gus/gus_main.c spin_lock_init(&gus->pcm_volume_level_lock); gus 151 sound/isa/gus/gus_main.c spin_lock_init(&gus->uart_cmd_lock); gus 152 sound/isa/gus/gus_main.c mutex_init(&gus->dma_mutex); gus 153 sound/isa/gus/gus_main.c gus->gf1.irq = -1; gus 154 sound/isa/gus/gus_main.c gus->gf1.dma1 = -1; gus 155 sound/isa/gus/gus_main.c gus->gf1.dma2 = -1; gus 156 sound/isa/gus/gus_main.c gus->card = card; gus 157 sound/isa/gus/gus_main.c gus->gf1.port = port; gus 159 sound/isa/gus/gus_main.c gus->gf1.reg_page = GUSP(gus, GF1PAGE); gus 160 sound/isa/gus/gus_main.c gus->gf1.reg_regsel = GUSP(gus, GF1REGSEL); gus 161 sound/isa/gus/gus_main.c gus->gf1.reg_data8 = GUSP(gus, GF1DATAHIGH); gus 162 sound/isa/gus/gus_main.c gus->gf1.reg_data16 = GUSP(gus, GF1DATALOW); gus 163 sound/isa/gus/gus_main.c gus->gf1.reg_irqstat = GUSP(gus, IRQSTAT); gus 164 sound/isa/gus/gus_main.c gus->gf1.reg_dram = GUSP(gus, DRAM); gus 165 sound/isa/gus/gus_main.c gus->gf1.reg_timerctrl = GUSP(gus, TIMERCNTRL); gus 166 sound/isa/gus/gus_main.c gus->gf1.reg_timerdata = GUSP(gus, TIMERDATA); gus 168 sound/isa/gus/gus_main.c if ((gus->gf1.res_port1 = request_region(port, 16, "GUS GF1 (Adlib/SB)")) == NULL) { gus 170 sound/isa/gus/gus_main.c snd_gus_free(gus); gus 173 sound/isa/gus/gus_main.c if ((gus->gf1.res_port2 = request_region(port + 0x100, 12, "GUS GF1 (Synth)")) == NULL) { gus 175 sound/isa/gus/gus_main.c snd_gus_free(gus); gus 178 sound/isa/gus/gus_main.c if (irq >= 0 && request_irq(irq, snd_gus_interrupt, 0, "GUS GF1", (void *) gus)) { gus 180 sound/isa/gus/gus_main.c snd_gus_free(gus); gus 183 sound/isa/gus/gus_main.c gus->gf1.irq = irq; gus 186 sound/isa/gus/gus_main.c snd_gus_free(gus); gus 189 sound/isa/gus/gus_main.c gus->gf1.dma1 = dma1; gus 193 sound/isa/gus/gus_main.c snd_gus_free(gus); gus 196 sound/isa/gus/gus_main.c gus->gf1.dma2 = dma2; gus 198 sound/isa/gus/gus_main.c gus->gf1.dma2 = gus->gf1.dma1; gus 199 sound/isa/gus/gus_main.c gus->equal_dma = 1; gus 201 sound/isa/gus/gus_main.c gus->timer_dev = timer_dev; gus 212 sound/isa/gus/gus_main.c gus->gf1.effect = effect ? 1 : 0; gus 213 sound/isa/gus/gus_main.c gus->gf1.active_voices = voices; gus 214 sound/isa/gus/gus_main.c gus->gf1.pcm_channels = pcm_channels; gus 215 sound/isa/gus/gus_main.c gus->gf1.volume_ramp = 25; gus 216 sound/isa/gus/gus_main.c gus->gf1.smooth_pan = 1; gus 217 sound/isa/gus/gus_main.c if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, gus, &ops)) < 0) { gus 218 sound/isa/gus/gus_main.c snd_gus_free(gus); gus 221 sound/isa/gus/gus_main.c *rgus = gus; gus 229 sound/isa/gus/gus_main.c static int snd_gus_detect_memory(struct snd_gus_card * gus) gus 234 sound/isa/gus/gus_main.c snd_gf1_poke(gus, 0L, 0xaa); gus 235 sound/isa/gus/gus_main.c snd_gf1_poke(gus, 1L, 0x55); gus 236 sound/isa/gus/gus_main.c if (snd_gf1_peek(gus, 0L) != 0xaa || snd_gf1_peek(gus, 1L) != 0x55) { gus 237 sound/isa/gus/gus_main.c snd_printk(KERN_ERR "plain GF1 card at 0x%lx without onboard DRAM?\n", gus->gf1.port); gus 242 sound/isa/gus/gus_main.c snd_gf1_poke(gus, local, d); gus 243 sound/isa/gus/gus_main.c snd_gf1_poke(gus, local + 1, d + 1); gus 244 sound/isa/gus/gus_main.c if (snd_gf1_peek(gus, local) != d || gus 245 sound/isa/gus/gus_main.c snd_gf1_peek(gus, local + 1) != d + 1 || gus 246 sound/isa/gus/gus_main.c snd_gf1_peek(gus, 0L) != 0xaa) gus 250 sound/isa/gus/gus_main.c gus->gf1.memory = idx << 18; gus 252 sound/isa/gus/gus_main.c gus->gf1.memory = 256 * 1024; gus 254 sound/isa/gus/gus_main.c for (l = 0, local = gus->gf1.memory; l < 4; l++, local -= 256 * 1024) { gus 255 sound/isa/gus/gus_main.c gus->gf1.mem_alloc.banks_8[l].address = gus 256 sound/isa/gus/gus_main.c gus->gf1.mem_alloc.banks_8[l].size = 0; gus 257 sound/isa/gus/gus_main.c gus->gf1.mem_alloc.banks_16[l].address = l << 18; gus 258 sound/isa/gus/gus_main.c gus->gf1.mem_alloc.banks_16[l].size = local > 0 ? 256 * 1024 : 0; gus 260 sound/isa/gus/gus_main.c gus->gf1.mem_alloc.banks_8[0].size = gus->gf1.memory; gus 264 sound/isa/gus/gus_main.c static int snd_gus_init_dma_irq(struct snd_gus_card * gus, int latches) gus 274 sound/isa/gus/gus_main.c if (snd_BUG_ON(!gus)) gus 276 sound/isa/gus/gus_main.c card = gus->card; gus 280 sound/isa/gus/gus_main.c gus->mix_cntrl_reg &= 0xf8; gus 281 sound/isa/gus/gus_main.c gus->mix_cntrl_reg |= 0x01; /* disable MIC, LINE IN, enable LINE OUT */ gus 282 sound/isa/gus/gus_main.c if (gus->codec_flag || gus->ess_flag) { gus 283 sound/isa/gus/gus_main.c gus->mix_cntrl_reg &= ~1; /* enable LINE IN */ gus 284 sound/isa/gus/gus_main.c gus->mix_cntrl_reg |= 4; /* enable MIC */ gus 286 sound/isa/gus/gus_main.c dma1 = gus->gf1.dma1; gus 289 sound/isa/gus/gus_main.c dma2 = gus->gf1.dma2; gus 292 sound/isa/gus/gus_main.c dma1 |= gus->equal_dma ? 0x40 : (dma2 << 3); gus 298 sound/isa/gus/gus_main.c irq = gus->gf1.irq; gus 310 sound/isa/gus/gus_main.c spin_lock_irqsave(&gus->reg_lock, flags); gus 311 sound/isa/gus/gus_main.c outb(5, GUSP(gus, REGCNTRLS)); gus 312 sound/isa/gus/gus_main.c outb(gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 313 sound/isa/gus/gus_main.c outb(0x00, GUSP(gus, IRQDMACNTRLREG)); gus 314 sound/isa/gus/gus_main.c outb(0, GUSP(gus, REGCNTRLS)); gus 315 sound/isa/gus/gus_main.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 319 sound/isa/gus/gus_main.c spin_lock_irqsave(&gus->reg_lock, flags); gus 320 sound/isa/gus/gus_main.c outb(0x00 | gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 321 sound/isa/gus/gus_main.c outb(dma1, GUSP(gus, IRQDMACNTRLREG)); gus 323 sound/isa/gus/gus_main.c outb(0x40 | gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 324 sound/isa/gus/gus_main.c outb(irq, GUSP(gus, IRQDMACNTRLREG)); gus 326 sound/isa/gus/gus_main.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 330 sound/isa/gus/gus_main.c spin_lock_irqsave(&gus->reg_lock, flags); gus 331 sound/isa/gus/gus_main.c outb(0x00 | gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 332 sound/isa/gus/gus_main.c outb(dma1, GUSP(gus, IRQDMACNTRLREG)); gus 334 sound/isa/gus/gus_main.c outb(0x40 | gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 335 sound/isa/gus/gus_main.c outb(irq, GUSP(gus, IRQDMACNTRLREG)); gus 337 sound/isa/gus/gus_main.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 339 sound/isa/gus/gus_main.c snd_gf1_delay(gus); gus 342 sound/isa/gus/gus_main.c gus->mix_cntrl_reg |= 0x08; /* enable latches */ gus 344 sound/isa/gus/gus_main.c gus->mix_cntrl_reg &= ~0x08; /* disable latches */ gus 345 sound/isa/gus/gus_main.c spin_lock_irqsave(&gus->reg_lock, flags); gus 346 sound/isa/gus/gus_main.c outb(gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 347 sound/isa/gus/gus_main.c outb(0, GUSP(gus, GF1PAGE)); gus 348 sound/isa/gus/gus_main.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 353 sound/isa/gus/gus_main.c static int snd_gus_check_version(struct snd_gus_card * gus) gus 359 sound/isa/gus/gus_main.c card = gus->card; gus 360 sound/isa/gus/gus_main.c spin_lock_irqsave(&gus->reg_lock, flags); gus 361 sound/isa/gus/gus_main.c outb(0x20, GUSP(gus, REGCNTRLS)); gus 362 sound/isa/gus/gus_main.c val = inb(GUSP(gus, REGCNTRLS)); gus 363 sound/isa/gus/gus_main.c rev = inb(GUSP(gus, BOARDVERSION)); gus 364 sound/isa/gus/gus_main.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 365 sound/isa/gus/gus_main.c snd_printdd("GF1 [0x%lx] init - val = 0x%x, rev = 0x%x\n", gus->gf1.port, val, rev); gus 370 sound/isa/gus/gus_main.c gus->ics_flag = 1; gus 372 sound/isa/gus/gus_main.c gus->ics_flipped = 1; gus 380 sound/isa/gus/gus_main.c gus->max_flag = 1; gus 384 sound/isa/gus/gus_main.c gus->ace_flag = 1; gus 388 sound/isa/gus/gus_main.c gus->ess_flag = 1; gus 390 sound/isa/gus/gus_main.c snd_printk(KERN_ERR "unknown GF1 revision number at 0x%lx - 0x%x (0x%x)\n", gus->gf1.port, rev, val); gus 396 sound/isa/gus/gus_main.c gus->uart_enable = 1; /* standard GUSes doesn't have midi uart trouble */ gus 397 sound/isa/gus/gus_main.c snd_gus_init_control(gus); gus 401 sound/isa/gus/gus_main.c int snd_gus_initialize(struct snd_gus_card *gus) gus 405 sound/isa/gus/gus_main.c if (!gus->interwave) { gus 406 sound/isa/gus/gus_main.c if ((err = snd_gus_check_version(gus)) < 0) { gus 410 sound/isa/gus/gus_main.c if ((err = snd_gus_detect_memory(gus)) < 0) gus 413 sound/isa/gus/gus_main.c if ((err = snd_gus_init_dma_irq(gus, 1)) < 0) gus 415 sound/isa/gus/gus_main.c snd_gf1_start(gus); gus 416 sound/isa/gus/gus_main.c gus->initialized = 1; gus 222 sound/isa/gus/gus_mem.c int snd_gf1_mem_init(struct snd_gus_card * gus) gus 227 sound/isa/gus/gus_mem.c alloc = &gus->gf1.mem_alloc; gus 230 sound/isa/gus/gus_mem.c if (!gus->gf1.memory) gus 235 sound/isa/gus/gus_mem.c if (gus->gf1.enh_mode) { gus 242 sound/isa/gus/gus_mem.c block.ptr = gus->gf1.default_voice_address; gus 248 sound/isa/gus/gus_mem.c snd_card_ro_proc_new(gus->card, "gusmem", gus, snd_gf1_mem_info_read); gus 253 sound/isa/gus/gus_mem.c int snd_gf1_mem_done(struct snd_gus_card * gus) gus 258 sound/isa/gus/gus_mem.c alloc = &gus->gf1.mem_alloc; gus 272 sound/isa/gus/gus_mem.c struct snd_gus_card *gus; gus 278 sound/isa/gus/gus_mem.c gus = entry->private_data; gus 279 sound/isa/gus/gus_mem.c alloc = &gus->gf1.mem_alloc; gus 16 sound/isa/gus/gus_mem_proc.c struct snd_gus_card * gus; gus 25 sound/isa/gus/gus_mem_proc.c struct snd_gus_card *gus = priv->gus; gus 28 sound/isa/gus/gus_mem_proc.c err = snd_gus_dram_read(gus, buf, pos, count, priv->rom); gus 44 sound/isa/gus/gus_mem_proc.c int snd_gf1_mem_proc_init(struct snd_gus_card * gus) gus 52 sound/isa/gus/gus_mem_proc.c if (gus->gf1.mem_alloc.banks_8[idx].size > 0) { gus 56 sound/isa/gus/gus_mem_proc.c priv->gus = gus; gus 58 sound/isa/gus/gus_mem_proc.c if (! snd_card_proc_new(gus->card, name, &entry)) { gus 63 sound/isa/gus/gus_mem_proc.c priv->address = gus->gf1.mem_alloc.banks_8[idx].address; gus 64 sound/isa/gus/gus_mem_proc.c priv->size = entry->size = gus->gf1.mem_alloc.banks_8[idx].size; gus 69 sound/isa/gus/gus_mem_proc.c if (gus->gf1.rom_present & (1 << idx)) { gus 74 sound/isa/gus/gus_mem_proc.c priv->gus = gus; gus 76 sound/isa/gus/gus_mem_proc.c if (! snd_card_proc_new(gus->card, name, &entry)) { gus 82 sound/isa/gus/gus_mem_proc.c priv->size = entry->size = gus->gf1.rom_memory; gus 27 sound/isa/gus/gus_mixer.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 31 sound/isa/gus/gus_mixer.c ucontrol->value.integer.value[0] = (gus->mix_cntrl_reg >> shift) & 1; gus 39 sound/isa/gus/gus_mixer.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 50 sound/isa/gus/gus_mixer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 51 sound/isa/gus/gus_mixer.c oval = gus->mix_cntrl_reg; gus 54 sound/isa/gus/gus_mixer.c outb(gus->mix_cntrl_reg = nval, GUSP(gus, MIXCNTRLREG)); gus 55 sound/isa/gus/gus_mixer.c outb(gus->gf1.active_voice = 0, GUSP(gus, GF1PAGE)); gus 56 sound/isa/gus/gus_mixer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 77 sound/isa/gus/gus_mixer.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 82 sound/isa/gus/gus_mixer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 83 sound/isa/gus/gus_mixer.c left = gus->gf1.ics_regs[addr][0]; gus 84 sound/isa/gus/gus_mixer.c right = gus->gf1.ics_regs[addr][1]; gus 85 sound/isa/gus/gus_mixer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 93 sound/isa/gus/gus_mixer.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 101 sound/isa/gus/gus_mixer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 102 sound/isa/gus/gus_mixer.c oval1 = gus->gf1.ics_regs[addr][0]; gus 103 sound/isa/gus/gus_mixer.c oval2 = gus->gf1.ics_regs[addr][1]; gus 105 sound/isa/gus/gus_mixer.c gus->gf1.ics_regs[addr][0] = val1; gus 106 sound/isa/gus/gus_mixer.c gus->gf1.ics_regs[addr][1] = val2; gus 107 sound/isa/gus/gus_mixer.c if (gus->ics_flag && gus->ics_flipped && gus 111 sound/isa/gus/gus_mixer.c outb(addr | 0, GUSP(gus, MIXCNTRLPORT)); gus 112 sound/isa/gus/gus_mixer.c outb(1, GUSP(gus, MIXDATAPORT)); gus 113 sound/isa/gus/gus_mixer.c outb(addr | 2, GUSP(gus, MIXCNTRLPORT)); gus 114 sound/isa/gus/gus_mixer.c outb((unsigned char) val1, GUSP(gus, MIXDATAPORT)); gus 115 sound/isa/gus/gus_mixer.c outb(addr | 1, GUSP(gus, MIXCNTRLPORT)); gus 116 sound/isa/gus/gus_mixer.c outb(2, GUSP(gus, MIXDATAPORT)); gus 117 sound/isa/gus/gus_mixer.c outb(addr | 3, GUSP(gus, MIXCNTRLPORT)); gus 118 sound/isa/gus/gus_mixer.c outb((unsigned char) val2, GUSP(gus, MIXDATAPORT)); gus 119 sound/isa/gus/gus_mixer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 140 sound/isa/gus/gus_mixer.c int snd_gf1_new_mixer(struct snd_gus_card * gus) gus 146 sound/isa/gus/gus_mixer.c if (snd_BUG_ON(!gus)) gus 148 sound/isa/gus/gus_mixer.c card = gus->card; gus 152 sound/isa/gus/gus_mixer.c if (gus->ics_flag) gus 155 sound/isa/gus/gus_mixer.c strcpy(card->mixername, gus->ics_flag ? "GF1,ICS2101" : "GF1"); gus 157 sound/isa/gus/gus_mixer.c if (gus->ics_flag) gus 162 sound/isa/gus/gus_mixer.c if (!gus->ics_flag) { gus 163 sound/isa/gus/gus_mixer.c max = gus->ess_flag ? 1 : ARRAY_SIZE(snd_gf1_controls); gus 165 sound/isa/gus/gus_mixer.c if ((err = snd_ctl_add(card, snd_ctl_new1(&snd_gf1_controls[idx], gus))) < 0) gus 170 sound/isa/gus/gus_mixer.c if ((err = snd_ctl_add(card, snd_ctl_new1(&snd_ics_controls[idx], gus))) < 0) gus 32 sound/isa/gus/gus_pcm.c struct snd_gus_card * gus; gus 49 sound/isa/gus/gus_pcm.c static void snd_gf1_pcm_block_change_ack(struct snd_gus_card * gus, void *private_data) gus 86 sound/isa/gus/gus_pcm.c if (!snd_gf1_dma_transfer_block(pcmp->gus, &block, 0, 0)) gus 95 sound/isa/gus/gus_pcm.c struct snd_gus_card * gus = pcmp->gus; gus 112 sound/isa/gus/gus_pcm.c rate = snd_gf1_translate_freq(gus, runtime->rate << 4); gus 132 sound/isa/gus/gus_pcm.c vol = !voice ? gus->gf1.pcm_volume_level_left : gus->gf1.pcm_volume_level_right; gus 133 sound/isa/gus/gus_pcm.c spin_lock_irqsave(&gus->reg_lock, flags); gus 134 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[voice]->number); gus 135 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_PAN, pan); gus 136 sound/isa/gus/gus_pcm.c snd_gf1_write16(gus, SNDRV_GF1_VW_FREQUENCY, rate); gus 137 sound/isa/gus/gus_pcm.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_START, begin << 4, voice_ctrl & 4); gus 138 sound/isa/gus/gus_pcm.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_END, end << 4, voice_ctrl & 4); gus 139 sound/isa/gus/gus_pcm.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_CURRENT, curr << 4, voice_ctrl & 4); gus 140 sound/isa/gus/gus_pcm.c snd_gf1_write16(gus, SNDRV_GF1_VW_VOLUME, SNDRV_GF1_MIN_VOLUME << 4); gus 141 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_RATE, 0x2f); gus 142 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_START, SNDRV_GF1_MIN_OFFSET); gus 143 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_END, vol >> 8); gus 144 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_CONTROL, ramp_ctrl); gus 145 sound/isa/gus/gus_pcm.c if (!gus->gf1.enh_mode) { gus 146 sound/isa/gus/gus_pcm.c snd_gf1_delay(gus); gus 147 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_CONTROL, ramp_ctrl); gus 149 sound/isa/gus/gus_pcm.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 151 sound/isa/gus/gus_pcm.c spin_lock_irqsave(&gus->reg_lock, flags); gus 153 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[voice]->number); gus 154 sound/isa/gus/gus_pcm.c if (gus->gf1.enh_mode) gus 155 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_MODE, 0x00); /* deactivate voice */ gus 156 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL, voice_ctrl); gus 160 sound/isa/gus/gus_pcm.c if (!gus->gf1.enh_mode) { gus 161 sound/isa/gus/gus_pcm.c snd_gf1_delay(gus); gus 163 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[voice]->number); gus 164 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL, voice_ctrl); gus 168 sound/isa/gus/gus_pcm.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 171 sound/isa/gus/gus_pcm.c static void snd_gf1_pcm_interrupt_wave(struct snd_gus_card * gus, gus 182 sound/isa/gus/gus_pcm.c snd_gf1_smart_stop_voice(gus, pvoice->number); gus 188 sound/isa/gus/gus_pcm.c snd_gf1_smart_stop_voice(gus, pvoice->number); gus 191 sound/isa/gus/gus_pcm.c gus = pcmp->gus; gus 194 sound/isa/gus/gus_pcm.c spin_lock(&gus->reg_lock); gus 195 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pvoice->number); gus 196 sound/isa/gus/gus_pcm.c voice_ctrl = snd_gf1_read8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL) & ~0x8b; gus 197 sound/isa/gus/gus_pcm.c ramp_ctrl = (snd_gf1_read8(gus, SNDRV_GF1_VB_VOLUME_CONTROL) & ~0xa4) | 0x03; gus 199 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pvoice->number); gus 201 sound/isa/gus/gus_pcm.c (snd_gf1_read_addr(gus, SNDRV_GF1_VA_CURRENT, voice_ctrl & 4) >> 4)); gus 202 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[1]->number); gus 204 sound/isa/gus/gus_pcm.c (snd_gf1_read_addr(gus, SNDRV_GF1_VA_CURRENT, voice_ctrl & 4) >> 4)); gus 205 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pvoice->number); gus 223 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[idx]->number); gus 224 sound/isa/gus/gus_pcm.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_END, end << 4, voice_ctrl & 4); gus 225 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL, voice_ctrl); gus 226 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_CONTROL, ramp_ctrl); gus 229 sound/isa/gus/gus_pcm.c if (!gus->gf1.enh_mode) { gus 230 sound/isa/gus/gus_pcm.c snd_gf1_delay(gus); gus 233 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[idx]->number); gus 234 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL, voice_ctrl); gus 235 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_CONTROL, ramp_ctrl); gus 239 sound/isa/gus/gus_pcm.c spin_unlock(&gus->reg_lock); gus 256 sound/isa/gus/gus_pcm.c static void snd_gf1_pcm_interrupt_volume(struct snd_gus_card * gus, gus 264 sound/isa/gus/gus_pcm.c spin_lock(&gus->reg_lock); gus 265 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pvoice->number); gus 266 sound/isa/gus/gus_pcm.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL); gus 267 sound/isa/gus/gus_pcm.c spin_unlock(&gus->reg_lock); gus 277 sound/isa/gus/gus_pcm.c vol = !cvoice ? gus->gf1.pcm_volume_level_left : gus->gf1.pcm_volume_level_right; gus 278 sound/isa/gus/gus_pcm.c spin_lock(&gus->reg_lock); gus 279 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pvoice->number); gus 280 sound/isa/gus/gus_pcm.c snd_gf1_write16(gus, SNDRV_GF1_VW_VOLUME, vol); gus 282 sound/isa/gus/gus_pcm.c spin_unlock(&gus->reg_lock); gus 285 sound/isa/gus/gus_pcm.c static void snd_gf1_pcm_volume_change(struct snd_gus_card * gus) gus 289 sound/isa/gus/gus_pcm.c static int snd_gf1_pcm_poke_block(struct snd_gus_card *gus, unsigned char *buf, gus 306 sound/isa/gus/gus_pcm.c if (gus->interwave) { gus 307 sound/isa/gus/gus_pcm.c spin_lock_irqsave(&gus->reg_lock, flags); gus 308 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x01 | (invert ? 0x08 : 0x00)); gus 309 sound/isa/gus/gus_pcm.c snd_gf1_dram_addr(gus, pos); gus 311 sound/isa/gus/gus_pcm.c outb(SNDRV_GF1_GW_DRAM_IO16, GUSP(gus, GF1REGSEL)); gus 312 sound/isa/gus/gus_pcm.c outsw(GUSP(gus, GF1DATALOW), buf, len >> 1); gus 314 sound/isa/gus/gus_pcm.c outsb(GUSP(gus, DRAM), buf, len); gus 316 sound/isa/gus/gus_pcm.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 324 sound/isa/gus/gus_pcm.c snd_gf1_poke(gus, pos++, *buf++); gus 325 sound/isa/gus/gus_pcm.c snd_gf1_poke(gus, pos++, *buf++ ^ invert); gus 329 sound/isa/gus/gus_pcm.c snd_gf1_poke(gus, pos++, *buf++ ^ invert); gus 357 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = pcmp->gus; gus 366 sound/isa/gus/gus_pcm.c return snd_gf1_pcm_poke_block(gus, runtime->dma_area + bpos, gus 423 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 433 sound/isa/gus/gus_pcm.c snd_gf1_mem_free(&gus->gf1.mem_alloc, pcmp->memory); gus 436 sound/isa/gus/gus_pcm.c if ((block = snd_gf1_mem_alloc(&gus->gf1.mem_alloc, gus 446 sound/isa/gus/gus_pcm.c if ((pcmp->pvoices[0] = snd_gf1_alloc_voice(pcmp->gus, SNDRV_GF1_VOICE_TYPE_PCM, 0, 0)) == NULL) gus 454 sound/isa/gus/gus_pcm.c if ((pcmp->pvoices[1] = snd_gf1_alloc_voice(pcmp->gus, SNDRV_GF1_VOICE_TYPE_PCM, 0, 0)) == NULL) gus 462 sound/isa/gus/gus_pcm.c snd_gf1_free_voice(pcmp->gus, pcmp->pvoices[1]); gus 476 sound/isa/gus/gus_pcm.c snd_gf1_free_voice(pcmp->gus, pcmp->pvoices[0]); gus 480 sound/isa/gus/gus_pcm.c snd_gf1_free_voice(pcmp->gus, pcmp->pvoices[1]); gus 484 sound/isa/gus/gus_pcm.c snd_gf1_mem_free(&pcmp->gus->gf1.mem_alloc, pcmp->memory); gus 505 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 517 sound/isa/gus/gus_pcm.c snd_gf1_stop_voices(gus, voice, voice); gus 520 sound/isa/gus/gus_pcm.c snd_gf1_stop_voices(gus, voice, voice); gus 530 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 537 sound/isa/gus/gus_pcm.c spin_lock(&gus->reg_lock); gus 539 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pcmp->pvoices[0]->number); gus 540 sound/isa/gus/gus_pcm.c voice_ctrl = snd_gf1_read8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL); gus 541 sound/isa/gus/gus_pcm.c pos = (snd_gf1_read_addr(gus, SNDRV_GF1_VA_CURRENT, voice_ctrl & 4) >> 4) - pcmp->memory; gus 546 sound/isa/gus/gus_pcm.c spin_unlock(&gus->reg_lock); gus 565 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 567 sound/isa/gus/gus_pcm.c gus->c_dma_size = params_buffer_bytes(hw_params); gus 568 sound/isa/gus/gus_pcm.c gus->c_period_size = params_period_bytes(hw_params); gus 569 sound/isa/gus/gus_pcm.c gus->c_pos = 0; gus 570 sound/isa/gus/gus_pcm.c gus->gf1.pcm_rcntrl_reg = 0x21; /* IRQ at end, enable & start */ gus 572 sound/isa/gus/gus_pcm.c gus->gf1.pcm_rcntrl_reg |= 2; gus 573 sound/isa/gus/gus_pcm.c if (gus->gf1.dma2 > 3) gus 574 sound/isa/gus/gus_pcm.c gus->gf1.pcm_rcntrl_reg |= 4; gus 576 sound/isa/gus/gus_pcm.c gus->gf1.pcm_rcntrl_reg |= 0x80; gus 587 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 590 sound/isa/gus/gus_pcm.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RECORD_RATE, runtime->rate_den - 2); gus 591 sound/isa/gus/gus_pcm.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL, 0); /* disable sampling */ gus 592 sound/isa/gus/gus_pcm.c snd_gf1_i_look8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL); /* Sampling Control Register */ gus 593 sound/isa/gus/gus_pcm.c snd_dma_program(gus->gf1.dma2, runtime->dma_addr, gus->c_period_size, DMA_MODE_READ); gus 600 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 604 sound/isa/gus/gus_pcm.c val = gus->gf1.pcm_rcntrl_reg; gus 611 sound/isa/gus/gus_pcm.c spin_lock(&gus->reg_lock); gus 612 sound/isa/gus/gus_pcm.c snd_gf1_write8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL, val); gus 613 sound/isa/gus/gus_pcm.c snd_gf1_look8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL); gus 614 sound/isa/gus/gus_pcm.c spin_unlock(&gus->reg_lock); gus 620 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 621 sound/isa/gus/gus_pcm.c int pos = snd_dma_pointer(gus->gf1.dma2, gus->c_period_size); gus 622 sound/isa/gus/gus_pcm.c pos = bytes_to_frames(substream->runtime, (gus->c_pos + pos) % gus->c_dma_size); gus 626 sound/isa/gus/gus_pcm.c static void snd_gf1_pcm_interrupt_dma_read(struct snd_gus_card * gus) gus 628 sound/isa/gus/gus_pcm.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL, 0); /* disable sampling */ gus 629 sound/isa/gus/gus_pcm.c snd_gf1_i_look8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL); /* Sampling Control Register */ gus 630 sound/isa/gus/gus_pcm.c if (gus->pcm_cap_substream != NULL) { gus 631 sound/isa/gus/gus_pcm.c snd_gf1_pcm_capture_prepare(gus->pcm_cap_substream); gus 632 sound/isa/gus/gus_pcm.c snd_gf1_pcm_capture_trigger(gus->pcm_cap_substream, SNDRV_PCM_TRIGGER_START); gus 633 sound/isa/gus/gus_pcm.c gus->c_pos += gus->c_period_size; gus 634 sound/isa/gus/gus_pcm.c snd_pcm_period_elapsed(gus->pcm_cap_substream); gus 682 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 689 sound/isa/gus/gus_pcm.c pcmp->gus = gus; gus 699 sound/isa/gus/gus_pcm.c (long) pcm->playback.buffer, (long) gus->gf1.pcm_buffer); gus 701 sound/isa/gus/gus_pcm.c if ((err = snd_gf1_dma_init(gus)) < 0) gus 706 sound/isa/gus/gus_pcm.c snd_pcm_limit_isa_dma_size(gus->gf1.dma1, &runtime->hw.buffer_bytes_max); gus 707 sound/isa/gus/gus_pcm.c snd_pcm_limit_isa_dma_size(gus->gf1.dma1, &runtime->hw.period_bytes_max); gus 714 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 721 sound/isa/gus/gus_pcm.c snd_gf1_dma_done(gus); gus 728 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 730 sound/isa/gus/gus_pcm.c gus->gf1.interrupt_handler_dma_read = snd_gf1_pcm_interrupt_dma_read; gus 731 sound/isa/gus/gus_pcm.c gus->pcm_cap_substream = substream; gus 733 sound/isa/gus/gus_pcm.c snd_pcm_limit_isa_dma_size(gus->gf1.dma2, &runtime->hw.buffer_bytes_max); gus 734 sound/isa/gus/gus_pcm.c snd_pcm_limit_isa_dma_size(gus->gf1.dma2, &runtime->hw.period_bytes_max); gus 742 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_pcm_substream_chip(substream); gus 744 sound/isa/gus/gus_pcm.c gus->pcm_cap_substream = NULL; gus 745 sound/isa/gus/gus_pcm.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_DMA_READ); gus 760 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 763 sound/isa/gus/gus_pcm.c spin_lock_irqsave(&gus->pcm_volume_level_lock, flags); gus 764 sound/isa/gus/gus_pcm.c ucontrol->value.integer.value[0] = gus->gf1.pcm_volume_level_left1; gus 765 sound/isa/gus/gus_pcm.c ucontrol->value.integer.value[1] = gus->gf1.pcm_volume_level_right1; gus 766 sound/isa/gus/gus_pcm.c spin_unlock_irqrestore(&gus->pcm_volume_level_lock, flags); gus 772 sound/isa/gus/gus_pcm.c struct snd_gus_card *gus = snd_kcontrol_chip(kcontrol); gus 782 sound/isa/gus/gus_pcm.c spin_lock_irqsave(&gus->pcm_volume_level_lock, flags); gus 783 sound/isa/gus/gus_pcm.c change = val1 != gus->gf1.pcm_volume_level_left1 || gus 784 sound/isa/gus/gus_pcm.c val2 != gus->gf1.pcm_volume_level_right1; gus 785 sound/isa/gus/gus_pcm.c gus->gf1.pcm_volume_level_left1 = val1; gus 786 sound/isa/gus/gus_pcm.c gus->gf1.pcm_volume_level_right1 = val2; gus 787 sound/isa/gus/gus_pcm.c gus->gf1.pcm_volume_level_left = snd_gf1_lvol_to_gvol_raw(val1 << 9) << 4; gus 788 sound/isa/gus/gus_pcm.c gus->gf1.pcm_volume_level_right = snd_gf1_lvol_to_gvol_raw(val2 << 9) << 4; gus 789 sound/isa/gus/gus_pcm.c spin_unlock_irqrestore(&gus->pcm_volume_level_lock, flags); gus 791 sound/isa/gus/gus_pcm.c spin_lock_irqsave(&gus->voice_alloc, flags); gus 793 sound/isa/gus/gus_pcm.c pvoice = &gus->gf1.voices[idx]; gus 800 sound/isa/gus/gus_pcm.c spin_lock(&gus->reg_lock); gus 801 sound/isa/gus/gus_pcm.c snd_gf1_select_voice(gus, pvoice->number); gus 802 sound/isa/gus/gus_pcm.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL); gus 803 sound/isa/gus/gus_pcm.c vol = pvoice == pcmp->pvoices[0] ? gus->gf1.pcm_volume_level_left : gus->gf1.pcm_volume_level_right; gus 804 sound/isa/gus/gus_pcm.c snd_gf1_write16(gus, SNDRV_GF1_VW_VOLUME, vol); gus 806 sound/isa/gus/gus_pcm.c spin_unlock(&gus->reg_lock); gus 808 sound/isa/gus/gus_pcm.c spin_unlock_irqrestore(&gus->voice_alloc, flags); gus 855 sound/isa/gus/gus_pcm.c int snd_gf1_pcm_new(struct snd_gus_card *gus, int pcm_dev, int control_index) gus 863 sound/isa/gus/gus_pcm.c card = gus->card; gus 864 sound/isa/gus/gus_pcm.c capture = !gus->interwave && !gus->ess_flag && !gus->ace_flag ? 1 : 0; gus 866 sound/isa/gus/gus_pcm.c gus->interwave ? "AMD InterWave" : "GF1", gus 868 sound/isa/gus/gus_pcm.c gus->gf1.pcm_channels / 2, gus 873 sound/isa/gus/gus_pcm.c pcm->private_data = gus; gus 880 sound/isa/gus/gus_pcm.c 64*1024, gus->gf1.dma1 > 3 ? 128*1024 : 64*1024); gus 886 sound/isa/gus/gus_pcm.c if (gus->gf1.dma2 == gus->gf1.dma1) gus 890 sound/isa/gus/gus_pcm.c 64*1024, gus->gf1.dma2 > 3 ? 128*1024 : 64*1024); gus 893 sound/isa/gus/gus_pcm.c if (gus->interwave) { gus 894 sound/isa/gus/gus_pcm.c sprintf(pcm->name + strlen(pcm->name), " rev %c", gus->revision + 'A'); gus 897 sound/isa/gus/gus_pcm.c gus->pcm = pcm; gus 899 sound/isa/gus/gus_pcm.c if (gus->codec_flag) gus 900 sound/isa/gus/gus_pcm.c kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control1, gus); gus 902 sound/isa/gus/gus_pcm.c kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control, gus); gus 12 sound/isa/gus/gus_reset.c extern void snd_gf1_timers_init(struct snd_gus_card * gus); gus 13 sound/isa/gus/gus_reset.c extern void snd_gf1_timers_done(struct snd_gus_card * gus); gus 14 sound/isa/gus/gus_reset.c extern int snd_gf1_synth_init(struct snd_gus_card * gus); gus 15 sound/isa/gus/gus_reset.c extern void snd_gf1_synth_done(struct snd_gus_card * gus); gus 21 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_midi_out(struct snd_gus_card * gus) gus 23 sound/isa/gus/gus_reset.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd &= ~0x20); gus 26 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_midi_in(struct snd_gus_card * gus) gus 28 sound/isa/gus/gus_reset.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd &= ~0x80); gus 31 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_timer1(struct snd_gus_card * gus) gus 33 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, gus->gf1.timer_enabled &= ~4); gus 36 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_timer2(struct snd_gus_card * gus) gus 38 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, gus->gf1.timer_enabled &= ~8); gus 41 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_wave_and_volume(struct snd_gus_card * gus, struct snd_gus_voice * voice) gus 43 sound/isa/gus/gus_reset.c snd_gf1_i_ctrl_stop(gus, 0x00); gus 44 sound/isa/gus/gus_reset.c snd_gf1_i_ctrl_stop(gus, 0x0d); gus 47 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_dma_write(struct snd_gus_card * gus) gus 49 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, 0x41, 0x00); gus 52 sound/isa/gus/gus_reset.c static void snd_gf1_default_interrupt_handler_dma_read(struct snd_gus_card * gus) gus 54 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, 0x49, 0x00); gus 57 sound/isa/gus/gus_reset.c void snd_gf1_set_default_handlers(struct snd_gus_card * gus, unsigned int what) gus 60 sound/isa/gus/gus_reset.c gus->gf1.interrupt_handler_midi_out = snd_gf1_default_interrupt_handler_midi_out; gus 62 sound/isa/gus/gus_reset.c gus->gf1.interrupt_handler_midi_in = snd_gf1_default_interrupt_handler_midi_in; gus 64 sound/isa/gus/gus_reset.c gus->gf1.interrupt_handler_timer1 = snd_gf1_default_interrupt_handler_timer1; gus 66 sound/isa/gus/gus_reset.c gus->gf1.interrupt_handler_timer2 = snd_gf1_default_interrupt_handler_timer2; gus 70 sound/isa/gus/gus_reset.c voice = &gus->gf1.voices[what & 0xffff]; gus 77 sound/isa/gus/gus_reset.c gus->gf1.interrupt_handler_dma_write = snd_gf1_default_interrupt_handler_dma_write; gus 79 sound/isa/gus/gus_reset.c gus->gf1.interrupt_handler_dma_read = snd_gf1_default_interrupt_handler_dma_read; gus 86 sound/isa/gus/gus_reset.c static void snd_gf1_clear_regs(struct snd_gus_card * gus) gus 90 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 91 sound/isa/gus/gus_reset.c inb(GUSP(gus, IRQSTAT)); gus 92 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, 0x41, 0); /* DRAM DMA Control Register */ gus 93 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, 0x45, 0); /* Timer Control */ gus 94 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, 0x49, 0); /* Sampling Control Register */ gus 95 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 98 sound/isa/gus/gus_reset.c static void snd_gf1_look_regs(struct snd_gus_card * gus) gus 102 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 103 sound/isa/gus/gus_reset.c snd_gf1_look8(gus, 0x41); /* DRAM DMA Control Register */ gus 104 sound/isa/gus/gus_reset.c snd_gf1_look8(gus, 0x49); /* Sampling Control Register */ gus 105 sound/isa/gus/gus_reset.c inb(GUSP(gus, IRQSTAT)); gus 106 sound/isa/gus/gus_reset.c snd_gf1_read8(gus, 0x0f); /* IRQ Source Register */ gus 107 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 114 sound/isa/gus/gus_reset.c void snd_gf1_smart_stop_voice(struct snd_gus_card * gus, unsigned short voice) gus 118 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 119 sound/isa/gus/gus_reset.c snd_gf1_select_voice(gus, voice); gus 121 sound/isa/gus/gus_reset.c printk(KERN_DEBUG " -%i- smart stop voice - volume = 0x%x\n", voice, snd_gf1_i_read16(gus, SNDRV_GF1_VW_VOLUME)); gus 123 sound/isa/gus/gus_reset.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_ADDRESS_CONTROL); gus 124 sound/isa/gus/gus_reset.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL); gus 125 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 128 sound/isa/gus/gus_reset.c void snd_gf1_stop_voice(struct snd_gus_card * gus, unsigned short voice) gus 132 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 133 sound/isa/gus/gus_reset.c snd_gf1_select_voice(gus, voice); gus 135 sound/isa/gus/gus_reset.c printk(KERN_DEBUG " -%i- stop voice - volume = 0x%x\n", voice, snd_gf1_i_read16(gus, SNDRV_GF1_VW_VOLUME)); gus 137 sound/isa/gus/gus_reset.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_ADDRESS_CONTROL); gus 138 sound/isa/gus/gus_reset.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL); gus 139 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode) gus 140 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_ACCUMULATOR, 0); gus 141 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 143 sound/isa/gus/gus_reset.c snd_gf1_lfo_shutdown(gus, voice, ULTRA_LFO_VIBRATO); gus 144 sound/isa/gus/gus_reset.c snd_gf1_lfo_shutdown(gus, voice, ULTRA_LFO_TREMOLO); gus 148 sound/isa/gus/gus_reset.c static void snd_gf1_clear_voices(struct snd_gus_card * gus, unsigned short v_min, gus 155 sound/isa/gus/gus_reset.c daddr = gus->gf1.default_voice_address << 4; gus 158 sound/isa/gus/gus_reset.c if (gus->gf1.syn_voices) gus 159 sound/isa/gus/gus_reset.c gus->gf1.syn_voices[i].flags = ~VFLG_DYNAMIC; gus 161 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 162 sound/isa/gus/gus_reset.c snd_gf1_select_voice(gus, i); gus 163 sound/isa/gus/gus_reset.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_ADDRESS_CONTROL); /* Voice Control Register = voice stop */ gus 164 sound/isa/gus/gus_reset.c snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL); /* Volume Ramp Control Register = ramp off */ gus 165 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode) gus 166 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_MODE, gus->gf1.memory ? 0x02 : 0x82); /* Deactivate voice */ gus 167 sound/isa/gus/gus_reset.c w_16 = snd_gf1_read8(gus, SNDRV_GF1_VB_ADDRESS_CONTROL) & 0x04; gus 168 sound/isa/gus/gus_reset.c snd_gf1_write16(gus, SNDRV_GF1_VW_FREQUENCY, 0x400); gus 169 sound/isa/gus/gus_reset.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_START, daddr, w_16); gus 170 sound/isa/gus/gus_reset.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_END, daddr, w_16); gus 171 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_START, 0); gus 172 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_END, 0); gus 173 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_RATE, 0); gus 174 sound/isa/gus/gus_reset.c snd_gf1_write16(gus, SNDRV_GF1_VW_VOLUME, 0); gus 175 sound/isa/gus/gus_reset.c snd_gf1_write_addr(gus, SNDRV_GF1_VA_CURRENT, daddr, w_16); gus 176 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_PAN, 7); gus 177 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode) { gus 178 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_ACCUMULATOR, 0); gus 179 sound/isa/gus/gus_reset.c snd_gf1_write16(gus, SNDRV_GF1_VW_EFFECT_VOLUME, 0); gus 180 sound/isa/gus/gus_reset.c snd_gf1_write16(gus, SNDRV_GF1_VW_EFFECT_VOLUME_FINAL, 0); gus 182 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 184 sound/isa/gus/gus_reset.c snd_gf1_lfo_shutdown(gus, i, ULTRA_LFO_VIBRATO); gus 185 sound/isa/gus/gus_reset.c snd_gf1_lfo_shutdown(gus, i, ULTRA_LFO_TREMOLO); gus 190 sound/isa/gus/gus_reset.c void snd_gf1_stop_voices(struct snd_gus_card * gus, unsigned short v_min, unsigned short v_max) gus 198 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 199 sound/isa/gus/gus_reset.c snd_gf1_select_voice(gus, i); gus 200 sound/isa/gus/gus_reset.c ramp_end = snd_gf1_read16(gus, 9) >> 8; gus 203 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_RATE, 20); /* ramp rate */ gus 204 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_START, SNDRV_GF1_MIN_OFFSET); /* ramp start */ gus 205 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_END, ramp_end); /* ramp end */ gus 206 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_CONTROL, 0x40); /* ramp down */ gus 207 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode) { gus 208 sound/isa/gus/gus_reset.c snd_gf1_delay(gus); gus 209 sound/isa/gus/gus_reset.c snd_gf1_write8(gus, SNDRV_GF1_VB_VOLUME_CONTROL, 0x40); gus 212 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 216 sound/isa/gus/gus_reset.c snd_gf1_clear_voices(gus, v_min, v_max); gus 219 sound/isa/gus/gus_reset.c static void snd_gf1_alloc_voice_use(struct snd_gus_card * gus, gus 226 sound/isa/gus/gus_reset.c gus->gf1.pcm_alloc_voices++; gus 242 sound/isa/gus/gus_reset.c struct snd_gus_voice *snd_gf1_alloc_voice(struct snd_gus_card * gus, int type, int client, int port) gus 248 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->voice_alloc, flags); gus 250 sound/isa/gus/gus_reset.c if (gus->gf1.pcm_alloc_voices >= gus->gf1.pcm_channels) { gus 251 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->voice_alloc, flags); gus 256 sound/isa/gus/gus_reset.c pvoice = &gus->gf1.voices[idx]; gus 258 sound/isa/gus/gus_reset.c snd_gf1_alloc_voice_use(gus, pvoice, type, client, port); gus 259 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->voice_alloc, flags); gus 264 sound/isa/gus/gus_reset.c pvoice = &gus->gf1.voices[idx]; gus 266 sound/isa/gus/gus_reset.c snd_gf1_clear_voices(gus, pvoice->number, pvoice->number); gus 267 sound/isa/gus/gus_reset.c snd_gf1_alloc_voice_use(gus, pvoice, type, client, port); gus 268 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->voice_alloc, flags); gus 272 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->voice_alloc, flags); gus 276 sound/isa/gus/gus_reset.c void snd_gf1_free_voice(struct snd_gus_card * gus, struct snd_gus_voice *voice) gus 283 sound/isa/gus/gus_reset.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_VOICE | voice->number); gus 284 sound/isa/gus/gus_reset.c snd_gf1_clear_voices(gus, voice->number, voice->number); gus 285 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->voice_alloc, flags); gus 290 sound/isa/gus/gus_reset.c gus->gf1.pcm_alloc_voices--; gus 293 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->voice_alloc, flags); gus 302 sound/isa/gus/gus_reset.c int snd_gf1_start(struct snd_gus_card * gus) gus 307 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 0); /* reset GF1 */ gus 309 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* disable IRQ & DAC */ gus 311 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_JOYSTICK_DAC_LEVEL, gus->joystick_dac); gus 313 sound/isa/gus/gus_reset.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_ALL); gus 315 sound/isa/gus/gus_reset.c gus->gf1.voices[i].number = i; gus 316 sound/isa/gus/gus_reset.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_VOICE | i); gus 319 sound/isa/gus/gus_reset.c snd_gf1_uart_cmd(gus, 0x03); /* huh.. this cleanup took me some time... */ gus 321 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode) { /* enhanced mode !!!! */ gus 322 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_GLOBAL_MODE, snd_gf1_i_look8(gus, SNDRV_GF1_GB_GLOBAL_MODE) | 0x01); gus 323 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x01); gus 325 sound/isa/gus/gus_reset.c snd_gf1_clear_regs(gus); gus 326 sound/isa/gus/gus_reset.c snd_gf1_select_active_voices(gus); gus 327 sound/isa/gus/gus_reset.c snd_gf1_delay(gus); gus 328 sound/isa/gus/gus_reset.c gus->gf1.default_voice_address = gus->gf1.memory > 0 ? 0 : 512 - 8; gus 330 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode && gus->gf1.memory) { gus 331 sound/isa/gus/gus_reset.c gus->gf1.hw_lfo = 1; gus 332 sound/isa/gus/gus_reset.c gus->gf1.default_voice_address += 1024; gus 334 sound/isa/gus/gus_reset.c gus->gf1.sw_lfo = 1; gus 337 sound/isa/gus/gus_reset.c snd_gf1_lfo_init(gus); gus 339 sound/isa/gus/gus_reset.c if (gus->gf1.memory > 0) gus 341 sound/isa/gus/gus_reset.c snd_gf1_poke(gus, gus->gf1.default_voice_address + i, 0); gus 342 sound/isa/gus/gus_reset.c snd_gf1_clear_regs(gus); gus 343 sound/isa/gus/gus_reset.c snd_gf1_clear_voices(gus, 0, 31); gus 344 sound/isa/gus/gus_reset.c snd_gf1_look_regs(gus); gus 346 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 7); /* Reset Register = IRQ enable, DAC enable */ gus 348 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 7); /* Reset Register = IRQ enable, DAC enable */ gus 349 sound/isa/gus/gus_reset.c if (gus->gf1.enh_mode) { /* enhanced mode !!!! */ gus 350 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_GLOBAL_MODE, snd_gf1_i_look8(gus, SNDRV_GF1_GB_GLOBAL_MODE) | 0x01); gus 351 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x01); gus 353 sound/isa/gus/gus_reset.c while ((snd_gf1_i_read8(gus, SNDRV_GF1_GB_VOICES_IRQ) & 0xc0) != 0xc0); gus 355 sound/isa/gus/gus_reset.c spin_lock_irqsave(&gus->reg_lock, flags); gus 356 sound/isa/gus/gus_reset.c outb(gus->gf1.active_voice = 0, GUSP(gus, GF1PAGE)); gus 357 sound/isa/gus/gus_reset.c outb(gus->mix_cntrl_reg, GUSP(gus, MIXCNTRLREG)); gus 358 sound/isa/gus/gus_reset.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 360 sound/isa/gus/gus_reset.c snd_gf1_timers_init(gus); gus 361 sound/isa/gus/gus_reset.c snd_gf1_look_regs(gus); gus 362 sound/isa/gus/gus_reset.c snd_gf1_mem_init(gus); gus 363 sound/isa/gus/gus_reset.c snd_gf1_mem_proc_init(gus); gus 365 sound/isa/gus/gus_reset.c snd_gus_irq_profile_init(gus); gus 369 sound/isa/gus/gus_reset.c if (gus->pnp_flag) { gus 370 sound/isa/gus/gus_reset.c if (gus->chip.playback_fifo_size > 0) gus 371 sound/isa/gus/gus_reset.c snd_gf1_i_write16(gus, SNDRV_GF1_GW_FIFO_RECORD_BASE_ADDR, gus->chip.playback_fifo_block->ptr >> 8); gus 372 sound/isa/gus/gus_reset.c if (gus->chip.record_fifo_size > 0) gus 373 sound/isa/gus/gus_reset.c snd_gf1_i_write16(gus, SNDRV_GF1_GW_FIFO_PLAY_BASE_ADDR, gus->chip.record_fifo_block->ptr >> 8); gus 374 sound/isa/gus/gus_reset.c snd_gf1_i_write16(gus, SNDRV_GF1_GW_FIFO_SIZE, gus->chip.interwave_fifo_reg); gus 385 sound/isa/gus/gus_reset.c int snd_gf1_stop(struct snd_gus_card * gus) gus 387 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, 0); /* stop all timers */ gus 388 sound/isa/gus/gus_reset.c snd_gf1_stop_voices(gus, 0, 31); /* stop all voices */ gus 389 sound/isa/gus/gus_reset.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* disable IRQ & DAC */ gus 390 sound/isa/gus/gus_reset.c snd_gf1_timers_done(gus); gus 391 sound/isa/gus/gus_reset.c snd_gf1_mem_done(gus); gus 393 sound/isa/gus/gus_reset.c snd_gf1_lfo_done(gus); gus 22 sound/isa/gus/gus_timer.c struct snd_gus_card *gus; gus 24 sound/isa/gus/gus_timer.c gus = snd_timer_chip(timer); gus 25 sound/isa/gus/gus_timer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 27 sound/isa/gus/gus_timer.c tmp = (gus->gf1.timer_enabled |= 4); gus 28 sound/isa/gus/gus_timer.c snd_gf1_write8(gus, SNDRV_GF1_GB_ADLIB_TIMER_1, 256 - ticks); /* timer 1 count */ gus 29 sound/isa/gus/gus_timer.c snd_gf1_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, tmp); /* enable timer 1 IRQ */ gus 30 sound/isa/gus/gus_timer.c snd_gf1_adlib_write(gus, 0x04, tmp >> 2); /* timer 2 start */ gus 31 sound/isa/gus/gus_timer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 39 sound/isa/gus/gus_timer.c struct snd_gus_card *gus; gus 41 sound/isa/gus/gus_timer.c gus = snd_timer_chip(timer); gus 42 sound/isa/gus/gus_timer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 43 sound/isa/gus/gus_timer.c tmp = (gus->gf1.timer_enabled &= ~4); gus 44 sound/isa/gus/gus_timer.c snd_gf1_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, tmp); /* disable timer #1 */ gus 45 sound/isa/gus/gus_timer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 58 sound/isa/gus/gus_timer.c struct snd_gus_card *gus; gus 60 sound/isa/gus/gus_timer.c gus = snd_timer_chip(timer); gus 61 sound/isa/gus/gus_timer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 63 sound/isa/gus/gus_timer.c tmp = (gus->gf1.timer_enabled |= 8); gus 64 sound/isa/gus/gus_timer.c snd_gf1_write8(gus, SNDRV_GF1_GB_ADLIB_TIMER_2, 256 - ticks); /* timer 2 count */ gus 65 sound/isa/gus/gus_timer.c snd_gf1_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, tmp); /* enable timer 2 IRQ */ gus 66 sound/isa/gus/gus_timer.c snd_gf1_adlib_write(gus, 0x04, tmp >> 2); /* timer 2 start */ gus 67 sound/isa/gus/gus_timer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 75 sound/isa/gus/gus_timer.c struct snd_gus_card *gus; gus 77 sound/isa/gus/gus_timer.c gus = snd_timer_chip(timer); gus 78 sound/isa/gus/gus_timer.c spin_lock_irqsave(&gus->reg_lock, flags); gus 79 sound/isa/gus/gus_timer.c tmp = (gus->gf1.timer_enabled &= ~8); gus 80 sound/isa/gus/gus_timer.c snd_gf1_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, tmp); /* disable timer #1 */ gus 81 sound/isa/gus/gus_timer.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 89 sound/isa/gus/gus_timer.c static void snd_gf1_interrupt_timer1(struct snd_gus_card * gus) gus 91 sound/isa/gus/gus_timer.c struct snd_timer *timer = gus->gf1.timer1; gus 98 sound/isa/gus/gus_timer.c static void snd_gf1_interrupt_timer2(struct snd_gus_card * gus) gus 100 sound/isa/gus/gus_timer.c struct snd_timer *timer = gus->gf1.timer2; gus 131 sound/isa/gus/gus_timer.c struct snd_gus_card *gus = timer->private_data; gus 132 sound/isa/gus/gus_timer.c gus->gf1.timer1 = NULL; gus 137 sound/isa/gus/gus_timer.c struct snd_gus_card *gus = timer->private_data; gus 138 sound/isa/gus/gus_timer.c gus->gf1.timer2 = NULL; gus 141 sound/isa/gus/gus_timer.c void snd_gf1_timers_init(struct snd_gus_card * gus) gus 146 sound/isa/gus/gus_timer.c if (gus->gf1.timer1 != NULL || gus->gf1.timer2 != NULL) gus 149 sound/isa/gus/gus_timer.c gus->gf1.interrupt_handler_timer1 = snd_gf1_interrupt_timer1; gus 150 sound/isa/gus/gus_timer.c gus->gf1.interrupt_handler_timer2 = snd_gf1_interrupt_timer2; gus 154 sound/isa/gus/gus_timer.c tid.card = gus->card->number; gus 155 sound/isa/gus/gus_timer.c tid.device = gus->timer_dev; gus 158 sound/isa/gus/gus_timer.c if (snd_timer_new(gus->card, "GF1 timer", &tid, &timer) >= 0) { gus 160 sound/isa/gus/gus_timer.c timer->private_data = gus; gus 164 sound/isa/gus/gus_timer.c gus->gf1.timer1 = timer; gus 168 sound/isa/gus/gus_timer.c if (snd_timer_new(gus->card, "GF1 timer", &tid, &timer) >= 0) { gus 170 sound/isa/gus/gus_timer.c timer->private_data = gus; gus 174 sound/isa/gus/gus_timer.c gus->gf1.timer2 = timer; gus 177 sound/isa/gus/gus_timer.c void snd_gf1_timers_done(struct snd_gus_card * gus) gus 179 sound/isa/gus/gus_timer.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_TIMER1 | SNDRV_GF1_HANDLER_TIMER2); gus 180 sound/isa/gus/gus_timer.c if (gus->gf1.timer1) { gus 181 sound/isa/gus/gus_timer.c snd_device_free(gus->card, gus->gf1.timer1); gus 182 sound/isa/gus/gus_timer.c gus->gf1.timer1 = NULL; gus 184 sound/isa/gus/gus_timer.c if (gus->gf1.timer2) { gus 185 sound/isa/gus/gus_timer.c snd_device_free(gus->card, gus->gf1.timer2); gus 186 sound/isa/gus/gus_timer.c gus->gf1.timer2 = NULL; gus 13 sound/isa/gus/gus_uart.c static void snd_gf1_interrupt_midi_in(struct snd_gus_card * gus) gus 21 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 22 sound/isa/gus/gus_uart.c stat = snd_gf1_uart_stat(gus); gus 24 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 29 sound/isa/gus/gus_uart.c data = snd_gf1_uart_get(gus); gus 30 sound/isa/gus/gus_uart.c if (!(gus->gf1.uart_cmd & 0x80)) { gus 31 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 35 sound/isa/gus/gus_uart.c gus->gf1.uart_framing++; gus 36 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 39 sound/isa/gus/gus_uart.c byte = snd_gf1_uart_get(gus); gus 40 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 41 sound/isa/gus/gus_uart.c snd_rawmidi_receive(gus->midi_substream_input, &byte, 1); gus 43 sound/isa/gus/gus_uart.c gus->gf1.uart_overrun++; gus 48 sound/isa/gus/gus_uart.c static void snd_gf1_interrupt_midi_out(struct snd_gus_card * gus) gus 54 sound/isa/gus/gus_uart.c if (snd_gf1_uart_stat(gus) & 0x01) gus 55 sound/isa/gus/gus_uart.c snd_gf1_interrupt_midi_in(gus); gus 57 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 58 sound/isa/gus/gus_uart.c if (snd_gf1_uart_stat(gus) & 0x02) { /* Tx FIFO free? */ gus 59 sound/isa/gus/gus_uart.c if (snd_rawmidi_transmit(gus->midi_substream_output, &byte, 1) != 1) { /* no other bytes or error */ gus 60 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd & ~0x20); /* disable Tx interrupt */ gus 62 sound/isa/gus/gus_uart.c snd_gf1_uart_put(gus, byte); gus 65 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 68 sound/isa/gus/gus_uart.c static void snd_gf1_uart_reset(struct snd_gus_card * gus, int close) gus 70 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, 0x03); /* reset */ gus 71 sound/isa/gus/gus_uart.c if (!close && gus->uart_enable) { gus 73 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, 0x00); /* normal operations */ gus 80 sound/isa/gus/gus_uart.c struct snd_gus_card *gus; gus 82 sound/isa/gus/gus_uart.c gus = substream->rmidi->private_data; gus 83 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 84 sound/isa/gus/gus_uart.c if (!(gus->gf1.uart_cmd & 0x80)) { /* input active? */ gus 85 sound/isa/gus/gus_uart.c snd_gf1_uart_reset(gus, 0); gus 87 sound/isa/gus/gus_uart.c gus->gf1.interrupt_handler_midi_out = snd_gf1_interrupt_midi_out; gus 88 sound/isa/gus/gus_uart.c gus->midi_substream_output = substream; gus 89 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 91 sound/isa/gus/gus_uart.c snd_printk(KERN_DEBUG "write init - cmd = 0x%x, stat = 0x%x\n", gus->gf1.uart_cmd, snd_gf1_uart_stat(gus)); gus 99 sound/isa/gus/gus_uart.c struct snd_gus_card *gus; gus 102 sound/isa/gus/gus_uart.c gus = substream->rmidi->private_data; gus 103 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 104 sound/isa/gus/gus_uart.c if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out) { gus 105 sound/isa/gus/gus_uart.c snd_gf1_uart_reset(gus, 0); gus 107 sound/isa/gus/gus_uart.c gus->gf1.interrupt_handler_midi_in = snd_gf1_interrupt_midi_in; gus 108 sound/isa/gus/gus_uart.c gus->midi_substream_input = substream; gus 109 sound/isa/gus/gus_uart.c if (gus->uart_enable) { gus 110 sound/isa/gus/gus_uart.c for (i = 0; i < 1000 && (snd_gf1_uart_stat(gus) & 0x01); i++) gus 111 sound/isa/gus/gus_uart.c snd_gf1_uart_get(gus); /* clean Rx */ gus 115 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 119 sound/isa/gus/gus_uart.c gus->uart_enable, gus->gf1.uart_cmd, snd_gf1_uart_stat(gus)); gus 123 sound/isa/gus/gus_uart.c gus->gf1.port + 0x100, inb(gus->gf1.port + 0x100), gus 124 sound/isa/gus/gus_uart.c inb(gus->gf1.port + 0x101), inb(gus->gf1.port + 0x102)); gus 132 sound/isa/gus/gus_uart.c struct snd_gus_card *gus; gus 134 sound/isa/gus/gus_uart.c gus = substream->rmidi->private_data; gus 135 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 136 sound/isa/gus/gus_uart.c if (gus->gf1.interrupt_handler_midi_in != snd_gf1_interrupt_midi_in) gus 137 sound/isa/gus/gus_uart.c snd_gf1_uart_reset(gus, 1); gus 138 sound/isa/gus/gus_uart.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_MIDI_OUT); gus 139 sound/isa/gus/gus_uart.c gus->midi_substream_output = NULL; gus 140 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 147 sound/isa/gus/gus_uart.c struct snd_gus_card *gus; gus 149 sound/isa/gus/gus_uart.c gus = substream->rmidi->private_data; gus 150 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 151 sound/isa/gus/gus_uart.c if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out) gus 152 sound/isa/gus/gus_uart.c snd_gf1_uart_reset(gus, 1); gus 153 sound/isa/gus/gus_uart.c snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_MIDI_IN); gus 154 sound/isa/gus/gus_uart.c gus->midi_substream_input = NULL; gus 155 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 161 sound/isa/gus/gus_uart.c struct snd_gus_card *gus; gus 164 sound/isa/gus/gus_uart.c gus = substream->rmidi->private_data; gus 166 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 168 sound/isa/gus/gus_uart.c if ((gus->gf1.uart_cmd & 0x80) == 0) gus 169 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd | 0x80); /* enable Rx interrupts */ gus 171 sound/isa/gus/gus_uart.c if (gus->gf1.uart_cmd & 0x80) gus 172 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd & ~0x80); /* disable Rx interrupts */ gus 174 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 180 sound/isa/gus/gus_uart.c struct snd_gus_card *gus; gus 184 sound/isa/gus/gus_uart.c gus = substream->rmidi->private_data; gus 186 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 188 sound/isa/gus/gus_uart.c if ((gus->gf1.uart_cmd & 0x20) == 0) { gus 189 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 192 sound/isa/gus/gus_uart.c while (timeout-- > 0 && snd_gf1_uart_stat(gus) & 0x01); gus 194 sound/isa/gus/gus_uart.c spin_lock_irqsave(&gus->uart_cmd_lock, flags); gus 195 sound/isa/gus/gus_uart.c if (gus->gf1.uart_cmd & 0x20) { gus 196 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 199 sound/isa/gus/gus_uart.c if (snd_gf1_uart_stat(gus) & 0x02) { gus 201 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 204 sound/isa/gus/gus_uart.c snd_gf1_uart_put(gus, byte); gus 206 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd | 0x20); /* enable Tx interrupt */ gus 209 sound/isa/gus/gus_uart.c if (gus->gf1.uart_cmd & 0x20) gus 210 sound/isa/gus/gus_uart.c snd_gf1_uart_cmd(gus, gus->gf1.uart_cmd & ~0x20); gus 212 sound/isa/gus/gus_uart.c spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); gus 229 sound/isa/gus/gus_uart.c int snd_gf1_rawmidi_new(struct snd_gus_card *gus, int device) gus 234 sound/isa/gus/gus_uart.c if ((err = snd_rawmidi_new(gus->card, "GF1", device, 1, 1, &rmidi)) < 0) gus 236 sound/isa/gus/gus_uart.c strcpy(rmidi->name, gus->interwave ? "AMD InterWave" : "GF1"); gus 240 sound/isa/gus/gus_uart.c rmidi->private_data = gus; gus 241 sound/isa/gus/gus_uart.c gus->midi_uart = rmidi; gus 60 sound/isa/gus/gus_volume.c unsigned int snd_gf1_calc_ramp_rate(struct snd_gus_card * gus, gus 80 sound/isa/gus/gus_volume.c value = gus->gf1.enh_mode ? gus 82 sound/isa/gus/gus_volume.c vol_rates[gus->gf1.active_voices - 14]; gus 100 sound/isa/gus/gus_volume.c unsigned short snd_gf1_translate_freq(struct snd_gus_card * gus, unsigned int freq16) gus 109 sound/isa/gus/gus_volume.c return ((freq16 << 9) + (gus->gf1.playback_freq >> 1)) / gus->gf1.playback_freq; gus 112 sound/isa/gus/gusclassic.c static int snd_gusclassic_detect(struct snd_gus_card *gus) gus 116 sound/isa/gus/gusclassic.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 0); /* reset GF1 */ gus 117 sound/isa/gus/gusclassic.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 0) { gus 118 sound/isa/gus/gusclassic.c snd_printdd("[0x%lx] check 1 failed - 0x%x\n", gus->gf1.port, d); gus 122 sound/isa/gus/gusclassic.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* release reset */ gus 124 sound/isa/gus/gusclassic.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 1) { gus 125 sound/isa/gus/gusclassic.c snd_printdd("[0x%lx] check 2 failed - 0x%x\n", gus->gf1.port, d); gus 134 sound/isa/gus/gusclassic.c struct snd_gus_card *gus; gus 144 sound/isa/gus/gusclassic.c error = snd_gusclassic_create(card, dev, n, &gus); gus 148 sound/isa/gus/gusclassic.c error = snd_gusclassic_detect(gus); gus 152 sound/isa/gus/gusclassic.c gus->joystick_dac = joystick_dac[n]; gus 154 sound/isa/gus/gusclassic.c error = snd_gus_initialize(gus); gus 159 sound/isa/gus/gusclassic.c if (gus->max_flag || gus->ess_flag) { gus 161 sound/isa/gus/gusclassic.c "not detected at 0x%lx\n", gus->gf1.port); gus 165 sound/isa/gus/gusclassic.c error = snd_gf1_new_mixer(gus); gus 169 sound/isa/gus/gusclassic.c error = snd_gf1_pcm_new(gus, 0, 0); gus 173 sound/isa/gus/gusclassic.c if (!gus->ace_flag) { gus 174 sound/isa/gus/gusclassic.c error = snd_gf1_rawmidi_new(gus, 0); gus 181 sound/isa/gus/gusclassic.c gus->gf1.port, gus->gf1.irq, gus->gf1.dma1); gus 183 sound/isa/gus/gusclassic.c if (gus->gf1.dma2 >= 0) gus 185 sound/isa/gus/gusclassic.c "&%d", gus->gf1.dma2); gus 146 sound/isa/gus/gusextreme.c static int snd_gusextreme_detect(struct snd_gus_card *gus, gus 171 sound/isa/gus/gusextreme.c outb(gus->gf1.port & 0x040 ? 2 : 0, ES1688P(es1688, INIT1)); gus 173 sound/isa/gus/gusextreme.c outb(gus->gf1.port & 0x020 ? 2 : 0, ES1688P(es1688, INIT1)); gus 175 sound/isa/gus/gusextreme.c outb(gus->gf1.port & 0x010 ? 3 : 1, ES1688P(es1688, INIT1)); gus 180 sound/isa/gus/gusextreme.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 0); /* reset GF1 */ gus 181 sound/isa/gus/gusextreme.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 0) { gus 182 sound/isa/gus/gusextreme.c snd_printdd("[0x%lx] check 1 failed - 0x%x\n", gus->gf1.port, d); gus 186 sound/isa/gus/gusextreme.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* release reset */ gus 188 sound/isa/gus/gusextreme.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 1) { gus 189 sound/isa/gus/gusextreme.c snd_printdd("[0x%lx] check 2 failed - 0x%x\n", gus->gf1.port, d); gus 225 sound/isa/gus/gusextreme.c struct snd_gus_card *gus; gus 250 sound/isa/gus/gusextreme.c error = snd_gusextreme_gus_card_create(card, dev, n, &gus); gus 254 sound/isa/gus/gusextreme.c error = snd_gusextreme_detect(gus, es1688); gus 258 sound/isa/gus/gusextreme.c gus->joystick_dac = joystick_dac[n]; gus 260 sound/isa/gus/gusextreme.c error = snd_gus_initialize(gus); gus 265 sound/isa/gus/gusextreme.c if (!gus->ess_flag) { gus 267 sound/isa/gus/gusextreme.c "detected at 0x%lx\n", gus->gf1.port); gus 270 sound/isa/gus/gusextreme.c gus->codec_flag = 1; gus 283 sound/isa/gus/gusextreme.c error = snd_gf1_pcm_new(gus, 1, 1); gus 288 sound/isa/gus/gusextreme.c error = snd_gf1_new_mixer(gus); gus 314 sound/isa/gus/gusextreme.c gus->gf1.irq, es1688->irq, gus->gf1.dma1, es1688->dma8); gus 62 sound/isa/gus/gusmax.c struct snd_gus_card *gus; gus 70 sound/isa/gus/gusmax.c static int snd_gusmax_detect(struct snd_gus_card *gus) gus 74 sound/isa/gus/gusmax.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 0); /* reset GF1 */ gus 75 sound/isa/gus/gusmax.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 0) { gus 76 sound/isa/gus/gusmax.c snd_printdd("[0x%lx] check 1 failed - 0x%x\n", gus->gf1.port, d); gus 80 sound/isa/gus/gusmax.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* release reset */ gus 82 sound/isa/gus/gusmax.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 1) { gus 83 sound/isa/gus/gusmax.c snd_printdd("[0x%lx] check 2 failed - 0x%x\n", gus->gf1.port, d); gus 100 sound/isa/gus/gusmax.c snd_gus_interrupt(irq, maxcard->gus); gus 113 sound/isa/gus/gusmax.c struct snd_gus_card *gus) gus 115 sound/isa/gus/gusmax.c gus->equal_irq = 1; gus 116 sound/isa/gus/gusmax.c gus->codec_flag = 1; gus 117 sound/isa/gus/gusmax.c gus->joystick_dac = joystick_dac[dev]; gus 119 sound/isa/gus/gusmax.c gus->max_cntrl_val = (gus->gf1.port >> 4) & 0x0f; gus 120 sound/isa/gus/gusmax.c if (gus->gf1.dma1 > 3) gus 121 sound/isa/gus/gusmax.c gus->max_cntrl_val |= 0x10; gus 122 sound/isa/gus/gusmax.c if (gus->gf1.dma2 > 3) gus 123 sound/isa/gus/gusmax.c gus->max_cntrl_val |= 0x20; gus 124 sound/isa/gus/gusmax.c gus->max_cntrl_val |= 0x40; gus 125 sound/isa/gus/gusmax.c outb(gus->max_cntrl_val, GUSP(gus, MAXCNTRLPORT)); gus 198 sound/isa/gus/gusmax.c struct snd_gus_card *gus = NULL; gus 242 sound/isa/gus/gusmax.c 0, &gus); gus 254 sound/isa/gus/gusmax.c 0, &gus); gus 264 sound/isa/gus/gusmax.c if ((err = snd_gusmax_detect(gus)) < 0) gus 267 sound/isa/gus/gusmax.c maxcard->gus_status_reg = gus->gf1.reg_irqstat; gus 268 sound/isa/gus/gusmax.c maxcard->pcm_status_reg = gus->gf1.port + 0x10c + 2; gus 269 sound/isa/gus/gusmax.c snd_gusmax_init(dev, card, gus); gus 270 sound/isa/gus/gusmax.c if ((err = snd_gus_initialize(gus)) < 0) gus 273 sound/isa/gus/gusmax.c if (!gus->max_flag) { gus 274 sound/isa/gus/gusmax.c snd_printk(KERN_ERR PFX "GUS MAX soundcard was not detected at 0x%lx\n", gus->gf1.port); gus 287 sound/isa/gus/gusmax.c gus->gf1.port + 0x10c, -1, xirq, gus 310 sound/isa/gus/gusmax.c if ((err = snd_gf1_pcm_new(gus, 1, 1)) < 0) gus 317 sound/isa/gus/gusmax.c err = snd_gf1_rawmidi_new(gus, 0); gus 321 sound/isa/gus/gusmax.c sprintf(card->longname + strlen(card->longname), " at 0x%lx, irq %i, dma %i", gus->gf1.port, xirq, xdma1); gus 329 sound/isa/gus/gusmax.c maxcard->gus = gus; gus 104 sound/isa/gus/interwave.c struct snd_gus_card *gus; gus 196 sound/isa/gus/interwave.c struct snd_gus_card *gus, int dev, gus 209 sound/isa/gus/interwave.c if (gus->gf1.port == 0x250) { gus 238 sound/isa/gus/interwave.c struct snd_gus_card *gus, gus 249 sound/isa/gus/interwave.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 0); /* reset GF1 */ gus 250 sound/isa/gus/interwave.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 0) { gus 251 sound/isa/gus/interwave.c snd_printdd("[0x%lx] check 1 failed - 0x%x\n", gus->gf1.port, d); gus 255 sound/isa/gus/interwave.c snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* release reset */ gus 257 sound/isa/gus/interwave.c if (((d = snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)) & 0x07) != 1) { gus 258 sound/isa/gus/interwave.c snd_printdd("[0x%lx] check 2 failed - 0x%x\n", gus->gf1.port, d); gus 261 sound/isa/gus/interwave.c spin_lock_irqsave(&gus->reg_lock, flags); gus 262 sound/isa/gus/interwave.c rev1 = snd_gf1_look8(gus, SNDRV_GF1_GB_VERSION_NUMBER); gus 263 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_VERSION_NUMBER, ~rev1); gus 264 sound/isa/gus/interwave.c rev2 = snd_gf1_look8(gus, SNDRV_GF1_GB_VERSION_NUMBER); gus 265 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_VERSION_NUMBER, rev1); gus 266 sound/isa/gus/interwave.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 267 sound/isa/gus/interwave.c snd_printdd("[0x%lx] InterWave check - rev1=0x%x, rev2=0x%x\n", gus->gf1.port, rev1, rev2); gus 270 sound/isa/gus/interwave.c snd_printdd("[0x%lx] InterWave check - passed\n", gus->gf1.port); gus 271 sound/isa/gus/interwave.c gus->interwave = 1; gus 272 sound/isa/gus/interwave.c strcpy(gus->card->shortname, "AMD InterWave"); gus 273 sound/isa/gus/interwave.c gus->revision = rev1 >> 4; gus 277 sound/isa/gus/interwave.c return snd_interwave_detect_stb(iwcard, gus, dev, rbus); gus 280 sound/isa/gus/interwave.c snd_printdd("[0x%lx] InterWave check - failed\n", gus->gf1.port); gus 294 sound/isa/gus/interwave.c snd_gus_interrupt(irq, iwcard->gus); gus 306 sound/isa/gus/interwave.c static void snd_interwave_reset(struct snd_gus_card *gus) gus 308 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_RESET, 0x00); gus 310 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_RESET, 0x01); gus 314 sound/isa/gus/interwave.c static void snd_interwave_bank_sizes(struct snd_gus_card *gus, int *sizes) gus 326 sound/isa/gus/interwave.c snd_gf1_poke(gus, local, d); gus 327 sound/isa/gus/interwave.c snd_gf1_poke(gus, local + 1, d + 1); gus 332 sound/isa/gus/interwave.c snd_gf1_peek(gus, local), gus 333 sound/isa/gus/interwave.c snd_gf1_peek(gus, local + 1), gus 334 sound/isa/gus/interwave.c snd_gf1_peek(gus, idx << 22)); gus 336 sound/isa/gus/interwave.c if (snd_gf1_peek(gus, local) != d || gus 337 sound/isa/gus/interwave.c snd_gf1_peek(gus, local + 1) != d + 1 || gus 338 sound/isa/gus/interwave.c snd_gf1_peek(gus, idx << 22) != 0x55) gus 365 sound/isa/gus/interwave.c static void snd_interwave_detect_memory(struct snd_gus_card *gus) gus 381 sound/isa/gus/interwave.c snd_interwave_reset(gus); gus 382 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_GLOBAL_MODE, snd_gf1_read8(gus, SNDRV_GF1_GB_GLOBAL_MODE) | 0x01); /* enhanced mode */ gus 383 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x01); /* DRAM I/O cycles selected */ gus 384 sound/isa/gus/interwave.c snd_gf1_write16(gus, SNDRV_GF1_GW_MEMORY_CONFIG, (snd_gf1_look16(gus, SNDRV_GF1_GW_MEMORY_CONFIG) & 0xff10) | 0x004c); gus 387 sound/isa/gus/interwave.c snd_gf1_poke(gus, 0, 0x55); gus 388 sound/isa/gus/interwave.c snd_gf1_poke(gus, 1, 0xaa); gus 390 sound/isa/gus/interwave.c if (snd_gf1_peek(gus, 0) == 0x55 && snd_gf1_peek(gus, 1) == 0xaa) gus 395 sound/isa/gus/interwave.c snd_interwave_bank_sizes(gus, psizes); gus 406 sound/isa/gus/interwave.c snd_gf1_write16(gus, SNDRV_GF1_GW_MEMORY_CONFIG, (snd_gf1_look16(gus, SNDRV_GF1_GW_MEMORY_CONFIG) & 0xfff0) | i); gus 407 sound/isa/gus/interwave.c snd_interwave_bank_sizes(gus, psizes); gus 410 sound/isa/gus/interwave.c if (i >= ARRAY_SIZE(lmc) && !gus->gf1.enh_mode) gus 411 sound/isa/gus/interwave.c snd_gf1_write16(gus, SNDRV_GF1_GW_MEMORY_CONFIG, (snd_gf1_look16(gus, SNDRV_GF1_GW_MEMORY_CONFIG) & 0xfff0) | 2); gus 413 sound/isa/gus/interwave.c gus->gf1.mem_alloc.banks_8[i].address = gus 414 sound/isa/gus/interwave.c gus->gf1.mem_alloc.banks_16[i].address = i << 22; gus 415 sound/isa/gus/interwave.c gus->gf1.mem_alloc.banks_8[i].size = gus 416 sound/isa/gus/interwave.c gus->gf1.mem_alloc.banks_16[i].size = psizes[i] << 18; gus 421 sound/isa/gus/interwave.c gus->gf1.memory = pages; gus 423 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x03); /* select ROM */ gus 424 sound/isa/gus/interwave.c snd_gf1_write16(gus, SNDRV_GF1_GW_MEMORY_CONFIG, (snd_gf1_look16(gus, SNDRV_GF1_GW_MEMORY_CONFIG) & 0xff1f) | (4 << 5)); gus 425 sound/isa/gus/interwave.c gus->gf1.rom_banks = 0; gus 426 sound/isa/gus/interwave.c gus->gf1.rom_memory = 0; gus 429 sound/isa/gus/interwave.c iwave[i] = snd_gf1_peek(gus, bank_pos + i); gus 434 sound/isa/gus/interwave.c csum += snd_gf1_peek(gus, bank_pos + i); gus 437 sound/isa/gus/interwave.c gus->gf1.rom_banks++; gus 438 sound/isa/gus/interwave.c gus->gf1.rom_present |= 1 << (bank_pos >> 22); gus 439 sound/isa/gus/interwave.c gus->gf1.rom_memory = snd_gf1_peek(gus, bank_pos + 40) | gus 440 sound/isa/gus/interwave.c (snd_gf1_peek(gus, bank_pos + 41) << 8) | gus 441 sound/isa/gus/interwave.c (snd_gf1_peek(gus, bank_pos + 42) << 16) | gus 442 sound/isa/gus/interwave.c (snd_gf1_peek(gus, bank_pos + 43) << 24); gus 445 sound/isa/gus/interwave.c if (gus->gf1.rom_memory > 0) { gus 446 sound/isa/gus/interwave.c if (gus->gf1.rom_banks == 1 && gus->gf1.rom_present == 8) gus 447 sound/isa/gus/interwave.c gus->card->type = SNDRV_CARD_TYPE_IW_DYNASONIC; gus 450 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_MEMORY_CONTROL, 0x00); /* select RAM */ gus 452 sound/isa/gus/interwave.c if (!gus->gf1.enh_mode) gus 453 sound/isa/gus/interwave.c snd_interwave_reset(gus); gus 456 sound/isa/gus/interwave.c static void snd_interwave_init(int dev, struct snd_gus_card *gus) gus 461 sound/isa/gus/interwave.c spin_lock_irqsave(&gus->reg_lock, flags); gus 462 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL, 0x00); gus 463 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_COMPATIBILITY, 0x1f); gus 464 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_DECODE_CONTROL, 0x49); gus 465 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_VERSION_NUMBER, 0x11); gus 466 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_MPU401_CONTROL_A, 0x00); gus 467 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_MPU401_CONTROL_B, 0x30); gus 468 sound/isa/gus/interwave.c snd_gf1_write8(gus, SNDRV_GF1_GB_EMULATION_IRQ, 0x00); gus 469 sound/isa/gus/interwave.c spin_unlock_irqrestore(&gus->reg_lock, flags); gus 470 sound/isa/gus/interwave.c gus->equal_irq = 1; gus 471 sound/isa/gus/interwave.c gus->codec_flag = 1; gus 472 sound/isa/gus/interwave.c gus->interwave = 1; gus 473 sound/isa/gus/interwave.c gus->max_flag = 1; gus 474 sound/isa/gus/interwave.c gus->joystick_dac = joystick_dac[dev]; gus 631 sound/isa/gus/interwave.c struct snd_gus_card *gus; gus 646 sound/isa/gus/interwave.c pcm_channels[dev], effect[dev], &gus)) < 0) gus 649 sound/isa/gus/interwave.c if ((err = snd_interwave_detect(iwcard, gus, dev gus 656 sound/isa/gus/interwave.c iwcard->gus_status_reg = gus->gf1.reg_irqstat; gus 657 sound/isa/gus/interwave.c iwcard->pcm_status_reg = gus->gf1.port + 0x10c + 2; gus 659 sound/isa/gus/interwave.c snd_interwave_init(dev, gus); gus 660 sound/isa/gus/interwave.c snd_interwave_detect_memory(gus); gus 661 sound/isa/gus/interwave.c if ((err = snd_gus_initialize(gus)) < 0) gus 672 sound/isa/gus/interwave.c gus->gf1.port + 0x10c, -1, xirq, gus 687 sound/isa/gus/interwave.c gus->revision + 'A'); gus 699 sound/isa/gus/interwave.c err = snd_gf1_pcm_new(gus, 1, 1); gus 727 sound/isa/gus/interwave.c gus->uart_enable = midi[dev]; gus 728 sound/isa/gus/interwave.c if ((err = snd_gf1_rawmidi_new(gus, 0)) < 0) gus 733 sound/isa/gus/interwave.c if (gus->gf1.rom_banks == 1 && gus->gf1.rom_present == 8) gus 742 sound/isa/gus/interwave.c gus->gf1.port, gus 753 sound/isa/gus/interwave.c iwcard->gus = gus;