Lines Matching +full:hall +full:- +full:enable
4 * Copyright (C) 1999-2000 Takashi Iwai <tiwai@suse.de>
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_poke()
52 if (reg != emu->last_reg) { in snd_emu8000_poke()
54 emu->last_reg = reg; in snd_emu8000_poke()
57 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_poke()
65 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_peek()
66 if (reg != emu->last_reg) { in snd_emu8000_peek()
68 emu->last_reg = reg; in snd_emu8000_peek()
71 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_peek()
79 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_poke_dw()
80 if (reg != emu->last_reg) { in snd_emu8000_poke_dw()
82 emu->last_reg = reg; in snd_emu8000_poke_dw()
86 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_poke_dw()
95 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_peek_dw()
96 if (reg != emu->last_reg) { in snd_emu8000_peek_dw()
98 emu->last_reg = reg; in snd_emu8000_peek_dw()
102 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_peek_dw()
169 return -ENODEV; in snd_emu8000_detect()
172 return -ENODEV; in snd_emu8000_detect()
174 return -ENODEV; in snd_emu8000_detect()
177 emu->port1); in snd_emu8000_detect()
383 if (emu->dram_checked) in size_dram()
456 pr_info("EMU8000 [0x%lx]: %d KiB on-board DRAM detected\n", in size_dram()
457 emu->port1, size/1024); in size_dram()
459 emu->mem_size = size; in size_dram()
460 emu->dram_checked = 1; in size_dram()
474 the reverb and chorus effects for Yamaha OPL-3 synthesizer */ in snd_emu8000_init_fm()
476 /* 31: FM left channel, 0xffffe0-0xffffe8 */ in snd_emu8000_init_fm()
479 EMU8000_CSL_WRITE(emu, 30, 0x00FFFFE8 | (emu->fm_chorus_depth << 24)); in snd_emu8000_init_fm()
480 EMU8000_PTRX_WRITE(emu, 30, (emu->fm_reverb_depth << 8)); in snd_emu8000_init_fm()
484 /* 32: FM right channel, 0xfffff0-0xfffff8 */ in snd_emu8000_init_fm()
487 EMU8000_CSL_WRITE(emu, 31, 0x00FFFFF8 | (emu->fm_chorus_depth << 24)); in snd_emu8000_init_fm()
488 EMU8000_PTRX_WRITE(emu, 31, (emu->fm_reverb_depth << 8)); in snd_emu8000_init_fm()
494 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_init_fm()
499 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_init_fm()
519 emu->last_reg = 0xffff; /* reset the last register index */ in snd_emu8000_init_hw()
550 /* enable audio */ in snd_emu8000_init_hw()
560 /*----------------------------------------------------------------
562 *----------------------------------------------------------------*/
565 {0xD26A, 0xD36A, 0x0000}, /* -12 dB */
566 {0xD25B, 0xD35B, 0x0000}, /* -8 */
567 {0xD24C, 0xD34C, 0x0000}, /* -6 */
568 {0xD23D, 0xD33D, 0x0000}, /* -4 */
569 {0xD21F, 0xD31F, 0x0000}, /* -2 */
580 {0x821E, 0xC26A, 0x031E, 0xC36A, 0x021E, 0xD208, 0x831E, 0xD308, 0x0001}, /* -12 dB */
596 * set Emu8000 digital equalizer; from 0 to 11 [-12dB - 12dB]
602 int bass = emu->bass_level; in snd_emu8000_update_equalizer()
603 int treble = emu->treble_level; in snd_emu8000_update_equalizer()
623 /*----------------------------------------------------------------
625 *----------------------------------------------------------------*/
643 unsigned short feedback; /* feedback level (0xE600-0xE6FF) */
644 unsigned short delay_offset; /* delay (0-0x0DA3) [1/44100 sec] */
645 unsigned short lfo_depth; /* LFO depth (0xBC00-0xBCFF) */
646 unsigned int delay; /* right delay (0-0xFFFFFFFF) [1/256/44100 sec] */
647 unsigned int lfo_freq; /* LFO freq LFO freq (0-0xFFFFFFFF) */
669 return -EINVAL; in snd_emu8000_load_chorus_fx()
672 return -EFAULT; in snd_emu8000_load_chorus_fx()
681 int effect = emu->chorus_mode; in snd_emu8000_update_chorus_mode()
694 /*----------------------------------------------------------------
696 *----------------------------------------------------------------*/
740 {{ /* hall 1 */
746 {{ /* hall 2 */
797 return -EINVAL; in snd_emu8000_load_reverb_fx()
800 return -EFAULT; in snd_emu8000_load_reverb_fx()
809 int effect = emu->reverb_mode; in snd_emu8000_update_reverb_mode()
826 /*----------------------------------------------------------------
828 *----------------------------------------------------------------*/
835 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; in mixer_bass_treble_info()
836 uinfo->count = 1; in mixer_bass_treble_info()
837 uinfo->value.integer.min = 0; in mixer_bass_treble_info()
838 uinfo->value.integer.max = 11; in mixer_bass_treble_info()
846 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->treble_level : emu->bass_level; in mixer_bass_treble_get()
857 val1 = ucontrol->value.integer.value[0] % 12; in mixer_bass_treble_put()
858 spin_lock_irqsave(&emu->control_lock, flags); in mixer_bass_treble_put()
859 if (kcontrol->private_value) { in mixer_bass_treble_put()
860 change = val1 != emu->treble_level; in mixer_bass_treble_put()
861 emu->treble_level = val1; in mixer_bass_treble_put()
863 change = val1 != emu->bass_level; in mixer_bass_treble_put()
864 emu->bass_level = val1; in mixer_bass_treble_put()
866 spin_unlock_irqrestore(&emu->control_lock, flags); in mixer_bass_treble_put()
874 .name = "Synth Tone Control - Bass",
884 .name = "Synth Tone Control - Treble",
896 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; in mixer_chorus_reverb_info()
897 uinfo->count = 1; in mixer_chorus_reverb_info()
898 uinfo->value.integer.min = 0; in mixer_chorus_reverb_info()
899 …uinfo->value.integer.max = kcontrol->private_value ? (SNDRV_EMU8000_CHORUS_NUMBERS-1) : (SNDRV_EMU… in mixer_chorus_reverb_info()
907 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->chorus_mode : emu->reverb_mode; in mixer_chorus_reverb_get()
918 spin_lock_irqsave(&emu->control_lock, flags); in mixer_chorus_reverb_put()
919 if (kcontrol->private_value) { in mixer_chorus_reverb_put()
920 val1 = ucontrol->value.integer.value[0] % SNDRV_EMU8000_CHORUS_NUMBERS; in mixer_chorus_reverb_put()
921 change = val1 != emu->chorus_mode; in mixer_chorus_reverb_put()
922 emu->chorus_mode = val1; in mixer_chorus_reverb_put()
924 val1 = ucontrol->value.integer.value[0] % SNDRV_EMU8000_REVERB_NUMBERS; in mixer_chorus_reverb_put()
925 change = val1 != emu->reverb_mode; in mixer_chorus_reverb_put()
926 emu->reverb_mode = val1; in mixer_chorus_reverb_put()
928 spin_unlock_irqrestore(&emu->control_lock, flags); in mixer_chorus_reverb_put()
930 if (kcontrol->private_value) in mixer_chorus_reverb_put()
963 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; in mixer_fm_depth_info()
964 uinfo->count = 1; in mixer_fm_depth_info()
965 uinfo->value.integer.min = 0; in mixer_fm_depth_info()
966 uinfo->value.integer.max = 255; in mixer_fm_depth_info()
974 …ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->fm_chorus_depth : emu->fm_reverb… in mixer_fm_depth_get()
985 val1 = ucontrol->value.integer.value[0] % 256; in mixer_fm_depth_put()
986 spin_lock_irqsave(&emu->control_lock, flags); in mixer_fm_depth_put()
987 if (kcontrol->private_value) { in mixer_fm_depth_put()
988 change = val1 != emu->fm_chorus_depth; in mixer_fm_depth_put()
989 emu->fm_chorus_depth = val1; in mixer_fm_depth_put()
991 change = val1 != emu->fm_reverb_depth; in mixer_fm_depth_put()
992 emu->fm_reverb_depth = val1; in mixer_fm_depth_put()
994 spin_unlock_irqrestore(&emu->control_lock, flags); in mixer_fm_depth_put()
1039 return -EINVAL; in snd_emu8000_create_mixer()
1041 spin_lock_init(&emu->control_lock); in snd_emu8000_create_mixer()
1043 memset(emu->controls, 0, sizeof(emu->controls)); in snd_emu8000_create_mixer()
1045 if ((err = snd_ctl_add(card, emu->controls[i] = snd_ctl_new1(mixer_defs[i], emu))) < 0) in snd_emu8000_create_mixer()
1052 down_write(&card->controls_rwsem); in snd_emu8000_create_mixer()
1053 if (emu->controls[i]) in snd_emu8000_create_mixer()
1054 snd_ctl_remove(card, emu->controls[i]); in snd_emu8000_create_mixer()
1055 up_write(&card->controls_rwsem); in snd_emu8000_create_mixer()
1066 release_and_free_resource(hw->res_port1); in snd_emu8000_free()
1067 release_and_free_resource(hw->res_port2); in snd_emu8000_free()
1068 release_and_free_resource(hw->res_port3); in snd_emu8000_free()
1077 struct snd_emu8000 *hw = device->device_data; in snd_emu8000_dev_free()
1103 return -ENOMEM; in snd_emu8000_new()
1104 spin_lock_init(&hw->reg_lock); in snd_emu8000_new()
1105 hw->index = index; in snd_emu8000_new()
1106 hw->port1 = port; in snd_emu8000_new()
1107 hw->port2 = port + 0x400; in snd_emu8000_new()
1108 hw->port3 = port + 0x800; in snd_emu8000_new()
1109 if (!(hw->res_port1 = request_region(hw->port1, 4, "Emu8000-1")) || in snd_emu8000_new()
1110 !(hw->res_port2 = request_region(hw->port2, 4, "Emu8000-2")) || in snd_emu8000_new()
1111 !(hw->res_port3 = request_region(hw->port3, 4, "Emu8000-3"))) { in snd_emu8000_new()
1112 …snd_printk(KERN_ERR "sbawe: can't grab ports 0x%lx, 0x%lx, 0x%lx\n", hw->port1, hw->port2, hw->por… in snd_emu8000_new()
1114 return -EBUSY; in snd_emu8000_new()
1116 hw->mem_size = 0; in snd_emu8000_new()
1117 hw->card = card; in snd_emu8000_new()
1118 hw->seq_ports = seq_ports; in snd_emu8000_new()
1119 hw->bass_level = 5; in snd_emu8000_new()
1120 hw->treble_level = 9; in snd_emu8000_new()
1121 hw->chorus_mode = 2; in snd_emu8000_new()
1122 hw->reverb_mode = 4; in snd_emu8000_new()
1123 hw->fm_chorus_depth = 0; in snd_emu8000_new()
1124 hw->fm_reverb_depth = 0; in snd_emu8000_new()
1128 return -ENODEV; in snd_emu8000_new()
1144 strcpy(awe->name, "EMU-8000"); in snd_emu8000_new()