Lines Matching refs:emu

56 	struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);  in snd_emu10k1_spdif_get()  local
63 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_spdif_get()
64 ucontrol->value.iec958.status[0] = (emu->spdif_bits[idx] >> 0) & 0xff; in snd_emu10k1_spdif_get()
65 ucontrol->value.iec958.status[1] = (emu->spdif_bits[idx] >> 8) & 0xff; in snd_emu10k1_spdif_get()
66 ucontrol->value.iec958.status[2] = (emu->spdif_bits[idx] >> 16) & 0xff; in snd_emu10k1_spdif_get()
67 ucontrol->value.iec958.status[3] = (emu->spdif_bits[idx] >> 24) & 0xff; in snd_emu10k1_spdif_get()
68 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_spdif_get()
395 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_input_output_source_info() local
397 if (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616) in snd_emu1010_input_output_source_info()
406 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_output_source_get() local
412 (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616 && in snd_emu1010_output_source_get()
415 ucontrol->value.enumerated.item[0] = emu->emu1010.output_source[channel]; in snd_emu1010_output_source_get()
422 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_output_source_put() local
428 (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616 && in snd_emu1010_output_source_put()
434 (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616 && in snd_emu1010_output_source_put()
437 if (emu->emu1010.output_source[channel] == val) in snd_emu1010_output_source_put()
439 emu->emu1010.output_source[channel] = val; in snd_emu1010_output_source_put()
440 if (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616) in snd_emu1010_output_source_put()
441 snd_emu1010_fpga_link_dst_src_write(emu, in snd_emu1010_output_source_put()
444 snd_emu1010_fpga_link_dst_src_write(emu, in snd_emu1010_output_source_put()
452 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_input_source_get() local
459 ucontrol->value.enumerated.item[0] = emu->emu1010.input_source[channel]; in snd_emu1010_input_source_get()
466 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_input_source_put() local
472 (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616 && in snd_emu1010_input_source_put()
479 if (emu->emu1010.input_source[channel] == val) in snd_emu1010_input_source_put()
481 emu->emu1010.input_source[channel] = val; in snd_emu1010_input_source_put()
482 if (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616) in snd_emu1010_input_source_put()
483 snd_emu1010_fpga_link_dst_src_write(emu, in snd_emu1010_input_source_put()
486 snd_emu1010_fpga_link_dst_src_write(emu, in snd_emu1010_input_source_put()
593 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_adc_pads_get() local
595 ucontrol->value.integer.value[0] = (emu->emu1010.adc_pads & mask) ? 1 : 0; in snd_emu1010_adc_pads_get()
601 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_adc_pads_put() local
605 cache = emu->emu1010.adc_pads; in snd_emu1010_adc_pads_put()
610 if (cache != emu->emu1010.adc_pads) { in snd_emu1010_adc_pads_put()
611 snd_emu1010_fpga_write(emu, EMU_HANA_ADC_PADS, cache ); in snd_emu1010_adc_pads_put()
612 emu->emu1010.adc_pads = cache; in snd_emu1010_adc_pads_put()
641 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_dac_pads_get() local
643 ucontrol->value.integer.value[0] = (emu->emu1010.dac_pads & mask) ? 1 : 0; in snd_emu1010_dac_pads_get()
649 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_dac_pads_put() local
653 cache = emu->emu1010.dac_pads; in snd_emu1010_dac_pads_put()
658 if (cache != emu->emu1010.dac_pads) { in snd_emu1010_dac_pads_put()
659 snd_emu1010_fpga_write(emu, EMU_HANA_DAC_PADS, cache ); in snd_emu1010_dac_pads_put()
660 emu->emu1010.dac_pads = cache; in snd_emu1010_dac_pads_put()
700 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_internal_clock_get() local
702 ucontrol->value.enumerated.item[0] = emu->emu1010.internal_clock; in snd_emu1010_internal_clock_get()
709 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_internal_clock_put() local
717 change = (emu->emu1010.internal_clock != val); in snd_emu1010_internal_clock_put()
719 emu->emu1010.internal_clock = val; in snd_emu1010_internal_clock_put()
724 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_MUTE ); in snd_emu1010_internal_clock_put()
726 snd_emu1010_fpga_write(emu, EMU_HANA_DEFCLOCK, EMU_HANA_DEFCLOCK_44_1K ); in snd_emu1010_internal_clock_put()
728 snd_emu1010_fpga_write(emu, EMU_HANA_WCLOCK, in snd_emu1010_internal_clock_put()
731 snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_LEDS_2, in snd_emu1010_internal_clock_put()
736 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE ); in snd_emu1010_internal_clock_put()
741 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_MUTE ); in snd_emu1010_internal_clock_put()
743 snd_emu1010_fpga_write(emu, EMU_HANA_DEFCLOCK, EMU_HANA_DEFCLOCK_48K ); in snd_emu1010_internal_clock_put()
745 snd_emu1010_fpga_write(emu, EMU_HANA_WCLOCK, in snd_emu1010_internal_clock_put()
748 snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_LEDS_2, in snd_emu1010_internal_clock_put()
753 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE ); in snd_emu1010_internal_clock_put()
758 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_MUTE ); in snd_emu1010_internal_clock_put()
760 snd_emu1010_fpga_write(emu, EMU_HANA_DEFCLOCK, EMU_HANA_DEFCLOCK_48K ); in snd_emu1010_internal_clock_put()
762 snd_emu1010_fpga_write(emu, EMU_HANA_WCLOCK, in snd_emu1010_internal_clock_put()
765 snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_LEDS_2, in snd_emu1010_internal_clock_put()
771 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE ); in snd_emu1010_internal_clock_put()
777 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_MUTE ); in snd_emu1010_internal_clock_put()
779 snd_emu1010_fpga_write(emu, EMU_HANA_DEFCLOCK, EMU_HANA_DEFCLOCK_48K ); in snd_emu1010_internal_clock_put()
781 snd_emu1010_fpga_write(emu, EMU_HANA_WCLOCK, in snd_emu1010_internal_clock_put()
784 …snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_LEDS_2, EMU_HANA_DOCK_LEDS_2_EXT | EMU_HANA_DOCK_LEDS_2_… in snd_emu1010_internal_clock_put()
789 snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE ); in snd_emu1010_internal_clock_put()
822 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_optical_out_get() local
824 ucontrol->value.enumerated.item[0] = emu->emu1010.optical_out; in snd_emu1010_optical_out_get()
831 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_optical_out_put() local
840 change = (emu->emu1010.optical_out != val); in snd_emu1010_optical_out_put()
842 emu->emu1010.optical_out = val; in snd_emu1010_optical_out_put()
843 tmp = (emu->emu1010.optical_in ? EMU_HANA_OPTICAL_IN_ADAT : 0) | in snd_emu1010_optical_out_put()
844 (emu->emu1010.optical_out ? EMU_HANA_OPTICAL_OUT_ADAT : 0); in snd_emu1010_optical_out_put()
845 snd_emu1010_fpga_write(emu, EMU_HANA_OPTICAL_TYPE, tmp); in snd_emu1010_optical_out_put()
873 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_optical_in_get() local
875 ucontrol->value.enumerated.item[0] = emu->emu1010.optical_in; in snd_emu1010_optical_in_get()
882 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu1010_optical_in_put() local
891 change = (emu->emu1010.optical_in != val); in snd_emu1010_optical_in_put()
893 emu->emu1010.optical_in = val; in snd_emu1010_optical_in_put()
894 tmp = (emu->emu1010.optical_in ? EMU_HANA_OPTICAL_IN_ADAT : 0) | in snd_emu1010_optical_in_put()
895 (emu->emu1010.optical_out ? EMU_HANA_OPTICAL_OUT_ADAT : 0); in snd_emu1010_optical_in_put()
896 snd_emu1010_fpga_write(emu, EMU_HANA_OPTICAL_TYPE, tmp); in snd_emu1010_optical_in_put()
929 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_audigy_i2c_capture_source_get() local
931 ucontrol->value.enumerated.item[0] = emu->i2c_capture_source; in snd_audigy_i2c_capture_source_get()
938 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_audigy_i2c_capture_source_put() local
954 change = (emu->i2c_capture_source != source_id); in snd_audigy_i2c_capture_source_put()
956 snd_emu10k1_i2c_write(emu, ADC_MUX, 0); /* Mute input */ in snd_audigy_i2c_capture_source_put()
957 spin_lock_irqsave(&emu->emu_lock, flags); in snd_audigy_i2c_capture_source_put()
958 gpio = inl(emu->port + A_IOCFG); in snd_audigy_i2c_capture_source_put()
960 outl(gpio | 0x4, emu->port + A_IOCFG); in snd_audigy_i2c_capture_source_put()
962 outl(gpio & ~0x4, emu->port + A_IOCFG); in snd_audigy_i2c_capture_source_put()
963 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_audigy_i2c_capture_source_put()
965 ngain = emu->i2c_capture_volume[source_id][0]; /* Left */ in snd_audigy_i2c_capture_source_put()
966 ogain = emu->i2c_capture_volume[emu->i2c_capture_source][0]; /* Left */ in snd_audigy_i2c_capture_source_put()
968 snd_emu10k1_i2c_write(emu, ADC_ATTEN_ADCL, ((ngain) & 0xff)); in snd_audigy_i2c_capture_source_put()
969 ngain = emu->i2c_capture_volume[source_id][1]; /* Right */ in snd_audigy_i2c_capture_source_put()
970 ogain = emu->i2c_capture_volume[emu->i2c_capture_source][1]; /* Right */ in snd_audigy_i2c_capture_source_put()
972 snd_emu10k1_i2c_write(emu, ADC_ATTEN_ADCR, ((ngain) & 0xff)); in snd_audigy_i2c_capture_source_put()
975 snd_emu10k1_i2c_write(emu, ADC_MUX, source); /* Set source */ in snd_audigy_i2c_capture_source_put()
976 emu->i2c_capture_source = source_id; in snd_audigy_i2c_capture_source_put()
1003 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_audigy_i2c_volume_get() local
1012 ucontrol->value.integer.value[0] = emu->i2c_capture_volume[source_id][0]; in snd_audigy_i2c_volume_get()
1013 ucontrol->value.integer.value[1] = emu->i2c_capture_volume[source_id][1]; in snd_audigy_i2c_volume_get()
1020 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_audigy_i2c_volume_put() local
1031 ogain = emu->i2c_capture_volume[source_id][0]; /* Left */ in snd_audigy_i2c_volume_put()
1036 if (emu->i2c_capture_source == source_id) in snd_audigy_i2c_volume_put()
1037 snd_emu10k1_i2c_write(emu, ADC_ATTEN_ADCL, ((ngain) & 0xff) ); in snd_audigy_i2c_volume_put()
1038 emu->i2c_capture_volume[source_id][0] = ngain; in snd_audigy_i2c_volume_put()
1041 ogain = emu->i2c_capture_volume[source_id][1]; /* Right */ in snd_audigy_i2c_volume_put()
1046 if (emu->i2c_capture_source == source_id) in snd_audigy_i2c_volume_put()
1047 snd_emu10k1_i2c_write(emu, ADC_ATTEN_ADCR, ((ngain) & 0xff)); in snd_audigy_i2c_volume_put()
1048 emu->i2c_capture_volume[source_id][1] = ngain; in snd_audigy_i2c_volume_put()
1084 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1089 spin_lock_irqsave(&emu->reg_lock, flags);
1090 tmp = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0);
1104 spin_unlock_irqrestore(&emu->reg_lock, flags);
1111 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1132 spin_lock_irqsave(&emu->reg_lock, flags);
1133 reg = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0);
1137 snd_emu10k1_ptr_write(emu, A_SPDIF_SAMPLERATE, 0, tmp);
1138 spin_unlock_irqrestore(&emu->reg_lock, flags);
1157 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_spdif_put() local
1170 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_spdif_put()
1171 change = val != emu->spdif_bits[idx]; in snd_emu10k1_spdif_put()
1173 snd_emu10k1_ptr_write(emu, SPCS0 + idx, 0, val); in snd_emu10k1_spdif_put()
1174 emu->spdif_bits[idx] = val; in snd_emu10k1_spdif_put()
1176 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_spdif_put()
1201 static void update_emu10k1_fxrt(struct snd_emu10k1 *emu, int voice, unsigned char *route) in update_emu10k1_fxrt() argument
1203 if (emu->audigy) { in update_emu10k1_fxrt()
1204 snd_emu10k1_ptr_write(emu, A_FXRT1, voice, in update_emu10k1_fxrt()
1206 snd_emu10k1_ptr_write(emu, A_FXRT2, voice, in update_emu10k1_fxrt()
1209 snd_emu10k1_ptr_write(emu, FXRT, voice, in update_emu10k1_fxrt()
1214 static void update_emu10k1_send_volume(struct snd_emu10k1 *emu, int voice, unsigned char *volume) in update_emu10k1_send_volume() argument
1216 snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_A, voice, volume[0]); in update_emu10k1_send_volume()
1217 snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_B, voice, volume[1]); in update_emu10k1_send_volume()
1218 snd_emu10k1_ptr_write(emu, PSST_FXSENDAMOUNT_C, voice, volume[2]); in update_emu10k1_send_volume()
1219 snd_emu10k1_ptr_write(emu, DSL_FXSENDAMOUNT_D, voice, volume[3]); in update_emu10k1_send_volume()
1220 if (emu->audigy) { in update_emu10k1_send_volume()
1225 snd_emu10k1_ptr_write(emu, A_SENDAMOUNTS, voice, val); in update_emu10k1_send_volume()
1233 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_send_routing_info() local
1235 uinfo->count = emu->audigy ? 3*8 : 3*4; in snd_emu10k1_send_routing_info()
1237 uinfo->value.integer.max = emu->audigy ? 0x3f : 0x0f; in snd_emu10k1_send_routing_info()
1245 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_send_routing_get() local
1247 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_send_routing_get()
1249 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_send_routing_get()
1250 int mask = emu->audigy ? 0x3f : 0x0f; in snd_emu10k1_send_routing_get()
1252 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_send_routing_get()
1257 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_send_routing_get()
1265 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_send_routing_put() local
1267 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_send_routing_put()
1269 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_send_routing_put()
1270 int mask = emu->audigy ? 0x3f : 0x0f; in snd_emu10k1_send_routing_put()
1272 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_send_routing_put()
1283 update_emu10k1_fxrt(emu, mix->epcm->voices[0]->number, in snd_emu10k1_send_routing_put()
1285 update_emu10k1_fxrt(emu, mix->epcm->voices[1]->number, in snd_emu10k1_send_routing_put()
1288 update_emu10k1_fxrt(emu, mix->epcm->voices[0]->number, in snd_emu10k1_send_routing_put()
1292 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_send_routing_put()
1309 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_send_volume_info() local
1311 uinfo->count = emu->audigy ? 3*8 : 3*4; in snd_emu10k1_send_volume_info()
1321 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_send_volume_get() local
1323 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_send_volume_get()
1325 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_send_volume_get()
1327 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_send_volume_get()
1330 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_send_volume_get()
1338 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_send_volume_put() local
1340 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_send_volume_put()
1342 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_send_volume_put()
1344 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_send_volume_put()
1354 update_emu10k1_send_volume(emu, mix->epcm->voices[0]->number, in snd_emu10k1_send_volume_put()
1356 update_emu10k1_send_volume(emu, mix->epcm->voices[1]->number, in snd_emu10k1_send_volume_put()
1359 update_emu10k1_send_volume(emu, mix->epcm->voices[0]->number, in snd_emu10k1_send_volume_put()
1363 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_send_volume_put()
1390 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_attn_get() local
1392 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_attn_get()
1396 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_attn_get()
1399 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_attn_get()
1407 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_attn_put() local
1409 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_attn_put()
1412 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_attn_put()
1422 snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[0]->number, mix->attn[1]); in snd_emu10k1_attn_put()
1423 snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[1]->number, mix->attn[2]); in snd_emu10k1_attn_put()
1425 snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[0]->number, mix->attn[0]); in snd_emu10k1_attn_put()
1428 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_attn_put()
1447 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_send_routing_info() local
1449 uinfo->count = emu->audigy ? 8 : 4; in snd_emu10k1_efx_send_routing_info()
1451 uinfo->value.integer.max = emu->audigy ? 0x3f : 0x0f; in snd_emu10k1_efx_send_routing_info()
1459 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_send_routing_get() local
1461 &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_efx_send_routing_get()
1463 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_efx_send_routing_get()
1464 int mask = emu->audigy ? 0x3f : 0x0f; in snd_emu10k1_efx_send_routing_get()
1466 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_efx_send_routing_get()
1470 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_efx_send_routing_get()
1478 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_send_routing_put() local
1480 struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch]; in snd_emu10k1_efx_send_routing_put()
1482 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_efx_send_routing_put()
1483 int mask = emu->audigy ? 0x3f : 0x0f; in snd_emu10k1_efx_send_routing_put()
1485 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_efx_send_routing_put()
1496 update_emu10k1_fxrt(emu, mix->epcm->voices[ch]->number, in snd_emu10k1_efx_send_routing_put()
1500 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_efx_send_routing_put()
1517 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_send_volume_info() local
1519 uinfo->count = emu->audigy ? 8 : 4; in snd_emu10k1_efx_send_volume_info()
1529 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_send_volume_get() local
1531 &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_efx_send_volume_get()
1533 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_efx_send_volume_get()
1535 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_efx_send_volume_get()
1538 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_efx_send_volume_get()
1546 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_send_volume_put() local
1548 struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch]; in snd_emu10k1_efx_send_volume_put()
1550 int num_efx = emu->audigy ? 8 : 4; in snd_emu10k1_efx_send_volume_put()
1552 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_efx_send_volume_put()
1562 update_emu10k1_send_volume(emu, mix->epcm->voices[ch]->number, in snd_emu10k1_efx_send_volume_put()
1566 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_efx_send_volume_put()
1594 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_attn_get() local
1596 &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; in snd_emu10k1_efx_attn_get()
1599 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_efx_attn_get()
1601 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_efx_attn_get()
1609 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_efx_attn_put() local
1611 struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch]; in snd_emu10k1_efx_attn_put()
1614 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_efx_attn_put()
1622 snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[ch]->number, mix->attn[0]); in snd_emu10k1_efx_attn_put()
1625 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_efx_attn_put()
1645 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_shared_spdif_get() local
1647 if (emu->audigy) in snd_emu10k1_shared_spdif_get()
1648 ucontrol->value.integer.value[0] = inl(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0; in snd_emu10k1_shared_spdif_get()
1650 ucontrol->value.integer.value[0] = inl(emu->port + HCFG) & HCFG_GPOUT0 ? 1 : 0; in snd_emu10k1_shared_spdif_get()
1651 if (emu->card_capabilities->invert_shared_spdif) in snd_emu10k1_shared_spdif_get()
1662 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_emu10k1_shared_spdif_put() local
1667 if (emu->card_capabilities->invert_shared_spdif) in snd_emu10k1_shared_spdif_put()
1669 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu10k1_shared_spdif_put()
1670 if ( emu->card_capabilities->i2c_adc) { in snd_emu10k1_shared_spdif_put()
1672 } else if (emu->audigy) { in snd_emu10k1_shared_spdif_put()
1673 reg = inl(emu->port + A_IOCFG); in snd_emu10k1_shared_spdif_put()
1679 outl(reg | val, emu->port + A_IOCFG); in snd_emu10k1_shared_spdif_put()
1682 reg = inl(emu->port + HCFG); in snd_emu10k1_shared_spdif_put()
1688 outl(reg | val, emu->port + HCFG); in snd_emu10k1_shared_spdif_put()
1690 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu10k1_shared_spdif_put()
1719 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_audigy_capture_boost_get() local
1723 val = snd_ac97_read(emu->ac97, AC97_REC_GAIN); in snd_audigy_capture_boost_get()
1731 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); in snd_audigy_capture_boost_put() local
1738 return snd_ac97_update(emu->ac97, AC97_REC_GAIN, val); in snd_audigy_capture_boost_put()
1755 struct snd_emu10k1 *emu = ac97->private_data; in snd_emu10k1_mixer_free_ac97() local
1756 emu->ac97 = NULL; in snd_emu10k1_mixer_free_ac97()
1789 int snd_emu10k1_mixer(struct snd_emu10k1 *emu, in snd_emu10k1_mixer() argument
1794 struct snd_card *card = emu->card; in snd_emu10k1_mixer()
1912 if (emu->card_capabilities->ac97_chip) { in snd_emu10k1_mixer()
1920 if ((err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus)) < 0) in snd_emu10k1_mixer()
1925 ac97.private_data = emu; in snd_emu10k1_mixer()
1928 if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0) { in snd_emu10k1_mixer()
1929 if (emu->card_capabilities->ac97_chip == 1) in snd_emu10k1_mixer()
1931 dev_info(emu->card->dev, in snd_emu10k1_mixer()
1933 dev_info(emu->card->dev, in snd_emu10k1_mixer()
1935 snd_device_free(emu->card, pbus); in snd_emu10k1_mixer()
1938 if (emu->audigy) { in snd_emu10k1_mixer()
1940 snd_ac97_write_cache(emu->ac97, AC97_MASTER, 0x0000); in snd_emu10k1_mixer()
1942 snd_ac97_write_cache(emu->ac97, AC97_REC_SEL, 0x0000); in snd_emu10k1_mixer()
1944 snd_ac97_update_bits(emu->ac97, AC97_GENERAL_PURPOSE, in snd_emu10k1_mixer()
1946 if (emu->card_capabilities->adc_1361t) in snd_emu10k1_mixer()
1956 if (emu->ac97->id == AC97_ID_STAC9758) { in snd_emu10k1_mixer()
1957 emu->rear_ac97 = 1; in snd_emu10k1_mixer()
1958 …snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE|AC97SLOT_REAR_LEFT|AC97SLOT_REA… in snd_emu10k1_mixer()
1959 snd_ac97_write_cache(emu->ac97, AC97_HEADPHONE, 0x0202); in snd_emu10k1_mixer()
1964 snd_ac97_write_cache(emu->ac97, AC97_SURROUND_MASTER, 0x0202); in snd_emu10k1_mixer()
1965 snd_ac97_write_cache(emu->ac97, AC97_CENTER_LFE_MASTER, 0x0202); in snd_emu10k1_mixer()
1970 } else if (emu->card_capabilities->i2c_adc) { in snd_emu10k1_mixer()
1976 if (emu->card_capabilities->ecard) in snd_emu10k1_mixer()
1977 strcpy(emu->card->mixername, "EMU APS"); in snd_emu10k1_mixer()
1978 else if (emu->audigy) in snd_emu10k1_mixer()
1979 strcpy(emu->card->mixername, "SB Audigy"); in snd_emu10k1_mixer()
1981 strcpy(emu->card->mixername, "Emu10k1"); in snd_emu10k1_mixer()
1984 if (emu->audigy) in snd_emu10k1_mixer()
1985 if (emu->card_capabilities->adc_1361t) in snd_emu10k1_mixer()
1987 else if (emu->card_capabilities->i2c_adc) in snd_emu10k1_mixer()
1996 if (emu->card_capabilities->subsystem == 0x80401102) { /* SB Live! Platinum CT4760P */ in snd_emu10k1_mixer()
2002 if (emu->card_capabilities->subsystem == 0x20071102) { /* Audigy 4 Pro */ in snd_emu10k1_mixer()
2008 if ((kctl = emu->ctl_send_routing = snd_ctl_new1(&snd_emu10k1_send_routing_control, emu)) == NULL) in snd_emu10k1_mixer()
2013 if ((kctl = emu->ctl_send_volume = snd_ctl_new1(&snd_emu10k1_send_volume_control, emu)) == NULL) in snd_emu10k1_mixer()
2018 if ((kctl = emu->ctl_attn = snd_ctl_new1(&snd_emu10k1_attn_control, emu)) == NULL) in snd_emu10k1_mixer()
2024 …if ((kctl = emu->ctl_efx_send_routing = snd_ctl_new1(&snd_emu10k1_efx_send_routing_control, emu)) … in snd_emu10k1_mixer()
2030 …if ((kctl = emu->ctl_efx_send_volume = snd_ctl_new1(&snd_emu10k1_efx_send_volume_control, emu)) ==… in snd_emu10k1_mixer()
2036 if ((kctl = emu->ctl_efx_attn = snd_ctl_new1(&snd_emu10k1_efx_attn_control, emu)) == NULL) in snd_emu10k1_mixer()
2047 mix = &emu->pcm_mixer[pcm]; in snd_emu10k1_mixer()
2067 mix = &emu->efx_pcm_mixer[pcm]; in snd_emu10k1_mixer()
2074 if (emu->audigy) in snd_emu10k1_mixer()
2084 if (! emu->card_capabilities->ecard) { /* FIXME: APS has these controls? */ in snd_emu10k1_mixer()
2086 if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_mask_control, emu)) == NULL) in snd_emu10k1_mixer()
2088 if (!emu->audigy) in snd_emu10k1_mixer()
2089 kctl->id.device = emu->pcm_efx->device; in snd_emu10k1_mixer()
2092 if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_control, emu)) == NULL) in snd_emu10k1_mixer()
2094 if (!emu->audigy) in snd_emu10k1_mixer()
2095 kctl->id.device = emu->pcm_efx->device; in snd_emu10k1_mixer()
2100 if (emu->card_capabilities->emu_model) { in snd_emu10k1_mixer()
2102 } else if (emu->audigy) { in snd_emu10k1_mixer()
2103 if ((kctl = snd_ctl_new1(&snd_audigy_shared_spdif, emu)) == NULL) in snd_emu10k1_mixer()
2108 if ((kctl = snd_ctl_new1(&snd_audigy_spdif_output_rate, emu)) == NULL) in snd_emu10k1_mixer()
2113 } else if (! emu->card_capabilities->ecard) { in snd_emu10k1_mixer()
2115 if ((kctl = snd_ctl_new1(&snd_emu10k1_shared_spdif, emu)) == NULL) in snd_emu10k1_mixer()
2120 if (emu->card_capabilities->ca0151_chip) { /* P16V */ in snd_emu10k1_mixer()
2121 if ((err = snd_p16v_mixer(emu))) in snd_emu10k1_mixer()
2125 if (emu->card_capabilities->emu_model == EMU_MODEL_EMU1616) { in snd_emu10k1_mixer()
2132 emu)); in snd_emu10k1_mixer()
2139 emu)); in snd_emu10k1_mixer()
2145 snd_ctl_new1(&snd_emu1010_adc_pads[i], emu)); in snd_emu10k1_mixer()
2151 snd_ctl_new1(&snd_emu1010_dac_pads[i], emu)); in snd_emu10k1_mixer()
2156 snd_ctl_new1(&snd_emu1010_internal_clock, emu)); in snd_emu10k1_mixer()
2160 snd_ctl_new1(&snd_emu1010_optical_out, emu)); in snd_emu10k1_mixer()
2164 snd_ctl_new1(&snd_emu1010_optical_in, emu)); in snd_emu10k1_mixer()
2168 } else if (emu->card_capabilities->emu_model) { in snd_emu10k1_mixer()
2175 emu)); in snd_emu10k1_mixer()
2182 emu)); in snd_emu10k1_mixer()
2188 snd_ctl_new1(&snd_emu1010_adc_pads[i], emu)); in snd_emu10k1_mixer()
2194 snd_ctl_new1(&snd_emu1010_dac_pads[i], emu)); in snd_emu10k1_mixer()
2199 snd_ctl_new1(&snd_emu1010_internal_clock, emu)); in snd_emu10k1_mixer()
2203 snd_ctl_new1(&snd_emu1010_optical_out, emu)); in snd_emu10k1_mixer()
2207 snd_ctl_new1(&snd_emu1010_optical_in, emu)); in snd_emu10k1_mixer()
2212 if ( emu->card_capabilities->i2c_adc) { in snd_emu10k1_mixer()
2215 err = snd_ctl_add(card, snd_ctl_new1(&snd_audigy_i2c_capture_source, emu)); in snd_emu10k1_mixer()
2220 err = snd_ctl_add(card, snd_ctl_new1(&snd_audigy_i2c_volume_ctls[i], emu)); in snd_emu10k1_mixer()
2226 if (emu->card_capabilities->ac97_chip && emu->audigy) { in snd_emu10k1_mixer()
2228 emu)); in snd_emu10k1_mixer()