Lines Matching refs:codec

63 static int senary_auto_parse_beep(struct hda_codec *codec)  in senary_auto_parse_beep()  argument
65 struct senary_spec *spec = codec->spec; in senary_auto_parse_beep()
68 for_each_hda_codec_node(nid, codec) in senary_auto_parse_beep()
69 if ((get_wcaps_type(get_wcaps(codec, nid)) == AC_WID_BEEP) && in senary_auto_parse_beep()
70 (get_wcaps(codec, nid) & (AC_WCAP_OUT_AMP | AC_WCAP_AMP_OVRD))) in senary_auto_parse_beep()
75 #define senary_auto_parse_beep(codec) 0 argument
79 static void senary_auto_parse_eapd(struct hda_codec *codec) in senary_auto_parse_eapd() argument
81 struct senary_spec *spec = codec->spec; in senary_auto_parse_eapd()
84 for_each_hda_codec_node(nid, codec) { in senary_auto_parse_eapd()
85 if (get_wcaps_type(get_wcaps(codec, nid)) != AC_WID_PIN) in senary_auto_parse_eapd()
87 if (!(snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_EAPD)) in senary_auto_parse_eapd()
95 static void senary_auto_turn_eapd(struct hda_codec *codec, int num_pins, in senary_auto_turn_eapd() argument
101 if (snd_hda_query_pin_caps(codec, pins[i]) & AC_PINCAP_EAPD) in senary_auto_turn_eapd()
102 snd_hda_codec_write(codec, pins[i], 0, in senary_auto_turn_eapd()
111 struct hda_codec *codec = private_data; in senary_auto_vmaster_hook() local
112 struct senary_spec *spec = codec->spec; in senary_auto_vmaster_hook()
114 senary_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, enabled); in senary_auto_vmaster_hook()
117 static void senary_init_gpio_led(struct hda_codec *codec) in senary_init_gpio_led() argument
119 struct senary_spec *spec = codec->spec; in senary_init_gpio_led()
123 snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_MASK, in senary_init_gpio_led()
125 snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DIRECTION, in senary_init_gpio_led()
127 snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA, in senary_init_gpio_led()
132 static int senary_auto_init(struct hda_codec *codec) in senary_auto_init() argument
134 snd_hda_gen_init(codec); in senary_auto_init()
135 senary_init_gpio_led(codec); in senary_auto_init()
136 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT); in senary_auto_init()
141 static void senary_auto_shutdown(struct hda_codec *codec) in senary_auto_shutdown() argument
143 struct senary_spec *spec = codec->spec; in senary_auto_shutdown()
148 senary_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, false); in senary_auto_shutdown()
151 static void senary_auto_free(struct hda_codec *codec) in senary_auto_free() argument
153 senary_auto_shutdown(codec); in senary_auto_free()
154 snd_hda_gen_free(codec); in senary_auto_free()
157 static int senary_auto_suspend(struct hda_codec *codec) in senary_auto_suspend() argument
159 senary_auto_shutdown(codec); in senary_auto_suspend()
173 static int patch_senary_auto(struct hda_codec *codec) in patch_senary_auto() argument
178 codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name); in patch_senary_auto()
184 codec->spec = spec; in patch_senary_auto()
185 codec->patch_ops = senary_auto_patch_ops; in patch_senary_auto()
187 senary_auto_parse_eapd(codec); in patch_senary_auto()
193 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); in patch_senary_auto()
195 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, in patch_senary_auto()
200 err = senary_auto_parse_beep(codec); in patch_senary_auto()
204 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in patch_senary_auto()
212 if (!codec->bus->core.sync_write) { in patch_senary_auto()
213 codec_info(codec, in patch_senary_auto()
215 codec->bus->core.sync_write = 1; in patch_senary_auto()
216 codec->bus->allow_bus_reset = 1; in patch_senary_auto()
219 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE); in patch_senary_auto()
224 senary_auto_free(codec); in patch_senary_auto()