• Home
  • Raw
  • Download

Lines Matching refs:spec

143 static inline void set_beep_amp(struct conexant_spec *spec, hda_nid_t nid,  in set_beep_amp()  argument
146 spec->gen.beep_nid = nid; in set_beep_amp()
147 spec->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir); in set_beep_amp()
159 struct conexant_spec *spec = codec->spec; in add_beep_ctls() local
162 if (spec->beep_amp) { in add_beep_ctls()
169 kctl->private_value = spec->beep_amp; in add_beep_ctls()
178 #define set_beep_amp(spec, nid, idx, dir) /* NOP */ argument
188 struct conexant_spec *spec = codec->spec; in conexant_playback_pcm_open() local
189 return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream, in conexant_playback_pcm_open()
199 struct conexant_spec *spec = codec->spec; in conexant_playback_pcm_prepare() local
200 return snd_hda_multi_out_analog_prepare(codec, &spec->multiout, in conexant_playback_pcm_prepare()
209 struct conexant_spec *spec = codec->spec; in conexant_playback_pcm_cleanup() local
210 return snd_hda_multi_out_analog_cleanup(codec, &spec->multiout); in conexant_playback_pcm_cleanup()
220 struct conexant_spec *spec = codec->spec; in conexant_dig_playback_pcm_open() local
221 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in conexant_dig_playback_pcm_open()
228 struct conexant_spec *spec = codec->spec; in conexant_dig_playback_pcm_close() local
229 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in conexant_dig_playback_pcm_close()
238 struct conexant_spec *spec = codec->spec; in conexant_dig_playback_pcm_prepare() local
239 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in conexant_dig_playback_pcm_prepare()
253 struct conexant_spec *spec = codec->spec; in conexant_capture_pcm_prepare() local
254 if (spec->capture_prepare) in conexant_capture_pcm_prepare()
255 spec->capture_prepare(codec); in conexant_capture_pcm_prepare()
256 snd_hda_codec_setup_stream(codec, spec->adc_nids[substream->number], in conexant_capture_pcm_prepare()
265 struct conexant_spec *spec = codec->spec; in conexant_capture_pcm_cleanup() local
266 snd_hda_codec_cleanup_stream(codec, spec->adc_nids[substream->number]); in conexant_capture_pcm_cleanup()
267 if (spec->capture_cleanup) in conexant_capture_pcm_cleanup()
268 spec->capture_cleanup(codec); in conexant_capture_pcm_cleanup()
323 struct conexant_spec *spec = codec->spec; in cx5051_capture_pcm_prepare() local
324 spec->cur_adc = spec->adc_nids[spec->cur_adc_idx]; in cx5051_capture_pcm_prepare()
325 spec->cur_adc_stream_tag = stream_tag; in cx5051_capture_pcm_prepare()
326 spec->cur_adc_format = format; in cx5051_capture_pcm_prepare()
327 snd_hda_codec_setup_stream(codec, spec->cur_adc, stream_tag, 0, format); in cx5051_capture_pcm_prepare()
335 struct conexant_spec *spec = codec->spec; in cx5051_capture_pcm_cleanup() local
336 snd_hda_codec_cleanup_stream(codec, spec->cur_adc); in cx5051_capture_pcm_cleanup()
337 spec->cur_adc = 0; in cx5051_capture_pcm_cleanup()
354 struct conexant_spec *spec = codec->spec; in conexant_build_pcms() local
355 struct hda_pcm *info = spec->pcm_rec; in conexant_build_pcms()
363 spec->multiout.max_channels; in conexant_build_pcms()
365 spec->multiout.dac_nids[0]; in conexant_build_pcms()
366 if (spec->capture_stream) in conexant_build_pcms()
367 info->stream[SNDRV_PCM_STREAM_CAPTURE] = *spec->capture_stream; in conexant_build_pcms()
376 spec->num_adc_nids; in conexant_build_pcms()
379 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; in conexant_build_pcms()
381 if (spec->multiout.dig_out_nid) { in conexant_build_pcms()
389 spec->multiout.dig_out_nid; in conexant_build_pcms()
390 if (spec->dig_in_nid) { in conexant_build_pcms()
394 spec->dig_in_nid; in conexant_build_pcms()
405 struct conexant_spec *spec = codec->spec; in conexant_mux_enum_info() local
407 return snd_hda_input_mux_info(spec->input_mux, uinfo); in conexant_mux_enum_info()
414 struct conexant_spec *spec = codec->spec; in conexant_mux_enum_get() local
417 ucontrol->value.enumerated.item[0] = spec->cur_mux[adc_idx]; in conexant_mux_enum_get()
425 struct conexant_spec *spec = codec->spec; in conexant_mux_enum_put() local
428 return snd_hda_input_mux_put(codec, spec->input_mux, ucontrol, in conexant_mux_enum_put()
429 spec->capsrc_nids[adc_idx], in conexant_mux_enum_put()
430 &spec->cur_mux[adc_idx]); in conexant_mux_enum_put()
448 struct conexant_spec *spec = codec->spec; in conexant_init() local
451 for (i = 0; i < spec->num_init_verbs; i++) in conexant_init()
452 snd_hda_sequence_write(codec, spec->init_verbs[i]); in conexant_init()
458 struct conexant_spec *spec = codec->spec; in conexant_free() local
460 kfree(spec); in conexant_free()
481 struct conexant_spec *spec = codec->spec; in conexant_build_controls() local
485 for (i = 0; i < spec->num_mixers; i++) { in conexant_build_controls()
486 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in conexant_build_controls()
490 if (spec->multiout.dig_out_nid) { in conexant_build_controls()
492 spec->multiout.dig_out_nid, in conexant_build_controls()
493 spec->multiout.dig_out_nid); in conexant_build_controls()
497 &spec->multiout); in conexant_build_controls()
500 spec->multiout.share_spdif = 1; in conexant_build_controls()
502 if (spec->dig_in_nid) { in conexant_build_controls()
503 err = snd_hda_create_spdif_in_ctls(codec,spec->dig_in_nid); in conexant_build_controls()
509 if (spec->vmaster_nid && in conexant_build_controls()
512 snd_hda_set_vmaster_tlv(codec, spec->vmaster_nid, in conexant_build_controls()
520 if (spec->vmaster_nid && in conexant_build_controls()
529 if (spec->input_mux) { in conexant_build_controls()
562 struct conexant_spec *spec = codec->spec; in cxt_eapd_get() local
565 ucontrol->value.integer.value[0] = !spec->cur_eapd; in cxt_eapd_get()
567 ucontrol->value.integer.value[0] = spec->cur_eapd; in cxt_eapd_get()
576 struct conexant_spec *spec = codec->spec; in cxt_eapd_put() local
584 if (eapd == spec->cur_eapd) in cxt_eapd_put()
587 spec->cur_eapd = eapd; in cxt_eapd_put()
610 struct conexant_spec *spec = codec->spec; in conexant_ch_mode_info() local
611 return snd_hda_ch_mode_info(codec, uinfo, spec->channel_mode, in conexant_ch_mode_info()
612 spec->num_channel_mode); in conexant_ch_mode_info()
619 struct conexant_spec *spec = codec->spec; in conexant_ch_mode_get() local
620 return snd_hda_ch_mode_get(codec, ucontrol, spec->channel_mode, in conexant_ch_mode_get()
621 spec->num_channel_mode, in conexant_ch_mode_get()
622 spec->multiout.max_channels); in conexant_ch_mode_get()
629 struct conexant_spec *spec = codec->spec; in conexant_ch_mode_put() local
630 int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, in conexant_ch_mode_put()
631 spec->num_channel_mode, in conexant_ch_mode_put()
632 &spec->multiout.max_channels); in conexant_ch_mode_put()
687 struct conexant_spec *spec = codec->spec; in cxt5045_hp_master_sw_put() local
696 bits = (!spec->hp_present && spec->cur_eapd) ? 0 : HDA_AMP_MUTE; in cxt5045_hp_master_sw_put()
700 bits = spec->cur_eapd ? 0 : HDA_AMP_MUTE; in cxt5045_hp_master_sw_put()
742 struct conexant_spec *spec = codec->spec; in cxt5045_hp_automute() local
745 spec->hp_present = snd_hda_jack_detect(codec, 0x11); in cxt5045_hp_automute()
747 bits = (spec->hp_present || !spec->cur_eapd) ? HDA_AMP_MUTE : 0; in cxt5045_hp_automute()
1040 struct conexant_spec *spec; in patch_cxt5045() local
1051 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_cxt5045()
1052 if (!spec) in patch_cxt5045()
1054 codec->spec = spec; in patch_cxt5045()
1057 spec->multiout.max_channels = 2; in patch_cxt5045()
1058 spec->multiout.num_dacs = ARRAY_SIZE(cxt5045_dac_nids); in patch_cxt5045()
1059 spec->multiout.dac_nids = cxt5045_dac_nids; in patch_cxt5045()
1060 spec->multiout.dig_out_nid = CXT5045_SPDIF_OUT; in patch_cxt5045()
1061 spec->num_adc_nids = 1; in patch_cxt5045()
1062 spec->adc_nids = cxt5045_adc_nids; in patch_cxt5045()
1063 spec->capsrc_nids = cxt5045_capsrc_nids; in patch_cxt5045()
1064 spec->input_mux = &cxt5045_capture_source; in patch_cxt5045()
1065 spec->num_mixers = 1; in patch_cxt5045()
1066 spec->mixers[0] = cxt5045_mixers; in patch_cxt5045()
1067 spec->num_init_verbs = 1; in patch_cxt5045()
1068 spec->init_verbs[0] = cxt5045_init_verbs; in patch_cxt5045()
1069 spec->spdif_route = 0; in patch_cxt5045()
1070 spec->num_channel_mode = ARRAY_SIZE(cxt5045_modes); in patch_cxt5045()
1071 spec->channel_mode = cxt5045_modes; in patch_cxt5045()
1073 set_beep_amp(spec, 0x16, 0, 1); in patch_cxt5045()
1080 spec->input_mux = &cxt5045_capture_source; in patch_cxt5045()
1081 spec->num_init_verbs = 2; in patch_cxt5045()
1082 spec->init_verbs[1] = cxt5045_hp_sense_init_verbs; in patch_cxt5045()
1083 spec->mixers[0] = cxt5045_mixers; in patch_cxt5045()
1088 spec->input_mux = &cxt5045_capture_source; in patch_cxt5045()
1089 spec->num_init_verbs = 2; in patch_cxt5045()
1090 spec->init_verbs[1] = cxt5045_mic_sense_init_verbs; in patch_cxt5045()
1091 spec->mixers[0] = cxt5045_mixers; in patch_cxt5045()
1097 spec->input_mux = &cxt5045_capture_source; in patch_cxt5045()
1098 spec->num_init_verbs = 3; in patch_cxt5045()
1099 spec->init_verbs[1] = cxt5045_hp_sense_init_verbs; in patch_cxt5045()
1100 spec->init_verbs[2] = cxt5045_mic_sense_init_verbs; in patch_cxt5045()
1101 spec->mixers[0] = cxt5045_mixers; in patch_cxt5045()
1106 spec->input_mux = &cxt5045_capture_source_benq; in patch_cxt5045()
1107 spec->num_init_verbs = 1; in patch_cxt5045()
1108 spec->init_verbs[0] = cxt5045_benq_init_verbs; in patch_cxt5045()
1109 spec->mixers[0] = cxt5045_mixers; in patch_cxt5045()
1110 spec->mixers[1] = cxt5045_benq_mixers; in patch_cxt5045()
1111 spec->num_mixers = 2; in patch_cxt5045()
1116 spec->input_mux = &cxt5045_capture_source_hp530; in patch_cxt5045()
1117 spec->num_init_verbs = 2; in patch_cxt5045()
1118 spec->init_verbs[1] = cxt5045_hp_sense_init_verbs; in patch_cxt5045()
1119 spec->mixers[0] = cxt5045_mixers_hp530; in patch_cxt5045()
1124 spec->input_mux = &cxt5045_test_capture_source; in patch_cxt5045()
1125 spec->mixers[0] = cxt5045_test_mixer; in patch_cxt5045()
1126 spec->init_verbs[0] = cxt5045_test_init_verbs; in patch_cxt5045()
1149 if (spec->beep_amp) in patch_cxt5045()
1150 snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); in patch_cxt5045()
1180 struct conexant_spec *spec = codec->spec; in cxt5047_hp_master_sw_put() local
1189 bits = (!spec->hp_present && spec->cur_eapd) ? 0 : HDA_AMP_MUTE; in cxt5047_hp_master_sw_put()
1196 bits = spec->cur_eapd ? 0 : HDA_AMP_MUTE; in cxt5047_hp_master_sw_put()
1205 struct conexant_spec *spec = codec->spec; in cxt5047_hp_automute() local
1208 spec->hp_present = snd_hda_jack_detect(codec, 0x13); in cxt5047_hp_automute()
1210 bits = (spec->hp_present || !spec->cur_eapd) ? HDA_AMP_MUTE : 0; in cxt5047_hp_automute()
1479 struct conexant_spec *spec; in patch_cxt5047() local
1490 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_cxt5047()
1491 if (!spec) in patch_cxt5047()
1493 codec->spec = spec; in patch_cxt5047()
1496 spec->multiout.max_channels = 2; in patch_cxt5047()
1497 spec->multiout.num_dacs = ARRAY_SIZE(cxt5047_dac_nids); in patch_cxt5047()
1498 spec->multiout.dac_nids = cxt5047_dac_nids; in patch_cxt5047()
1499 spec->multiout.dig_out_nid = CXT5047_SPDIF_OUT; in patch_cxt5047()
1500 spec->num_adc_nids = 1; in patch_cxt5047()
1501 spec->adc_nids = cxt5047_adc_nids; in patch_cxt5047()
1502 spec->capsrc_nids = cxt5047_capsrc_nids; in patch_cxt5047()
1503 spec->num_mixers = 1; in patch_cxt5047()
1504 spec->mixers[0] = cxt5047_base_mixers; in patch_cxt5047()
1505 spec->num_init_verbs = 1; in patch_cxt5047()
1506 spec->init_verbs[0] = cxt5047_init_verbs; in patch_cxt5047()
1507 spec->spdif_route = 0; in patch_cxt5047()
1508 spec->num_channel_mode = ARRAY_SIZE(cxt5047_modes), in patch_cxt5047()
1509 spec->channel_mode = cxt5047_modes, in patch_cxt5047()
1515 spec->num_mixers = 2; in patch_cxt5047()
1516 spec->mixers[1] = cxt5047_hp_spk_mixers; in patch_cxt5047()
1520 spec->num_mixers = 2; in patch_cxt5047()
1521 spec->mixers[1] = cxt5047_hp_only_mixers; in patch_cxt5047()
1526 spec->input_mux = &cxt5047_toshiba_capture_source; in patch_cxt5047()
1527 spec->num_mixers = 2; in patch_cxt5047()
1528 spec->mixers[1] = cxt5047_hp_spk_mixers; in patch_cxt5047()
1529 spec->num_init_verbs = 2; in patch_cxt5047()
1530 spec->init_verbs[1] = cxt5047_toshiba_init_verbs; in patch_cxt5047()
1535 spec->input_mux = &cxt5047_test_capture_source; in patch_cxt5047()
1536 spec->mixers[0] = cxt5047_test_mixer; in patch_cxt5047()
1537 spec->init_verbs[0] = cxt5047_test_init_verbs; in patch_cxt5047()
1541 spec->vmaster_nid = 0x13; in patch_cxt5047()
1570 struct conexant_spec *spec = codec->spec; in cxt5051_update_speaker() local
1573 pinctl = (spec->hp_present && spec->cur_eapd) ? PIN_HP : 0; in cxt5051_update_speaker()
1576 pinctl = (!spec->hp_present && spec->cur_eapd) ? PIN_OUT : 0; in cxt5051_update_speaker()
1579 if (spec->ideapad) in cxt5051_update_speaker()
1598 struct conexant_spec *spec = codec->spec; in cxt5051_portb_automic() local
1601 if (!(spec->auto_mic & AUTO_MIC_PORTB)) in cxt5051_portb_automic()
1612 struct conexant_spec *spec = codec->spec; in cxt5051_portc_automic() local
1616 if (!(spec->auto_mic & AUTO_MIC_PORTC)) in cxt5051_portc_automic()
1620 spec->cur_adc_idx = 1; in cxt5051_portc_automic()
1622 spec->cur_adc_idx = 0; in cxt5051_portc_automic()
1623 new_adc = spec->adc_nids[spec->cur_adc_idx]; in cxt5051_portc_automic()
1624 if (spec->cur_adc && spec->cur_adc != new_adc) { in cxt5051_portc_automic()
1626 __snd_hda_codec_cleanup_stream(codec, spec->cur_adc, 1); in cxt5051_portc_automic()
1627 spec->cur_adc = new_adc; in cxt5051_portc_automic()
1629 spec->cur_adc_stream_tag, 0, in cxt5051_portc_automic()
1630 spec->cur_adc_format); in cxt5051_portc_automic()
1637 struct conexant_spec *spec = codec->spec; in cxt5051_hp_automute() local
1639 spec->hp_present = snd_hda_jack_detect(codec, 0x16); in cxt5051_hp_automute()
1808 struct conexant_spec *spec = codec->spec; in cxt5051_init() local
1812 if (spec->auto_mic & AUTO_MIC_PORTB) in cxt5051_init()
1814 if (spec->auto_mic & AUTO_MIC_PORTC) in cxt5051_init()
1861 struct conexant_spec *spec; in patch_cxt5051() local
1872 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_cxt5051()
1873 if (!spec) in patch_cxt5051()
1875 codec->spec = spec; in patch_cxt5051()
1881 spec->multiout.max_channels = 2; in patch_cxt5051()
1882 spec->multiout.num_dacs = ARRAY_SIZE(cxt5051_dac_nids); in patch_cxt5051()
1883 spec->multiout.dac_nids = cxt5051_dac_nids; in patch_cxt5051()
1884 spec->multiout.dig_out_nid = CXT5051_SPDIF_OUT; in patch_cxt5051()
1885 spec->num_adc_nids = 1; /* not 2; via auto-mic switch */ in patch_cxt5051()
1886 spec->adc_nids = cxt5051_adc_nids; in patch_cxt5051()
1887 spec->num_mixers = 2; in patch_cxt5051()
1888 spec->mixers[0] = cxt5051_capture_mixers; in patch_cxt5051()
1889 spec->mixers[1] = cxt5051_playback_mixers; in patch_cxt5051()
1890 spec->num_init_verbs = 1; in patch_cxt5051()
1891 spec->init_verbs[0] = cxt5051_init_verbs; in patch_cxt5051()
1892 spec->spdif_route = 0; in patch_cxt5051()
1893 spec->num_channel_mode = ARRAY_SIZE(cxt5051_modes); in patch_cxt5051()
1894 spec->channel_mode = cxt5051_modes; in patch_cxt5051()
1895 spec->cur_adc = 0; in patch_cxt5051()
1896 spec->cur_adc_idx = 0; in patch_cxt5051()
1898 set_beep_amp(spec, 0x13, 0, HDA_OUTPUT); in patch_cxt5051()
1902 spec->auto_mic = AUTO_MIC_PORTB | AUTO_MIC_PORTC; in patch_cxt5051()
1905 spec->mixers[0] = cxt5051_hp_mixers; in patch_cxt5051()
1908 spec->init_verbs[0] = cxt5051_hp_dv6736_init_verbs; in patch_cxt5051()
1909 spec->mixers[0] = cxt5051_hp_dv6736_mixers; in patch_cxt5051()
1910 spec->auto_mic = 0; in patch_cxt5051()
1913 spec->init_verbs[0] = cxt5051_f700_init_verbs; in patch_cxt5051()
1914 spec->mixers[0] = cxt5051_f700_mixers; in patch_cxt5051()
1915 spec->auto_mic = 0; in patch_cxt5051()
1918 spec->mixers[0] = cxt5051_toshiba_mixers; in patch_cxt5051()
1919 spec->auto_mic = AUTO_MIC_PORTB; in patch_cxt5051()
1922 spec->init_verbs[spec->num_init_verbs++] = in patch_cxt5051()
1924 spec->ideapad = 1; in patch_cxt5051()
1928 if (spec->beep_amp) in patch_cxt5051()
1929 snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); in patch_cxt5051()
1952 #define hp_port_a_present(spec) ((spec)->hp_present & HP_PRESENT_PORT_A) argument
1953 #define hp_port_d_present(spec) ((spec)->hp_present & HP_PRESENT_PORT_D) argument
1957 struct conexant_spec *spec = codec->spec; in cxt5066_update_speaker() local
1961 spec->hp_present, spec->cur_eapd); in cxt5066_update_speaker()
1964 pinctl = (hp_port_a_present(spec) && spec->cur_eapd) ? PIN_HP : 0; in cxt5066_update_speaker()
1968 pinctl = spec->cur_eapd ? spec->port_d_mode : 0; in cxt5066_update_speaker()
1969 if (spec->dell_automute || spec->thinkpad) { in cxt5066_update_speaker()
1971 if (hp_port_a_present(spec)) in cxt5066_update_speaker()
1975 if (!hp_port_d_present(spec)) in cxt5066_update_speaker()
1981 pinctl = (!spec->hp_present && spec->cur_eapd) ? PIN_OUT : 0; in cxt5066_update_speaker()
2009 struct conexant_spec *spec = codec->spec; in cxt5066_set_olpc_dc_bias() local
2014 cxt5066_olpc_dc_bias.items[spec->dc_input_bias].index); in cxt5066_set_olpc_dc_bias()
2023 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_select_mic() local
2024 if (!spec->recording) in cxt5066_olpc_select_mic()
2027 if (spec->dc_enable) { in cxt5066_olpc_select_mic()
2050 spec->ext_mic_present ? CXT5066_OLPC_EXT_MIC_BIAS : 0); in cxt5066_olpc_select_mic()
2054 spec->ext_mic_present ? 0 : PIN_VREF80); in cxt5066_olpc_select_mic()
2060 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_automic() local
2063 if (spec->dc_enable) /* don't do presence detection in DC mode */ in cxt5066_olpc_automic()
2075 spec->ext_mic_present = !!present; in cxt5066_olpc_automic()
2219 struct conexant_spec *spec = codec->spec; in cxt5066_hp_automute() local
2228 spec->hp_present = portA ? HP_PRESENT_PORT_A : 0; in cxt5066_hp_automute()
2229 spec->hp_present |= portD ? HP_PRESENT_PORT_D : 0; in cxt5066_hp_automute()
2231 portA, portD, spec->hp_present); in cxt5066_hp_automute()
2238 struct conexant_spec *spec = codec->spec; in cxt5066_automic() local
2240 if (spec->dell_vostro) in cxt5066_automic()
2242 else if (spec->ideapad) in cxt5066_automic()
2244 else if (spec->thinkpad) in cxt5066_automic()
2246 else if (spec->hp_laptop) in cxt5066_automic()
2248 else if (spec->asus) in cxt5066_automic()
2255 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_unsol_event() local
2263 if (!spec->dc_enable) in cxt5066_olpc_unsol_event()
2297 struct conexant_spec *spec = codec->spec; in cxt5066_set_mic_boost() local
2301 cxt5066_analog_mic_boost.items[spec->mic_boost].index); in cxt5066_set_mic_boost()
2302 if (spec->ideapad || spec->thinkpad) { in cxt5066_set_mic_boost()
2308 items[spec->mic_boost].index); in cxt5066_set_mic_boost()
2322 struct conexant_spec *spec = codec->spec; in cxt5066_mic_boost_mux_enum_get() local
2323 ucontrol->value.enumerated.item[0] = spec->mic_boost; in cxt5066_mic_boost_mux_enum_get()
2331 struct conexant_spec *spec = codec->spec; in cxt5066_mic_boost_mux_enum_put() local
2338 spec->mic_boost = idx; in cxt5066_mic_boost_mux_enum_put()
2339 if (!spec->dc_enable) in cxt5066_mic_boost_mux_enum_put()
2372 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_dc_get() local
2373 ucontrol->value.integer.value[0] = spec->dc_enable; in cxt5066_olpc_dc_get()
2381 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_dc_put() local
2384 if (dc_enable == spec->dc_enable) in cxt5066_olpc_dc_put()
2387 spec->dc_enable = dc_enable; in cxt5066_olpc_dc_put()
2406 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_dc_bias_enum_get() local
2407 ucontrol->value.enumerated.item[0] = spec->dc_input_bias; in cxt5066_olpc_dc_bias_enum_get()
2415 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_dc_bias_enum_put() local
2423 spec->dc_input_bias = idx; in cxt5066_olpc_dc_bias_enum_put()
2424 if (spec->dc_enable) in cxt5066_olpc_dc_bias_enum_put()
2431 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_capture_prepare() local
2434 spec->recording = 1; in cxt5066_olpc_capture_prepare()
2440 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_capture_cleanup() local
2454 spec->recording = 0; in cxt5066_olpc_capture_cleanup()
2461 struct conexant_spec *spec = codec->spec; in conexant_check_dig_outs() local
2462 hda_nid_t *nid_loc = &spec->multiout.dig_out_nid; in conexant_check_dig_outs()
2892 struct conexant_spec *spec = codec->spec; in cxt5066_olpc_init() local
2896 if (!spec->dc_enable) { in cxt5066_olpc_init()
2958 struct conexant_spec *spec; in patch_cxt5066() local
2968 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_cxt5066()
2969 if (!spec) in patch_cxt5066()
2971 codec->spec = spec; in patch_cxt5066()
2976 spec->dell_automute = 0; in patch_cxt5066()
2977 spec->multiout.max_channels = 2; in patch_cxt5066()
2978 spec->multiout.num_dacs = ARRAY_SIZE(cxt5066_dac_nids); in patch_cxt5066()
2979 spec->multiout.dac_nids = cxt5066_dac_nids; in patch_cxt5066()
2982 spec->num_adc_nids = 1; in patch_cxt5066()
2983 spec->adc_nids = cxt5066_adc_nids; in patch_cxt5066()
2984 spec->capsrc_nids = cxt5066_capsrc_nids; in patch_cxt5066()
2985 spec->input_mux = &cxt5066_capture_source; in patch_cxt5066()
2987 spec->port_d_mode = PIN_HP; in patch_cxt5066()
2989 spec->num_init_verbs = 1; in patch_cxt5066()
2990 spec->init_verbs[0] = cxt5066_init_verbs; in patch_cxt5066()
2991 spec->num_channel_mode = ARRAY_SIZE(cxt5066_modes); in patch_cxt5066()
2992 spec->channel_mode = cxt5066_modes; in patch_cxt5066()
2993 spec->cur_adc = 0; in patch_cxt5066()
2994 spec->cur_adc_idx = 0; in patch_cxt5066()
2996 set_beep_amp(spec, 0x13, 0, HDA_OUTPUT); in patch_cxt5066()
3001 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; in patch_cxt5066()
3002 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3005 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; in patch_cxt5066()
3006 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3008 spec->port_d_mode = PIN_OUT; in patch_cxt5066()
3009 spec->init_verbs[spec->num_init_verbs] = cxt5066_init_verbs_portd_lo; in patch_cxt5066()
3010 spec->num_init_verbs++; in patch_cxt5066()
3011 spec->dell_automute = 1; in patch_cxt5066()
3017 spec->init_verbs[spec->num_init_verbs] = in patch_cxt5066()
3019 spec->num_init_verbs++; in patch_cxt5066()
3020 spec->hp_laptop = board_config == CXT5066_HP_LAPTOP; in patch_cxt5066()
3021 spec->asus = board_config == CXT5066_ASUS; in patch_cxt5066()
3022 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; in patch_cxt5066()
3023 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3026 spec->multiout.dig_out_nid = 0; in patch_cxt5066()
3028 spec->input_mux = NULL; in patch_cxt5066()
3029 spec->port_d_mode = 0; in patch_cxt5066()
3030 spec->mic_boost = 3; /* default 30dB gain */ in patch_cxt5066()
3036 spec->init_verbs[0] = cxt5066_init_verbs_olpc; in patch_cxt5066()
3037 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master_olpc; in patch_cxt5066()
3038 spec->mixers[spec->num_mixers++] = cxt5066_mixer_olpc_dc; in patch_cxt5066()
3039 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3040 spec->port_d_mode = 0; in patch_cxt5066()
3041 spec->mic_boost = 3; /* default 30dB gain */ in patch_cxt5066()
3044 spec->multiout.dig_out_nid = 0; in patch_cxt5066()
3047 spec->input_mux = NULL; in patch_cxt5066()
3051 spec->capture_prepare = cxt5066_olpc_capture_prepare; in patch_cxt5066()
3052 spec->capture_cleanup = cxt5066_olpc_capture_cleanup; in patch_cxt5066()
3057 spec->init_verbs[0] = cxt5066_init_verbs_vostro; in patch_cxt5066()
3058 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master_olpc; in patch_cxt5066()
3059 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3060 spec->mixers[spec->num_mixers++] = cxt5066_vostro_mixers; in patch_cxt5066()
3061 spec->port_d_mode = 0; in patch_cxt5066()
3062 spec->dell_vostro = 1; in patch_cxt5066()
3063 spec->mic_boost = 3; /* default 30dB gain */ in patch_cxt5066()
3066 spec->multiout.dig_out_nid = 0; in patch_cxt5066()
3069 spec->input_mux = NULL; in patch_cxt5066()
3074 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; in patch_cxt5066()
3075 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3076 spec->init_verbs[0] = cxt5066_init_verbs_ideapad; in patch_cxt5066()
3077 spec->port_d_mode = 0; in patch_cxt5066()
3078 spec->ideapad = 1; in patch_cxt5066()
3079 spec->mic_boost = 2; /* default 20dB gain */ in patch_cxt5066()
3082 spec->multiout.dig_out_nid = 0; in patch_cxt5066()
3085 spec->input_mux = NULL; in patch_cxt5066()
3090 spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; in patch_cxt5066()
3091 spec->mixers[spec->num_mixers++] = cxt5066_mixers; in patch_cxt5066()
3092 spec->init_verbs[0] = cxt5066_init_verbs_thinkpad; in patch_cxt5066()
3093 spec->thinkpad = 1; in patch_cxt5066()
3094 spec->port_d_mode = PIN_OUT; in patch_cxt5066()
3095 spec->mic_boost = 2; /* default 20dB gain */ in patch_cxt5066()
3098 spec->multiout.dig_out_nid = 0; in patch_cxt5066()
3101 spec->input_mux = NULL; in patch_cxt5066()
3105 if (spec->beep_amp) in patch_cxt5066()
3106 snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); in patch_cxt5066()
3121 struct conexant_spec *spec = codec->spec; in cx_auto_parse_beep() local
3127 set_beep_amp(spec, nid, 0, HDA_OUTPUT); in cx_auto_parse_beep()
3138 struct conexant_spec *spec = codec->spec; in cx_auto_parse_eapd() local
3147 spec->eapds[spec->num_eapds++] = nid; in cx_auto_parse_eapd()
3148 if (spec->num_eapds >= ARRAY_SIZE(spec->eapds)) in cx_auto_parse_eapd()
3158 if (spec->num_eapds > 2) in cx_auto_parse_eapd()
3159 spec->dynamic_eapd = 1; in cx_auto_parse_eapd()
3178 struct conexant_spec *spec = codec->spec; in cx_auto_vmaster_hook() local
3180 cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, enabled); in cx_auto_vmaster_hook()
3200 struct conexant_spec *spec = codec->spec; in cx_auto_init() local
3202 if (!spec->dynamic_eapd) in cx_auto_init()
3203 cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, true); in cx_auto_init()
3233 struct conexant_spec *spec = codec->spec; in cxt_fixup_stereo_dmic() local
3234 spec->gen.inv_dmic_split = 1; in cxt_fixup_stereo_dmic()
3347 struct conexant_spec *spec; in patch_conexant_auto() local
3353 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_conexant_auto()
3354 if (!spec) in patch_conexant_auto()
3356 snd_hda_gen_spec_init(&spec->gen); in patch_conexant_auto()
3357 codec->spec = spec; in patch_conexant_auto()
3361 spec->gen.own_eapd_ctl = 1; in patch_conexant_auto()
3362 if (spec->dynamic_eapd) in patch_conexant_auto()
3363 spec->gen.vmaster_mute.hook = cx_auto_vmaster_hook; in patch_conexant_auto()
3371 spec->gen.mixer_nid = 0x19; in patch_conexant_auto()
3392 spec->gen.vmaster_mute_enum = 1; in patch_conexant_auto()
3398 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); in patch_conexant_auto()
3402 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in patch_conexant_auto()