Lines Matching defs:spec

246 	struct sigmatel_spec *spec = codec->spec;
247 if (action == HDA_GEN_PCM_ACT_OPEN && spec->stream_delay)
248 msleep(spec->stream_delay);
256 struct sigmatel_spec *spec = codec->spec;
259 if (!spec->powerdown_adcs)
262 for (i = 0; i < spec->gen.num_all_adcs; i++) {
263 if (spec->gen.all_adcs[i] == hinfo->nid) {
274 spec->active_adcs |= (1 << idx);
279 spec->active_adcs &= ~(1 << idx);
328 struct sigmatel_spec *spec = codec->spec;
331 spec->gpio_data |= spec->mic_mute_led_gpio;
333 spec->gpio_data &= ~spec->mic_mute_led_gpio;
334 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, spec->gpio_data);
375 struct sigmatel_spec *spec = codec->spec;
377 if (!spec->gpio_led)
381 if (spec->gpio_led_polarity)
384 if (!spec->vref_mute_led_nid) {
386 spec->gpio_data |= spec->gpio_led;
388 spec->gpio_data &= ~spec->gpio_led;
389 stac_gpio_set(codec, spec->gpio_mask,
390 spec->gpio_dir, spec->gpio_data);
392 spec->vref_led = muted ? AC_PINCTL_VREF_50 : AC_PINCTL_VREF_GRD;
393 stac_vrefout_set(codec, spec->vref_mute_led_nid,
394 spec->vref_led);
411 struct sigmatel_spec *spec = codec->spec;
413 if (spec->gpio_mute)
414 spec->gen.master_mute =
416 AC_VERB_GET_GPIO_DATA, 0) & spec->gpio_mute);
420 if (spec->eapd_mask && spec->eapd_switch) {
421 unsigned int val = spec->gpio_data;
422 if (spec->gen.speaker_muted)
423 val &= ~spec->eapd_mask;
425 val |= spec->eapd_mask;
426 if (spec->gpio_data != val) {
427 spec->gpio_data = val;
428 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir,
437 struct sigmatel_spec *spec = codec->spec;
440 for (idx = 0; idx < spec->num_pwrs; idx++) {
441 if (spec->pwr_nids[idx] == nid)
444 if (idx >= spec->num_pwrs)
449 val = spec->power_map_bits;
456 if (val != spec->power_map_bits) {
457 spec->power_map_bits = val;
468 struct sigmatel_spec *spec = codec->spec;
471 if (!spec->num_pwrs)
482 for (i = 0; i < spec->num_pwrs; i++) {
483 hda_nid_t nid = spec->pwr_nids[i];
493 spec->power_map_bits);
513 struct sigmatel_spec *spec = codec->spec;
516 for (i = 0; i < spec->num_pwrs; i++) {
517 hda_nid_t nid = spec->pwr_nids[i];
521 spec->vref_mute_led_nid != nid &&
546 struct sigmatel_spec *spec = codec->spec;
549 if (get_int_hint(codec, "gpio_mask", &spec->gpio_mask)) {
550 spec->eapd_mask = spec->gpio_dir = spec->gpio_data =
551 spec->gpio_mask;
553 if (get_int_hint(codec, "gpio_dir", &spec->gpio_dir))
554 spec->gpio_dir &= spec->gpio_mask;
555 if (get_int_hint(codec, "gpio_data", &spec->gpio_data))
556 spec->gpio_data &= spec->gpio_mask;
557 if (get_int_hint(codec, "eapd_mask", &spec->eapd_mask))
558 spec->eapd_mask &= spec->gpio_mask;
559 if (get_int_hint(codec, "gpio_mute", &spec->gpio_mute))
560 spec->gpio_mute &= spec->gpio_mask;
563 spec->eapd_switch = val;
577 struct sigmatel_spec *spec = codec->spec;
579 ucontrol->value.integer.value[0] = !!(spec->aloopback &
580 (spec->aloopback_mask << idx));
588 struct sigmatel_spec *spec = codec->spec;
593 idx_val = spec->aloopback_mask << idx;
595 val = spec->aloopback | idx_val;
597 val = spec->aloopback & ~idx_val;
598 if (spec->aloopback == val)
601 spec->aloopback = val;
608 dac_mode >>= spec->aloopback_shift;
610 if (spec->aloopback & idx_val) {
712 struct sigmatel_spec *spec = codec->spec;
715 if (spec->gpio_led)
721 spec->gpio_led = 0x08; /* GPIO 3 */
723 spec->gpio_led = 0x01; /* GPIO 0 */
748 struct sigmatel_spec *spec = codec->spec;
751 if (get_int_hint(codec, "gpio_led", &spec->gpio_led)) {
753 &spec->gpio_led_polarity);
759 &spec->gpio_led_polarity,
760 &spec->gpio_led) == 2) {
765 if (spec->gpio_led < max_gpio)
766 spec->gpio_led = 1 << spec->gpio_led;
768 spec->vref_mute_led_nid = spec->gpio_led;
772 &spec->gpio_led_polarity) == 1) {
780 spec->gpio_led_polarity = default_polarity;
782 spec->gpio_led_polarity = 1;
795 spec->gpio_led_polarity = default_polarity;
804 struct sigmatel_spec *spec = codec->spec;
808 if (spec->gen.autocfg.line_out_type == AUTO_PIN_SPEAKER_OUT) {
809 nid_pin = spec->gen.autocfg.line_out_pins;
810 nids = spec->gen.autocfg.line_outs;
812 nid_pin = spec->gen.autocfg.speaker_pins;
813 nids = spec->gen.autocfg.speaker_outs;
832 struct sigmatel_spec *spec = codec->spec;
845 if (spec->anabeep_nid == nid)
849 knew = snd_hda_gen_add_kctl(&spec->gen,
859 knew = snd_hda_gen_add_kctl(&spec->gen,
898 struct sigmatel_spec *spec = codec->spec;
900 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &stac_dig_beep_ctrl))
914 struct sigmatel_spec *spec = codec->spec;
915 return snd_hda_input_mux_info(&spec->spdif_mux, uinfo);
922 struct sigmatel_spec *spec = codec->spec;
925 ucontrol->value.enumerated.item[0] = spec->cur_smux[smux_idx];
933 struct sigmatel_spec *spec = codec->spec;
936 return snd_hda_input_mux_put(codec, &spec->spdif_mux, ucontrol,
937 spec->gen.autocfg.dig_out_pins[smux_idx],
938 &spec->cur_smux[smux_idx]);
956 struct sigmatel_spec *spec = codec->spec;
957 struct auto_pin_cfg *cfg = &spec->gen.autocfg;
958 const char * const *labels = spec->spdif_labels;
974 snd_hda_add_imux_item(codec, &spec->spdif_mux, labels[i], i, NULL);
977 kctl = snd_hda_gen_add_kctl(&spec->gen, NULL, &stac_smux_mixer);
1357 struct sigmatel_spec *spec = codec->spec;
1360 spec->gpio_mask = spec->gpio_dir = 0x09;
1361 spec->gpio_data = 0x00;
1365 spec->gen.suppress_auto_mute = 1;
1793 struct sigmatel_spec *spec = codec->spec;
1799 spec->gpio_mask = spec->gpio_dir = spec->gpio_data = 0;
1804 struct sigmatel_spec *spec = codec->spec;
1807 spec->eapd_switch = 0;
1813 struct sigmatel_spec *spec = codec->spec;
1820 spec->volknob_init = 1;
1860 struct sigmatel_spec *spec = codec->spec;
1866 spec->eapd_switch = 0;
1880 struct sigmatel_spec *spec = codec->spec;
1885 spec->gen.suppress_auto_mute = 1;
2103 struct sigmatel_spec *spec = codec->spec;
2113 if (find_mute_led_cfg(codec, spec->default_polarity))
2115 spec->gpio_led,
2116 spec->gpio_led_polarity);
2119 spec->gen.line_in_auto_switch = true;
2135 struct sigmatel_spec *spec = codec->spec;
2138 spec->default_polarity = 0;
2144 struct sigmatel_spec *spec = codec->spec;
2147 spec->default_polarity = 1;
2153 struct sigmatel_spec *spec = codec->spec;
2156 spec->mic_mute_led_gpio = 0x08; /* GPIO3 */
2165 struct sigmatel_spec *spec = codec->spec;
2168 spec->gpio_led = 0x10; /* GPIO4 */
2169 spec->default_polarity = 0;
2176 struct sigmatel_spec *spec = codec->spec;
2179 spec->headset_jack = 1;
2186 struct sigmatel_spec *spec = codec->spec;
2190 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir =
2191 spec->gpio_data = 0x10;
2192 spec->eapd_switch = 0;
2199 struct sigmatel_spec *spec = codec->spec;
2208 spec->gen.preferred_dacs = preferred_pairs;
2955 struct sigmatel_spec *spec = codec->spec;
2956 ucontrol->value.integer.value[0] = !!(spec->gpio_data & 0x20);
2964 struct sigmatel_spec *spec = codec->spec;
2967 gpio_data = (spec->gpio_data & ~0x20) |
2969 if (gpio_data == spec->gpio_data)
2971 spec->gpio_data = gpio_data;
2972 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, spec->gpio_data);
2985 struct sigmatel_spec *spec = codec->spec;
2987 if (!snd_hda_gen_add_kctl(&spec->gen, "Bass Speaker Playback Switch",
2991 spec->gpio_mask |= 0x20;
2992 spec->gpio_dir |= 0x20;
2993 spec->gpio_data |= 0x20;
3060 struct sigmatel_spec *spec = codec->spec;
3066 spec->gpio_mask = spec->gpio_dir = spec->gpio_data = 0;
3072 struct sigmatel_spec *spec = codec->spec;
3086 spec->gpio_mask |= 0x02;
3095 struct sigmatel_spec *spec = codec->spec;
3099 spec->gpio_led = 0x01;
3125 struct sigmatel_spec *spec = codec->spec;
3129 spec->gpio_led = 0x08;
3159 struct sigmatel_spec *spec = codec->spec;
3174 spec->gpio_led,
3175 spec->gpio_led_polarity);
3537 struct sigmatel_spec *spec = codec->spec;
3540 spec->gpio_mask = spec->gpio_dir = 0x03;
3541 spec->gpio_data = 0x03;
3836 struct sigmatel_spec *spec = codec->spec;
3840 spec->eapd_mask = spec->gpio_mask = 0;
3841 spec->gpio_dir = spec->gpio_data = 0;
3848 struct sigmatel_spec *spec = codec->spec;
3855 spec->eapd_mask = spec->gpio_mask = 0x04;
3856 spec->gpio_dir = spec->gpio_data = 0x04;
3860 spec->volknob_init = 1;
3866 struct sigmatel_spec *spec = codec->spec;
3870 spec->volknob_init = 1;
4102 struct sigmatel_spec *spec = codec->spec;
4107 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0;
4114 struct sigmatel_spec *spec = codec->spec;
4128 spec->gpio_dir = 0x0b;
4129 spec->eapd_mask = 0x01;
4130 spec->gpio_mask = 0x1b;
4131 spec->gpio_mute = 0x10;
4135 spec->gpio_data = 0x01;
4142 struct sigmatel_spec *spec = codec->spec;
4145 spec->eapd_switch = 0;
4231 struct sigmatel_spec *spec = codec->spec;
4236 if (find_mute_led_cfg(codec, spec->default_polarity))
4238 spec->gpio_led,
4239 spec->gpio_led_polarity);
4272 struct sigmatel_spec *spec = codec->spec;
4276 if (spec->headset_jack)
4279 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, flags);
4284 spec->gen.pcm_playback_hook = stac_playback_pcm_hook;
4285 spec->gen.pcm_capture_hook = stac_capture_pcm_hook;
4287 spec->gen.automute_hook = stac_update_outputs;
4289 if (spec->gpio_led)
4292 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
4296 if (spec->vref_mute_led_nid) {
4297 err = snd_hda_gen_fix_pin_power(codec, spec->vref_mute_led_nid);
4303 if (spec->anabeep_nid > 0) {
4305 spec->anabeep_nid);
4312 if (spec->gen.beep_nid) {
4313 hda_nid_t nid = spec->gen.beep_nid;
4321 codec->beep->linear_tone = spec->linear_tone_beep;
4335 if (spec->aloopback_ctl &&
4338 spec->aloopback_ctl->private_value >> 16;
4341 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, spec->aloopback_ctl))
4345 if (spec->have_spdif_mux) {
4358 struct sigmatel_spec *spec = codec->spec;
4365 /* turn on EAPD statically when spec->eapd_switch isn't set.
4368 if (!spec->eapd_switch)
4369 spec->gpio_data |= spec->eapd_mask;
4370 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, spec->gpio_data);
4375 if (spec->num_pwrs)
4378 spec->power_map_bits);
4381 if (spec->powerdown_adcs) {
4382 for (i = 0; i < spec->gen.num_all_adcs; i++) {
4383 if (spec->active_adcs & (1 << i))
4385 snd_hda_codec_write(codec, spec->gen.all_adcs[i], 0,
4443 struct sigmatel_spec *spec = codec->spec;
4447 if (spec->eapd_mask)
4448 stac_gpio_set(codec, spec->gpio_mask,
4449 spec->gpio_dir, spec->gpio_data &
4450 ~spec->eapd_mask);
4457 struct sigmatel_spec *spec;
4459 spec = kzalloc(sizeof(*spec), GFP_KERNEL);
4460 if (!spec)
4462 snd_hda_gen_spec_init(&spec->gen);
4463 codec->spec = spec;
4465 spec->gen.dac_min_mute = true;
4471 struct sigmatel_spec *spec;
4474 spec = codec->spec;
4475 spec->linear_tone_beep = 1;
4476 spec->gen.own_eapd_ctl = 1;
4497 struct sigmatel_spec *spec;
4500 spec = codec->spec;
4501 spec->linear_tone_beep = 1;
4502 spec->gen.own_eapd_ctl = 1;
4521 struct sigmatel_spec *spec;
4525 spec = codec->spec;
4531 spec->linear_tone_beep = 0;
4532 spec->gen.mixer_nid = 0x1d;
4533 spec->have_spdif_mux = 1;
4544 spec->aloopback_ctl = &stac92hd73xx_6ch_loopback;
4547 spec->aloopback_ctl = &stac92hd73xx_8ch_loopback;
4550 spec->aloopback_ctl = &stac92hd73xx_10ch_loopback;
4554 spec->aloopback_mask = 0x01;
4555 spec->aloopback_shift = 8;
4557 spec->gen.beep_nid = 0x1c; /* digital beep */
4560 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x1;
4561 spec->gpio_data = 0x01;
4563 spec->eapd_switch = 1;
4565 spec->num_pwrs = ARRAY_SIZE(stac92hd73xx_pwr_nids);
4566 spec->pwr_nids = stac92hd73xx_pwr_nids;
4568 spec->gen.own_eapd_ctl = 1;
4569 spec->gen.power_down_unused = 1;
4575 if (!spec->volknob_init)
4585 if (spec->eapd_switch && !has_builtin_speaker(codec))
4586 spec->eapd_switch = 0;
4597 struct sigmatel_spec *spec = codec->spec;
4599 spec->gpio_mask |= spec->eapd_mask;
4600 if (spec->gpio_led) {
4601 if (!spec->vref_mute_led_nid) {
4602 spec->gpio_mask |= spec->gpio_led;
4603 spec->gpio_dir |= spec->gpio_led;
4604 spec->gpio_data |= spec->gpio_led;
4610 if (spec->mic_mute_led_gpio) {
4611 spec->gpio_mask |= spec->mic_mute_led_gpio;
4612 spec->gpio_dir |= spec->mic_mute_led_gpio;
4613 spec->mic_enabled = 0;
4614 spec->gpio_data |= spec->mic_mute_led_gpio;
4621 struct sigmatel_spec *spec;
4627 spec = codec->spec;
4629 spec->linear_tone_beep = 0;
4630 spec->gen.own_eapd_ctl = 1;
4631 spec->gen.power_down_unused = 1;
4632 spec->gen.mixer_nid = 0x1b;
4634 spec->gen.beep_nid = 0x21; /* digital beep */
4635 spec->pwr_nids = stac92hd83xxx_pwr_nids;
4636 spec->num_pwrs = ARRAY_SIZE(stac92hd83xxx_pwr_nids);
4637 spec->default_polarity = -1; /* no default cfg */
4664 struct sigmatel_spec *spec;
4670 spec = codec->spec;
4672 spec->linear_tone_beep = 0;
4673 spec->gen.own_eapd_ctl = 1;
4674 spec->gen.power_down_unused = 1;
4676 spec->gen.beep_nid = 0x19; /* digital beep */
4677 spec->pwr_nids = stac92hd95_pwr_nids;
4678 spec->num_pwrs = ARRAY_SIZE(stac92hd95_pwr_nids);
4679 spec->default_polarity = 0;
4700 struct sigmatel_spec *spec;
4704 spec = codec->spec;
4707 spec->linear_tone_beep = 0;
4708 spec->gen.own_eapd_ctl = 1;
4709 spec->gen.power_down_unused = 1;
4710 spec->gen.mixer_nid = 0x17;
4711 spec->have_spdif_mux = 1;
4714 spec->gpio_mask = 0x01;
4715 spec->gpio_dir = 0x01;
4716 spec->gpio_data = 0x01;
4726 spec->stream_delay = 40; /* 40 milliseconds */
4735 spec->stream_delay = 40; /* 40 milliseconds */
4750 spec->aloopback_ctl = &stac92hd71bxx_loopback;
4751 spec->aloopback_mask = 0x50;
4752 spec->aloopback_shift = 0;
4754 spec->powerdown_adcs = 1;
4755 spec->gen.beep_nid = 0x26; /* digital beep */
4756 spec->num_pwrs = ARRAY_SIZE(stac92hd71bxx_pwr_nids);
4757 spec->pwr_nids = stac92hd71bxx_pwr_nids;
4778 struct sigmatel_spec *spec;
4781 spec = codec->spec;
4782 spec->linear_tone_beep = 1;
4783 spec->gen.own_eapd_ctl = 1;
4814 struct sigmatel_spec *spec;
4817 spec = codec->spec;
4818 spec->linear_tone_beep = 1;
4819 spec->gen.own_eapd_ctl = 1;
4820 spec->have_spdif_mux = 1;
4821 spec->spdif_labels = stac927x_spdif_labels;
4823 spec->gen.beep_nid = 0x23; /* digital beep */
4826 spec->eapd_mask = spec->gpio_mask = 0x01;
4827 spec->gpio_dir = spec->gpio_data = 0x01;
4829 spec->aloopback_ctl = &stac927x_loopback;
4830 spec->aloopback_mask = 0x40;
4831 spec->aloopback_shift = 0;
4832 spec->eapd_switch = 1;
4838 if (!spec->volknob_init)
4866 struct sigmatel_spec *spec;
4869 spec = codec->spec;
4870 spec->linear_tone_beep = 1;
4871 spec->gen.own_eapd_ctl = 1;
4872 spec->have_spdif_mux = 1;
4874 spec->gen.beep_nid = 0x23; /* digital beep */
4877 spec->aloopback_ctl = &stac9205_loopback;
4879 spec->aloopback_mask = 0x40;
4880 spec->aloopback_shift = 0;
4883 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x1;
4884 spec->gpio_data = 0x01;
4887 spec->eapd_switch = 1;
4947 struct sigmatel_spec *spec;
4950 spec = codec->spec;
4951 spec->linear_tone_beep = 1;
4952 spec->gen.own_eapd_ctl = 1;