Lines Matching refs:spec
1181 #define ca0132_quirk(spec) ((spec)->codec->fixup_id) argument
1182 #define ca0132_use_pci_mmio(spec) ((spec)->use_pci_mmio) argument
1183 #define ca0132_use_alt_functions(spec) ((spec)->use_alt_functions) argument
1184 #define ca0132_use_alt_controls(spec) ((spec)->use_alt_controls) argument
1186 #define ca0132_quirk(spec) ({ (void)(spec); QUIRK_NONE; }) argument
1187 #define ca0132_use_alt_functions(spec) ({ (void)(spec); false; }) argument
1188 #define ca0132_use_pci_mmio(spec) ({ (void)(spec); false; }) argument
1189 #define ca0132_use_alt_controls(spec) ({ (void)(spec); false; }) argument
1581 struct ca0132_spec *spec = codec->spec; in chipio_write_address() local
1584 if (spec->curr_chip_addx == chip_addx) in chipio_write_address()
1597 spec->curr_chip_addx = (res < 0) ? ~0U : chip_addx; in chipio_write_address()
1607 struct ca0132_spec *spec = codec->spec; in chipio_write_data() local
1621 spec->curr_chip_addx = (res != -EIO) ? in chipio_write_data()
1622 (spec->curr_chip_addx + 4) : ~0U; in chipio_write_data()
1652 struct ca0132_spec *spec = codec->spec; in chipio_read_data() local
1672 spec->curr_chip_addx = (res != -EIO) ? in chipio_read_data()
1673 (spec->curr_chip_addx + 4) : ~0U; in chipio_read_data()
1684 struct ca0132_spec *spec = codec->spec; in chipio_write() local
1687 mutex_lock(&spec->chipio_mutex); in chipio_write()
1699 mutex_unlock(&spec->chipio_mutex); in chipio_write()
1735 struct ca0132_spec *spec = codec->spec; in chipio_write_multiple() local
1738 mutex_lock(&spec->chipio_mutex); in chipio_write_multiple()
1745 mutex_unlock(&spec->chipio_mutex); in chipio_write_multiple()
1757 struct ca0132_spec *spec = codec->spec; in chipio_read() local
1760 mutex_lock(&spec->chipio_mutex); in chipio_read()
1772 mutex_unlock(&spec->chipio_mutex); in chipio_read()
1798 struct ca0132_spec *spec = codec->spec; in chipio_set_control_param() local
1806 mutex_lock(&spec->chipio_mutex); in chipio_set_control_param()
1815 mutex_unlock(&spec->chipio_mutex); in chipio_set_control_param()
1978 struct ca0132_spec *spec = codec->spec; in chipio_8051_write_exram() local
1980 mutex_lock(&spec->chipio_mutex); in chipio_8051_write_exram()
1985 mutex_unlock(&spec->chipio_mutex); in chipio_8051_write_exram()
2006 struct ca0132_spec *spec = codec->spec; in chipio_8051_write_pll_pmu() local
2008 mutex_lock(&spec->chipio_mutex); in chipio_8051_write_pll_pmu()
2013 mutex_unlock(&spec->chipio_mutex); in chipio_8051_write_pll_pmu()
2028 struct ca0132_spec *spec = codec->spec; in chipio_enable_clocks() local
2030 mutex_lock(&spec->chipio_mutex); in chipio_enable_clocks()
2036 mutex_unlock(&spec->chipio_mutex); in chipio_enable_clocks()
2082 struct ca0132_spec *spec = codec->spec; in dspio_write() local
2087 mutex_lock(&spec->chipio_mutex); in dspio_write()
2102 mutex_unlock(&spec->chipio_mutex); in dspio_write()
2257 struct ca0132_spec *spec = codec->spec; in dspio_get_response_data() local
2264 if ((data & 0x00ffffff) == spec->wait_scp_header) { in dspio_get_response_data()
2265 spec->scp_resp_header = data; in dspio_get_response_data()
2266 spec->scp_resp_count = data >> 27; in dspio_get_response_data()
2267 count = spec->wait_num_data; in dspio_get_response_data()
2268 dspio_read_multiple(codec, spec->scp_resp_data, in dspio_get_response_data()
2269 &spec->scp_resp_count, count); in dspio_get_response_data()
2286 struct ca0132_spec *spec = codec->spec; in dspio_send_scp_message() local
2313 spec->wait_scp_header = *((unsigned int *)send_buf); in dspio_send_scp_message()
2318 spec->wait_scp_header &= 0xffff0000; in dspio_send_scp_message()
2319 spec->wait_scp_header |= (resp_src_id << 8) | (resp_target_id); in dspio_send_scp_message()
2320 spec->wait_num_data = return_buf_size/sizeof(unsigned int) - 1; in dspio_send_scp_message()
2321 spec->wait_scp = 1; in dspio_send_scp_message()
2328 spec->wait_scp = 0; in dspio_send_scp_message()
2337 } while (spec->wait_scp && time_before(jiffies, timeout)); in dspio_send_scp_message()
2339 if (!spec->wait_scp) { in dspio_send_scp_message()
2341 memcpy(&ret_msg->hdr, &spec->scp_resp_header, 4); in dspio_send_scp_message()
2342 memcpy(&ret_msg->data, spec->scp_resp_data, in dspio_send_scp_message()
2343 spec->wait_num_data); in dspio_send_scp_message()
2344 *bytes_returned = (spec->scp_resp_count + 1) * 4; in dspio_send_scp_message()
2349 spec->wait_scp = 0; in dspio_send_scp_message()
3052 struct ca0132_spec *spec = codec->spec; in dma_reset() local
3064 spec->dsp_stream_id = status; in dma_reset()
3115 struct ca0132_spec *spec = dma->codec->spec; in dma_get_stream_id() local
3117 return spec->dsp_stream_id; in dma_get_stream_id()
3409 struct ca0132_spec *spec = codec->spec; in dspxfr_image() local
3453 spec->dsp_stream_id = status; in dspxfr_image()
3525 struct ca0132_spec *spec = codec->spec; in dspload_post_setup() local
3527 if (!ca0132_use_alt_functions(spec)) { in dspload_post_setup()
3659 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_gpio_set() local
3665 writew(gpio_data, spec->mem_base + 0x320); in ca0113_mmio_gpio_set()
3679 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set() local
3682 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3683 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3684 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3685 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3686 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3688 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3689 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set()
3691 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3696 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set()
3702 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set()
3703 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set()
3704 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set()
3706 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3707 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3708 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3709 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3718 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set_type2() local
3721 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3722 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3723 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3724 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3725 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3727 writel(0x00800003, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3728 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set_type2()
3730 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3735 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set_type2()
3737 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set_type2()
3738 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set_type2()
3739 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set_type2()
3741 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3742 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3743 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3744 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3757 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_init() local
3759 switch (ca0132_quirk(spec)) { in ca0132_gpio_init()
3780 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_setup() local
3782 switch (ca0132_quirk(spec)) { in ca0132_gpio_setup()
3906 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_prepare() local
3908 snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); in ca0132_playback_pcm_prepare()
3917 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_cleanup() local
3919 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_playback_pcm_cleanup()
3924 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_playback_pcm_cleanup()
3927 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_playback_pcm_cleanup()
3936 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_delay() local
3940 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_playback_pcm_delay()
3944 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) { in ca0132_playback_pcm_delay()
3945 if ((spec->effects_switch[SURROUND - EFFECT_START_NID]) || in ca0132_playback_pcm_delay()
3946 (spec->effects_switch[DIALOG_PLUS - EFFECT_START_NID])) in ca0132_playback_pcm_delay()
3951 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_playback_pcm_delay()
3964 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_open() local
3965 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in ca0132_dig_playback_pcm_open()
3974 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_prepare() local
3975 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in ca0132_dig_playback_pcm_prepare()
3983 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_cleanup() local
3984 return snd_hda_multi_out_dig_cleanup(codec, &spec->multiout); in ca0132_dig_playback_pcm_cleanup()
3991 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_close() local
3992 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in ca0132_dig_playback_pcm_close()
4014 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_cleanup() local
4016 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_capture_pcm_cleanup()
4027 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_delay() local
4031 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_capture_pcm_delay()
4034 if (spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_capture_pcm_delay()
4261 struct ca0132_spec *spec = codec->spec; in tuning_ctl_get() local
4266 *valp = spec->cur_ctl_vals[idx]; in tuning_ctl_get()
4287 struct ca0132_spec *spec = codec->spec; in voice_focus_ctl_put() local
4294 if (spec->cur_ctl_vals[idx] == *valp) in voice_focus_ctl_put()
4297 spec->cur_ctl_vals[idx] = *valp; in voice_focus_ctl_put()
4322 struct ca0132_spec *spec = codec->spec; in mic_svm_ctl_put() local
4329 if (spec->cur_ctl_vals[idx] == *valp) in mic_svm_ctl_put()
4332 spec->cur_ctl_vals[idx] = *valp; in mic_svm_ctl_put()
4357 struct ca0132_spec *spec = codec->spec; in equalizer_ctl_put() local
4364 if (spec->cur_ctl_vals[idx] == *valp) in equalizer_ctl_put()
4367 spec->cur_ctl_vals[idx] = *valp; in equalizer_ctl_put()
4438 struct ca0132_spec *spec = codec->spec; in ca0132_init_tuning_defaults() local
4442 spec->cur_ctl_vals[WEDGE_ANGLE - TUNING_CTL_START_NID] = 10; in ca0132_init_tuning_defaults()
4444 spec->cur_ctl_vals[SVM_LEVEL - TUNING_CTL_START_NID] = 74; in ca0132_init_tuning_defaults()
4448 spec->cur_ctl_vals[i] = 24; in ca0132_init_tuning_defaults()
4460 struct ca0132_spec *spec = codec->spec; in ca0132_select_out() local
4471 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_select_out()
4474 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp); in ca0132_select_out()
4477 spec->vnode_lswitch[VNID_HP_SEL - VNODE_START_NID]; in ca0132_select_out()
4480 spec->cur_out_type = HEADPHONE_OUT; in ca0132_select_out()
4482 spec->cur_out_type = SPEAKER_OUT; in ca0132_select_out()
4484 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_select_out()
4498 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4500 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4502 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4504 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4508 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4510 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4513 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4515 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4531 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4533 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4535 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4537 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4541 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4543 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4546 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4548 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4564 struct ca0132_spec *spec = codec->spec; in ae5_mmio_select_out() local
4568 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_mmio_select_out()
4576 out_cmds->vals[spec->cur_out_type][i]); in ae5_mmio_select_out()
4581 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_full_range_speaker() local
4582 int quirk = ca0132_quirk(spec); in ca0132_alt_set_full_range_speaker()
4587 if (spec->channel_cfg_val == SPEAKER_CHANNELS_4_0 in ca0132_alt_set_full_range_speaker()
4588 || spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_set_full_range_speaker()
4592 tmp = spec->speaker_range_val[0] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4599 tmp = spec->speaker_range_val[1] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4627 struct ca0132_spec *spec = codec->spec; in ca0132_alt_surround_set_bass_redirection() local
4631 if (val && spec->channel_cfg_val != SPEAKER_CHANNELS_4_0 && in ca0132_alt_surround_set_bass_redirection()
4632 spec->channel_cfg_val != SPEAKER_CHANNELS_2_0) in ca0132_alt_surround_set_bass_redirection()
4643 tmp = float_xbass_xover_lookup[spec->xbass_xover_freq]; in ca0132_alt_surround_set_bass_redirection()
4660 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_get_quirk_data() local
4661 int quirk = ca0132_quirk(spec); in ca0132_alt_select_out_get_quirk_data()
4677 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_quirk_set() local
4685 out_info = &quirk_data->out_set_info[spec->cur_out_type]; in ca0132_alt_select_out_quirk_set()
4728 if (spec->cur_out_type != HEADPHONE_OUT) { in ca0132_alt_select_out_quirk_set()
4736 spec->ae5_headphone_gain_val); in ca0132_alt_select_out_quirk_set()
4739 spec->zxr_gain_set); in ca0132_alt_select_out_quirk_set()
4769 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out() local
4775 hda_nid_t headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4781 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_select_out()
4789 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp) || in ca0132_alt_select_out()
4790 snd_hda_jack_detect(codec, spec->unsol_tag_front_hp); in ca0132_alt_select_out()
4793 spec->cur_out_type = HEADPHONE_OUT; in ca0132_alt_select_out()
4795 spec->cur_out_type = SPEAKER_OUT; in ca0132_alt_select_out()
4797 spec->cur_out_type = spec->out_enum_val; in ca0132_alt_select_out()
4799 outfx_set = spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]; in ca0132_alt_select_out()
4809 switch (spec->cur_out_type) { in ca0132_alt_select_out()
4814 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4818 ca0132_set_out_node_pincfg(codec, spec->out_pins[1], 0, 0); in ca0132_alt_select_out()
4820 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 1, 0); in ca0132_alt_select_out()
4822 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 1, 0); in ca0132_alt_select_out()
4824 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 1, 0); in ca0132_alt_select_out()
4831 if (!outfx_set && spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_select_out()
4834 tmp = speaker_channel_cfgs[spec->channel_cfg_val].val; in ca0132_alt_select_out()
4843 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4847 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 0, 0); in ca0132_alt_select_out()
4848 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 0, 0); in ca0132_alt_select_out()
4849 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 0, 0); in ca0132_alt_select_out()
4852 if (snd_hda_jack_detect(codec, spec->unsol_tag_front_hp)) in ca0132_alt_select_out()
4853 headphone_nid = spec->out_pins[2]; in ca0132_alt_select_out()
4854 else if (snd_hda_jack_detect(codec, spec->unsol_tag_hp)) in ca0132_alt_select_out()
4855 headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4875 spec->effects_switch[X_BASS - EFFECT_START_NID]); in ca0132_alt_select_out()
4891 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_alt_select_out()
4893 spec->bass_redirection_val); in ca0132_alt_select_out()
4903 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_alt_select_out()
4917 struct ca0132_spec *spec = container_of( in ca0132_unsol_hp_delayed() local
4921 if (ca0132_use_alt_functions(spec)) in ca0132_unsol_hp_delayed()
4922 ca0132_alt_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4924 ca0132_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4926 jack = snd_hda_jack_tbl_get(spec->codec, spec->unsol_tag_hp); in ca0132_unsol_hp_delayed()
4929 snd_hda_jack_report_sync(spec->codec); in ca0132_unsol_hp_delayed()
4945 struct ca0132_spec *spec = codec->spec; in ca0132_set_vipsource() local
4948 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_set_vipsource()
4952 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_set_vipsource()
4957 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4967 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4983 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_vipsource() local
4986 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_alt_set_vipsource()
4995 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_alt_set_vipsource()
4996 (val == 0) || spec->in_enum_val == REAR_LINE_IN) { in ca0132_alt_set_vipsource()
5005 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
5009 if (spec->in_enum_val == REAR_LINE_IN) in ca0132_alt_set_vipsource()
5012 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_alt_set_vipsource()
5024 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
5027 if (spec->effects_switch[VOICE_FOCUS - EFFECT_START_NID]) in ca0132_alt_set_vipsource()
5054 struct ca0132_spec *spec = codec->spec; in ca0132_select_mic() local
5062 auto_jack = spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_select_mic()
5065 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_amic1); in ca0132_select_mic()
5068 spec->vnode_lswitch[VNID_AMIC1_SEL - VNODE_START_NID]; in ca0132_select_mic()
5071 spec->cur_mic_type = LINE_MIC_IN; in ca0132_select_mic()
5073 spec->cur_mic_type = DIGITAL_MIC; in ca0132_select_mic()
5075 if (spec->cur_mic_type == DIGITAL_MIC) { in ca0132_select_mic()
5082 spec->effects_switch in ca0132_select_mic()
5088 ca0132_mic_boost_set(codec, spec->cur_mic_boost); in ca0132_select_mic()
5106 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_in() local
5116 spec->cur_mic_type = spec->in_enum_val; in ca0132_alt_select_in()
5118 switch (spec->cur_mic_type) { in ca0132_alt_select_in()
5120 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5153 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5160 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5176 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5180 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5205 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5208 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_select_in()
5214 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5227 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5249 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5257 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5269 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5285 struct ca0132_spec *spec = codec->spec; in ca0132_is_vnode_effective() local
5290 nid = spec->shared_out_nid; in ca0132_is_vnode_effective()
5293 nid = spec->shared_mic_nid; in ca0132_is_vnode_effective()
5311 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_set() local
5316 tmp = spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] ? in ca0132_voicefx_set()
5333 struct ca0132_spec *spec = codec->spec; in ca0132_effects_set() local
5345 if (!spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_effects_set()
5347 if (spec->cur_out_type == SPEAKER_OUT && nid == X_BASS) { in ca0132_effects_set()
5348 channel_cfg = spec->channel_cfg_val; in ca0132_effects_set()
5358 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_effects_set()
5362 if ((nid == VOICE_FOCUS) && (spec->cur_mic_type != DIGITAL_MIC)) in ca0132_effects_set()
5366 if ((nid == VOICE_FOCUS) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5367 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5368 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5371 if (spec->effects_switch[VOICE_FOCUS - in ca0132_effects_set()
5385 if ((nid == NOISE_REDUCTION) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5386 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5387 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5389 if (spec->effects_switch[NOISE_REDUCTION - in ca0132_effects_set()
5401 if (ca0132_use_alt_functions(spec) && in ca0132_effects_set()
5402 spec->in_enum_val == REAR_LINE_IN) in ca0132_effects_set()
5424 struct ca0132_spec *spec = codec->spec; in ca0132_pe_switch_set() local
5429 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]); in ca0132_pe_switch_set()
5431 if (ca0132_use_alt_functions(spec)) in ca0132_pe_switch_set()
5438 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_pe_switch_set()
5446 struct ca0132_spec *spec = codec->spec; in stop_mic1() local
5447 unsigned int oldval = snd_hda_codec_read(codec, spec->adcs[0], 0, in stop_mic1()
5450 snd_hda_codec_write(codec, spec->adcs[0], 0, in stop_mic1()
5459 struct ca0132_spec *spec = codec->spec; in resume_mic1() local
5462 snd_hda_codec_write(codec, spec->adcs[0], 0, in resume_mic1()
5472 struct ca0132_spec *spec = codec->spec; in ca0132_cvoice_switch_set() local
5478 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]); in ca0132_cvoice_switch_set()
5484 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_cvoice_switch_set()
5487 ret |= ca0132_voicefx_set(codec, (spec->voicefx_val ? 1 : 0)); in ca0132_cvoice_switch_set()
5491 if (ca0132_use_alt_functions(spec)) in ca0132_cvoice_switch_set()
5501 struct ca0132_spec *spec = codec->spec; in ca0132_mic_boost_set() local
5505 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5508 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5516 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_set() local
5519 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_alt_mic_boost_set()
5553 struct ca0132_spec *spec = codec->spec; in ca0132_vnode_switch_set() local
5558 spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5560 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5570 spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5577 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5672 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_ctl_get() local
5677 *valp = spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5679 *valp = spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5688 struct ca0132_spec *spec = codec->spec; in ca0132_alt_slider_ctl_get() local
5693 *valp = spec->fx_ctl_val[idx]; in ca0132_alt_slider_ctl_get()
5731 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_put() local
5738 cur_val = &spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5740 cur_val = &spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5761 struct ca0132_spec *spec = codec->spec; in ca0132_alt_effect_slider_put() local
5768 if (spec->fx_ctl_val[idx] == *valp) in ca0132_alt_effect_slider_put()
5771 spec->fx_ctl_val[idx] = *valp; in ca0132_alt_effect_slider_put()
5808 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_get() local
5810 ucontrol->value.enumerated.item[0] = spec->mic_boost_enum_val; in ca0132_alt_mic_boost_get()
5818 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_put() local
5828 spec->mic_boost_enum_val = sel; in ca0132_alt_mic_boost_put()
5830 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_alt_mic_boost_put()
5831 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_mic_boost_put()
5862 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_get() local
5864 ucontrol->value.enumerated.item[0] = spec->ae5_headphone_gain_val; in ae5_headphone_gain_get()
5872 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_put() local
5882 spec->ae5_headphone_gain_val = sel; in ae5_headphone_gain_put()
5884 if (spec->out_enum_val == HEADPHONE_OUT) in ae5_headphone_gain_put()
5885 ae5_headphone_gain_set(codec, spec->ae5_headphone_gain_val); in ae5_headphone_gain_put()
5915 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_get() local
5917 ucontrol->value.enumerated.item[0] = spec->ae5_filter_val; in ae5_sound_filter_get()
5925 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_put() local
5935 spec->ae5_filter_val = sel; in ae5_sound_filter_put()
5965 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_get() local
5967 ucontrol->value.enumerated.item[0] = spec->in_enum_val; in ca0132_alt_input_source_get()
5975 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_put() local
5983 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_input_source_put()
5992 spec->in_enum_val = sel; in ca0132_alt_input_source_put()
6017 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_get() local
6019 ucontrol->value.enumerated.item[0] = spec->out_enum_val; in ca0132_alt_output_select_get()
6027 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_put() local
6038 spec->out_enum_val = sel; in ca0132_alt_output_select_put()
6040 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_output_select_put()
6068 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_get() local
6070 ucontrol->value.enumerated.item[0] = spec->channel_cfg_val; in ca0132_alt_speaker_channel_cfg_get()
6078 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_put() local
6088 spec->channel_cfg_val = sel; in ca0132_alt_speaker_channel_cfg_put()
6090 if (spec->out_enum_val == SPEAKER_OUT) in ca0132_alt_speaker_channel_cfg_put()
6121 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_get() local
6123 ucontrol->value.enumerated.item[0] = spec->smart_volume_setting; in ca0132_alt_svm_setting_get()
6131 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_put() local
6143 spec->smart_volume_setting = sel; in ca0132_alt_svm_setting_put()
6185 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_get() local
6187 ucontrol->value.enumerated.item[0] = spec->eq_preset_val; in ca0132_alt_eq_preset_get()
6195 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_put() local
6218 spec->eq_preset_val = sel; in ca0132_alt_eq_preset_put()
6242 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_get() local
6244 ucontrol->value.enumerated.item[0] = spec->voicefx_val; in ca0132_voicefx_get()
6252 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_put() local
6275 spec->voicefx_val = sel; in ca0132_voicefx_put()
6287 struct ca0132_spec *spec = codec->spec; in ca0132_switch_get() local
6295 *valp = spec->vnode_lswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6299 *valp = spec->vnode_rswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6307 *valp = spec->effects_switch[nid - EFFECT_START_NID]; in ca0132_switch_get()
6312 if (nid == spec->input_pins[0]) { in ca0132_switch_get()
6313 *valp = spec->cur_mic_boost; in ca0132_switch_get()
6318 *valp = spec->zxr_gain_set; in ca0132_switch_get()
6323 *valp = spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT]; in ca0132_switch_get()
6328 *valp = spec->bass_redirection_val; in ca0132_switch_get()
6339 struct ca0132_spec *spec = codec->spec; in ca0132_switch_put() local
6352 spec->vnode_lswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6356 spec->vnode_rswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6365 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6372 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6380 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6386 if (nid == spec->input_pins[0]) { in ca0132_switch_put()
6387 spec->cur_mic_boost = *valp; in ca0132_switch_put()
6388 if (ca0132_use_alt_functions(spec)) { in ca0132_switch_put()
6389 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_switch_put()
6393 if (spec->cur_mic_type != DIGITAL_MIC) in ca0132_switch_put()
6401 spec->zxr_gain_set = *valp; in ca0132_switch_put()
6402 if (spec->cur_out_type == HEADPHONE_OUT) in ca0132_switch_put()
6411 spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT] = *valp; in ca0132_switch_put()
6412 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6419 spec->bass_redirection_val = *valp; in ca0132_switch_put()
6420 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6441 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_volume_put() local
6450 lookup_val = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6457 lookup_val = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6473 struct ca0132_spec *spec = codec->spec; in ca0132_volume_info() local
6483 nid = spec->shared_out_nid; in ca0132_volume_info()
6493 nid = spec->shared_mic_nid; in ca0132_volume_info()
6511 struct ca0132_spec *spec = codec->spec; in ca0132_volume_get() local
6518 *valp = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6522 *valp = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6532 struct ca0132_spec *spec = codec->spec; in ca0132_volume_put() local
6542 spec->vnode_lvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6546 spec->vnode_rvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6579 struct ca0132_spec *spec = codec->spec; in ca0132_alt_volume_put() local
6597 spec->vnode_lvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6601 spec->vnode_rvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6619 struct ca0132_spec *spec = codec->spec; in ca0132_volume_tlv() local
6629 nid = spec->shared_out_nid; in ca0132_volume_tlv()
6639 nid = spec->shared_mic_nid; in ca0132_volume_tlv()
6692 struct ca0132_spec *spec = codec->spec; in add_fx_switch() local
6700 if (ca0132_use_alt_controls(spec) && (nid <= IN_EFFECT_END_NID)) in add_fx_switch()
7041 struct ca0132_spec *spec = codec->spec; in ca0132_build_controls() local
7046 for (i = 0; i < spec->num_mixers; i++) { in ca0132_build_controls()
7047 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in ca0132_build_controls()
7052 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
7053 snd_hda_set_vmaster_tlv(codec, spec->dacs[0], HDA_OUTPUT, in ca0132_build_controls()
7054 spec->tlv); in ca0132_build_controls()
7056 spec->tlv, ca0132_alt_follower_pfxs, in ca0132_build_controls()
7061 true, 0, &spec->vmaster_mute.sw_kctl); in ca0132_build_controls()
7072 if (ca0132_use_pci_mmio(spec)) { in ca0132_build_controls()
7089 if (ca0132_use_alt_controls(spec)) { in ca0132_build_controls()
7143 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
7169 if (ca0132_quirk(spec) != QUIRK_ZXR) { in ca0132_build_controls()
7176 switch (ca0132_quirk(spec)) { in ca0132_build_controls()
7199 err = snd_hda_jack_add_kctls(codec, &spec->autocfg); in ca0132_build_controls()
7203 if (spec->dig_out) { in ca0132_build_controls()
7204 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in ca0132_build_controls()
7205 spec->dig_out); in ca0132_build_controls()
7208 err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); in ca0132_build_controls()
7214 if (spec->dig_in) { in ca0132_build_controls()
7215 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in ca0132_build_controls()
7220 if (ca0132_use_alt_functions(spec)) in ca0132_build_controls()
7228 struct ca0132_spec *spec = codec->spec; in dbpro_build_controls() local
7231 if (spec->dig_out) { in dbpro_build_controls()
7232 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in dbpro_build_controls()
7233 spec->dig_out); in dbpro_build_controls()
7238 if (spec->dig_in) { in dbpro_build_controls()
7239 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in dbpro_build_controls()
7292 struct ca0132_spec *spec = codec->spec; in ca0132_build_pcms() local
7298 if (ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7304 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dacs[0]; in ca0132_build_pcms()
7306 spec->multiout.max_channels; in ca0132_build_pcms()
7309 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in ca0132_build_pcms()
7312 if (!ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7319 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[1]; in ca0132_build_pcms()
7327 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[2]; in ca0132_build_pcms()
7329 if (!spec->dig_out && !spec->dig_in) in ca0132_build_pcms()
7336 if (spec->dig_out) { in ca0132_build_pcms()
7339 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in ca0132_build_pcms()
7341 if (spec->dig_in) { in ca0132_build_pcms()
7344 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in ca0132_build_pcms()
7352 struct ca0132_spec *spec = codec->spec; in dbpro_build_pcms() local
7360 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in dbpro_build_pcms()
7363 if (!spec->dig_out && !spec->dig_in) in dbpro_build_pcms()
7370 if (spec->dig_out) { in dbpro_build_pcms()
7373 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in dbpro_build_pcms()
7375 if (spec->dig_in) { in dbpro_build_pcms()
7378 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in dbpro_build_pcms()
7433 struct ca0132_spec *spec = codec->spec; in ca0132_set_dmic() local
7447 val = spec->dmic_ctl; in ca0132_set_dmic()
7449 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7452 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7459 val = spec->dmic_ctl; in ca0132_set_dmic()
7462 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7465 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7477 struct ca0132_spec *spec = codec->spec; in ca0132_init_dmic() local
7490 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7500 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7510 if (ca0132_quirk(spec) == QUIRK_ALIENWARE_M17XR4) in ca0132_init_dmic()
7515 spec->dmic_ctl = val; in ca0132_init_dmic()
7516 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7525 struct ca0132_spec *spec = codec->spec; in ca0132_init_analog_mic2() local
7527 mutex_lock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7532 mutex_unlock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7537 struct ca0132_spec *spec = codec->spec; in ca0132_refresh_widget_caps() local
7543 for (i = 0; i < spec->multiout.num_dacs; i++) in ca0132_refresh_widget_caps()
7544 refresh_amp_caps(codec, spec->dacs[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7546 for (i = 0; i < spec->num_outputs; i++) in ca0132_refresh_widget_caps()
7547 refresh_amp_caps(codec, spec->out_pins[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7549 for (i = 0; i < spec->num_inputs; i++) { in ca0132_refresh_widget_caps()
7550 refresh_amp_caps(codec, spec->adcs[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7551 refresh_amp_caps(codec, spec->input_pins[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7615 struct ca0132_spec *spec = codec->spec; in ca0132_alt_start_dsp_audio_streams() local
7622 mutex_lock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7633 mutex_unlock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7642 mutex_lock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7655 mutex_unlock(&spec->chipio_mutex); in ca0132_alt_start_dsp_audio_streams()
7771 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_speaker_tuning() local
7775 switch (ca0132_quirk(spec)) { in ca0132_alt_init_speaker_tuning()
7815 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_analog_mics() local
7821 if (ca0132_quirk(spec) == QUIRK_R3DI) { in ca0132_alt_init_analog_mics()
7831 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_init_analog_mics()
7845 struct ca0132_spec *spec = codec->spec; in sbz_connect_streams() local
7847 mutex_lock(&spec->chipio_mutex); in sbz_connect_streams()
7863 mutex_unlock(&spec->chipio_mutex); in sbz_connect_streams()
7875 struct ca0132_spec *spec = codec->spec; in sbz_chipio_startup_data() local
7877 mutex_lock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7884 switch (ca0132_quirk(spec)) { in sbz_chipio_startup_data()
7902 mutex_unlock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7907 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_initial_mic_setup() local
7922 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_initial_mic_setup()
7938 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_register_set() local
7943 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7944 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7945 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7946 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7947 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7948 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7949 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7950 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7951 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7952 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7953 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7954 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7992 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_stream_setup() local
7994 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
8013 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
8018 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_startup_data() local
8020 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
8045 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
8050 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_setup_ports() local
8052 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
8066 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
8071 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_stream_setup() local
8073 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
8089 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
8108 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_setup_ports() local
8117 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8180 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8219 struct ca0132_spec *spec = codec->spec; in ca0132_setup_defaults() local
8224 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_setup_defaults()
8264 struct ca0132_spec *spec = codec->spec; in r3d_setup_defaults() local
8269 if (spec->dsp_state != DSP_DOWNLOADED) in r3d_setup_defaults()
8287 if (ca0132_quirk(spec) == QUIRK_R3DI) in r3d_setup_defaults()
8291 if (ca0132_quirk(spec) == QUIRK_R3D) { in r3d_setup_defaults()
8314 struct ca0132_spec *spec = codec->spec; in sbz_setup_defaults() local
8319 if (spec->dsp_state != DSP_DOWNLOADED) in sbz_setup_defaults()
8368 struct ca0132_spec *spec = codec->spec; in ae5_setup_defaults() local
8373 if (spec->dsp_state != DSP_DOWNLOADED) in ae5_setup_defaults()
8433 struct ca0132_spec *spec = codec->spec; in ae7_setup_defaults() local
8438 if (spec->dsp_state != DSP_DOWNLOADED) in ae7_setup_defaults()
8516 struct ca0132_spec *spec = codec->spec; in ca0132_init_flags() local
8518 if (ca0132_use_alt_functions(spec)) { in ca0132_init_flags()
8549 struct ca0132_spec *spec = codec->spec; in ca0132_init_params() local
8551 if (ca0132_use_alt_functions(spec)) { in ca0132_init_params()
8580 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp_images() local
8588 switch (ca0132_quirk(spec)) { in ca0132_download_dsp_images()
8635 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp() local
8641 if (spec->dsp_state == DSP_DOWNLOAD_FAILED) in ca0132_download_dsp()
8645 if (spec->dsp_state != DSP_DOWNLOADED) { in ca0132_download_dsp()
8646 spec->dsp_state = DSP_DOWNLOADING; in ca0132_download_dsp()
8649 spec->dsp_state = DSP_DOWNLOAD_FAILED; in ca0132_download_dsp()
8651 spec->dsp_state = DSP_DOWNLOADED; in ca0132_download_dsp()
8655 if (spec->dsp_state == DSP_DOWNLOADED && !ca0132_use_alt_functions(spec)) in ca0132_download_dsp()
8662 struct ca0132_spec *spec = codec->spec; in ca0132_process_dsp_response() local
8666 if (spec->wait_scp) { in ca0132_process_dsp_response()
8668 spec->wait_scp = 0; in ca0132_process_dsp_response()
8677 struct ca0132_spec *spec = codec->spec; in hp_callback() local
8686 schedule_delayed_work(&spec->unsol_hp_work, msecs_to_jiffies(500)); in hp_callback()
8691 struct ca0132_spec *spec = codec->spec; in amic_callback() local
8693 if (ca0132_use_alt_functions(spec)) in amic_callback()
8701 struct ca0132_spec *spec = codec->spec; in ca0132_setup_unsol() local
8702 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_hp, hp_callback); in ca0132_setup_unsol()
8703 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_amic1, in ca0132_setup_unsol()
8708 if (ca0132_use_alt_functions(spec)) in ca0132_setup_unsol()
8710 spec->unsol_tag_front_hp, hp_callback); in ca0132_setup_unsol()
8790 struct ca0132_spec *spec = codec->spec; in ca0132_init_chip() local
8795 mutex_init(&spec->chipio_mutex); in ca0132_init_chip()
8803 if (ca0132_use_alt_functions(spec)) { in ca0132_init_chip()
8813 spec->cur_out_type = SPEAKER_OUT; in ca0132_init_chip()
8814 if (!ca0132_use_alt_functions(spec)) in ca0132_init_chip()
8815 spec->cur_mic_type = DIGITAL_MIC; in ca0132_init_chip()
8817 spec->cur_mic_type = REAR_MIC; in ca0132_init_chip()
8819 spec->cur_mic_boost = 0; in ca0132_init_chip()
8822 spec->vnode_lvol[i] = 0x5a; in ca0132_init_chip()
8823 spec->vnode_rvol[i] = 0x5a; in ca0132_init_chip()
8824 spec->vnode_lswitch[i] = 0; in ca0132_init_chip()
8825 spec->vnode_rswitch[i] = 0; in ca0132_init_chip()
8834 spec->effects_switch[i] = on ? 1 : 0; in ca0132_init_chip()
8840 if (ca0132_use_alt_controls(spec)) { in ca0132_init_chip()
8842 spec->speaker_range_val[0] = 1; in ca0132_init_chip()
8843 spec->speaker_range_val[1] = 1; in ca0132_init_chip()
8845 spec->xbass_xover_freq = 8; in ca0132_init_chip()
8847 spec->fx_ctl_val[i] = effect_slider_defaults[i]; in ca0132_init_chip()
8849 spec->bass_redirect_xover_freq = 8; in ca0132_init_chip()
8852 spec->voicefx_val = 0; in ca0132_init_chip()
8853 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID] = 1; in ca0132_init_chip()
8854 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] = 0; in ca0132_init_chip()
8861 if (ca0132_quirk(spec) == QUIRK_ZXR) in ca0132_init_chip()
8862 spec->in_enum_val = REAR_MIC; in ca0132_init_chip()
8883 struct ca0132_spec *spec = codec->spec; in sbz_region2_exit() local
8887 writeb(0x0, spec->mem_base + 0x100); in sbz_region2_exit()
8889 writeb(0xb3, spec->mem_base + 0x304); in sbz_region2_exit()
9089 struct ca0132_spec *spec = codec->spec; in sbz_dsp_startup_check() local
9096 if (spec->startup_check_entered) in sbz_dsp_startup_check()
9099 spec->startup_check_entered = true; in sbz_dsp_startup_check()
9121 spec->dsp_state = DSP_DOWNLOAD_INIT; in sbz_dsp_startup_check()
9169 struct ca0132_spec *spec = codec->spec; in sbz_pre_dsp_setup() local
9171 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9172 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9282 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_sbz() local
9288 writel(0x00000000, spec->mem_base + addr[i]); in ca0132_mmio_init_sbz()
9291 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9311 writel(tmp[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9315 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9327 writel(data[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9332 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_ae5() local
9340 if (ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9341 writel(0x00000680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9342 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9350 if (i == 21 && ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9351 writel(0x00800001, spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9355 writel(data[i], spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9358 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init_ae5()
9359 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9364 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init() local
9366 switch (ca0132_quirk(spec)) { in ca0132_mmio_init()
9397 struct ca0132_spec *spec = codec->spec; in ae5_register_set() local
9404 if (ca0132_quirk(spec) == QUIRK_AE7) in ae5_register_set()
9410 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9421 writeb(tmp[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9428 writeb(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9431 writel(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9433 writel(0x00800001, spec->mem_base + 0x20c); in ae5_register_set()
9435 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9445 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_register_set()
9456 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init() local
9460 switch (ca0132_quirk(spec)) { in ca0132_alt_init()
9465 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9466 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9474 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9479 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9480 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9486 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9487 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9493 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9494 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9502 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9503 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9513 struct ca0132_spec *spec = codec->spec; in ca0132_init() local
9514 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_init()
9528 if (spec->dsp_state == DSP_DOWNLOADED) { in ca0132_init()
9531 spec->dsp_reload = true; in ca0132_init()
9532 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9534 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9540 if (spec->dsp_state != DSP_DOWNLOAD_FAILED) in ca0132_init()
9541 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9542 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; in ca0132_init()
9544 if (ca0132_use_pci_mmio(spec)) in ca0132_init()
9549 if (ca0132_quirk(spec) == QUIRK_AE5 || ca0132_quirk(spec) == QUIRK_AE7) in ca0132_init()
9555 snd_hda_sequence_write(codec, spec->base_init_verbs); in ca0132_init()
9557 if (ca0132_use_alt_functions(spec)) in ca0132_init()
9564 switch (ca0132_quirk(spec)) { in ca0132_init()
9586 for (i = 0; i < spec->num_outputs; i++) in ca0132_init()
9587 init_output(codec, spec->out_pins[i], spec->dacs[0]); in ca0132_init()
9589 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in ca0132_init()
9591 for (i = 0; i < spec->num_inputs; i++) in ca0132_init()
9592 init_input(codec, spec->input_pins[i], spec->adcs[i]); in ca0132_init()
9594 init_input(codec, cfg->dig_in_pin, spec->dig_in); in ca0132_init()
9596 if (!ca0132_use_alt_functions(spec)) { in ca0132_init()
9597 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_init()
9604 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9607 snd_hda_sequence_write(codec, spec->spec_init_verbs); in ca0132_init()
9608 if (ca0132_use_alt_functions(spec)) { in ca0132_init()
9622 if (spec->dsp_reload) { in ca0132_init()
9623 spec->dsp_reload = false; in ca0132_init()
9634 struct ca0132_spec *spec = codec->spec; in dbpro_init() local
9635 struct auto_pin_cfg *cfg = &spec->autocfg; in dbpro_init()
9638 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in dbpro_init()
9639 init_input(codec, cfg->dig_in_pin, spec->dig_in); in dbpro_init()
9641 for (i = 0; i < spec->num_inputs; i++) in dbpro_init()
9642 init_input(codec, spec->input_pins[i], spec->adcs[i]); in dbpro_init()
9649 struct ca0132_spec *spec = codec->spec; in ca0132_free() local
9651 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_free()
9653 switch (ca0132_quirk(spec)) { in ca0132_free()
9676 snd_hda_sequence_write(codec, spec->base_exit_verbs); in ca0132_free()
9681 if (spec->mem_base) in ca0132_free()
9682 pci_iounmap(codec->bus->pci, spec->mem_base); in ca0132_free()
9684 kfree(spec->spec_init_verbs); in ca0132_free()
9685 kfree(codec->spec); in ca0132_free()
9690 struct ca0132_spec *spec = codec->spec; in dbpro_free() local
9694 kfree(spec->spec_init_verbs); in dbpro_free()
9695 kfree(codec->spec); in dbpro_free()
9701 struct ca0132_spec *spec = codec->spec; in ca0132_suspend() local
9703 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_suspend()
9728 struct ca0132_spec *spec = codec->spec; in ca0132_config() local
9730 spec->dacs[0] = 0x2; in ca0132_config()
9731 spec->dacs[1] = 0x3; in ca0132_config()
9732 spec->dacs[2] = 0x4; in ca0132_config()
9734 spec->multiout.dac_nids = spec->dacs; in ca0132_config()
9735 spec->multiout.num_dacs = 3; in ca0132_config()
9737 if (!ca0132_use_alt_functions(spec)) in ca0132_config()
9738 spec->multiout.max_channels = 2; in ca0132_config()
9740 spec->multiout.max_channels = 6; in ca0132_config()
9742 switch (ca0132_quirk(spec)) { in ca0132_config()
9775 switch (ca0132_quirk(spec)) { in ca0132_config()
9777 spec->num_outputs = 2; in ca0132_config()
9778 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9779 spec->out_pins[1] = 0x0f; in ca0132_config()
9780 spec->shared_out_nid = 0x2; in ca0132_config()
9781 spec->unsol_tag_hp = 0x0f; in ca0132_config()
9783 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9784 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9785 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9787 spec->num_inputs = 3; in ca0132_config()
9788 spec->input_pins[0] = 0x12; in ca0132_config()
9789 spec->input_pins[1] = 0x11; in ca0132_config()
9790 spec->input_pins[2] = 0x13; in ca0132_config()
9791 spec->shared_mic_nid = 0x7; in ca0132_config()
9792 spec->unsol_tag_amic1 = 0x11; in ca0132_config()
9796 spec->num_outputs = 2; in ca0132_config()
9797 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9798 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9799 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9800 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9801 spec->shared_out_nid = 0x2; in ca0132_config()
9802 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9803 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9805 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9806 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9807 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9809 spec->num_inputs = 2; in ca0132_config()
9810 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9811 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9812 spec->shared_mic_nid = 0x7; in ca0132_config()
9813 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9816 spec->dig_out = 0x05; in ca0132_config()
9817 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9818 spec->dig_in = 0x09; in ca0132_config()
9821 spec->num_outputs = 2; in ca0132_config()
9822 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9823 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9824 spec->out_pins[2] = 0x10; /* Center/LFE */ in ca0132_config()
9825 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9826 spec->shared_out_nid = 0x2; in ca0132_config()
9827 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9828 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9830 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9831 spec->adcs[1] = 0x8; /* Not connected, no front mic */ in ca0132_config()
9832 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9834 spec->num_inputs = 2; in ca0132_config()
9835 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9836 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9837 spec->shared_mic_nid = 0x7; in ca0132_config()
9838 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9841 spec->adcs[0] = 0x8; /* ZxR DBPro Aux In */ in ca0132_config()
9843 spec->num_inputs = 1; in ca0132_config()
9844 spec->input_pins[0] = 0x11; /* RCA Line-in */ in ca0132_config()
9846 spec->dig_out = 0x05; in ca0132_config()
9847 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9849 spec->dig_in = 0x09; in ca0132_config()
9853 spec->num_outputs = 2; in ca0132_config()
9854 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9855 spec->out_pins[1] = 0x11; /* Rear headphone out */ in ca0132_config()
9856 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9857 spec->out_pins[3] = 0x0F; /* Rear surround */ in ca0132_config()
9858 spec->shared_out_nid = 0x2; in ca0132_config()
9859 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9860 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9862 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9863 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9864 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9866 spec->num_inputs = 2; in ca0132_config()
9867 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9868 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9869 spec->shared_mic_nid = 0x7; in ca0132_config()
9870 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9873 spec->dig_out = 0x05; in ca0132_config()
9874 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9877 spec->num_outputs = 2; in ca0132_config()
9878 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9879 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9880 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9881 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9882 spec->shared_out_nid = 0x2; in ca0132_config()
9883 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9884 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9886 spec->adcs[0] = 0x07; /* Rear Mic / Line-in */ in ca0132_config()
9887 spec->adcs[1] = 0x08; /* Front Mic, but only if no DSP */ in ca0132_config()
9888 spec->adcs[2] = 0x0a; /* what u hear */ in ca0132_config()
9890 spec->num_inputs = 2; in ca0132_config()
9891 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9892 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9893 spec->shared_mic_nid = 0x7; in ca0132_config()
9894 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9897 spec->dig_out = 0x05; in ca0132_config()
9898 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9901 spec->num_outputs = 2; in ca0132_config()
9902 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9903 spec->out_pins[1] = 0x10; /* headphone out */ in ca0132_config()
9904 spec->shared_out_nid = 0x2; in ca0132_config()
9905 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9907 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9908 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9909 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9911 spec->num_inputs = 3; in ca0132_config()
9912 spec->input_pins[0] = 0x12; in ca0132_config()
9913 spec->input_pins[1] = 0x11; in ca0132_config()
9914 spec->input_pins[2] = 0x13; in ca0132_config()
9915 spec->shared_mic_nid = 0x7; in ca0132_config()
9916 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9919 spec->dig_out = 0x05; in ca0132_config()
9920 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9921 spec->dig_in = 0x09; in ca0132_config()
9930 struct ca0132_spec *spec = codec->spec; in ca0132_prepare_verbs() local
9932 spec->chip_init_verbs = ca0132_init_verbs0; in ca0132_prepare_verbs()
9937 if (ca0132_use_pci_mmio(spec)) in ca0132_prepare_verbs()
9938 spec->desktop_init_verbs = ca0132_init_verbs1; in ca0132_prepare_verbs()
9939 spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS, in ca0132_prepare_verbs()
9942 if (!spec->spec_init_verbs) in ca0132_prepare_verbs()
9946 spec->spec_init_verbs[0].nid = 0x0b; in ca0132_prepare_verbs()
9947 spec->spec_init_verbs[0].param = 0x78D; in ca0132_prepare_verbs()
9948 spec->spec_init_verbs[0].verb = 0x00; in ca0132_prepare_verbs()
9992 struct ca0132_spec *spec; in patch_ca0132() local
9997 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_ca0132()
9998 if (!spec) in patch_ca0132()
10000 codec->spec = spec; in patch_ca0132()
10001 spec->codec = codec; in patch_ca0132()
10005 if (ca0132_quirk(spec) == QUIRK_SBZ) in patch_ca0132()
10008 if (ca0132_quirk(spec) == QUIRK_ZXR_DBPRO) in patch_ca0132()
10017 spec->dsp_state = DSP_DOWNLOAD_INIT; in patch_ca0132()
10018 spec->num_mixers = 1; in patch_ca0132()
10021 switch (ca0132_quirk(spec)) { in patch_ca0132()
10023 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10027 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10033 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10037 spec->mixers[0] = r3di_mixer; in patch_ca0132()
10041 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10045 spec->mixers[0] = desktop_mixer; in patch_ca0132()
10049 spec->mixers[0] = ca0132_mixer; in patch_ca0132()
10054 switch (ca0132_quirk(spec)) { in patch_ca0132()
10060 spec->use_alt_controls = true; in patch_ca0132()
10061 spec->use_alt_functions = true; in patch_ca0132()
10062 spec->use_pci_mmio = true; in patch_ca0132()
10065 spec->use_alt_controls = true; in patch_ca0132()
10066 spec->use_alt_functions = true; in patch_ca0132()
10067 spec->use_pci_mmio = false; in patch_ca0132()
10070 spec->use_alt_controls = false; in patch_ca0132()
10071 spec->use_alt_functions = false; in patch_ca0132()
10072 spec->use_pci_mmio = false; in patch_ca0132()
10077 if (spec->use_pci_mmio) { in patch_ca0132()
10078 spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); in patch_ca0132()
10079 if (spec->mem_base == NULL) { in patch_ca0132()
10086 spec->base_init_verbs = ca0132_base_init_verbs; in patch_ca0132()
10087 spec->base_exit_verbs = ca0132_base_exit_verbs; in patch_ca0132()
10089 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); in patch_ca0132()
10099 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); in patch_ca0132()