Lines Matching refs:spec
1182 #define ca0132_quirk(spec) ((spec)->quirk) argument
1183 #define ca0132_use_pci_mmio(spec) ((spec)->use_pci_mmio) argument
1184 #define ca0132_use_alt_functions(spec) ((spec)->use_alt_functions) argument
1185 #define ca0132_use_alt_controls(spec) ((spec)->use_alt_controls) argument
1187 #define ca0132_quirk(spec) ({ (void)(spec); QUIRK_NONE; }) argument
1188 #define ca0132_use_alt_functions(spec) ({ (void)(spec); false; }) argument
1189 #define ca0132_use_pci_mmio(spec) ({ (void)(spec); false; }) argument
1190 #define ca0132_use_alt_controls(spec) ({ (void)(spec); false; }) argument
1568 struct ca0132_spec *spec = codec->spec; in chipio_write_address() local
1571 if (spec->curr_chip_addx == chip_addx) in chipio_write_address()
1584 spec->curr_chip_addx = (res < 0) ? ~0U : chip_addx; in chipio_write_address()
1594 struct ca0132_spec *spec = codec->spec; in chipio_write_data() local
1608 spec->curr_chip_addx = (res != -EIO) ? in chipio_write_data()
1609 (spec->curr_chip_addx + 4) : ~0U; in chipio_write_data()
1639 struct ca0132_spec *spec = codec->spec; in chipio_read_data() local
1659 spec->curr_chip_addx = (res != -EIO) ? in chipio_read_data()
1660 (spec->curr_chip_addx + 4) : ~0U; in chipio_read_data()
1671 struct ca0132_spec *spec = codec->spec; in chipio_write() local
1674 mutex_lock(&spec->chipio_mutex); in chipio_write()
1686 mutex_unlock(&spec->chipio_mutex); in chipio_write()
1722 struct ca0132_spec *spec = codec->spec; in chipio_write_multiple() local
1725 mutex_lock(&spec->chipio_mutex); in chipio_write_multiple()
1732 mutex_unlock(&spec->chipio_mutex); in chipio_write_multiple()
1744 struct ca0132_spec *spec = codec->spec; in chipio_read() local
1747 mutex_lock(&spec->chipio_mutex); in chipio_read()
1759 mutex_unlock(&spec->chipio_mutex); in chipio_read()
1785 struct ca0132_spec *spec = codec->spec; in chipio_set_control_param() local
1793 mutex_lock(&spec->chipio_mutex); in chipio_set_control_param()
1802 mutex_unlock(&spec->chipio_mutex); in chipio_set_control_param()
1965 struct ca0132_spec *spec = codec->spec; in chipio_8051_write_exram() local
1967 mutex_lock(&spec->chipio_mutex); in chipio_8051_write_exram()
1972 mutex_unlock(&spec->chipio_mutex); in chipio_8051_write_exram()
1993 struct ca0132_spec *spec = codec->spec; in chipio_8051_write_pll_pmu() local
1995 mutex_lock(&spec->chipio_mutex); in chipio_8051_write_pll_pmu()
2000 mutex_unlock(&spec->chipio_mutex); in chipio_8051_write_pll_pmu()
2015 struct ca0132_spec *spec = codec->spec; in chipio_enable_clocks() local
2017 mutex_lock(&spec->chipio_mutex); in chipio_enable_clocks()
2023 mutex_unlock(&spec->chipio_mutex); in chipio_enable_clocks()
2069 struct ca0132_spec *spec = codec->spec; in dspio_write() local
2074 mutex_lock(&spec->chipio_mutex); in dspio_write()
2089 mutex_unlock(&spec->chipio_mutex); in dspio_write()
2244 struct ca0132_spec *spec = codec->spec; in dspio_get_response_data() local
2251 if ((data & 0x00ffffff) == spec->wait_scp_header) { in dspio_get_response_data()
2252 spec->scp_resp_header = data; in dspio_get_response_data()
2253 spec->scp_resp_count = data >> 27; in dspio_get_response_data()
2254 count = spec->wait_num_data; in dspio_get_response_data()
2255 dspio_read_multiple(codec, spec->scp_resp_data, in dspio_get_response_data()
2256 &spec->scp_resp_count, count); in dspio_get_response_data()
2273 struct ca0132_spec *spec = codec->spec; in dspio_send_scp_message() local
2300 spec->wait_scp_header = *((unsigned int *)send_buf); in dspio_send_scp_message()
2305 spec->wait_scp_header &= 0xffff0000; in dspio_send_scp_message()
2306 spec->wait_scp_header |= (resp_src_id << 8) | (resp_target_id); in dspio_send_scp_message()
2307 spec->wait_num_data = return_buf_size/sizeof(unsigned int) - 1; in dspio_send_scp_message()
2308 spec->wait_scp = 1; in dspio_send_scp_message()
2315 spec->wait_scp = 0; in dspio_send_scp_message()
2324 } while (spec->wait_scp && time_before(jiffies, timeout)); in dspio_send_scp_message()
2326 if (!spec->wait_scp) { in dspio_send_scp_message()
2328 memcpy(&ret_msg->hdr, &spec->scp_resp_header, 4); in dspio_send_scp_message()
2329 memcpy(&ret_msg->data, spec->scp_resp_data, in dspio_send_scp_message()
2330 spec->wait_num_data); in dspio_send_scp_message()
2331 *bytes_returned = (spec->scp_resp_count + 1) * 4; in dspio_send_scp_message()
2336 spec->wait_scp = 0; in dspio_send_scp_message()
3039 struct ca0132_spec *spec = codec->spec; in dma_reset() local
3051 spec->dsp_stream_id = status; in dma_reset()
3102 struct ca0132_spec *spec = dma->codec->spec; in dma_get_stream_id() local
3104 return spec->dsp_stream_id; in dma_get_stream_id()
3396 struct ca0132_spec *spec = codec->spec; in dspxfr_image() local
3440 spec->dsp_stream_id = status; in dspxfr_image()
3512 struct ca0132_spec *spec = codec->spec; in dspload_post_setup() local
3514 if (!ca0132_use_alt_functions(spec)) { in dspload_post_setup()
3646 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_gpio_set() local
3652 writew(gpio_data, spec->mem_base + 0x320); in ca0113_mmio_gpio_set()
3666 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set() local
3669 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3670 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3671 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3672 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3673 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3675 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3676 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set()
3678 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3683 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set()
3689 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set()
3690 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set()
3691 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set()
3693 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3694 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3695 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3696 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3705 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set_type2() local
3708 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3709 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3710 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3711 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3712 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3714 writel(0x00800003, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3715 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set_type2()
3717 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3722 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set_type2()
3724 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set_type2()
3725 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set_type2()
3726 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set_type2()
3728 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3729 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3730 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3731 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3744 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_init() local
3746 switch (ca0132_quirk(spec)) { in ca0132_gpio_init()
3767 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_setup() local
3769 switch (ca0132_quirk(spec)) { in ca0132_gpio_setup()
3893 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_prepare() local
3895 snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); in ca0132_playback_pcm_prepare()
3904 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_cleanup() local
3906 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_playback_pcm_cleanup()
3911 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_playback_pcm_cleanup()
3914 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_playback_pcm_cleanup()
3923 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_delay() local
3927 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_playback_pcm_delay()
3931 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) { in ca0132_playback_pcm_delay()
3932 if ((spec->effects_switch[SURROUND - EFFECT_START_NID]) || in ca0132_playback_pcm_delay()
3933 (spec->effects_switch[DIALOG_PLUS - EFFECT_START_NID])) in ca0132_playback_pcm_delay()
3938 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_playback_pcm_delay()
3951 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_open() local
3952 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in ca0132_dig_playback_pcm_open()
3961 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_prepare() local
3962 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in ca0132_dig_playback_pcm_prepare()
3970 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_cleanup() local
3971 return snd_hda_multi_out_dig_cleanup(codec, &spec->multiout); in ca0132_dig_playback_pcm_cleanup()
3978 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_close() local
3979 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in ca0132_dig_playback_pcm_close()
4001 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_cleanup() local
4003 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_capture_pcm_cleanup()
4014 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_delay() local
4018 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_capture_pcm_delay()
4021 if (spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_capture_pcm_delay()
4246 struct ca0132_spec *spec = codec->spec; in tuning_ctl_get() local
4251 *valp = spec->cur_ctl_vals[idx]; in tuning_ctl_get()
4272 struct ca0132_spec *spec = codec->spec; in voice_focus_ctl_put() local
4279 if (spec->cur_ctl_vals[idx] == *valp) in voice_focus_ctl_put()
4282 spec->cur_ctl_vals[idx] = *valp; in voice_focus_ctl_put()
4307 struct ca0132_spec *spec = codec->spec; in mic_svm_ctl_put() local
4314 if (spec->cur_ctl_vals[idx] == *valp) in mic_svm_ctl_put()
4317 spec->cur_ctl_vals[idx] = *valp; in mic_svm_ctl_put()
4342 struct ca0132_spec *spec = codec->spec; in equalizer_ctl_put() local
4349 if (spec->cur_ctl_vals[idx] == *valp) in equalizer_ctl_put()
4352 spec->cur_ctl_vals[idx] = *valp; in equalizer_ctl_put()
4423 struct ca0132_spec *spec = codec->spec; in ca0132_init_tuning_defaults() local
4427 spec->cur_ctl_vals[WEDGE_ANGLE - TUNING_CTL_START_NID] = 10; in ca0132_init_tuning_defaults()
4429 spec->cur_ctl_vals[SVM_LEVEL - TUNING_CTL_START_NID] = 74; in ca0132_init_tuning_defaults()
4433 spec->cur_ctl_vals[i] = 24; in ca0132_init_tuning_defaults()
4445 struct ca0132_spec *spec = codec->spec; in ca0132_select_out() local
4456 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_select_out()
4459 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp); in ca0132_select_out()
4462 spec->vnode_lswitch[VNID_HP_SEL - VNODE_START_NID]; in ca0132_select_out()
4465 spec->cur_out_type = HEADPHONE_OUT; in ca0132_select_out()
4467 spec->cur_out_type = SPEAKER_OUT; in ca0132_select_out()
4469 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_select_out()
4483 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4485 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4487 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4489 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4493 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4495 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4498 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4500 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4516 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4518 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4520 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4522 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4526 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4528 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4531 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4533 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4549 struct ca0132_spec *spec = codec->spec; in ae5_mmio_select_out() local
4553 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_mmio_select_out()
4561 out_cmds->vals[spec->cur_out_type][i]); in ae5_mmio_select_out()
4566 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_full_range_speaker() local
4567 int quirk = ca0132_quirk(spec); in ca0132_alt_set_full_range_speaker()
4572 if (spec->channel_cfg_val == SPEAKER_CHANNELS_4_0 in ca0132_alt_set_full_range_speaker()
4573 || spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_set_full_range_speaker()
4577 tmp = spec->speaker_range_val[0] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4584 tmp = spec->speaker_range_val[1] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4612 struct ca0132_spec *spec = codec->spec; in ca0132_alt_surround_set_bass_redirection() local
4616 if (val && spec->channel_cfg_val != SPEAKER_CHANNELS_4_0 && in ca0132_alt_surround_set_bass_redirection()
4617 spec->channel_cfg_val != SPEAKER_CHANNELS_2_0) in ca0132_alt_surround_set_bass_redirection()
4628 tmp = float_xbass_xover_lookup[spec->xbass_xover_freq]; in ca0132_alt_surround_set_bass_redirection()
4645 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_get_quirk_data() local
4646 int quirk = ca0132_quirk(spec); in ca0132_alt_select_out_get_quirk_data()
4662 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_quirk_set() local
4670 out_info = &quirk_data->out_set_info[spec->cur_out_type]; in ca0132_alt_select_out_quirk_set()
4713 if (spec->cur_out_type != HEADPHONE_OUT) { in ca0132_alt_select_out_quirk_set()
4721 spec->ae5_headphone_gain_val); in ca0132_alt_select_out_quirk_set()
4724 spec->zxr_gain_set); in ca0132_alt_select_out_quirk_set()
4754 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out() local
4760 hda_nid_t headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4766 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_select_out()
4774 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp) || in ca0132_alt_select_out()
4775 snd_hda_jack_detect(codec, spec->unsol_tag_front_hp); in ca0132_alt_select_out()
4778 spec->cur_out_type = HEADPHONE_OUT; in ca0132_alt_select_out()
4780 spec->cur_out_type = SPEAKER_OUT; in ca0132_alt_select_out()
4782 spec->cur_out_type = spec->out_enum_val; in ca0132_alt_select_out()
4784 outfx_set = spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]; in ca0132_alt_select_out()
4794 switch (spec->cur_out_type) { in ca0132_alt_select_out()
4799 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4803 ca0132_set_out_node_pincfg(codec, spec->out_pins[1], 0, 0); in ca0132_alt_select_out()
4805 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 1, 0); in ca0132_alt_select_out()
4807 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 1, 0); in ca0132_alt_select_out()
4809 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 1, 0); in ca0132_alt_select_out()
4816 if (!outfx_set && spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_select_out()
4819 tmp = speaker_channel_cfgs[spec->channel_cfg_val].val; in ca0132_alt_select_out()
4828 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4832 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 0, 0); in ca0132_alt_select_out()
4833 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 0, 0); in ca0132_alt_select_out()
4834 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 0, 0); in ca0132_alt_select_out()
4837 if (snd_hda_jack_detect(codec, spec->unsol_tag_front_hp)) in ca0132_alt_select_out()
4838 headphone_nid = spec->out_pins[2]; in ca0132_alt_select_out()
4839 else if (snd_hda_jack_detect(codec, spec->unsol_tag_hp)) in ca0132_alt_select_out()
4840 headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4860 spec->effects_switch[X_BASS - EFFECT_START_NID]); in ca0132_alt_select_out()
4876 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_alt_select_out()
4878 spec->bass_redirection_val); in ca0132_alt_select_out()
4888 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_alt_select_out()
4902 struct ca0132_spec *spec = container_of( in ca0132_unsol_hp_delayed() local
4906 if (ca0132_use_alt_functions(spec)) in ca0132_unsol_hp_delayed()
4907 ca0132_alt_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4909 ca0132_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4911 jack = snd_hda_jack_tbl_get(spec->codec, spec->unsol_tag_hp); in ca0132_unsol_hp_delayed()
4914 snd_hda_jack_report_sync(spec->codec); in ca0132_unsol_hp_delayed()
4930 struct ca0132_spec *spec = codec->spec; in ca0132_set_vipsource() local
4933 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_set_vipsource()
4937 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_set_vipsource()
4942 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4952 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4968 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_vipsource() local
4971 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_alt_set_vipsource()
4980 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_alt_set_vipsource()
4981 (val == 0) || spec->in_enum_val == REAR_LINE_IN) { in ca0132_alt_set_vipsource()
4990 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4994 if (spec->in_enum_val == REAR_LINE_IN) in ca0132_alt_set_vipsource()
4997 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_alt_set_vipsource()
5009 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
5012 if (spec->effects_switch[VOICE_FOCUS - EFFECT_START_NID]) in ca0132_alt_set_vipsource()
5039 struct ca0132_spec *spec = codec->spec; in ca0132_select_mic() local
5047 auto_jack = spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_select_mic()
5050 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_amic1); in ca0132_select_mic()
5053 spec->vnode_lswitch[VNID_AMIC1_SEL - VNODE_START_NID]; in ca0132_select_mic()
5056 spec->cur_mic_type = LINE_MIC_IN; in ca0132_select_mic()
5058 spec->cur_mic_type = DIGITAL_MIC; in ca0132_select_mic()
5060 if (spec->cur_mic_type == DIGITAL_MIC) { in ca0132_select_mic()
5067 spec->effects_switch in ca0132_select_mic()
5073 ca0132_mic_boost_set(codec, spec->cur_mic_boost); in ca0132_select_mic()
5091 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_in() local
5101 spec->cur_mic_type = spec->in_enum_val; in ca0132_alt_select_in()
5103 switch (spec->cur_mic_type) { in ca0132_alt_select_in()
5105 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5138 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5145 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5161 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5165 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5190 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5193 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_select_in()
5199 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5212 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5234 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5242 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5254 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5270 struct ca0132_spec *spec = codec->spec; in ca0132_is_vnode_effective() local
5275 nid = spec->shared_out_nid; in ca0132_is_vnode_effective()
5278 nid = spec->shared_mic_nid; in ca0132_is_vnode_effective()
5296 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_set() local
5301 tmp = spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] ? in ca0132_voicefx_set()
5318 struct ca0132_spec *spec = codec->spec; in ca0132_effects_set() local
5330 if (!spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_effects_set()
5332 if (spec->cur_out_type == SPEAKER_OUT && nid == X_BASS) { in ca0132_effects_set()
5333 channel_cfg = spec->channel_cfg_val; in ca0132_effects_set()
5343 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_effects_set()
5347 if ((nid == VOICE_FOCUS) && (spec->cur_mic_type != DIGITAL_MIC)) in ca0132_effects_set()
5351 if ((nid == VOICE_FOCUS) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5352 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5353 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5356 if (spec->effects_switch[VOICE_FOCUS - in ca0132_effects_set()
5370 if ((nid == NOISE_REDUCTION) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5371 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5372 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5374 if (spec->effects_switch[NOISE_REDUCTION - in ca0132_effects_set()
5386 if (ca0132_use_alt_functions(spec) && in ca0132_effects_set()
5387 spec->in_enum_val == REAR_LINE_IN) in ca0132_effects_set()
5409 struct ca0132_spec *spec = codec->spec; in ca0132_pe_switch_set() local
5414 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]); in ca0132_pe_switch_set()
5416 if (ca0132_use_alt_functions(spec)) in ca0132_pe_switch_set()
5423 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_pe_switch_set()
5431 struct ca0132_spec *spec = codec->spec; in stop_mic1() local
5432 unsigned int oldval = snd_hda_codec_read(codec, spec->adcs[0], 0, in stop_mic1()
5435 snd_hda_codec_write(codec, spec->adcs[0], 0, in stop_mic1()
5444 struct ca0132_spec *spec = codec->spec; in resume_mic1() local
5447 snd_hda_codec_write(codec, spec->adcs[0], 0, in resume_mic1()
5457 struct ca0132_spec *spec = codec->spec; in ca0132_cvoice_switch_set() local
5463 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]); in ca0132_cvoice_switch_set()
5469 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_cvoice_switch_set()
5472 ret |= ca0132_voicefx_set(codec, (spec->voicefx_val ? 1 : 0)); in ca0132_cvoice_switch_set()
5476 if (ca0132_use_alt_functions(spec)) in ca0132_cvoice_switch_set()
5486 struct ca0132_spec *spec = codec->spec; in ca0132_mic_boost_set() local
5490 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5493 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5501 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_set() local
5504 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_alt_mic_boost_set()
5538 struct ca0132_spec *spec = codec->spec; in ca0132_vnode_switch_set() local
5543 spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5545 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5555 spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5562 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5657 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_ctl_get() local
5662 *valp = spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5664 *valp = spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5673 struct ca0132_spec *spec = codec->spec; in ca0132_alt_slider_ctl_get() local
5678 *valp = spec->fx_ctl_val[idx]; in ca0132_alt_slider_ctl_get()
5716 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_put() local
5723 cur_val = &spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5725 cur_val = &spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5746 struct ca0132_spec *spec = codec->spec; in ca0132_alt_effect_slider_put() local
5753 if (spec->fx_ctl_val[idx] == *valp) in ca0132_alt_effect_slider_put()
5756 spec->fx_ctl_val[idx] = *valp; in ca0132_alt_effect_slider_put()
5793 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_get() local
5795 ucontrol->value.enumerated.item[0] = spec->mic_boost_enum_val; in ca0132_alt_mic_boost_get()
5803 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_put() local
5813 spec->mic_boost_enum_val = sel; in ca0132_alt_mic_boost_put()
5815 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_alt_mic_boost_put()
5816 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_mic_boost_put()
5847 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_get() local
5849 ucontrol->value.enumerated.item[0] = spec->ae5_headphone_gain_val; in ae5_headphone_gain_get()
5857 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_put() local
5867 spec->ae5_headphone_gain_val = sel; in ae5_headphone_gain_put()
5869 if (spec->out_enum_val == HEADPHONE_OUT) in ae5_headphone_gain_put()
5870 ae5_headphone_gain_set(codec, spec->ae5_headphone_gain_val); in ae5_headphone_gain_put()
5900 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_get() local
5902 ucontrol->value.enumerated.item[0] = spec->ae5_filter_val; in ae5_sound_filter_get()
5910 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_put() local
5920 spec->ae5_filter_val = sel; in ae5_sound_filter_put()
5950 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_get() local
5952 ucontrol->value.enumerated.item[0] = spec->in_enum_val; in ca0132_alt_input_source_get()
5960 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_put() local
5968 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_input_source_put()
5977 spec->in_enum_val = sel; in ca0132_alt_input_source_put()
6002 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_get() local
6004 ucontrol->value.enumerated.item[0] = spec->out_enum_val; in ca0132_alt_output_select_get()
6012 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_put() local
6023 spec->out_enum_val = sel; in ca0132_alt_output_select_put()
6025 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_output_select_put()
6053 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_get() local
6055 ucontrol->value.enumerated.item[0] = spec->channel_cfg_val; in ca0132_alt_speaker_channel_cfg_get()
6063 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_put() local
6073 spec->channel_cfg_val = sel; in ca0132_alt_speaker_channel_cfg_put()
6075 if (spec->out_enum_val == SPEAKER_OUT) in ca0132_alt_speaker_channel_cfg_put()
6106 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_get() local
6108 ucontrol->value.enumerated.item[0] = spec->smart_volume_setting; in ca0132_alt_svm_setting_get()
6116 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_put() local
6128 spec->smart_volume_setting = sel; in ca0132_alt_svm_setting_put()
6170 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_get() local
6172 ucontrol->value.enumerated.item[0] = spec->eq_preset_val; in ca0132_alt_eq_preset_get()
6180 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_put() local
6203 spec->eq_preset_val = sel; in ca0132_alt_eq_preset_put()
6227 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_get() local
6229 ucontrol->value.enumerated.item[0] = spec->voicefx_val; in ca0132_voicefx_get()
6237 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_put() local
6260 spec->voicefx_val = sel; in ca0132_voicefx_put()
6272 struct ca0132_spec *spec = codec->spec; in ca0132_switch_get() local
6280 *valp = spec->vnode_lswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6284 *valp = spec->vnode_rswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6292 *valp = spec->effects_switch[nid - EFFECT_START_NID]; in ca0132_switch_get()
6297 if (nid == spec->input_pins[0]) { in ca0132_switch_get()
6298 *valp = spec->cur_mic_boost; in ca0132_switch_get()
6303 *valp = spec->zxr_gain_set; in ca0132_switch_get()
6308 *valp = spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT]; in ca0132_switch_get()
6313 *valp = spec->bass_redirection_val; in ca0132_switch_get()
6324 struct ca0132_spec *spec = codec->spec; in ca0132_switch_put() local
6337 spec->vnode_lswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6341 spec->vnode_rswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6350 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6357 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6365 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6371 if (nid == spec->input_pins[0]) { in ca0132_switch_put()
6372 spec->cur_mic_boost = *valp; in ca0132_switch_put()
6373 if (ca0132_use_alt_functions(spec)) { in ca0132_switch_put()
6374 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_switch_put()
6378 if (spec->cur_mic_type != DIGITAL_MIC) in ca0132_switch_put()
6386 spec->zxr_gain_set = *valp; in ca0132_switch_put()
6387 if (spec->cur_out_type == HEADPHONE_OUT) in ca0132_switch_put()
6396 spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT] = *valp; in ca0132_switch_put()
6397 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6404 spec->bass_redirection_val = *valp; in ca0132_switch_put()
6405 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6426 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_volume_put() local
6435 lookup_val = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6442 lookup_val = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6458 struct ca0132_spec *spec = codec->spec; in ca0132_volume_info() local
6468 nid = spec->shared_out_nid; in ca0132_volume_info()
6478 nid = spec->shared_mic_nid; in ca0132_volume_info()
6496 struct ca0132_spec *spec = codec->spec; in ca0132_volume_get() local
6503 *valp = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6507 *valp = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6517 struct ca0132_spec *spec = codec->spec; in ca0132_volume_put() local
6527 spec->vnode_lvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6531 spec->vnode_rvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6564 struct ca0132_spec *spec = codec->spec; in ca0132_alt_volume_put() local
6582 spec->vnode_lvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6586 spec->vnode_rvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6604 struct ca0132_spec *spec = codec->spec; in ca0132_volume_tlv() local
6614 nid = spec->shared_out_nid; in ca0132_volume_tlv()
6624 nid = spec->shared_mic_nid; in ca0132_volume_tlv()
6677 struct ca0132_spec *spec = codec->spec; in add_fx_switch() local
6685 if (ca0132_use_alt_controls(spec) && (nid <= IN_EFFECT_END_NID)) in add_fx_switch()
7026 struct ca0132_spec *spec = codec->spec; in ca0132_build_controls() local
7031 for (i = 0; i < spec->num_mixers; i++) { in ca0132_build_controls()
7032 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in ca0132_build_controls()
7037 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
7038 snd_hda_set_vmaster_tlv(codec, spec->dacs[0], HDA_OUTPUT, in ca0132_build_controls()
7039 spec->tlv); in ca0132_build_controls()
7041 spec->tlv, ca0132_alt_follower_pfxs, in ca0132_build_controls()
7046 true, 0, &spec->vmaster_mute.sw_kctl); in ca0132_build_controls()
7057 if (ca0132_use_pci_mmio(spec)) { in ca0132_build_controls()
7074 if (ca0132_use_alt_controls(spec)) { in ca0132_build_controls()
7128 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
7154 if (ca0132_quirk(spec) != QUIRK_ZXR) { in ca0132_build_controls()
7161 switch (ca0132_quirk(spec)) { in ca0132_build_controls()
7184 err = snd_hda_jack_add_kctls(codec, &spec->autocfg); in ca0132_build_controls()
7188 if (spec->dig_out) { in ca0132_build_controls()
7189 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in ca0132_build_controls()
7190 spec->dig_out); in ca0132_build_controls()
7193 err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); in ca0132_build_controls()
7199 if (spec->dig_in) { in ca0132_build_controls()
7200 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in ca0132_build_controls()
7205 if (ca0132_use_alt_functions(spec)) in ca0132_build_controls()
7213 struct ca0132_spec *spec = codec->spec; in dbpro_build_controls() local
7216 if (spec->dig_out) { in dbpro_build_controls()
7217 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in dbpro_build_controls()
7218 spec->dig_out); in dbpro_build_controls()
7223 if (spec->dig_in) { in dbpro_build_controls()
7224 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in dbpro_build_controls()
7277 struct ca0132_spec *spec = codec->spec; in ca0132_build_pcms() local
7283 if (ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7289 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dacs[0]; in ca0132_build_pcms()
7291 spec->multiout.max_channels; in ca0132_build_pcms()
7294 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in ca0132_build_pcms()
7297 if (!ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7304 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[1]; in ca0132_build_pcms()
7312 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[2]; in ca0132_build_pcms()
7314 if (!spec->dig_out && !spec->dig_in) in ca0132_build_pcms()
7321 if (spec->dig_out) { in ca0132_build_pcms()
7324 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in ca0132_build_pcms()
7326 if (spec->dig_in) { in ca0132_build_pcms()
7329 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in ca0132_build_pcms()
7337 struct ca0132_spec *spec = codec->spec; in dbpro_build_pcms() local
7345 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in dbpro_build_pcms()
7348 if (!spec->dig_out && !spec->dig_in) in dbpro_build_pcms()
7355 if (spec->dig_out) { in dbpro_build_pcms()
7358 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in dbpro_build_pcms()
7360 if (spec->dig_in) { in dbpro_build_pcms()
7363 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in dbpro_build_pcms()
7418 struct ca0132_spec *spec = codec->spec; in ca0132_set_dmic() local
7432 val = spec->dmic_ctl; in ca0132_set_dmic()
7434 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7437 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7444 val = spec->dmic_ctl; in ca0132_set_dmic()
7447 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7450 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7462 struct ca0132_spec *spec = codec->spec; in ca0132_init_dmic() local
7475 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7485 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7495 if (ca0132_quirk(spec) == QUIRK_ALIENWARE_M17XR4) in ca0132_init_dmic()
7500 spec->dmic_ctl = val; in ca0132_init_dmic()
7501 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7510 struct ca0132_spec *spec = codec->spec; in ca0132_init_analog_mic2() local
7512 mutex_lock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7517 mutex_unlock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7522 struct ca0132_spec *spec = codec->spec; in ca0132_refresh_widget_caps() local
7528 for (i = 0; i < spec->multiout.num_dacs; i++) in ca0132_refresh_widget_caps()
7529 refresh_amp_caps(codec, spec->dacs[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7531 for (i = 0; i < spec->num_outputs; i++) in ca0132_refresh_widget_caps()
7532 refresh_amp_caps(codec, spec->out_pins[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7534 for (i = 0; i < spec->num_inputs; i++) { in ca0132_refresh_widget_caps()
7535 refresh_amp_caps(codec, spec->adcs[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7536 refresh_amp_caps(codec, spec->input_pins[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7600 struct ca0132_spec *spec = codec->spec; in ca0132_alt_start_dsp_audio_streams() local
7607 mutex_lock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7618 mutex_unlock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7627 mutex_lock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7640 mutex_unlock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7756 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_speaker_tuning() local
7760 switch (ca0132_quirk(spec)) { in ca0132_alt_init_speaker_tuning()
7800 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_analog_mics() local
7806 if (ca0132_quirk(spec) == QUIRK_R3DI) { in ca0132_alt_init_analog_mics()
7816 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_init_analog_mics()
7830 struct ca0132_spec *spec = codec->spec; in sbz_connect_streams() local
7832 mutex_lock(&spec->chipio_mutex); in sbz_connect_streams()
7848 mutex_unlock(&spec->chipio_mutex); in sbz_connect_streams()
7860 struct ca0132_spec *spec = codec->spec; in sbz_chipio_startup_data() local
7862 mutex_lock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7869 switch (ca0132_quirk(spec)) { in sbz_chipio_startup_data()
7887 mutex_unlock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7892 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_initial_mic_setup() local
7907 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_initial_mic_setup()
7923 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_register_set() local
7928 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7929 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7930 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7931 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7932 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7933 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7934 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7935 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7936 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7937 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7938 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7939 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7977 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_stream_setup() local
7979 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7998 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
8003 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_startup_data() local
8005 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
8030 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
8035 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_setup_ports() local
8037 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
8051 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
8056 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_stream_setup() local
8058 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
8074 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
8093 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_setup_ports() local
8102 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8165 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8204 struct ca0132_spec *spec = codec->spec; in ca0132_setup_defaults() local
8209 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_setup_defaults()
8249 struct ca0132_spec *spec = codec->spec; in r3d_setup_defaults() local
8254 if (spec->dsp_state != DSP_DOWNLOADED) in r3d_setup_defaults()
8272 if (ca0132_quirk(spec) == QUIRK_R3DI) in r3d_setup_defaults()
8276 if (ca0132_quirk(spec) == QUIRK_R3D) { in r3d_setup_defaults()
8299 struct ca0132_spec *spec = codec->spec; in sbz_setup_defaults() local
8304 if (spec->dsp_state != DSP_DOWNLOADED) in sbz_setup_defaults()
8353 struct ca0132_spec *spec = codec->spec; in ae5_setup_defaults() local
8358 if (spec->dsp_state != DSP_DOWNLOADED) in ae5_setup_defaults()
8418 struct ca0132_spec *spec = codec->spec; in ae7_setup_defaults() local
8423 if (spec->dsp_state != DSP_DOWNLOADED) in ae7_setup_defaults()
8501 struct ca0132_spec *spec = codec->spec; in ca0132_init_flags() local
8503 if (ca0132_use_alt_functions(spec)) { in ca0132_init_flags()
8534 struct ca0132_spec *spec = codec->spec; in ca0132_init_params() local
8536 if (ca0132_use_alt_functions(spec)) { in ca0132_init_params()
8565 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp_images() local
8573 switch (ca0132_quirk(spec)) { in ca0132_download_dsp_images()
8620 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp() local
8626 if (spec->dsp_state == DSP_DOWNLOAD_FAILED) in ca0132_download_dsp()
8630 if (spec->dsp_state != DSP_DOWNLOADED) { in ca0132_download_dsp()
8631 spec->dsp_state = DSP_DOWNLOADING; in ca0132_download_dsp()
8634 spec->dsp_state = DSP_DOWNLOAD_FAILED; in ca0132_download_dsp()
8636 spec->dsp_state = DSP_DOWNLOADED; in ca0132_download_dsp()
8640 if (spec->dsp_state == DSP_DOWNLOADED && !ca0132_use_alt_functions(spec)) in ca0132_download_dsp()
8647 struct ca0132_spec *spec = codec->spec; in ca0132_process_dsp_response() local
8651 if (spec->wait_scp) { in ca0132_process_dsp_response()
8653 spec->wait_scp = 0; in ca0132_process_dsp_response()
8662 struct ca0132_spec *spec = codec->spec; in hp_callback() local
8671 schedule_delayed_work(&spec->unsol_hp_work, msecs_to_jiffies(500)); in hp_callback()
8676 struct ca0132_spec *spec = codec->spec; in amic_callback() local
8678 if (ca0132_use_alt_functions(spec)) in amic_callback()
8686 struct ca0132_spec *spec = codec->spec; in ca0132_setup_unsol() local
8687 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_hp, hp_callback); in ca0132_setup_unsol()
8688 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_amic1, in ca0132_setup_unsol()
8693 if (ca0132_use_alt_functions(spec)) in ca0132_setup_unsol()
8695 spec->unsol_tag_front_hp, hp_callback); in ca0132_setup_unsol()
8775 struct ca0132_spec *spec = codec->spec; in ca0132_init_chip() local
8780 mutex_init(&spec->chipio_mutex); in ca0132_init_chip()
8788 if (ca0132_use_alt_functions(spec)) { in ca0132_init_chip()
8798 spec->cur_out_type = SPEAKER_OUT; in ca0132_init_chip()
8799 if (!ca0132_use_alt_functions(spec)) in ca0132_init_chip()
8800 spec->cur_mic_type = DIGITAL_MIC; in ca0132_init_chip()
8802 spec->cur_mic_type = REAR_MIC; in ca0132_init_chip()
8804 spec->cur_mic_boost = 0; in ca0132_init_chip()
8807 spec->vnode_lvol[i] = 0x5a; in ca0132_init_chip()
8808 spec->vnode_rvol[i] = 0x5a; in ca0132_init_chip()
8809 spec->vnode_lswitch[i] = 0; in ca0132_init_chip()
8810 spec->vnode_rswitch[i] = 0; in ca0132_init_chip()
8819 spec->effects_switch[i] = on ? 1 : 0; in ca0132_init_chip()
8825 if (ca0132_use_alt_controls(spec)) { in ca0132_init_chip()
8827 spec->speaker_range_val[0] = 1; in ca0132_init_chip()
8828 spec->speaker_range_val[1] = 1; in ca0132_init_chip()
8830 spec->xbass_xover_freq = 8; in ca0132_init_chip()
8832 spec->fx_ctl_val[i] = effect_slider_defaults[i]; in ca0132_init_chip()
8834 spec->bass_redirect_xover_freq = 8; in ca0132_init_chip()
8837 spec->voicefx_val = 0; in ca0132_init_chip()
8838 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID] = 1; in ca0132_init_chip()
8839 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] = 0; in ca0132_init_chip()
8846 if (ca0132_quirk(spec) == QUIRK_ZXR) in ca0132_init_chip()
8847 spec->in_enum_val = REAR_MIC; in ca0132_init_chip()
8868 struct ca0132_spec *spec = codec->spec; in sbz_region2_exit() local
8872 writeb(0x0, spec->mem_base + 0x100); in sbz_region2_exit()
8874 writeb(0xb3, spec->mem_base + 0x304); in sbz_region2_exit()
9074 struct ca0132_spec *spec = codec->spec; in sbz_dsp_startup_check() local
9081 if (spec->startup_check_entered) in sbz_dsp_startup_check()
9084 spec->startup_check_entered = true; in sbz_dsp_startup_check()
9106 spec->dsp_state = DSP_DOWNLOAD_INIT; in sbz_dsp_startup_check()
9154 struct ca0132_spec *spec = codec->spec; in sbz_pre_dsp_setup() local
9156 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9157 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9267 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_sbz() local
9273 writel(0x00000000, spec->mem_base + addr[i]); in ca0132_mmio_init_sbz()
9276 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9296 writel(tmp[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9300 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9312 writel(data[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9317 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_ae5() local
9325 if (ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9326 writel(0x00000680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9327 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9335 if (i == 21 && ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9336 writel(0x00800001, spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9340 writel(data[i], spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9343 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init_ae5()
9344 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9349 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init() local
9351 switch (ca0132_quirk(spec)) { in ca0132_mmio_init()
9382 struct ca0132_spec *spec = codec->spec; in ae5_register_set() local
9389 if (ca0132_quirk(spec) == QUIRK_AE7) in ae5_register_set()
9395 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9406 writeb(tmp[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9413 writeb(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9416 writel(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9418 writel(0x00800001, spec->mem_base + 0x20c); in ae5_register_set()
9420 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9430 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_register_set()
9441 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init() local
9445 switch (ca0132_quirk(spec)) { in ca0132_alt_init()
9450 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9451 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9459 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9464 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9465 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9471 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9472 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9478 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9479 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9487 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9488 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9498 struct ca0132_spec *spec = codec->spec; in ca0132_init() local
9499 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_init()
9513 if (spec->dsp_state == DSP_DOWNLOADED) { in ca0132_init()
9516 spec->dsp_reload = true; in ca0132_init()
9517 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9519 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9525 if (spec->dsp_state != DSP_DOWNLOAD_FAILED) in ca0132_init()
9526 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9527 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; in ca0132_init()
9529 if (ca0132_use_pci_mmio(spec)) in ca0132_init()
9534 if (ca0132_quirk(spec) == QUIRK_AE5 || ca0132_quirk(spec) == QUIRK_AE7) in ca0132_init()
9540 snd_hda_sequence_write(codec, spec->base_init_verbs); in ca0132_init()
9542 if (ca0132_use_alt_functions(spec)) in ca0132_init()
9549 switch (ca0132_quirk(spec)) { in ca0132_init()
9571 for (i = 0; i < spec->num_outputs; i++) in ca0132_init()
9572 init_output(codec, spec->out_pins[i], spec->dacs[0]); in ca0132_init()
9574 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in ca0132_init()
9576 for (i = 0; i < spec->num_inputs; i++) in ca0132_init()
9577 init_input(codec, spec->input_pins[i], spec->adcs[i]); in ca0132_init()
9579 init_input(codec, cfg->dig_in_pin, spec->dig_in); in ca0132_init()
9581 if (!ca0132_use_alt_functions(spec)) { in ca0132_init()
9582 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_init()
9589 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9592 snd_hda_sequence_write(codec, spec->spec_init_verbs); in ca0132_init()
9593 if (ca0132_use_alt_functions(spec)) { in ca0132_init()
9607 if (spec->dsp_reload) { in ca0132_init()
9608 spec->dsp_reload = false; in ca0132_init()
9619 struct ca0132_spec *spec = codec->spec; in dbpro_init() local
9620 struct auto_pin_cfg *cfg = &spec->autocfg; in dbpro_init()
9623 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in dbpro_init()
9624 init_input(codec, cfg->dig_in_pin, spec->dig_in); in dbpro_init()
9626 for (i = 0; i < spec->num_inputs; i++) in dbpro_init()
9627 init_input(codec, spec->input_pins[i], spec->adcs[i]); in dbpro_init()
9634 struct ca0132_spec *spec = codec->spec; in ca0132_free() local
9636 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_free()
9638 switch (ca0132_quirk(spec)) { in ca0132_free()
9661 snd_hda_sequence_write(codec, spec->base_exit_verbs); in ca0132_free()
9666 if (spec->mem_base) in ca0132_free()
9667 pci_iounmap(codec->bus->pci, spec->mem_base); in ca0132_free()
9669 kfree(spec->spec_init_verbs); in ca0132_free()
9670 kfree(codec->spec); in ca0132_free()
9675 struct ca0132_spec *spec = codec->spec; in dbpro_free() local
9679 kfree(spec->spec_init_verbs); in dbpro_free()
9680 kfree(codec->spec); in dbpro_free()
9686 struct ca0132_spec *spec = codec->spec; in ca0132_suspend() local
9688 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_suspend()
9713 struct ca0132_spec *spec = codec->spec; in ca0132_config() local
9715 spec->dacs[0] = 0x2; in ca0132_config()
9716 spec->dacs[1] = 0x3; in ca0132_config()
9717 spec->dacs[2] = 0x4; in ca0132_config()
9719 spec->multiout.dac_nids = spec->dacs; in ca0132_config()
9720 spec->multiout.num_dacs = 3; in ca0132_config()
9722 if (!ca0132_use_alt_functions(spec)) in ca0132_config()
9723 spec->multiout.max_channels = 2; in ca0132_config()
9725 spec->multiout.max_channels = 6; in ca0132_config()
9727 switch (ca0132_quirk(spec)) { in ca0132_config()
9760 switch (ca0132_quirk(spec)) { in ca0132_config()
9762 spec->num_outputs = 2; in ca0132_config()
9763 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9764 spec->out_pins[1] = 0x0f; in ca0132_config()
9765 spec->shared_out_nid = 0x2; in ca0132_config()
9766 spec->unsol_tag_hp = 0x0f; in ca0132_config()
9768 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9769 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9770 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9772 spec->num_inputs = 3; in ca0132_config()
9773 spec->input_pins[0] = 0x12; in ca0132_config()
9774 spec->input_pins[1] = 0x11; in ca0132_config()
9775 spec->input_pins[2] = 0x13; in ca0132_config()
9776 spec->shared_mic_nid = 0x7; in ca0132_config()
9777 spec->unsol_tag_amic1 = 0x11; in ca0132_config()
9781 spec->num_outputs = 2; in ca0132_config()
9782 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9783 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9784 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9785 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9786 spec->shared_out_nid = 0x2; in ca0132_config()
9787 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9788 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9790 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9791 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9792 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9794 spec->num_inputs = 2; in ca0132_config()
9795 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9796 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9797 spec->shared_mic_nid = 0x7; in ca0132_config()
9798 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9801 spec->dig_out = 0x05; in ca0132_config()
9802 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9803 spec->dig_in = 0x09; in ca0132_config()
9806 spec->num_outputs = 2; in ca0132_config()
9807 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9808 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9809 spec->out_pins[2] = 0x10; /* Center/LFE */ in ca0132_config()
9810 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9811 spec->shared_out_nid = 0x2; in ca0132_config()
9812 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9813 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9815 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9816 spec->adcs[1] = 0x8; /* Not connected, no front mic */ in ca0132_config()
9817 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9819 spec->num_inputs = 2; in ca0132_config()
9820 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9821 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9822 spec->shared_mic_nid = 0x7; in ca0132_config()
9823 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9826 spec->adcs[0] = 0x8; /* ZxR DBPro Aux In */ in ca0132_config()
9828 spec->num_inputs = 1; in ca0132_config()
9829 spec->input_pins[0] = 0x11; /* RCA Line-in */ in ca0132_config()
9831 spec->dig_out = 0x05; in ca0132_config()
9832 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9834 spec->dig_in = 0x09; in ca0132_config()
9838 spec->num_outputs = 2; in ca0132_config()
9839 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9840 spec->out_pins[1] = 0x11; /* Rear headphone out */ in ca0132_config()
9841 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9842 spec->out_pins[3] = 0x0F; /* Rear surround */ in ca0132_config()
9843 spec->shared_out_nid = 0x2; in ca0132_config()
9844 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9845 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9847 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9848 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9849 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9851 spec->num_inputs = 2; in ca0132_config()
9852 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9853 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9854 spec->shared_mic_nid = 0x7; in ca0132_config()
9855 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9858 spec->dig_out = 0x05; in ca0132_config()
9859 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9862 spec->num_outputs = 2; in ca0132_config()
9863 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9864 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9865 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9866 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9867 spec->shared_out_nid = 0x2; in ca0132_config()
9868 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9869 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9871 spec->adcs[0] = 0x07; /* Rear Mic / Line-in */ in ca0132_config()
9872 spec->adcs[1] = 0x08; /* Front Mic, but only if no DSP */ in ca0132_config()
9873 spec->adcs[2] = 0x0a; /* what u hear */ in ca0132_config()
9875 spec->num_inputs = 2; in ca0132_config()
9876 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9877 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9878 spec->shared_mic_nid = 0x7; in ca0132_config()
9879 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9882 spec->dig_out = 0x05; in ca0132_config()
9883 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9886 spec->num_outputs = 2; in ca0132_config()
9887 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9888 spec->out_pins[1] = 0x10; /* headphone out */ in ca0132_config()
9889 spec->shared_out_nid = 0x2; in ca0132_config()
9890 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9892 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9893 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9894 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9896 spec->num_inputs = 3; in ca0132_config()
9897 spec->input_pins[0] = 0x12; in ca0132_config()
9898 spec->input_pins[1] = 0x11; in ca0132_config()
9899 spec->input_pins[2] = 0x13; in ca0132_config()
9900 spec->shared_mic_nid = 0x7; in ca0132_config()
9901 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9904 spec->dig_out = 0x05; in ca0132_config()
9905 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9906 spec->dig_in = 0x09; in ca0132_config()
9915 struct ca0132_spec *spec = codec->spec; in ca0132_prepare_verbs() local
9917 spec->chip_init_verbs = ca0132_init_verbs0; in ca0132_prepare_verbs()
9922 if (ca0132_use_pci_mmio(spec)) in ca0132_prepare_verbs()
9923 spec->desktop_init_verbs = ca0132_init_verbs1; in ca0132_prepare_verbs()
9924 spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS, in ca0132_prepare_verbs()
9927 if (!spec->spec_init_verbs) in ca0132_prepare_verbs()
9931 spec->spec_init_verbs[0].nid = 0x0b; in ca0132_prepare_verbs()
9932 spec->spec_init_verbs[0].param = 0x78D; in ca0132_prepare_verbs()
9933 spec->spec_init_verbs[0].verb = 0x00; in ca0132_prepare_verbs()
9962 struct ca0132_spec *spec = codec->spec; in sbz_detect_quirk() local
9966 spec->quirk = QUIRK_ZXR; in sbz_detect_quirk()
9969 spec->quirk = QUIRK_ZXR_DBPRO; in sbz_detect_quirk()
9972 spec->quirk = QUIRK_SBZ; in sbz_detect_quirk()
9979 struct ca0132_spec *spec; in patch_ca0132() local
9985 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_ca0132()
9986 if (!spec) in patch_ca0132()
9988 codec->spec = spec; in patch_ca0132()
9989 spec->codec = codec; in patch_ca0132()
9994 spec->quirk = quirk->value; in patch_ca0132()
9996 spec->quirk = QUIRK_NONE; in patch_ca0132()
9997 if (ca0132_quirk(spec) == QUIRK_SBZ) in patch_ca0132()
10000 if (ca0132_quirk(spec) == QUIRK_ZXR_DBPRO) in patch_ca0132()
10009 spec->dsp_state = DSP_DOWNLOAD_INIT; in patch_ca0132()
10010 spec->num_mixers = 1; in patch_ca0132()
10013 switch (ca0132_quirk(spec)) { in patch_ca0132()
10015 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10019 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10025 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10029 spec->mixers[0] = r3di_mixer; in patch_ca0132()
10033 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10037 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10041 spec->mixers[0] = ca0132_mixer; in patch_ca0132()
10046 switch (ca0132_quirk(spec)) { in patch_ca0132()
10052 spec->use_alt_controls = true; in patch_ca0132()
10053 spec->use_alt_functions = true; in patch_ca0132()
10054 spec->use_pci_mmio = true; in patch_ca0132()
10057 spec->use_alt_controls = true; in patch_ca0132()
10058 spec->use_alt_functions = true; in patch_ca0132()
10059 spec->use_pci_mmio = false; in patch_ca0132()
10062 spec->use_alt_controls = false; in patch_ca0132()
10063 spec->use_alt_functions = false; in patch_ca0132()
10064 spec->use_pci_mmio = false; in patch_ca0132()
10069 if (spec->use_pci_mmio) { in patch_ca0132()
10070 spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); in patch_ca0132()
10071 if (spec->mem_base == NULL) { in patch_ca0132()
10073 spec->quirk = QUIRK_NONE; in patch_ca0132()
10078 spec->base_init_verbs = ca0132_base_init_verbs; in patch_ca0132()
10079 spec->base_exit_verbs = ca0132_base_exit_verbs; in patch_ca0132()
10081 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); in patch_ca0132()
10091 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); in patch_ca0132()