Lines Matching refs:ctrl
705 ac97_ctrl_t *ctrl;
709 for (ctrl = list_head(l); ctrl; ctrl = list_next(l, ctrl)) {
710 if (strcmp(ctrl->actrl_name, name) == 0) {
711 return (ctrl);
739 ac97_ctrl_t *ctrl;
741 for (ctrl = list_head(&ac->ctrls); ctrl;
742 ctrl = list_next(&ac->ctrls, ctrl)) {
743 ctrl->actrl_value = ctrl->actrl_initval;
744 ctrl->actrl_write_fn(ctrl, ctrl->actrl_initval);
753 ac_insrc_set(ac97_ctrl_t *ctrl, uint64_t value)
755 ac97_t *ac = ctrl->actrl_ac97;
767 ac_gpr_toggle(ac97_ctrl_t *ctrl, int bit, uint64_t onoff)
769 ac97_t *ac = ctrl->actrl_ac97;
782 ac_3donoff_set(ac97_ctrl_t *ctrl, uint64_t value)
784 ac_gpr_toggle(ctrl, GPR_3D_STEREO_ENHANCE, value);
788 ac_loudness_set(ac97_ctrl_t *ctrl, uint64_t value)
790 ac_gpr_toggle(ctrl, GPR_BASS_BOOST, value);
794 ac_loopback_set(ac97_ctrl_t *ctrl, uint64_t value)
796 ac_gpr_toggle(ctrl, GPR_LPBK, value);
803 ac_stsim_set(ac97_ctrl_t *ctrl, uint64_t value)
805 ac_gpr_toggle(ctrl, GPR_ST, value);
812 ac_selmic_set(ac97_ctrl_t *ctrl, uint64_t value)
814 ac_gpr_toggle(ctrl, GPR_MS_MIC2, value & 2);
821 ac_monosrc_set(ac97_ctrl_t *ctrl, uint64_t value)
823 ac_gpr_toggle(ctrl, GPR_MONO_MIC_IN, value & 2);
827 ac_stereo_set(ac97_ctrl_t *ctrl, uint64_t value, uint8_t reg)
829 ac97_t *ac = ctrl->actrl_ac97;
835 mute = value ? 0 : ctrl->actrl_muteable;
837 ac_wr(ac, reg, ac_val_scale(left, right, ctrl->actrl_bits) | mute);
841 ac_mono_set(ac97_ctrl_t *ctrl, uint64_t value, uint8_t reg, int shift)
843 ac97_t *ac = ctrl->actrl_ac97;
849 mute = val ? 0 : ctrl->actrl_muteable;
851 mask = ctrl->actrl_muteable |
852 (((1 << ABS(ctrl->actrl_bits)) - 1) << shift);
859 v |= (ac_mono_scale(val, ctrl->actrl_bits) << shift);
865 ac97_master_set(ac97_ctrl_t *ctrl, uint64_t value)
868 ac_stereo_set(ctrl, value, AC97_PCM_OUT_VOLUME_REGISTER);
872 ac97_lineout_set(ac97_ctrl_t *ctrl, uint64_t value)
874 ac_stereo_set(ctrl, value, AC97_MASTER_VOLUME_REGISTER);
878 ac97_surround_set(ac97_ctrl_t *ctrl, uint64_t value)
880 ac_stereo_set(ctrl, value, AC97_EXTENDED_LRS_VOLUME_REGISTER);
884 ac97_aux1out_set(ac97_ctrl_t *ctrl, uint64_t value)
886 ac_stereo_set(ctrl, value, AC97_HEADPHONE_VOLUME_REGISTER);
890 ac97_headphone_set(ac97_ctrl_t *ctrl, uint64_t value)
892 ac_stereo_set(ctrl, value, AC97_HEADPHONE_VOLUME_REGISTER);
896 ac_cd_set(ac97_ctrl_t *ctrl, uint64_t value)
898 ac_stereo_set(ctrl, value, AC97_CD_VOLUME_REGISTER);
902 ac_video_set(ac97_ctrl_t *ctrl, uint64_t value)
904 ac_stereo_set(ctrl, value, AC97_VIDEO_VOLUME_REGISTER);
908 ac_auxin_set(ac97_ctrl_t *ctrl, uint64_t value)
910 ac_stereo_set(ctrl, value, AC97_AUX_VOLUME_REGISTER);
914 ac_linein_set(ac97_ctrl_t *ctrl, uint64_t value)
916 ac_stereo_set(ctrl, value, AC97_LINE_IN_VOLUME_REGISTER);
923 ac_monomic_set(ac97_ctrl_t *ctrl, uint64_t value)
925 ac_mono_set(ctrl, value, AC97_RECORD_GAIN_MIC_REGISTER, 0);
929 ac_phone_set(ac97_ctrl_t *ctrl, uint64_t value)
931 ac_mono_set(ctrl, value, AC97_PHONE_VOLUME_REGISTER, 0);
935 ac_mic_set(ac97_ctrl_t *ctrl, uint64_t value)
937 ac_mono_set(ctrl, value, AC97_MIC_VOLUME_REGISTER, 0);
941 ac_speaker_set(ac97_ctrl_t *ctrl, uint64_t value)
943 ac_mono_set(ctrl, value, AC97_MONO_MASTER_VOLUME_REGISTER, 0);
947 ac_pcbeep_set(ac97_ctrl_t *ctrl, uint64_t value)
949 ac_mono_set(ctrl, value, AC97_PC_BEEP_REGISTER, 1);
953 ac_recgain_set(ac97_ctrl_t *ctrl, uint64_t value)
955 ac_stereo_set(ctrl, value, AC97_RECORD_GAIN_REGISTER);
959 ac_center_set(ac97_ctrl_t *ctrl, uint64_t value)
961 ac_mono_set(ctrl, value, AC97_EXTENDED_C_LFE_VOLUME_REGISTER, 0);
965 ac_lfe_set(ac97_ctrl_t *ctrl, uint64_t value)
967 ac_mono_set(ctrl, value, AC97_EXTENDED_C_LFE_VOLUME_REGISTER, 8);
971 ac_bass_set(ac97_ctrl_t *ctrl, uint64_t value)
973 ac_mono_set(ctrl, value, AC97_MASTER_TONE_CONTROL_REGISTER, 8);
977 ac_treble_set(ac97_ctrl_t *ctrl, uint64_t value)
979 ac_mono_set(ctrl, value, AC97_MASTER_TONE_CONTROL_REGISTER, 0);
983 ac_3ddepth_set(ac97_ctrl_t *ctrl, uint64_t value)
991 ac_mono_set(ctrl, value, AC97_THREE_D_CONTROL_REGISTER, 0);
995 ac_3dcent_set(ac97_ctrl_t *ctrl, uint64_t value)
1003 ac_mono_set(ctrl, value, AC97_THREE_D_CONTROL_REGISTER, 8);
1007 ac97_micboost_set(ac97_ctrl_t *ctrl, uint64_t value)
1009 ac97_t *ac = ctrl->actrl_ac97;
1034 ac97_control_get(ac97_ctrl_t *ctrl, uint64_t *value)
1036 *value = ctrl->actrl_value;
1042 ac97_control_set(ac97_ctrl_t *ctrl, uint64_t value)
1047 switch (ctrl->actrl_type) {
1051 if ((v1 < ctrl->actrl_minval) || (v1 > ctrl->actrl_maxval) ||
1052 (v2 < ctrl->actrl_minval) || (v2 > ctrl->actrl_maxval) ||
1059 if ((value & ~ctrl->actrl_minval) !=
1060 (ctrl->actrl_maxval & ~ctrl->actrl_minval)) {
1067 if ((value < ctrl->actrl_minval) ||
1068 (value > ctrl->actrl_maxval)) {
1074 ctrl->actrl_value = value;
1075 ctrl->actrl_write_fn(ctrl, value);
1254 ac97_control_register(ac97_ctrl_t *ctrl)
1256 ac97_t *ac = ctrl->actrl_ac97;
1259 ctrl->actrl_suppress = B_FALSE;
1262 ctrl->actrl_ctrl = audio_dev_add_control(ac->d, &ctrl->actrl_desc,
1263 ac_get_value, ac_set_value, ctrl);
1264 if (ctrl->actrl_ctrl == NULL) {
1266 ctrl->actrl_name);
1271 ac97_control_unregister(ac97_ctrl_t *ctrl)
1273 ctrl->actrl_suppress = B_TRUE;
1275 if (ctrl->actrl_ctrl != NULL) {
1276 audio_dev_del_control(ctrl->actrl_ctrl);
1277 ctrl->actrl_ctrl = NULL;
1282 ac97_control_name(ac97_ctrl_t *ctrl)
1284 return (ctrl->actrl_name);
1288 ac97_control_desc(ac97_ctrl_t *ctrl)
1290 return (&ctrl->actrl_desc);
1296 ac97_ctrl_t *ctrl;
1298 for (ctrl = list_head(&ac->ctrls); ctrl;
1299 ctrl = list_next(&ac->ctrls, ctrl)) {
1300 if (ctrl->actrl_suppress)
1302 ac97_control_register(ctrl);
1309 ac97_ctrl_t *ctrl;
1311 for (ctrl = list_head(&ac->ctrls); ctrl;
1312 ctrl = list_next(&ac->ctrls, ctrl)) {
1313 if (!(*walker)(ctrl, arg)) {
1322 ac97_ctrl_t *ctrl;
1328 ctrl = ac97_control_find(ac, cpt->cp_name);
1329 if (ctrl != NULL) {
1332 ctrl = kmem_zalloc(sizeof (ac97_ctrl_t), KM_SLEEP);
1335 ctrl->actrl_ac97 = ac;
1336 ctrl->actrl_minval = cpt->cp_minval;
1337 ctrl->actrl_maxval = cpt->cp_maxval;
1338 ctrl->actrl_type = cpt->cp_type;
1339 ctrl->actrl_name = cpt->cp_name;
1340 ctrl->actrl_flags = cpt->cp_flags;
1345 ctrl->actrl_enum[e] = cpt->cp_enum[e];
1353 ctrl->actrl_initval = cpt->cp_initval;
1354 ctrl->actrl_muteable = cpt->cp_muteable;
1355 ctrl->actrl_write_fn = cpt->cp_write_fn;
1356 ctrl->actrl_bits = cpt->cp_bits;
1364 list_insert_tail(&ac->ctrls, ctrl);
1371 ac97_control_remove(ac97_ctrl_t *ctrl)
1373 ac97_t *ac = ctrl->actrl_ac97;
1375 list_remove(&ac->ctrls, ctrl);
1377 if (ctrl->actrl_ctrl != NULL)
1378 audio_dev_del_control(ctrl->actrl_ctrl);
1379 kmem_free(ctrl, sizeof (ac97_ctrl_t));
1704 ac97_ctrl_t *ctrl;
1707 while ((ctrl = list_head(&ac->ctrls)) != NULL) {
1708 ac97_control_remove(ctrl);