Lines Matching refs:cfg
1141 struct auto_pin_cfg *cfg = &spec->autocfg; in get_line_out_pfx() local
1144 if (cfg->line_outs == 1 && !spec->multi_ios && in get_line_out_pfx()
1145 !cfg->hp_outs && !cfg->speaker_outs) in get_line_out_pfx()
1156 if (ch >= cfg->line_outs) in get_line_out_pfx()
1159 switch (cfg->line_out_type) { in get_line_out_pfx()
1164 if (!ch && cfg->hp_outs && in get_line_out_pfx()
1167 if (cfg->line_outs == 1) in get_line_out_pfx()
1169 if (cfg->line_outs == 2) in get_line_out_pfx()
1176 if (!ch && cfg->speaker_outs && in get_line_out_pfx()
1187 if (!ch && cfg->speaker_outs && cfg->hp_outs) { in get_line_out_pfx()
1200 if (cfg->line_outs == 1 && !spec->multi_ios) in get_line_out_pfx()
1312 struct auto_pin_cfg *cfg = &spec->autocfg; in get_primary_out() local
1314 if (cfg->line_outs > idx) in get_primary_out()
1316 idx -= cfg->line_outs; in get_primary_out()
1458 struct auto_pin_cfg *cfg = &spec->autocfg; in count_multiio_pins() local
1465 for (i = 0; i < cfg->num_inputs; i++) { in count_multiio_pins()
1466 if (cfg->inputs[i].type != type) in count_multiio_pins()
1469 cfg->inputs[i].pin)) in count_multiio_pins()
1489 struct auto_pin_cfg *cfg = &spec->autocfg; in fill_multi_ios() local
1505 for (i = 0; i < cfg->num_inputs; i++) { in fill_multi_ios()
1506 hda_nid_t nid = cfg->inputs[i].pin; in fill_multi_ios()
1509 if (cfg->inputs[i].type != type) in fill_multi_ios()
1537 spec->out_paths[cfg->line_outs + spec->multi_ios] = in fill_multi_ios()
1562 path = snd_hda_get_path_from_idx(codec, spec->out_paths[cfg->line_outs + i]); in fill_multi_ios()
1645 struct auto_pin_cfg *cfg = &spec->autocfg; in indep_hp_possible() local
1649 if (cfg->line_out_type == AUTO_PIN_HP_OUT) in indep_hp_possible()
1662 for (i = 0; i < cfg->line_outs; i++) { in indep_hp_possible()
1669 for (i = 0; i < cfg->speaker_outs; i++) { in indep_hp_possible()
1703 struct auto_pin_cfg *cfg = &spec->autocfg; in fill_and_eval_dacs() local
1707 spec->multiout.num_dacs = cfg->line_outs; in fill_and_eval_dacs()
1731 mapped = map_singles(codec, cfg->line_outs, in fill_and_eval_dacs()
1732 cfg->line_out_pins, in fill_and_eval_dacs()
1735 mapped |= map_singles(codec, cfg->hp_outs, in fill_and_eval_dacs()
1736 cfg->hp_pins, in fill_and_eval_dacs()
1739 mapped |= map_singles(codec, cfg->speaker_outs, in fill_and_eval_dacs()
1740 cfg->speaker_pins, in fill_and_eval_dacs()
1744 fill_mio_first && cfg->line_outs == 1 && in fill_and_eval_dacs()
1745 cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in fill_and_eval_dacs()
1746 err = fill_multi_ios(codec, cfg->line_out_pins[0], true); in fill_and_eval_dacs()
1753 badness += try_assign_dacs(codec, cfg->line_outs, cfg->line_out_pins, in fill_and_eval_dacs()
1758 cfg->line_outs == 1 && cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in fill_and_eval_dacs()
1760 err = fill_multi_ios(codec, cfg->line_out_pins[0], false); in fill_and_eval_dacs()
1766 if (cfg->line_out_type != AUTO_PIN_HP_OUT) { in fill_and_eval_dacs()
1767 err = try_assign_dacs(codec, cfg->hp_outs, cfg->hp_pins, in fill_and_eval_dacs()
1775 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in fill_and_eval_dacs()
1776 err = try_assign_dacs(codec, cfg->speaker_outs, in fill_and_eval_dacs()
1777 cfg->speaker_pins, in fill_and_eval_dacs()
1786 cfg->line_outs == 1 && cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in fill_and_eval_dacs()
1787 err = fill_multi_ios(codec, cfg->line_out_pins[0], false); in fill_and_eval_dacs()
1796 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in fill_and_eval_dacs()
1799 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) in fill_and_eval_dacs()
1805 cfg->hp_outs && cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) in fill_and_eval_dacs()
1806 if (count_multiio_pins(codec, cfg->hp_pins[0]) >= 2) in fill_and_eval_dacs()
1811 for (i = 0; i < cfg->line_outs; i++) { in fill_and_eval_dacs()
1817 sizeof(hda_nid_t) * (cfg->line_outs - i - 1)); in fill_and_eval_dacs()
1818 spec->private_dac_nids[cfg->line_outs - 1] = 0; in fill_and_eval_dacs()
1838 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in fill_and_eval_dacs()
1839 refill_shared_dacs(codec, cfg->hp_outs, in fill_and_eval_dacs()
1842 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) in fill_and_eval_dacs()
1843 refill_shared_dacs(codec, cfg->speaker_outs, in fill_and_eval_dacs()
1872 struct auto_pin_cfg *cfg) in debug_show_configs() argument
1879 cfg->line_out_pins[0], cfg->line_out_pins[1], in debug_show_configs()
1880 cfg->line_out_pins[2], cfg->line_out_pins[3], in debug_show_configs()
1885 lo_type[cfg->line_out_type]); in debug_show_configs()
1886 for (i = 0; i < cfg->line_outs; i++) in debug_show_configs()
1895 spec->out_paths[cfg->line_outs + i]); in debug_show_configs()
1896 if (cfg->hp_outs) in debug_show_configs()
1898 cfg->hp_pins[0], cfg->hp_pins[1], in debug_show_configs()
1899 cfg->hp_pins[2], cfg->hp_pins[3], in debug_show_configs()
1904 for (i = 0; i < cfg->hp_outs; i++) in debug_show_configs()
1906 if (cfg->speaker_outs) in debug_show_configs()
1908 cfg->speaker_pins[0], cfg->speaker_pins[1], in debug_show_configs()
1909 cfg->speaker_pins[2], cfg->speaker_pins[3], in debug_show_configs()
1914 for (i = 0; i < cfg->speaker_outs; i++) in debug_show_configs()
1920 #define debug_show_configs(codec, cfg) /* NOP */ argument
1945 struct auto_pin_cfg *cfg = &spec->autocfg; in parse_output_paths() local
1957 *best_cfg = *cfg; in parse_output_paths()
1967 cfg->line_out_type, fill_hardwired, fill_mio_first, in parse_output_paths()
1969 debug_show_configs(codec, cfg); in parse_output_paths()
1972 *best_cfg = *cfg; in parse_output_paths()
1987 if (cfg->speaker_outs > 0 && in parse_output_paths()
1988 cfg->line_out_type == AUTO_PIN_HP_OUT) { in parse_output_paths()
1989 cfg->hp_outs = cfg->line_outs; in parse_output_paths()
1990 memcpy(cfg->hp_pins, cfg->line_out_pins, in parse_output_paths()
1991 sizeof(cfg->hp_pins)); in parse_output_paths()
1992 cfg->line_outs = cfg->speaker_outs; in parse_output_paths()
1993 memcpy(cfg->line_out_pins, cfg->speaker_pins, in parse_output_paths()
1994 sizeof(cfg->speaker_pins)); in parse_output_paths()
1995 cfg->speaker_outs = 0; in parse_output_paths()
1996 memset(cfg->speaker_pins, 0, sizeof(cfg->speaker_pins)); in parse_output_paths()
1997 cfg->line_out_type = AUTO_PIN_SPEAKER_OUT; in parse_output_paths()
2001 if (cfg->hp_outs > 0 && in parse_output_paths()
2002 cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { in parse_output_paths()
2003 cfg->speaker_outs = cfg->line_outs; in parse_output_paths()
2004 memcpy(cfg->speaker_pins, cfg->line_out_pins, in parse_output_paths()
2005 sizeof(cfg->speaker_pins)); in parse_output_paths()
2006 cfg->line_outs = cfg->hp_outs; in parse_output_paths()
2007 memcpy(cfg->line_out_pins, cfg->hp_pins, in parse_output_paths()
2008 sizeof(cfg->hp_pins)); in parse_output_paths()
2009 cfg->hp_outs = 0; in parse_output_paths()
2010 memset(cfg->hp_pins, 0, sizeof(cfg->hp_pins)); in parse_output_paths()
2011 cfg->line_out_type = AUTO_PIN_HP_OUT; in parse_output_paths()
2020 *cfg = *best_cfg; in parse_output_paths()
2024 cfg->line_out_type, best_wired, best_mio); in parse_output_paths()
2025 debug_show_configs(codec, cfg); in parse_output_paths()
2027 if (cfg->line_out_pins[0]) { in parse_output_paths()
2041 if (spec->prefer_hp_amp || cfg->line_out_type == AUTO_PIN_HP_OUT) in parse_output_paths()
2045 set_pin_targets(codec, cfg->line_outs, cfg->line_out_pins, val); in parse_output_paths()
2046 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in parse_output_paths()
2047 set_pin_targets(codec, cfg->hp_outs, cfg->hp_pins, PIN_HP); in parse_output_paths()
2048 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in parse_output_paths()
2050 set_pin_targets(codec, cfg->speaker_outs, in parse_output_paths()
2051 cfg->speaker_pins, val); in parse_output_paths()
2064 const struct auto_pin_cfg *cfg) in create_multi_out_ctls() argument
2069 noutputs = cfg->line_outs; in create_multi_out_ctls()
2070 if (spec->multi_ios > 0 && cfg->line_outs < 3) in create_multi_out_ctls()
2468 const struct auto_pin_cfg *cfg = &spec->autocfg; in loopback_mixing_put() local
2477 cfg->line_out_type); in loopback_mixing_put()
2485 update_output_paths(codec, cfg->line_outs, spec->out_paths); in loopback_mixing_put()
2486 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in loopback_mixing_put()
2487 update_output_paths(codec, cfg->hp_outs, spec->hp_paths); in loopback_mixing_put()
2488 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) in loopback_mixing_put()
2489 update_output_paths(codec, cfg->speaker_outs, in loopback_mixing_put()
2573 struct auto_pin_cfg *cfg = &spec->autocfg; in create_hp_mic() local
2583 if (cfg->num_inputs > 1) in create_hp_mic()
2585 else if (cfg->num_inputs == 1) { in create_hp_mic()
2586 defcfg = snd_hda_codec_get_pincfg(codec, cfg->inputs[0].pin); in create_hp_mic()
2593 if (cfg->num_inputs >= AUTO_CFG_MAX_INS) in create_hp_mic()
2597 if (cfg->line_out_type == AUTO_PIN_HP_OUT && cfg->line_outs > 0) in create_hp_mic()
2598 nid = cfg->line_out_pins[0]; in create_hp_mic()
2599 else if (cfg->hp_outs > 0) in create_hp_mic()
2600 nid = cfg->hp_pins[0]; in create_hp_mic()
2607 cfg->inputs[cfg->num_inputs].pin = nid; in create_hp_mic()
2608 cfg->inputs[cfg->num_inputs].type = AUTO_PIN_MIC; in create_hp_mic()
2609 cfg->inputs[cfg->num_inputs].is_headphone_mic = 1; in create_hp_mic()
2610 cfg->num_inputs++; in create_hp_mic()
3259 const struct auto_pin_cfg *cfg = &spec->autocfg; in fill_input_pin_labels() local
3262 for (i = 0; i < cfg->num_inputs; i++) { in fill_input_pin_labels()
3263 hda_nid_t pin = cfg->inputs[i].pin; in fill_input_pin_labels()
3270 label = hda_get_autocfg_input_label(codec, cfg, i); in fill_input_pin_labels()
3292 const struct auto_pin_cfg *cfg = &spec->autocfg; in create_input_ctls() local
3306 for (i = 0; i < cfg->num_inputs; i++) { in create_input_ctls()
3309 pin = cfg->inputs[i].pin; in create_input_ctls()
3314 if (cfg->inputs[i].type == AUTO_PIN_MIC) in create_input_ctls()
3541 struct auto_pin_cfg *cfg = &spec->autocfg; in is_inv_dmic_pin() local
3547 for (i = 0; i < cfg->num_inputs; i++) { in is_inv_dmic_pin()
3548 if (cfg->inputs[i].pin != nid) in is_inv_dmic_pin()
3550 if (cfg->inputs[i].type != AUTO_PIN_MIC) in is_inv_dmic_pin()
3832 struct auto_pin_cfg *cfg = &spec->autocfg; in parse_mic_boost() local
3850 if (cfg->inputs[idx].type > AUTO_PIN_LINE_IN) in parse_mic_boost()
4091 struct auto_pin_cfg *cfg = &spec->autocfg; in add_all_pin_power_ctls() local
4096 add_pin_power_ctls(codec, cfg->line_outs, cfg->line_out_pins, on); in add_all_pin_power_ctls()
4097 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in add_all_pin_power_ctls()
4098 add_pin_power_ctls(codec, cfg->hp_outs, cfg->hp_pins, on); in add_all_pin_power_ctls()
4099 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) in add_all_pin_power_ctls()
4100 add_pin_power_ctls(codec, cfg->speaker_outs, cfg->speaker_pins, on); in add_all_pin_power_ctls()
4101 for (i = 0; i < cfg->num_inputs; i++) in add_all_pin_power_ctls()
4102 add_pin_power_ctls(codec, 1, &cfg->inputs[i].pin, on); in add_all_pin_power_ctls()
4120 struct auto_pin_cfg *cfg = &spec->autocfg; in sync_all_pin_power_ctls() local
4125 sync_pin_power_ctls(codec, cfg->line_outs, cfg->line_out_pins); in sync_all_pin_power_ctls()
4126 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in sync_all_pin_power_ctls()
4127 sync_pin_power_ctls(codec, cfg->hp_outs, cfg->hp_pins); in sync_all_pin_power_ctls()
4128 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) in sync_all_pin_power_ctls()
4129 sync_pin_power_ctls(codec, cfg->speaker_outs, cfg->speaker_pins); in sync_all_pin_power_ctls()
4130 for (i = 0; i < cfg->num_inputs; i++) in sync_all_pin_power_ctls()
4131 sync_pin_power_ctls(codec, 1, &cfg->inputs[i].pin); in sync_all_pin_power_ctls()
4163 struct auto_pin_cfg *cfg = &spec->autocfg; in add_fake_beep_paths() local
4169 err = add_fake_paths(codec, nid, cfg->line_outs, cfg->line_out_pins); in add_fake_beep_paths()
4172 if (cfg->line_out_type != AUTO_PIN_HP_OUT) { in add_fake_beep_paths()
4173 err = add_fake_paths(codec, nid, cfg->hp_outs, cfg->hp_pins); in add_fake_beep_paths()
4177 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in add_fake_beep_paths()
4178 err = add_fake_paths(codec, nid, cfg->speaker_outs, in add_fake_beep_paths()
4179 cfg->speaker_pins); in add_fake_beep_paths()
4578 struct auto_pin_cfg *cfg = &spec->autocfg; in check_auto_mute_availability() local
4585 if (cfg->hp_pins[0]) in check_auto_mute_availability()
4587 if (cfg->line_out_pins[0]) in check_auto_mute_availability()
4589 if (cfg->speaker_pins[0]) in check_auto_mute_availability()
4594 if (!cfg->speaker_pins[0] && in check_auto_mute_availability()
4595 cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { in check_auto_mute_availability()
4596 memcpy(cfg->speaker_pins, cfg->line_out_pins, in check_auto_mute_availability()
4597 sizeof(cfg->speaker_pins)); in check_auto_mute_availability()
4598 cfg->speaker_outs = cfg->line_outs; in check_auto_mute_availability()
4601 if (!cfg->hp_pins[0] && in check_auto_mute_availability()
4602 cfg->line_out_type == AUTO_PIN_HP_OUT) { in check_auto_mute_availability()
4603 memcpy(cfg->hp_pins, cfg->line_out_pins, in check_auto_mute_availability()
4604 sizeof(cfg->hp_pins)); in check_auto_mute_availability()
4605 cfg->hp_outs = cfg->line_outs; in check_auto_mute_availability()
4608 for (i = 0; i < cfg->hp_outs; i++) { in check_auto_mute_availability()
4609 hda_nid_t nid = cfg->hp_pins[i]; in check_auto_mute_availability()
4618 if (cfg->line_out_type == AUTO_PIN_LINE_OUT && cfg->line_outs) { in check_auto_mute_availability()
4619 if (cfg->speaker_outs) in check_auto_mute_availability()
4620 for (i = 0; i < cfg->line_outs; i++) { in check_auto_mute_availability()
4621 hda_nid_t nid = cfg->line_out_pins[i]; in check_auto_mute_availability()
4632 spec->automute_speaker_possible = cfg->speaker_outs && in check_auto_mute_availability()
4685 struct auto_pin_cfg *cfg = &spec->autocfg; in check_auto_mic_availability() local
4694 for (i = 0; i < cfg->num_inputs; i++) { in check_auto_mic_availability()
4695 hda_nid_t nid = cfg->inputs[i].pin; in check_auto_mic_availability()
4703 if (cfg->inputs[i].type != AUTO_PIN_MIC) in check_auto_mic_availability()
4709 if (cfg->inputs[i].type > AUTO_PIN_LINE_IN) in check_auto_mic_availability()
4712 cfg->inputs[i].type != AUTO_PIN_MIC) in check_auto_mic_availability()
4819 struct auto_pin_cfg *cfg) in snd_hda_gen_parse_auto_config() argument
4829 if (cfg != &spec->autocfg) { in snd_hda_gen_parse_auto_config()
4830 spec->autocfg = *cfg; in snd_hda_gen_parse_auto_config()
4831 cfg = &spec->autocfg; in snd_hda_gen_parse_auto_config()
4841 if (!cfg->line_outs) { in snd_hda_gen_parse_auto_config()
4842 if (cfg->dig_outs || cfg->dig_in_pin) { in snd_hda_gen_parse_auto_config()
4847 if (!cfg->num_inputs && !cfg->dig_in_pin) in snd_hda_gen_parse_auto_config()
4852 cfg->line_out_type == AUTO_PIN_SPEAKER_OUT && in snd_hda_gen_parse_auto_config()
4853 cfg->line_outs <= cfg->hp_outs) { in snd_hda_gen_parse_auto_config()
4855 cfg->speaker_outs = cfg->line_outs; in snd_hda_gen_parse_auto_config()
4856 memcpy(cfg->speaker_pins, cfg->line_out_pins, in snd_hda_gen_parse_auto_config()
4857 sizeof(cfg->speaker_pins)); in snd_hda_gen_parse_auto_config()
4858 cfg->line_outs = cfg->hp_outs; in snd_hda_gen_parse_auto_config()
4859 memcpy(cfg->line_out_pins, cfg->hp_pins, sizeof(cfg->hp_pins)); in snd_hda_gen_parse_auto_config()
4860 cfg->hp_outs = 0; in snd_hda_gen_parse_auto_config()
4861 memset(cfg->hp_pins, 0, sizeof(cfg->hp_pins)); in snd_hda_gen_parse_auto_config()
4862 cfg->line_out_type = AUTO_PIN_HP_OUT; in snd_hda_gen_parse_auto_config()
4871 err = create_multi_out_ctls(codec, cfg); in snd_hda_gen_parse_auto_config()
4898 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) in snd_hda_gen_parse_auto_config()
4900 cfg->speaker_outs * 2); in snd_hda_gen_parse_auto_config()
4901 if (cfg->line_out_type != AUTO_PIN_HP_OUT) in snd_hda_gen_parse_auto_config()
4903 cfg->hp_outs * 2); in snd_hda_gen_parse_auto_config()
4951 if (cfg->line_out_type != AUTO_PIN_SPEAKER_OUT) { in snd_hda_gen_parse_auto_config()
4952 err = create_out_jack_modes(codec, cfg->line_outs, in snd_hda_gen_parse_auto_config()
4953 cfg->line_out_pins); in snd_hda_gen_parse_auto_config()
4957 if (cfg->line_out_type != AUTO_PIN_HP_OUT) { in snd_hda_gen_parse_auto_config()
4958 err = create_out_jack_modes(codec, cfg->hp_outs, in snd_hda_gen_parse_auto_config()
4959 cfg->hp_pins); in snd_hda_gen_parse_auto_config()
5733 struct auto_pin_cfg *cfg = &spec->autocfg; in init_analog_input() local
5736 for (i = 0; i < cfg->num_inputs; i++) { in init_analog_input()
5737 hda_nid_t nid = cfg->inputs[i].pin; in init_analog_input()