Lines Matching refs:chip
303 static int mixart_update_analog_audio_level(struct snd_mixart* chip, int is_capture) in mixart_update_analog_audio_level() argument
315 io_level.level[i].analog_level = mixart_analog_level[chip->analog_capture_volume[i]]; in mixart_update_analog_audio_level()
317 if(chip->analog_playback_active[i]) in mixart_update_analog_audio_level()
318 io_level.level[i].analog_level = mixart_analog_level[chip->analog_playback_volume[i]]; in mixart_update_analog_audio_level()
324 if(is_capture) request.uid = chip->uid_in_analog_physio; in mixart_update_analog_audio_level()
325 else request.uid = chip->uid_out_analog_physio; in mixart_update_analog_audio_level()
330 err = snd_mixart_send_msg(chip->mgr, &request, sizeof(resp), &resp); in mixart_update_analog_audio_level()
332 dev_dbg(chip->card->dev, in mixart_update_analog_audio_level()
334 chip->chip_idx, is_capture, resp.error_code); in mixart_update_analog_audio_level()
359 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_analog_vol_get() local
360 mutex_lock(&chip->mgr->mixer_mutex); in mixart_analog_vol_get()
362 ucontrol->value.integer.value[0] = chip->analog_playback_volume[0]; in mixart_analog_vol_get()
363 ucontrol->value.integer.value[1] = chip->analog_playback_volume[1]; in mixart_analog_vol_get()
365 ucontrol->value.integer.value[0] = chip->analog_capture_volume[0]; in mixart_analog_vol_get()
366 ucontrol->value.integer.value[1] = chip->analog_capture_volume[1]; in mixart_analog_vol_get()
368 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_analog_vol_get()
374 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_analog_vol_put() local
378 mutex_lock(&chip->mgr->mixer_mutex); in mixart_analog_vol_put()
383 &chip->analog_capture_volume[i] : in mixart_analog_vol_put()
384 &chip->analog_playback_volume[i]; in mixart_analog_vol_put()
400 mixart_update_analog_audio_level(chip, is_capture); in mixart_analog_vol_put()
401 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_analog_vol_put()
423 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_audio_sw_get() local
425 mutex_lock(&chip->mgr->mixer_mutex); in mixart_audio_sw_get()
426 ucontrol->value.integer.value[0] = chip->analog_playback_active[0]; in mixart_audio_sw_get()
427 ucontrol->value.integer.value[1] = chip->analog_playback_active[1]; in mixart_audio_sw_get()
428 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_audio_sw_get()
434 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_audio_sw_put() local
436 mutex_lock(&chip->mgr->mixer_mutex); in mixart_audio_sw_put()
438 if (chip->analog_playback_active[i] != in mixart_audio_sw_put()
440 chip->analog_playback_active[i] = in mixart_audio_sw_put()
446 mixart_update_analog_audio_level(chip, 0); in mixart_audio_sw_put()
447 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_audio_sw_put()
723 int mixart_update_playback_stream_level(struct snd_mixart* chip, int is_aes, int idx) in mixart_update_playback_stream_level() argument
737 pipe = &chip->pipe_out_dig; /* AES playback */ in mixart_update_playback_stream_level()
740 pipe = &chip->pipe_out_ana; /* analog playback */ in mixart_update_playback_stream_level()
750 if(chip->digital_playback_active[idx][i]) in mixart_update_playback_stream_level()
751 volume[i] = chip->digital_playback_volume[idx][i]; in mixart_update_playback_stream_level()
765 err = snd_mixart_send_msg(chip->mgr, &request, sizeof(status), &status); in mixart_update_playback_stream_level()
767 dev_dbg(chip->card->dev, in mixart_update_playback_stream_level()
769 chip->chip_idx, status); in mixart_update_playback_stream_level()
775 int mixart_update_capture_stream_level(struct snd_mixart* chip, int is_aes) in mixart_update_capture_stream_level() argument
785 pipe = &chip->pipe_in_dig; in mixart_update_capture_stream_level()
788 pipe = &chip->pipe_in_ana; in mixart_update_capture_stream_level()
802 set_level.level[i].digital_level = mixart_digital_level[chip->digital_capture_volume[idx][i]]; in mixart_update_capture_stream_level()
810 err = snd_mixart_send_msg(chip->mgr, &request, sizeof(status), &status); in mixart_update_capture_stream_level()
812 dev_dbg(chip->card->dev, in mixart_update_capture_stream_level()
814 chip->chip_idx, status); in mixart_update_capture_stream_level()
836 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_pcm_vol_get() local
841 mutex_lock(&chip->mgr->mixer_mutex); in mixart_pcm_vol_get()
843 if(is_aes) stored_volume = chip->digital_capture_volume[1]; /* AES capture */ in mixart_pcm_vol_get()
844 else stored_volume = chip->digital_capture_volume[0]; /* analog capture */ in mixart_pcm_vol_get()
847 …if(is_aes) stored_volume = chip->digital_playback_volume[MIXART_PLAYBACK_STREAMS + idx]; /* AES pl… in mixart_pcm_vol_get()
848 else stored_volume = chip->digital_playback_volume[idx]; /* analog playback */ in mixart_pcm_vol_get()
852 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_pcm_vol_get()
858 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_pcm_vol_put() local
865 mutex_lock(&chip->mgr->mixer_mutex); in mixart_pcm_vol_put()
868 stored_volume = chip->digital_capture_volume[1]; in mixart_pcm_vol_put()
870 stored_volume = chip->digital_capture_volume[0]; in mixart_pcm_vol_put()
874 stored_volume = chip->digital_playback_volume[MIXART_PLAYBACK_STREAMS + idx]; in mixart_pcm_vol_put()
876 stored_volume = chip->digital_playback_volume[idx]; in mixart_pcm_vol_put()
890 mixart_update_capture_stream_level(chip, is_aes); in mixart_pcm_vol_put()
892 mixart_update_playback_stream_level(chip, is_aes, idx); in mixart_pcm_vol_put()
894 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_pcm_vol_put()
916 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_pcm_sw_get() local
919 mutex_lock(&chip->mgr->mixer_mutex); in mixart_pcm_sw_get()
922 ucontrol->value.integer.value[0] = chip->digital_playback_active[idx][0]; in mixart_pcm_sw_get()
923 ucontrol->value.integer.value[1] = chip->digital_playback_active[idx][1]; in mixart_pcm_sw_get()
924 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_pcm_sw_get()
930 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_pcm_sw_put() local
936 mutex_lock(&chip->mgr->mixer_mutex); in mixart_pcm_sw_put()
941 if (chip->digital_playback_active[j][i] != in mixart_pcm_sw_put()
943 chip->digital_playback_active[j][i] = in mixart_pcm_sw_put()
949 mixart_update_playback_stream_level(chip, is_aes, idx); in mixart_pcm_sw_put()
950 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_pcm_sw_put()
963 static int mixart_update_monitoring(struct snd_mixart* chip, int channel) in mixart_update_monitoring() argument
970 if(chip->pipe_out_ana.status == PIPE_UNDEFINED) in mixart_update_monitoring()
973 if(!channel) request.uid = chip->pipe_out_ana.uid_left_connector; in mixart_update_monitoring()
974 else request.uid = chip->pipe_out_ana.uid_right_connector; in mixart_update_monitoring()
981 audio_level.monitor_level = mixart_digital_level[chip->monitoring_volume[channel!=0]]; in mixart_update_monitoring()
982 audio_level.monitor_mute1 = !chip->monitoring_active[channel!=0]; in mixart_update_monitoring()
984 err = snd_mixart_send_msg(chip->mgr, &request, sizeof(resp), &resp); in mixart_update_monitoring()
986 dev_dbg(chip->card->dev, in mixart_update_monitoring()
988 chip->chip_idx, resp); in mixart_update_monitoring()
1000 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_monitor_vol_get() local
1001 mutex_lock(&chip->mgr->mixer_mutex); in mixart_monitor_vol_get()
1002 ucontrol->value.integer.value[0] = chip->monitoring_volume[0]; in mixart_monitor_vol_get()
1003 ucontrol->value.integer.value[1] = chip->monitoring_volume[1]; in mixart_monitor_vol_get()
1004 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_monitor_vol_get()
1010 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_monitor_vol_put() local
1013 mutex_lock(&chip->mgr->mixer_mutex); in mixart_monitor_vol_put()
1015 if (chip->monitoring_volume[i] != in mixart_monitor_vol_put()
1017 chip->monitoring_volume[i] = in mixart_monitor_vol_put()
1019 mixart_update_monitoring(chip, i); in mixart_monitor_vol_put()
1023 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_monitor_vol_put()
1044 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_monitor_sw_get() local
1045 mutex_lock(&chip->mgr->mixer_mutex); in mixart_monitor_sw_get()
1046 ucontrol->value.integer.value[0] = chip->monitoring_active[0]; in mixart_monitor_sw_get()
1047 ucontrol->value.integer.value[1] = chip->monitoring_active[1]; in mixart_monitor_sw_get()
1048 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_monitor_sw_get()
1054 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); in mixart_monitor_sw_put() local
1057 mutex_lock(&chip->mgr->mixer_mutex); in mixart_monitor_sw_put()
1059 if (chip->monitoring_active[i] != in mixart_monitor_sw_put()
1061 chip->monitoring_active[i] = in mixart_monitor_sw_put()
1068 int allocate = chip->monitoring_active[0] || in mixart_monitor_sw_put()
1069 chip->monitoring_active[1]; in mixart_monitor_sw_put()
1072 snd_mixart_add_ref_pipe(chip, MIXART_PCM_ANALOG, 0, 1); in mixart_monitor_sw_put()
1074 snd_mixart_add_ref_pipe(chip, MIXART_PCM_ANALOG, 1, 1); in mixart_monitor_sw_put()
1077 mixart_update_monitoring(chip, 0); in mixart_monitor_sw_put()
1079 mixart_update_monitoring(chip, 1); in mixart_monitor_sw_put()
1082 snd_mixart_kill_ref_pipe(chip->mgr, in mixart_monitor_sw_put()
1083 &chip->pipe_in_ana, 1); in mixart_monitor_sw_put()
1085 snd_mixart_kill_ref_pipe(chip->mgr, in mixart_monitor_sw_put()
1086 &chip->pipe_out_ana, 1); in mixart_monitor_sw_put()
1090 mutex_unlock(&chip->mgr->mixer_mutex); in mixart_monitor_sw_put()
1103 static void mixart_reset_audio_levels(struct snd_mixart *chip) in mixart_reset_audio_levels() argument
1106 mixart_update_analog_audio_level(chip, 0); in mixart_reset_audio_levels()
1108 if(chip->chip_idx < 2) { in mixart_reset_audio_levels()
1109 mixart_update_analog_audio_level(chip, 1); in mixart_reset_audio_levels()
1117 struct snd_mixart *chip; in snd_mixart_create_mixer() local
1124 chip = mgr->chip[i]; in snd_mixart_create_mixer()
1130 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1133 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&mixart_control_output_switch, chip))) < 0) in snd_mixart_create_mixer()
1141 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1149 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1155 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1162 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1168 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1174 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1180 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) in snd_mixart_create_mixer()
1185 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&mixart_control_monitor_vol, chip))) < 0) in snd_mixart_create_mixer()
1187 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&mixart_control_monitor_sw, chip))) < 0) in snd_mixart_create_mixer()
1191 mixart_reset_audio_levels(chip); in snd_mixart_create_mixer()