Lines Matching full:spec

1148 #define ca0132_quirk(spec)		((spec)->quirk)  argument
1149 #define ca0132_use_pci_mmio(spec) ((spec)->use_pci_mmio) argument
1150 #define ca0132_use_alt_functions(spec) ((spec)->use_alt_functions) argument
1151 #define ca0132_use_alt_controls(spec) ((spec)->use_alt_controls) argument
1153 #define ca0132_quirk(spec) ({ (void)(spec); QUIRK_NONE; }) argument
1154 #define ca0132_use_alt_functions(spec) ({ (void)(spec); false; }) argument
1155 #define ca0132_use_pci_mmio(spec) ({ (void)(spec); false; }) argument
1156 #define ca0132_use_alt_controls(spec) ({ (void)(spec); false; }) argument
1534 struct ca0132_spec *spec = codec->spec; in chipio_write_address() local
1537 if (spec->curr_chip_addx == chip_addx) in chipio_write_address()
1550 spec->curr_chip_addx = (res < 0) ? ~0U : chip_addx; in chipio_write_address()
1560 struct ca0132_spec *spec = codec->spec; in chipio_write_data() local
1574 spec->curr_chip_addx = (res != -EIO) ? in chipio_write_data()
1575 (spec->curr_chip_addx + 4) : ~0U; in chipio_write_data()
1605 struct ca0132_spec *spec = codec->spec; in chipio_read_data() local
1625 spec->curr_chip_addx = (res != -EIO) ? in chipio_read_data()
1626 (spec->curr_chip_addx + 4) : ~0U; in chipio_read_data()
1637 struct ca0132_spec *spec = codec->spec; in chipio_write() local
1640 mutex_lock(&spec->chipio_mutex); in chipio_write()
1652 mutex_unlock(&spec->chipio_mutex); in chipio_write()
1688 struct ca0132_spec *spec = codec->spec; in chipio_write_multiple() local
1691 mutex_lock(&spec->chipio_mutex); in chipio_write_multiple()
1698 mutex_unlock(&spec->chipio_mutex); in chipio_write_multiple()
1710 struct ca0132_spec *spec = codec->spec; in chipio_read() local
1713 mutex_lock(&spec->chipio_mutex); in chipio_read()
1725 mutex_unlock(&spec->chipio_mutex); in chipio_read()
1751 struct ca0132_spec *spec = codec->spec; in chipio_set_control_param() local
1759 mutex_lock(&spec->chipio_mutex); in chipio_set_control_param()
1768 mutex_unlock(&spec->chipio_mutex); in chipio_set_control_param()
1877 struct ca0132_spec *spec = codec->spec; in chipio_enable_clocks() local
1879 mutex_lock(&spec->chipio_mutex); in chipio_enable_clocks()
1892 mutex_unlock(&spec->chipio_mutex); in chipio_enable_clocks()
1938 struct ca0132_spec *spec = codec->spec; in dspio_write() local
1943 mutex_lock(&spec->chipio_mutex); in dspio_write()
1958 mutex_unlock(&spec->chipio_mutex); in dspio_write()
2113 struct ca0132_spec *spec = codec->spec; in dspio_get_response_data() local
2120 if ((data & 0x00ffffff) == spec->wait_scp_header) { in dspio_get_response_data()
2121 spec->scp_resp_header = data; in dspio_get_response_data()
2122 spec->scp_resp_count = data >> 27; in dspio_get_response_data()
2123 count = spec->wait_num_data; in dspio_get_response_data()
2124 dspio_read_multiple(codec, spec->scp_resp_data, in dspio_get_response_data()
2125 &spec->scp_resp_count, count); in dspio_get_response_data()
2142 struct ca0132_spec *spec = codec->spec; in dspio_send_scp_message() local
2169 spec->wait_scp_header = *((unsigned int *)send_buf); in dspio_send_scp_message()
2174 spec->wait_scp_header &= 0xffff0000; in dspio_send_scp_message()
2175 spec->wait_scp_header |= (resp_src_id << 8) | (resp_target_id); in dspio_send_scp_message()
2176 spec->wait_num_data = return_buf_size/sizeof(unsigned int) - 1; in dspio_send_scp_message()
2177 spec->wait_scp = 1; in dspio_send_scp_message()
2184 spec->wait_scp = 0; in dspio_send_scp_message()
2193 } while (spec->wait_scp && time_before(jiffies, timeout)); in dspio_send_scp_message()
2195 if (!spec->wait_scp) { in dspio_send_scp_message()
2197 memcpy(&ret_msg->hdr, &spec->scp_resp_header, 4); in dspio_send_scp_message()
2198 memcpy(&ret_msg->data, spec->scp_resp_data, in dspio_send_scp_message()
2199 spec->wait_num_data); in dspio_send_scp_message()
2200 *bytes_returned = (spec->scp_resp_count + 1) * 4; in dspio_send_scp_message()
2205 spec->wait_scp = 0; in dspio_send_scp_message()
2918 struct ca0132_spec *spec = codec->spec; in dma_reset() local
2930 spec->dsp_stream_id = status; in dma_reset()
2981 struct ca0132_spec *spec = dma->codec->spec; in dma_get_stream_id() local
2983 return spec->dsp_stream_id; in dma_get_stream_id()
3276 struct ca0132_spec *spec = codec->spec; in dspxfr_image() local
3320 spec->dsp_stream_id = status; in dspxfr_image()
3392 struct ca0132_spec *spec = codec->spec; in dspload_post_setup() local
3394 if (!ca0132_use_alt_functions(spec)) { in dspload_post_setup()
3526 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_gpio_set() local
3532 writew(gpio_data, spec->mem_base + 0x320); in ca0113_mmio_gpio_set()
3546 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set() local
3549 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3550 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3551 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3552 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3553 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3555 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3556 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set()
3558 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3563 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set()
3569 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set()
3570 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set()
3571 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set()
3573 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3574 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3575 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3576 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3585 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set_type2() local
3588 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3589 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3590 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3591 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3592 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3594 writel(0x00800003, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3595 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set_type2()
3597 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3602 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set_type2()
3604 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set_type2()
3605 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set_type2()
3606 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set_type2()
3608 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3609 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3610 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3611 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3624 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_init() local
3626 switch (ca0132_quirk(spec)) { in ca0132_gpio_init()
3647 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_setup() local
3649 switch (ca0132_quirk(spec)) { in ca0132_gpio_setup()
3773 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_prepare() local
3775 snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); in ca0132_playback_pcm_prepare()
3784 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_cleanup() local
3786 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_playback_pcm_cleanup()
3791 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_playback_pcm_cleanup()
3794 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_playback_pcm_cleanup()
3803 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_delay() local
3807 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_playback_pcm_delay()
3811 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) { in ca0132_playback_pcm_delay()
3812 if ((spec->effects_switch[SURROUND - EFFECT_START_NID]) || in ca0132_playback_pcm_delay()
3813 (spec->effects_switch[DIALOG_PLUS - EFFECT_START_NID])) in ca0132_playback_pcm_delay()
3818 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_playback_pcm_delay()
3831 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_open() local
3832 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in ca0132_dig_playback_pcm_open()
3841 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_prepare() local
3842 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in ca0132_dig_playback_pcm_prepare()
3850 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_cleanup() local
3851 return snd_hda_multi_out_dig_cleanup(codec, &spec->multiout); in ca0132_dig_playback_pcm_cleanup()
3858 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_close() local
3859 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in ca0132_dig_playback_pcm_close()
3881 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_cleanup() local
3883 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_capture_pcm_cleanup()
3894 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_delay() local
3898 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_capture_pcm_delay()
3901 if (spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_capture_pcm_delay()
4126 struct ca0132_spec *spec = codec->spec; in tuning_ctl_get() local
4131 *valp = spec->cur_ctl_vals[idx]; in tuning_ctl_get()
4152 struct ca0132_spec *spec = codec->spec; in voice_focus_ctl_put() local
4159 if (spec->cur_ctl_vals[idx] == *valp) in voice_focus_ctl_put()
4162 spec->cur_ctl_vals[idx] = *valp; in voice_focus_ctl_put()
4187 struct ca0132_spec *spec = codec->spec; in mic_svm_ctl_put() local
4194 if (spec->cur_ctl_vals[idx] == *valp) in mic_svm_ctl_put()
4197 spec->cur_ctl_vals[idx] = *valp; in mic_svm_ctl_put()
4222 struct ca0132_spec *spec = codec->spec; in equalizer_ctl_put() local
4229 if (spec->cur_ctl_vals[idx] == *valp) in equalizer_ctl_put()
4232 spec->cur_ctl_vals[idx] = *valp; in equalizer_ctl_put()
4303 struct ca0132_spec *spec = codec->spec; in ca0132_init_tuning_defaults() local
4307 spec->cur_ctl_vals[WEDGE_ANGLE - TUNING_CTL_START_NID] = 10; in ca0132_init_tuning_defaults()
4309 spec->cur_ctl_vals[SVM_LEVEL - TUNING_CTL_START_NID] = 74; in ca0132_init_tuning_defaults()
4313 spec->cur_ctl_vals[i] = 24; in ca0132_init_tuning_defaults()
4325 struct ca0132_spec *spec = codec->spec; in ca0132_select_out() local
4336 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_select_out()
4339 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp); in ca0132_select_out()
4342 spec->vnode_lswitch[VNID_HP_SEL - VNODE_START_NID]; in ca0132_select_out()
4345 spec->cur_out_type = HEADPHONE_OUT; in ca0132_select_out()
4347 spec->cur_out_type = SPEAKER_OUT; in ca0132_select_out()
4349 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_select_out()
4363 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4365 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4367 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4369 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4373 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4375 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4378 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4380 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4396 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4398 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4400 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4402 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4406 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4408 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4411 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4413 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4429 struct ca0132_spec *spec = codec->spec; in ae5_mmio_select_out() local
4433 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_mmio_select_out()
4441 out_cmds->vals[spec->cur_out_type][i]); in ae5_mmio_select_out()
4446 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_full_range_speaker() local
4447 int quirk = ca0132_quirk(spec); in ca0132_alt_set_full_range_speaker()
4452 if (spec->channel_cfg_val == SPEAKER_CHANNELS_4_0 in ca0132_alt_set_full_range_speaker()
4453 || spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_set_full_range_speaker()
4457 tmp = spec->speaker_range_val[0] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4464 tmp = spec->speaker_range_val[1] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4492 struct ca0132_spec *spec = codec->spec; in ca0132_alt_surround_set_bass_redirection() local
4496 if (val && spec->channel_cfg_val != SPEAKER_CHANNELS_4_0 && in ca0132_alt_surround_set_bass_redirection()
4497 spec->channel_cfg_val != SPEAKER_CHANNELS_2_0) in ca0132_alt_surround_set_bass_redirection()
4508 tmp = float_xbass_xover_lookup[spec->xbass_xover_freq]; in ca0132_alt_surround_set_bass_redirection()
4525 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_get_quirk_data() local
4526 int quirk = ca0132_quirk(spec); in ca0132_alt_select_out_get_quirk_data()
4542 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_quirk_set() local
4550 out_info = &quirk_data->out_set_info[spec->cur_out_type]; in ca0132_alt_select_out_quirk_set()
4593 if (spec->cur_out_type != HEADPHONE_OUT) { in ca0132_alt_select_out_quirk_set()
4601 spec->ae5_headphone_gain_val); in ca0132_alt_select_out_quirk_set()
4604 spec->zxr_gain_set); in ca0132_alt_select_out_quirk_set()
4634 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out() local
4640 hda_nid_t headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4646 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_select_out()
4654 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp) || in ca0132_alt_select_out()
4655 snd_hda_jack_detect(codec, spec->unsol_tag_front_hp); in ca0132_alt_select_out()
4658 spec->cur_out_type = HEADPHONE_OUT; in ca0132_alt_select_out()
4660 spec->cur_out_type = SPEAKER_OUT; in ca0132_alt_select_out()
4662 spec->cur_out_type = spec->out_enum_val; in ca0132_alt_select_out()
4664 outfx_set = spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]; in ca0132_alt_select_out()
4674 switch (spec->cur_out_type) { in ca0132_alt_select_out()
4679 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4683 ca0132_set_out_node_pincfg(codec, spec->out_pins[1], 0, 0); in ca0132_alt_select_out()
4685 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 1, 0); in ca0132_alt_select_out()
4687 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 1, 0); in ca0132_alt_select_out()
4689 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 1, 0); in ca0132_alt_select_out()
4696 if (!outfx_set && spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_select_out()
4699 tmp = speaker_channel_cfgs[spec->channel_cfg_val].val; in ca0132_alt_select_out()
4708 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4712 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 0, 0); in ca0132_alt_select_out()
4713 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 0, 0); in ca0132_alt_select_out()
4714 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 0, 0); in ca0132_alt_select_out()
4717 if (snd_hda_jack_detect(codec, spec->unsol_tag_front_hp)) in ca0132_alt_select_out()
4718 headphone_nid = spec->out_pins[2]; in ca0132_alt_select_out()
4719 else if (snd_hda_jack_detect(codec, spec->unsol_tag_hp)) in ca0132_alt_select_out()
4720 headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4740 spec->effects_switch[X_BASS - EFFECT_START_NID]); in ca0132_alt_select_out()
4756 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_alt_select_out()
4758 spec->bass_redirection_val); in ca0132_alt_select_out()
4768 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_alt_select_out()
4782 struct ca0132_spec *spec = container_of( in ca0132_unsol_hp_delayed() local
4786 if (ca0132_use_alt_functions(spec)) in ca0132_unsol_hp_delayed()
4787 ca0132_alt_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4789 ca0132_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4791 jack = snd_hda_jack_tbl_get(spec->codec, spec->unsol_tag_hp); in ca0132_unsol_hp_delayed()
4794 snd_hda_jack_report_sync(spec->codec); in ca0132_unsol_hp_delayed()
4810 struct ca0132_spec *spec = codec->spec; in ca0132_set_vipsource() local
4813 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_set_vipsource()
4817 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_set_vipsource()
4822 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4832 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4848 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_vipsource() local
4851 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_alt_set_vipsource()
4860 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_alt_set_vipsource()
4861 (val == 0) || spec->in_enum_val == REAR_LINE_IN) { in ca0132_alt_set_vipsource()
4870 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4874 if (spec->in_enum_val == REAR_LINE_IN) in ca0132_alt_set_vipsource()
4877 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_alt_set_vipsource()
4889 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4892 if (spec->effects_switch[VOICE_FOCUS - EFFECT_START_NID]) in ca0132_alt_set_vipsource()
4919 struct ca0132_spec *spec = codec->spec; in ca0132_select_mic() local
4927 auto_jack = spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_select_mic()
4930 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_amic1); in ca0132_select_mic()
4933 spec->vnode_lswitch[VNID_AMIC1_SEL - VNODE_START_NID]; in ca0132_select_mic()
4936 spec->cur_mic_type = LINE_MIC_IN; in ca0132_select_mic()
4938 spec->cur_mic_type = DIGITAL_MIC; in ca0132_select_mic()
4940 if (spec->cur_mic_type == DIGITAL_MIC) { in ca0132_select_mic()
4947 spec->effects_switch in ca0132_select_mic()
4953 ca0132_mic_boost_set(codec, spec->cur_mic_boost); in ca0132_select_mic()
4971 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_in() local
4981 spec->cur_mic_type = spec->in_enum_val; in ca0132_alt_select_in()
4983 switch (spec->cur_mic_type) { in ca0132_alt_select_in()
4985 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5018 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5025 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5041 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5045 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5070 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5073 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_select_in()
5079 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5092 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5114 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5122 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5134 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5150 struct ca0132_spec *spec = codec->spec; in ca0132_is_vnode_effective() local
5155 nid = spec->shared_out_nid; in ca0132_is_vnode_effective()
5158 nid = spec->shared_mic_nid; in ca0132_is_vnode_effective()
5176 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_set() local
5181 tmp = spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] ? in ca0132_voicefx_set()
5198 struct ca0132_spec *spec = codec->spec; in ca0132_effects_set() local
5210 if (!spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_effects_set()
5212 if (spec->cur_out_type == SPEAKER_OUT && nid == X_BASS) { in ca0132_effects_set()
5213 channel_cfg = spec->channel_cfg_val; in ca0132_effects_set()
5223 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_effects_set()
5227 if ((nid == VOICE_FOCUS) && (spec->cur_mic_type != DIGITAL_MIC)) in ca0132_effects_set()
5231 if ((nid == VOICE_FOCUS) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5232 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5233 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5236 if (spec->effects_switch[VOICE_FOCUS - in ca0132_effects_set()
5250 if ((nid == NOISE_REDUCTION) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5251 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5252 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5254 if (spec->effects_switch[NOISE_REDUCTION - in ca0132_effects_set()
5266 if (ca0132_use_alt_functions(spec) && in ca0132_effects_set()
5267 spec->in_enum_val == REAR_LINE_IN) in ca0132_effects_set()
5289 struct ca0132_spec *spec = codec->spec; in ca0132_pe_switch_set() local
5294 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]); in ca0132_pe_switch_set()
5296 if (ca0132_use_alt_functions(spec)) in ca0132_pe_switch_set()
5303 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_pe_switch_set()
5311 struct ca0132_spec *spec = codec->spec; in stop_mic1() local
5312 unsigned int oldval = snd_hda_codec_read(codec, spec->adcs[0], 0, in stop_mic1()
5315 snd_hda_codec_write(codec, spec->adcs[0], 0, in stop_mic1()
5324 struct ca0132_spec *spec = codec->spec; in resume_mic1() local
5327 snd_hda_codec_write(codec, spec->adcs[0], 0, in resume_mic1()
5337 struct ca0132_spec *spec = codec->spec; in ca0132_cvoice_switch_set() local
5343 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]); in ca0132_cvoice_switch_set()
5349 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_cvoice_switch_set()
5352 ret |= ca0132_voicefx_set(codec, (spec->voicefx_val ? 1 : 0)); in ca0132_cvoice_switch_set()
5356 if (ca0132_use_alt_functions(spec)) in ca0132_cvoice_switch_set()
5366 struct ca0132_spec *spec = codec->spec; in ca0132_mic_boost_set() local
5370 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5373 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5381 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_set() local
5384 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_alt_mic_boost_set()
5418 struct ca0132_spec *spec = codec->spec; in ca0132_vnode_switch_set() local
5423 spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5425 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5435 spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5442 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5537 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_ctl_get() local
5542 *valp = spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5544 *valp = spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5553 struct ca0132_spec *spec = codec->spec; in ca0132_alt_slider_ctl_get() local
5558 *valp = spec->fx_ctl_val[idx]; in ca0132_alt_slider_ctl_get()
5596 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_put() local
5603 cur_val = &spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5605 cur_val = &spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5626 struct ca0132_spec *spec = codec->spec; in ca0132_alt_effect_slider_put() local
5633 if (spec->fx_ctl_val[idx] == *valp) in ca0132_alt_effect_slider_put()
5636 spec->fx_ctl_val[idx] = *valp; in ca0132_alt_effect_slider_put()
5673 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_get() local
5675 ucontrol->value.enumerated.item[0] = spec->mic_boost_enum_val; in ca0132_alt_mic_boost_get()
5683 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_put() local
5693 spec->mic_boost_enum_val = sel; in ca0132_alt_mic_boost_put()
5695 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_alt_mic_boost_put()
5696 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_mic_boost_put()
5727 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_get() local
5729 ucontrol->value.enumerated.item[0] = spec->ae5_headphone_gain_val; in ae5_headphone_gain_get()
5737 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_put() local
5747 spec->ae5_headphone_gain_val = sel; in ae5_headphone_gain_put()
5749 if (spec->out_enum_val == HEADPHONE_OUT) in ae5_headphone_gain_put()
5750 ae5_headphone_gain_set(codec, spec->ae5_headphone_gain_val); in ae5_headphone_gain_put()
5780 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_get() local
5782 ucontrol->value.enumerated.item[0] = spec->ae5_filter_val; in ae5_sound_filter_get()
5790 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_put() local
5800 spec->ae5_filter_val = sel; in ae5_sound_filter_put()
5830 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_get() local
5832 ucontrol->value.enumerated.item[0] = spec->in_enum_val; in ca0132_alt_input_source_get()
5840 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_put() local
5848 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_input_source_put()
5857 spec->in_enum_val = sel; in ca0132_alt_input_source_put()
5882 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_get() local
5884 ucontrol->value.enumerated.item[0] = spec->out_enum_val; in ca0132_alt_output_select_get()
5892 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_put() local
5903 spec->out_enum_val = sel; in ca0132_alt_output_select_put()
5905 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_output_select_put()
5933 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_get() local
5935 ucontrol->value.enumerated.item[0] = spec->channel_cfg_val; in ca0132_alt_speaker_channel_cfg_get()
5943 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_put() local
5953 spec->channel_cfg_val = sel; in ca0132_alt_speaker_channel_cfg_put()
5955 if (spec->out_enum_val == SPEAKER_OUT) in ca0132_alt_speaker_channel_cfg_put()
5986 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_get() local
5988 ucontrol->value.enumerated.item[0] = spec->smart_volume_setting; in ca0132_alt_svm_setting_get()
5996 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_put() local
6008 spec->smart_volume_setting = sel; in ca0132_alt_svm_setting_put()
6050 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_get() local
6052 ucontrol->value.enumerated.item[0] = spec->eq_preset_val; in ca0132_alt_eq_preset_get()
6060 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_put() local
6083 spec->eq_preset_val = sel; in ca0132_alt_eq_preset_put()
6107 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_get() local
6109 ucontrol->value.enumerated.item[0] = spec->voicefx_val; in ca0132_voicefx_get()
6117 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_put() local
6140 spec->voicefx_val = sel; in ca0132_voicefx_put()
6152 struct ca0132_spec *spec = codec->spec; in ca0132_switch_get() local
6160 *valp = spec->vnode_lswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6164 *valp = spec->vnode_rswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6172 *valp = spec->effects_switch[nid - EFFECT_START_NID]; in ca0132_switch_get()
6177 if (nid == spec->input_pins[0]) { in ca0132_switch_get()
6178 *valp = spec->cur_mic_boost; in ca0132_switch_get()
6183 *valp = spec->zxr_gain_set; in ca0132_switch_get()
6188 *valp = spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT]; in ca0132_switch_get()
6193 *valp = spec->bass_redirection_val; in ca0132_switch_get()
6204 struct ca0132_spec *spec = codec->spec; in ca0132_switch_put() local
6217 spec->vnode_lswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6221 spec->vnode_rswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6230 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6237 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6245 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6251 if (nid == spec->input_pins[0]) { in ca0132_switch_put()
6252 spec->cur_mic_boost = *valp; in ca0132_switch_put()
6253 if (ca0132_use_alt_functions(spec)) { in ca0132_switch_put()
6254 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_switch_put()
6258 if (spec->cur_mic_type != DIGITAL_MIC) in ca0132_switch_put()
6266 spec->zxr_gain_set = *valp; in ca0132_switch_put()
6267 if (spec->cur_out_type == HEADPHONE_OUT) in ca0132_switch_put()
6276 spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT] = *valp; in ca0132_switch_put()
6277 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6284 spec->bass_redirection_val = *valp; in ca0132_switch_put()
6285 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6306 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_volume_put() local
6315 lookup_val = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6322 lookup_val = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6338 struct ca0132_spec *spec = codec->spec; in ca0132_volume_info() local
6348 nid = spec->shared_out_nid; in ca0132_volume_info()
6358 nid = spec->shared_mic_nid; in ca0132_volume_info()
6376 struct ca0132_spec *spec = codec->spec; in ca0132_volume_get() local
6383 *valp = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6387 *valp = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6397 struct ca0132_spec *spec = codec->spec; in ca0132_volume_put() local
6407 spec->vnode_lvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6411 spec->vnode_rvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6444 struct ca0132_spec *spec = codec->spec; in ca0132_alt_volume_put() local
6462 spec->vnode_lvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6466 spec->vnode_rvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6484 struct ca0132_spec *spec = codec->spec; in ca0132_volume_tlv() local
6494 nid = spec->shared_out_nid; in ca0132_volume_tlv()
6504 nid = spec->shared_mic_nid; in ca0132_volume_tlv()
6557 struct ca0132_spec *spec = codec->spec; in add_fx_switch() local
6565 if (ca0132_use_alt_controls(spec) && (nid <= IN_EFFECT_END_NID)) in add_fx_switch()
6906 struct ca0132_spec *spec = codec->spec; in ca0132_build_controls() local
6911 for (i = 0; i < spec->num_mixers; i++) { in ca0132_build_controls()
6912 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in ca0132_build_controls()
6917 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
6918 snd_hda_set_vmaster_tlv(codec, spec->dacs[0], HDA_OUTPUT, in ca0132_build_controls()
6919 spec->tlv); in ca0132_build_controls()
6921 spec->tlv, ca0132_alt_follower_pfxs, in ca0132_build_controls()
6926 true, &spec->vmaster_mute.sw_kctl); in ca0132_build_controls()
6937 if (ca0132_use_pci_mmio(spec)) { in ca0132_build_controls()
6954 if (ca0132_use_alt_controls(spec)) { in ca0132_build_controls()
7008 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
7034 if (ca0132_quirk(spec) != QUIRK_ZXR) { in ca0132_build_controls()
7041 switch (ca0132_quirk(spec)) { in ca0132_build_controls()
7064 err = snd_hda_jack_add_kctls(codec, &spec->autocfg); in ca0132_build_controls()
7068 if (spec->dig_out) { in ca0132_build_controls()
7069 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in ca0132_build_controls()
7070 spec->dig_out); in ca0132_build_controls()
7073 err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); in ca0132_build_controls()
7076 /* spec->multiout.share_spdif = 1; */ in ca0132_build_controls()
7079 if (spec->dig_in) { in ca0132_build_controls()
7080 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in ca0132_build_controls()
7085 if (ca0132_use_alt_functions(spec)) in ca0132_build_controls()
7093 struct ca0132_spec *spec = codec->spec; in dbpro_build_controls() local
7096 if (spec->dig_out) { in dbpro_build_controls()
7097 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in dbpro_build_controls()
7098 spec->dig_out); in dbpro_build_controls()
7103 if (spec->dig_in) { in dbpro_build_controls()
7104 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in dbpro_build_controls()
7157 struct ca0132_spec *spec = codec->spec; in ca0132_build_pcms() local
7163 if (ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7169 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dacs[0]; in ca0132_build_pcms()
7171 spec->multiout.max_channels; in ca0132_build_pcms()
7174 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in ca0132_build_pcms()
7177 if (!ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7184 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[1]; in ca0132_build_pcms()
7192 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[2]; in ca0132_build_pcms()
7194 if (!spec->dig_out && !spec->dig_in) in ca0132_build_pcms()
7201 if (spec->dig_out) { in ca0132_build_pcms()
7204 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in ca0132_build_pcms()
7206 if (spec->dig_in) { in ca0132_build_pcms()
7209 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in ca0132_build_pcms()
7217 struct ca0132_spec *spec = codec->spec; in dbpro_build_pcms() local
7225 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in dbpro_build_pcms()
7228 if (!spec->dig_out && !spec->dig_in) in dbpro_build_pcms()
7235 if (spec->dig_out) { in dbpro_build_pcms()
7238 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in dbpro_build_pcms()
7240 if (spec->dig_in) { in dbpro_build_pcms()
7243 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in dbpro_build_pcms()
7298 struct ca0132_spec *spec = codec->spec; in ca0132_set_dmic() local
7312 val = spec->dmic_ctl; in ca0132_set_dmic()
7314 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7317 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7324 val = spec->dmic_ctl; in ca0132_set_dmic()
7327 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7330 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7342 struct ca0132_spec *spec = codec->spec; in ca0132_init_dmic() local
7355 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7365 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7375 if (ca0132_quirk(spec) == QUIRK_ALIENWARE_M17XR4) in ca0132_init_dmic()
7380 spec->dmic_ctl = val; in ca0132_init_dmic()
7381 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7390 struct ca0132_spec *spec = codec->spec; in ca0132_init_analog_mic2() local
7392 mutex_lock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7405 mutex_unlock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7410 struct ca0132_spec *spec = codec->spec; in ca0132_refresh_widget_caps() local
7416 for (i = 0; i < spec->multiout.num_dacs; i++) in ca0132_refresh_widget_caps()
7417 refresh_amp_caps(codec, spec->dacs[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7419 for (i = 0; i < spec->num_outputs; i++) in ca0132_refresh_widget_caps()
7420 refresh_amp_caps(codec, spec->out_pins[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7422 for (i = 0; i < spec->num_inputs; i++) { in ca0132_refresh_widget_caps()
7423 refresh_amp_caps(codec, spec->adcs[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7424 refresh_amp_caps(codec, spec->input_pins[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7451 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_speaker_tuning() local
7455 switch (ca0132_quirk(spec)) { in ca0132_alt_init_speaker_tuning()
7496 struct ca0132_spec *spec = codec->spec; in ca0132_alt_create_dummy_stream() local
7502 snd_hda_codec_setup_stream(codec, spec->dacs[0], spec->dsp_stream_id, in ca0132_alt_create_dummy_stream()
7505 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_alt_create_dummy_stream()
7513 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_analog_mics() local
7519 if (ca0132_quirk(spec) == QUIRK_R3DI) { in ca0132_alt_init_analog_mics()
7529 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_init_analog_mics()
7543 struct ca0132_spec *spec = codec->spec; in sbz_connect_streams() local
7545 mutex_lock(&spec->chipio_mutex); in sbz_connect_streams()
7564 mutex_unlock(&spec->chipio_mutex); in sbz_connect_streams()
7575 struct ca0132_spec *spec = codec->spec; in sbz_chipio_startup_data() local
7577 mutex_lock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7591 if (ca0132_quirk(spec) == QUIRK_SBZ) { in sbz_chipio_startup_data()
7604 } else if (ca0132_quirk(spec) == QUIRK_ZXR) { in sbz_chipio_startup_data()
7617 mutex_unlock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7626 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_scp_startup() local
7634 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_scp_startup()
7673 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_initial_mic_setup() local
7688 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_initial_mic_setup()
7704 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_register_set() local
7712 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7713 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7714 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7715 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7716 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7717 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7718 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7719 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7720 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7721 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7722 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7723 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7785 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_stream_setup() local
7787 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7812 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7817 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_startup_data() local
7819 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
7844 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
7854 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_setup_ports() local
7857 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
7885 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
7890 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_stream_setup() local
7892 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
7910 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
7933 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_setup_ports() local
7942 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8008 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8058 struct ca0132_spec *spec = codec->spec; in ca0132_setup_defaults() local
8063 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_setup_defaults()
8103 struct ca0132_spec *spec = codec->spec; in r3d_setup_defaults() local
8108 if (spec->dsp_state != DSP_DOWNLOADED) in r3d_setup_defaults()
8126 if (ca0132_quirk(spec) == QUIRK_R3DI) in r3d_setup_defaults()
8130 if (ca0132_quirk(spec) == QUIRK_R3D) { in r3d_setup_defaults()
8153 struct ca0132_spec *spec = codec->spec; in sbz_setup_defaults() local
8158 if (spec->dsp_state != DSP_DOWNLOADED) in sbz_setup_defaults()
8212 struct ca0132_spec *spec = codec->spec; in ae5_setup_defaults() local
8217 if (spec->dsp_state != DSP_DOWNLOADED) in ae5_setup_defaults()
8281 struct ca0132_spec *spec = codec->spec; in ae7_setup_defaults() local
8286 if (spec->dsp_state != DSP_DOWNLOADED) in ae7_setup_defaults()
8366 struct ca0132_spec *spec = codec->spec; in ca0132_init_flags() local
8368 if (ca0132_use_alt_functions(spec)) { in ca0132_init_flags()
8399 struct ca0132_spec *spec = codec->spec; in ca0132_init_params() local
8401 if (ca0132_use_alt_functions(spec)) { in ca0132_init_params()
8430 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp_images() local
8438 switch (ca0132_quirk(spec)) { in ca0132_download_dsp_images()
8485 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp() local
8491 if (spec->dsp_state == DSP_DOWNLOAD_FAILED) in ca0132_download_dsp()
8495 if (spec->dsp_state != DSP_DOWNLOADED) { in ca0132_download_dsp()
8496 spec->dsp_state = DSP_DOWNLOADING; in ca0132_download_dsp()
8499 spec->dsp_state = DSP_DOWNLOAD_FAILED; in ca0132_download_dsp()
8501 spec->dsp_state = DSP_DOWNLOADED; in ca0132_download_dsp()
8505 if (spec->dsp_state == DSP_DOWNLOADED && !ca0132_use_alt_functions(spec)) in ca0132_download_dsp()
8512 struct ca0132_spec *spec = codec->spec; in ca0132_process_dsp_response() local
8516 if (spec->wait_scp) { in ca0132_process_dsp_response()
8518 spec->wait_scp = 0; in ca0132_process_dsp_response()
8527 struct ca0132_spec *spec = codec->spec; in hp_callback() local
8536 schedule_delayed_work(&spec->unsol_hp_work, msecs_to_jiffies(500)); in hp_callback()
8541 struct ca0132_spec *spec = codec->spec; in amic_callback() local
8543 if (ca0132_use_alt_functions(spec)) in amic_callback()
8551 struct ca0132_spec *spec = codec->spec; in ca0132_init_unsol() local
8552 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_hp, hp_callback); in ca0132_init_unsol()
8553 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_amic1, in ca0132_init_unsol()
8558 if (ca0132_use_alt_functions(spec)) in ca0132_init_unsol()
8560 spec->unsol_tag_front_hp, hp_callback); in ca0132_init_unsol()
8640 struct ca0132_spec *spec = codec->spec; in ca0132_init_chip() local
8645 mutex_init(&spec->chipio_mutex); in ca0132_init_chip()
8647 spec->cur_out_type = SPEAKER_OUT; in ca0132_init_chip()
8648 if (!ca0132_use_alt_functions(spec)) in ca0132_init_chip()
8649 spec->cur_mic_type = DIGITAL_MIC; in ca0132_init_chip()
8651 spec->cur_mic_type = REAR_MIC; in ca0132_init_chip()
8653 spec->cur_mic_boost = 0; in ca0132_init_chip()
8656 spec->vnode_lvol[i] = 0x5a; in ca0132_init_chip()
8657 spec->vnode_rvol[i] = 0x5a; in ca0132_init_chip()
8658 spec->vnode_lswitch[i] = 0; in ca0132_init_chip()
8659 spec->vnode_rswitch[i] = 0; in ca0132_init_chip()
8668 spec->effects_switch[i] = on ? 1 : 0; in ca0132_init_chip()
8674 if (ca0132_use_alt_controls(spec)) { in ca0132_init_chip()
8676 spec->speaker_range_val[0] = 1; in ca0132_init_chip()
8677 spec->speaker_range_val[1] = 1; in ca0132_init_chip()
8679 spec->xbass_xover_freq = 8; in ca0132_init_chip()
8681 spec->fx_ctl_val[i] = effect_slider_defaults[i]; in ca0132_init_chip()
8683 spec->bass_redirect_xover_freq = 8; in ca0132_init_chip()
8686 spec->voicefx_val = 0; in ca0132_init_chip()
8687 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID] = 1; in ca0132_init_chip()
8688 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] = 0; in ca0132_init_chip()
8693 * to make sure that spec->in_enum_val is set properly. in ca0132_init_chip()
8695 if (ca0132_quirk(spec) == QUIRK_ZXR) in ca0132_init_chip()
8696 spec->in_enum_val = REAR_MIC; in ca0132_init_chip()
8717 struct ca0132_spec *spec = codec->spec; in sbz_region2_exit() local
8721 writeb(0x0, spec->mem_base + 0x100); in sbz_region2_exit()
8723 writeb(0xb3, spec->mem_base + 0x304); in sbz_region2_exit()
8923 struct ca0132_spec *spec = codec->spec; in sbz_dsp_startup_check() local
8930 if (spec->startup_check_entered) in sbz_dsp_startup_check()
8933 spec->startup_check_entered = true; in sbz_dsp_startup_check()
8955 spec->dsp_state = DSP_DOWNLOAD_INIT; in sbz_dsp_startup_check()
9003 struct ca0132_spec *spec = codec->spec; in sbz_pre_dsp_setup() local
9005 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9006 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9095 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_sbz() local
9101 writel(0x00000000, spec->mem_base + addr[i]); in ca0132_mmio_init_sbz()
9104 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9124 writel(tmp[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9128 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9140 writel(data[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9145 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_ae5() local
9153 if (ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9154 writel(0x00000680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9155 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9163 if (i == 21 && ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9164 writel(0x00800001, spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9168 writel(data[i], spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9171 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init_ae5()
9172 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9177 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init() local
9179 switch (ca0132_quirk(spec)) { in ca0132_mmio_init()
9210 struct ca0132_spec *spec = codec->spec; in ae5_register_set() local
9217 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9230 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9241 writeb(tmp[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9248 writeb(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9251 writel(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9253 writel(0x00800001, spec->mem_base + 0x20c); in ae5_register_set()
9255 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9265 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_register_set()
9281 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init() local
9285 switch (ca0132_quirk(spec)) { in ca0132_alt_init()
9290 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9291 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9299 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9304 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9305 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9314 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9315 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9324 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9325 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9332 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9333 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9342 struct ca0132_spec *spec = codec->spec; in ca0132_init() local
9343 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_init()
9357 if (spec->dsp_state == DSP_DOWNLOADED) { in ca0132_init()
9360 spec->dsp_reload = true; in ca0132_init()
9361 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9363 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9369 if (spec->dsp_state != DSP_DOWNLOAD_FAILED) in ca0132_init()
9370 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9371 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; in ca0132_init()
9373 if (ca0132_use_pci_mmio(spec)) in ca0132_init()
9378 if (ca0132_quirk(spec) == QUIRK_AE5 || ca0132_quirk(spec) == QUIRK_AE7) in ca0132_init()
9385 snd_hda_sequence_write(codec, spec->base_init_verbs); in ca0132_init()
9387 if (ca0132_use_alt_functions(spec)) in ca0132_init()
9394 switch (ca0132_quirk(spec)) { in ca0132_init()
9416 for (i = 0; i < spec->num_outputs; i++) in ca0132_init()
9417 init_output(codec, spec->out_pins[i], spec->dacs[0]); in ca0132_init()
9419 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in ca0132_init()
9421 for (i = 0; i < spec->num_inputs; i++) in ca0132_init()
9422 init_input(codec, spec->input_pins[i], spec->adcs[i]); in ca0132_init()
9424 init_input(codec, cfg->dig_in_pin, spec->dig_in); in ca0132_init()
9426 if (!ca0132_use_alt_functions(spec)) { in ca0132_init()
9427 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_init()
9434 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9437 snd_hda_sequence_write(codec, spec->spec_init_verbs); in ca0132_init()
9438 if (ca0132_use_alt_functions(spec)) { in ca0132_init()
9452 if (spec->dsp_reload) { in ca0132_init()
9453 spec->dsp_reload = false; in ca0132_init()
9464 struct ca0132_spec *spec = codec->spec; in dbpro_init() local
9465 struct auto_pin_cfg *cfg = &spec->autocfg; in dbpro_init()
9468 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in dbpro_init()
9469 init_input(codec, cfg->dig_in_pin, spec->dig_in); in dbpro_init()
9471 for (i = 0; i < spec->num_inputs; i++) in dbpro_init()
9472 init_input(codec, spec->input_pins[i], spec->adcs[i]); in dbpro_init()
9479 struct ca0132_spec *spec = codec->spec; in ca0132_free() local
9481 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_free()
9483 switch (ca0132_quirk(spec)) { in ca0132_free()
9506 snd_hda_sequence_write(codec, spec->base_exit_verbs); in ca0132_free()
9511 if (spec->mem_base) in ca0132_free()
9512 pci_iounmap(codec->bus->pci, spec->mem_base); in ca0132_free()
9514 kfree(spec->spec_init_verbs); in ca0132_free()
9515 kfree(codec->spec); in ca0132_free()
9520 struct ca0132_spec *spec = codec->spec; in dbpro_free() local
9524 kfree(spec->spec_init_verbs); in dbpro_free()
9525 kfree(codec->spec); in dbpro_free()
9536 struct ca0132_spec *spec = codec->spec; in ca0132_suspend() local
9538 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_suspend()
9564 struct ca0132_spec *spec = codec->spec; in ca0132_config() local
9566 spec->dacs[0] = 0x2; in ca0132_config()
9567 spec->dacs[1] = 0x3; in ca0132_config()
9568 spec->dacs[2] = 0x4; in ca0132_config()
9570 spec->multiout.dac_nids = spec->dacs; in ca0132_config()
9571 spec->multiout.num_dacs = 3; in ca0132_config()
9573 if (!ca0132_use_alt_functions(spec)) in ca0132_config()
9574 spec->multiout.max_channels = 2; in ca0132_config()
9576 spec->multiout.max_channels = 6; in ca0132_config()
9578 switch (ca0132_quirk(spec)) { in ca0132_config()
9611 switch (ca0132_quirk(spec)) { in ca0132_config()
9613 spec->num_outputs = 2; in ca0132_config()
9614 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9615 spec->out_pins[1] = 0x0f; in ca0132_config()
9616 spec->shared_out_nid = 0x2; in ca0132_config()
9617 spec->unsol_tag_hp = 0x0f; in ca0132_config()
9619 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9620 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9621 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9623 spec->num_inputs = 3; in ca0132_config()
9624 spec->input_pins[0] = 0x12; in ca0132_config()
9625 spec->input_pins[1] = 0x11; in ca0132_config()
9626 spec->input_pins[2] = 0x13; in ca0132_config()
9627 spec->shared_mic_nid = 0x7; in ca0132_config()
9628 spec->unsol_tag_amic1 = 0x11; in ca0132_config()
9632 spec->num_outputs = 2; in ca0132_config()
9633 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9634 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9635 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9636 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9637 spec->shared_out_nid = 0x2; in ca0132_config()
9638 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9639 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9641 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9642 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9643 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9645 spec->num_inputs = 2; in ca0132_config()
9646 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9647 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9648 spec->shared_mic_nid = 0x7; in ca0132_config()
9649 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9652 spec->dig_out = 0x05; in ca0132_config()
9653 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9654 spec->dig_in = 0x09; in ca0132_config()
9657 spec->num_outputs = 2; in ca0132_config()
9658 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9659 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9660 spec->out_pins[2] = 0x10; /* Center/LFE */ in ca0132_config()
9661 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9662 spec->shared_out_nid = 0x2; in ca0132_config()
9663 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9664 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9666 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9667 spec->adcs[1] = 0x8; /* Not connected, no front mic */ in ca0132_config()
9668 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9670 spec->num_inputs = 2; in ca0132_config()
9671 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9672 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9673 spec->shared_mic_nid = 0x7; in ca0132_config()
9674 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9677 spec->adcs[0] = 0x8; /* ZxR DBPro Aux In */ in ca0132_config()
9679 spec->num_inputs = 1; in ca0132_config()
9680 spec->input_pins[0] = 0x11; /* RCA Line-in */ in ca0132_config()
9682 spec->dig_out = 0x05; in ca0132_config()
9683 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9685 spec->dig_in = 0x09; in ca0132_config()
9689 spec->num_outputs = 2; in ca0132_config()
9690 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9691 spec->out_pins[1] = 0x11; /* Rear headphone out */ in ca0132_config()
9692 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9693 spec->out_pins[3] = 0x0F; /* Rear surround */ in ca0132_config()
9694 spec->shared_out_nid = 0x2; in ca0132_config()
9695 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9696 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9698 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9699 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9700 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9702 spec->num_inputs = 2; in ca0132_config()
9703 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9704 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9705 spec->shared_mic_nid = 0x7; in ca0132_config()
9706 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9709 spec->dig_out = 0x05; in ca0132_config()
9710 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9713 spec->num_outputs = 2; in ca0132_config()
9714 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9715 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9716 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9717 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9718 spec->shared_out_nid = 0x2; in ca0132_config()
9719 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9720 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9722 spec->adcs[0] = 0x07; /* Rear Mic / Line-in */ in ca0132_config()
9723 spec->adcs[1] = 0x08; /* Front Mic, but only if no DSP */ in ca0132_config()
9724 spec->adcs[2] = 0x0a; /* what u hear */ in ca0132_config()
9726 spec->num_inputs = 2; in ca0132_config()
9727 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9728 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9729 spec->shared_mic_nid = 0x7; in ca0132_config()
9730 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9733 spec->dig_out = 0x05; in ca0132_config()
9734 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9737 spec->num_outputs = 2; in ca0132_config()
9738 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9739 spec->out_pins[1] = 0x10; /* headphone out */ in ca0132_config()
9740 spec->shared_out_nid = 0x2; in ca0132_config()
9741 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9743 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9744 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9745 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9747 spec->num_inputs = 3; in ca0132_config()
9748 spec->input_pins[0] = 0x12; in ca0132_config()
9749 spec->input_pins[1] = 0x11; in ca0132_config()
9750 spec->input_pins[2] = 0x13; in ca0132_config()
9751 spec->shared_mic_nid = 0x7; in ca0132_config()
9752 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9755 spec->dig_out = 0x05; in ca0132_config()
9756 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9757 spec->dig_in = 0x09; in ca0132_config()
9766 struct ca0132_spec *spec = codec->spec; in ca0132_prepare_verbs() local
9768 spec->chip_init_verbs = ca0132_init_verbs0; in ca0132_prepare_verbs()
9773 if (ca0132_use_pci_mmio(spec)) in ca0132_prepare_verbs()
9774 spec->desktop_init_verbs = ca0132_init_verbs1; in ca0132_prepare_verbs()
9775 spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS, in ca0132_prepare_verbs()
9778 if (!spec->spec_init_verbs) in ca0132_prepare_verbs()
9782 spec->spec_init_verbs[0].nid = 0x0b; in ca0132_prepare_verbs()
9783 spec->spec_init_verbs[0].param = 0x78D; in ca0132_prepare_verbs()
9784 spec->spec_init_verbs[0].verb = 0x00; in ca0132_prepare_verbs()
9788 spec->spec_init_verbs[2].nid = 0x0b; in ca0132_prepare_verbs()
9789 spec->spec_init_verbs[2].param = AC_VERB_SET_EAPD_BTLENABLE; in ca0132_prepare_verbs()
9790 spec->spec_init_verbs[2].verb = 0x02; in ca0132_prepare_verbs()
9792 spec->spec_init_verbs[3].nid = 0x10; in ca0132_prepare_verbs()
9793 spec->spec_init_verbs[3].param = 0x78D; in ca0132_prepare_verbs()
9794 spec->spec_init_verbs[3].verb = 0x02; in ca0132_prepare_verbs()
9796 spec->spec_init_verbs[4].nid = 0x10; in ca0132_prepare_verbs()
9797 spec->spec_init_verbs[4].param = AC_VERB_SET_EAPD_BTLENABLE; in ca0132_prepare_verbs()
9798 spec->spec_init_verbs[4].verb = 0x02; in ca0132_prepare_verbs()
9801 /* Terminator: spec->spec_init_verbs[NUM_SPEC_VERBS-1] */ in ca0132_prepare_verbs()
9813 struct ca0132_spec *spec = codec->spec; in sbz_detect_quirk() local
9817 spec->quirk = QUIRK_ZXR; in sbz_detect_quirk()
9820 spec->quirk = QUIRK_ZXR_DBPRO; in sbz_detect_quirk()
9823 spec->quirk = QUIRK_SBZ; in sbz_detect_quirk()
9830 struct ca0132_spec *spec; in patch_ca0132() local
9836 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_ca0132()
9837 if (!spec) in patch_ca0132()
9839 codec->spec = spec; in patch_ca0132()
9840 spec->codec = codec; in patch_ca0132()
9845 spec->quirk = quirk->value; in patch_ca0132()
9847 spec->quirk = QUIRK_NONE; in patch_ca0132()
9848 if (ca0132_quirk(spec) == QUIRK_SBZ) in patch_ca0132()
9851 if (ca0132_quirk(spec) == QUIRK_ZXR_DBPRO) in patch_ca0132()
9860 spec->dsp_state = DSP_DOWNLOAD_INIT; in patch_ca0132()
9861 spec->num_mixers = 1; in patch_ca0132()
9864 switch (ca0132_quirk(spec)) { in patch_ca0132()
9866 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9870 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9876 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9880 spec->mixers[0] = r3di_mixer; in patch_ca0132()
9884 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9888 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9892 spec->mixers[0] = ca0132_mixer; in patch_ca0132()
9897 switch (ca0132_quirk(spec)) { in patch_ca0132()
9903 spec->use_alt_controls = true; in patch_ca0132()
9904 spec->use_alt_functions = true; in patch_ca0132()
9905 spec->use_pci_mmio = true; in patch_ca0132()
9908 spec->use_alt_controls = true; in patch_ca0132()
9909 spec->use_alt_functions = true; in patch_ca0132()
9910 spec->use_pci_mmio = false; in patch_ca0132()
9913 spec->use_alt_controls = false; in patch_ca0132()
9914 spec->use_alt_functions = false; in patch_ca0132()
9915 spec->use_pci_mmio = false; in patch_ca0132()
9920 if (spec->use_pci_mmio) { in patch_ca0132()
9921 spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); in patch_ca0132()
9922 if (spec->mem_base == NULL) { in patch_ca0132()
9924 spec->quirk = QUIRK_NONE; in patch_ca0132()
9929 spec->base_init_verbs = ca0132_base_init_verbs; in patch_ca0132()
9930 spec->base_exit_verbs = ca0132_base_exit_verbs; in patch_ca0132()
9932 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); in patch_ca0132()
9942 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); in patch_ca0132()