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
1532 struct ca0132_spec *spec = codec->spec; in chipio_write_address() local
1535 if (spec->curr_chip_addx == chip_addx) in chipio_write_address()
1548 spec->curr_chip_addx = (res < 0) ? ~0U : chip_addx; in chipio_write_address()
1558 struct ca0132_spec *spec = codec->spec; in chipio_write_data() local
1572 spec->curr_chip_addx = (res != -EIO) ? in chipio_write_data()
1573 (spec->curr_chip_addx + 4) : ~0U; in chipio_write_data()
1603 struct ca0132_spec *spec = codec->spec; in chipio_read_data() local
1623 spec->curr_chip_addx = (res != -EIO) ? in chipio_read_data()
1624 (spec->curr_chip_addx + 4) : ~0U; in chipio_read_data()
1635 struct ca0132_spec *spec = codec->spec; in chipio_write() local
1638 mutex_lock(&spec->chipio_mutex); in chipio_write()
1650 mutex_unlock(&spec->chipio_mutex); in chipio_write()
1686 struct ca0132_spec *spec = codec->spec; in chipio_write_multiple() local
1689 mutex_lock(&spec->chipio_mutex); in chipio_write_multiple()
1696 mutex_unlock(&spec->chipio_mutex); in chipio_write_multiple()
1708 struct ca0132_spec *spec = codec->spec; in chipio_read() local
1711 mutex_lock(&spec->chipio_mutex); in chipio_read()
1723 mutex_unlock(&spec->chipio_mutex); in chipio_read()
1749 struct ca0132_spec *spec = codec->spec; in chipio_set_control_param() local
1757 mutex_lock(&spec->chipio_mutex); in chipio_set_control_param()
1766 mutex_unlock(&spec->chipio_mutex); in chipio_set_control_param()
1875 struct ca0132_spec *spec = codec->spec; in chipio_enable_clocks() local
1877 mutex_lock(&spec->chipio_mutex); in chipio_enable_clocks()
1890 mutex_unlock(&spec->chipio_mutex); in chipio_enable_clocks()
1936 struct ca0132_spec *spec = codec->spec; in dspio_write() local
1941 mutex_lock(&spec->chipio_mutex); in dspio_write()
1956 mutex_unlock(&spec->chipio_mutex); in dspio_write()
2111 struct ca0132_spec *spec = codec->spec; in dspio_get_response_data() local
2118 if ((data & 0x00ffffff) == spec->wait_scp_header) { in dspio_get_response_data()
2119 spec->scp_resp_header = data; in dspio_get_response_data()
2120 spec->scp_resp_count = data >> 27; in dspio_get_response_data()
2121 count = spec->wait_num_data; in dspio_get_response_data()
2122 dspio_read_multiple(codec, spec->scp_resp_data, in dspio_get_response_data()
2123 &spec->scp_resp_count, count); in dspio_get_response_data()
2140 struct ca0132_spec *spec = codec->spec; in dspio_send_scp_message() local
2167 spec->wait_scp_header = *((unsigned int *)send_buf); in dspio_send_scp_message()
2172 spec->wait_scp_header &= 0xffff0000; in dspio_send_scp_message()
2173 spec->wait_scp_header |= (resp_src_id << 8) | (resp_target_id); in dspio_send_scp_message()
2174 spec->wait_num_data = return_buf_size/sizeof(unsigned int) - 1; in dspio_send_scp_message()
2175 spec->wait_scp = 1; in dspio_send_scp_message()
2182 spec->wait_scp = 0; in dspio_send_scp_message()
2191 } while (spec->wait_scp && time_before(jiffies, timeout)); in dspio_send_scp_message()
2193 if (!spec->wait_scp) { in dspio_send_scp_message()
2195 memcpy(&ret_msg->hdr, &spec->scp_resp_header, 4); in dspio_send_scp_message()
2196 memcpy(&ret_msg->data, spec->scp_resp_data, in dspio_send_scp_message()
2197 spec->wait_num_data); in dspio_send_scp_message()
2198 *bytes_returned = (spec->scp_resp_count + 1) * 4; in dspio_send_scp_message()
2203 spec->wait_scp = 0; in dspio_send_scp_message()
2916 struct ca0132_spec *spec = codec->spec; in dma_reset() local
2928 spec->dsp_stream_id = status; in dma_reset()
2979 struct ca0132_spec *spec = dma->codec->spec; in dma_get_stream_id() local
2981 return spec->dsp_stream_id; in dma_get_stream_id()
3274 struct ca0132_spec *spec = codec->spec; in dspxfr_image() local
3318 spec->dsp_stream_id = status; in dspxfr_image()
3390 struct ca0132_spec *spec = codec->spec; in dspload_post_setup() local
3392 if (!ca0132_use_alt_functions(spec)) { in dspload_post_setup()
3524 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_gpio_set() local
3530 writew(gpio_data, spec->mem_base + 0x320); in ca0113_mmio_gpio_set()
3544 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set() local
3547 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3548 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3549 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3550 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3551 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3553 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3554 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set()
3556 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3561 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set()
3567 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set()
3568 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set()
3569 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set()
3571 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3572 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3573 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3574 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3583 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set_type2() local
3586 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3587 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3588 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3589 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3590 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3592 writel(0x00800003, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3593 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set_type2()
3595 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3600 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set_type2()
3602 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set_type2()
3603 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set_type2()
3604 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set_type2()
3606 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3607 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3608 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3609 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3622 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_init() local
3624 switch (ca0132_quirk(spec)) { in ca0132_gpio_init()
3645 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_setup() local
3647 switch (ca0132_quirk(spec)) { in ca0132_gpio_setup()
3771 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_prepare() local
3773 snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); in ca0132_playback_pcm_prepare()
3782 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_cleanup() local
3784 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_playback_pcm_cleanup()
3789 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_playback_pcm_cleanup()
3792 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_playback_pcm_cleanup()
3801 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_delay() local
3805 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_playback_pcm_delay()
3809 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) { in ca0132_playback_pcm_delay()
3810 if ((spec->effects_switch[SURROUND - EFFECT_START_NID]) || in ca0132_playback_pcm_delay()
3811 (spec->effects_switch[DIALOG_PLUS - EFFECT_START_NID])) in ca0132_playback_pcm_delay()
3816 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_playback_pcm_delay()
3829 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_open() local
3830 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in ca0132_dig_playback_pcm_open()
3839 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_prepare() local
3840 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in ca0132_dig_playback_pcm_prepare()
3848 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_cleanup() local
3849 return snd_hda_multi_out_dig_cleanup(codec, &spec->multiout); in ca0132_dig_playback_pcm_cleanup()
3856 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_close() local
3857 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in ca0132_dig_playback_pcm_close()
3879 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_cleanup() local
3881 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_capture_pcm_cleanup()
3892 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_delay() local
3896 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_capture_pcm_delay()
3899 if (spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_capture_pcm_delay()
4124 struct ca0132_spec *spec = codec->spec; in tuning_ctl_get() local
4129 *valp = spec->cur_ctl_vals[idx]; in tuning_ctl_get()
4150 struct ca0132_spec *spec = codec->spec; in voice_focus_ctl_put() local
4157 if (spec->cur_ctl_vals[idx] == *valp) in voice_focus_ctl_put()
4160 spec->cur_ctl_vals[idx] = *valp; in voice_focus_ctl_put()
4185 struct ca0132_spec *spec = codec->spec; in mic_svm_ctl_put() local
4192 if (spec->cur_ctl_vals[idx] == *valp) in mic_svm_ctl_put()
4195 spec->cur_ctl_vals[idx] = *valp; in mic_svm_ctl_put()
4220 struct ca0132_spec *spec = codec->spec; in equalizer_ctl_put() local
4227 if (spec->cur_ctl_vals[idx] == *valp) in equalizer_ctl_put()
4230 spec->cur_ctl_vals[idx] = *valp; in equalizer_ctl_put()
4301 struct ca0132_spec *spec = codec->spec; in ca0132_init_tuning_defaults() local
4305 spec->cur_ctl_vals[WEDGE_ANGLE - TUNING_CTL_START_NID] = 10; in ca0132_init_tuning_defaults()
4307 spec->cur_ctl_vals[SVM_LEVEL - TUNING_CTL_START_NID] = 74; in ca0132_init_tuning_defaults()
4311 spec->cur_ctl_vals[i] = 24; in ca0132_init_tuning_defaults()
4323 struct ca0132_spec *spec = codec->spec; in ca0132_select_out() local
4334 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_select_out()
4337 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp); in ca0132_select_out()
4340 spec->vnode_lswitch[VNID_HP_SEL - VNODE_START_NID]; in ca0132_select_out()
4343 spec->cur_out_type = HEADPHONE_OUT; in ca0132_select_out()
4345 spec->cur_out_type = SPEAKER_OUT; in ca0132_select_out()
4347 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_select_out()
4361 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4363 snd_hda_codec_write(codec, spec->out_pins[0], 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()
4371 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4373 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4376 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4378 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4394 snd_hda_codec_write(codec, spec->out_pins[0], 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[1], 0, in ca0132_select_out()
4400 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4404 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4406 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4409 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4411 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4427 struct ca0132_spec *spec = codec->spec; in ae5_mmio_select_out() local
4431 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_mmio_select_out()
4439 out_cmds->vals[spec->cur_out_type][i]); in ae5_mmio_select_out()
4444 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_full_range_speaker() local
4445 int quirk = ca0132_quirk(spec); in ca0132_alt_set_full_range_speaker()
4450 if (spec->channel_cfg_val == SPEAKER_CHANNELS_4_0 in ca0132_alt_set_full_range_speaker()
4451 || spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_set_full_range_speaker()
4455 tmp = spec->speaker_range_val[0] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4462 tmp = spec->speaker_range_val[1] ? FLOAT_ZERO : FLOAT_ONE; in ca0132_alt_set_full_range_speaker()
4490 struct ca0132_spec *spec = codec->spec; in ca0132_alt_surround_set_bass_redirection() local
4494 if (val && spec->channel_cfg_val != SPEAKER_CHANNELS_4_0 && in ca0132_alt_surround_set_bass_redirection()
4495 spec->channel_cfg_val != SPEAKER_CHANNELS_2_0) in ca0132_alt_surround_set_bass_redirection()
4506 tmp = float_xbass_xover_lookup[spec->xbass_xover_freq]; in ca0132_alt_surround_set_bass_redirection()
4523 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_get_quirk_data() local
4524 int quirk = ca0132_quirk(spec); in ca0132_alt_select_out_get_quirk_data()
4540 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_quirk_set() local
4548 out_info = &quirk_data->out_set_info[spec->cur_out_type]; in ca0132_alt_select_out_quirk_set()
4591 if (spec->cur_out_type != HEADPHONE_OUT) { in ca0132_alt_select_out_quirk_set()
4599 spec->ae5_headphone_gain_val); in ca0132_alt_select_out_quirk_set()
4602 spec->zxr_gain_set); in ca0132_alt_select_out_quirk_set()
4632 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out() local
4638 hda_nid_t headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4644 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_select_out()
4652 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp) || in ca0132_alt_select_out()
4653 snd_hda_jack_detect(codec, spec->unsol_tag_front_hp); in ca0132_alt_select_out()
4656 spec->cur_out_type = HEADPHONE_OUT; in ca0132_alt_select_out()
4658 spec->cur_out_type = SPEAKER_OUT; in ca0132_alt_select_out()
4660 spec->cur_out_type = spec->out_enum_val; in ca0132_alt_select_out()
4662 outfx_set = spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]; in ca0132_alt_select_out()
4672 switch (spec->cur_out_type) { in ca0132_alt_select_out()
4677 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4681 ca0132_set_out_node_pincfg(codec, spec->out_pins[1], 0, 0); in ca0132_alt_select_out()
4683 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 1, 0); in ca0132_alt_select_out()
4685 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 1, 0); in ca0132_alt_select_out()
4687 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 1, 0); in ca0132_alt_select_out()
4694 if (!outfx_set && spec->channel_cfg_val == SPEAKER_CHANNELS_2_0) in ca0132_alt_select_out()
4697 tmp = speaker_channel_cfgs[spec->channel_cfg_val].val; in ca0132_alt_select_out()
4706 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4710 ca0132_set_out_node_pincfg(codec, spec->out_pins[0], 0, 0); in ca0132_alt_select_out()
4711 ca0132_set_out_node_pincfg(codec, spec->out_pins[2], 0, 0); in ca0132_alt_select_out()
4712 ca0132_set_out_node_pincfg(codec, spec->out_pins[3], 0, 0); in ca0132_alt_select_out()
4715 if (snd_hda_jack_detect(codec, spec->unsol_tag_front_hp)) in ca0132_alt_select_out()
4716 headphone_nid = spec->out_pins[2]; in ca0132_alt_select_out()
4717 else if (snd_hda_jack_detect(codec, spec->unsol_tag_hp)) in ca0132_alt_select_out()
4718 headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4738 spec->effects_switch[X_BASS - EFFECT_START_NID]); in ca0132_alt_select_out()
4754 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_alt_select_out()
4756 spec->bass_redirection_val); in ca0132_alt_select_out()
4766 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_alt_select_out()
4780 struct ca0132_spec *spec = container_of( in ca0132_unsol_hp_delayed() local
4784 if (ca0132_use_alt_functions(spec)) in ca0132_unsol_hp_delayed()
4785 ca0132_alt_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4787 ca0132_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4789 jack = snd_hda_jack_tbl_get(spec->codec, spec->unsol_tag_hp); in ca0132_unsol_hp_delayed()
4792 snd_hda_jack_report_sync(spec->codec); in ca0132_unsol_hp_delayed()
4808 struct ca0132_spec *spec = codec->spec; in ca0132_set_vipsource() local
4811 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_set_vipsource()
4815 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_set_vipsource()
4820 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4830 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4846 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_vipsource() local
4849 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_alt_set_vipsource()
4858 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_alt_set_vipsource()
4859 (val == 0) || spec->in_enum_val == REAR_LINE_IN) { in ca0132_alt_set_vipsource()
4868 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4872 if (spec->in_enum_val == REAR_LINE_IN) in ca0132_alt_set_vipsource()
4875 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_alt_set_vipsource()
4887 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4890 if (spec->effects_switch[VOICE_FOCUS - EFFECT_START_NID]) in ca0132_alt_set_vipsource()
4917 struct ca0132_spec *spec = codec->spec; in ca0132_select_mic() local
4925 auto_jack = spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_select_mic()
4928 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_amic1); in ca0132_select_mic()
4931 spec->vnode_lswitch[VNID_AMIC1_SEL - VNODE_START_NID]; in ca0132_select_mic()
4934 spec->cur_mic_type = LINE_MIC_IN; in ca0132_select_mic()
4936 spec->cur_mic_type = DIGITAL_MIC; in ca0132_select_mic()
4938 if (spec->cur_mic_type == DIGITAL_MIC) { in ca0132_select_mic()
4945 spec->effects_switch in ca0132_select_mic()
4951 ca0132_mic_boost_set(codec, spec->cur_mic_boost); in ca0132_select_mic()
4969 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_in() local
4979 spec->cur_mic_type = spec->in_enum_val; in ca0132_alt_select_in()
4981 switch (spec->cur_mic_type) { in ca0132_alt_select_in()
4983 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5016 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5023 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5039 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5043 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5068 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5071 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_select_in()
5077 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5090 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5112 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
5120 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
5132 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
5148 struct ca0132_spec *spec = codec->spec; in ca0132_is_vnode_effective() local
5153 nid = spec->shared_out_nid; in ca0132_is_vnode_effective()
5156 nid = spec->shared_mic_nid; in ca0132_is_vnode_effective()
5174 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_set() local
5179 tmp = spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] ? in ca0132_voicefx_set()
5196 struct ca0132_spec *spec = codec->spec; in ca0132_effects_set() local
5208 if (!spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_effects_set()
5210 if (spec->cur_out_type == SPEAKER_OUT && nid == X_BASS) { in ca0132_effects_set()
5211 channel_cfg = spec->channel_cfg_val; in ca0132_effects_set()
5221 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_effects_set()
5225 if ((nid == VOICE_FOCUS) && (spec->cur_mic_type != DIGITAL_MIC)) in ca0132_effects_set()
5229 if ((nid == VOICE_FOCUS) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5230 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5231 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5234 if (spec->effects_switch[VOICE_FOCUS - in ca0132_effects_set()
5248 if ((nid == NOISE_REDUCTION) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
5249 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
5250 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
5252 if (spec->effects_switch[NOISE_REDUCTION - in ca0132_effects_set()
5264 if (ca0132_use_alt_functions(spec) && in ca0132_effects_set()
5265 spec->in_enum_val == REAR_LINE_IN) in ca0132_effects_set()
5287 struct ca0132_spec *spec = codec->spec; in ca0132_pe_switch_set() local
5292 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]); in ca0132_pe_switch_set()
5294 if (ca0132_use_alt_functions(spec)) in ca0132_pe_switch_set()
5301 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_pe_switch_set()
5309 struct ca0132_spec *spec = codec->spec; in stop_mic1() local
5310 unsigned int oldval = snd_hda_codec_read(codec, spec->adcs[0], 0, in stop_mic1()
5313 snd_hda_codec_write(codec, spec->adcs[0], 0, in stop_mic1()
5322 struct ca0132_spec *spec = codec->spec; in resume_mic1() local
5325 snd_hda_codec_write(codec, spec->adcs[0], 0, in resume_mic1()
5335 struct ca0132_spec *spec = codec->spec; in ca0132_cvoice_switch_set() local
5341 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]); in ca0132_cvoice_switch_set()
5347 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_cvoice_switch_set()
5350 ret |= ca0132_voicefx_set(codec, (spec->voicefx_val ? 1 : 0)); in ca0132_cvoice_switch_set()
5354 if (ca0132_use_alt_functions(spec)) in ca0132_cvoice_switch_set()
5364 struct ca0132_spec *spec = codec->spec; in ca0132_mic_boost_set() local
5368 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5371 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5379 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_set() local
5382 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_alt_mic_boost_set()
5416 struct ca0132_spec *spec = codec->spec; in ca0132_vnode_switch_set() local
5421 spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5423 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5433 spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5440 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5535 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_ctl_get() local
5540 *valp = spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5542 *valp = spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5551 struct ca0132_spec *spec = codec->spec; in ca0132_alt_slider_ctl_get() local
5556 *valp = spec->fx_ctl_val[idx]; in ca0132_alt_slider_ctl_get()
5594 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_put() local
5601 cur_val = &spec->bass_redirect_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5603 cur_val = &spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_put()
5624 struct ca0132_spec *spec = codec->spec; in ca0132_alt_effect_slider_put() local
5631 if (spec->fx_ctl_val[idx] == *valp) in ca0132_alt_effect_slider_put()
5634 spec->fx_ctl_val[idx] = *valp; in ca0132_alt_effect_slider_put()
5671 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_get() local
5673 ucontrol->value.enumerated.item[0] = spec->mic_boost_enum_val; in ca0132_alt_mic_boost_get()
5681 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_put() local
5691 spec->mic_boost_enum_val = sel; in ca0132_alt_mic_boost_put()
5693 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_alt_mic_boost_put()
5694 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_mic_boost_put()
5725 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_get() local
5727 ucontrol->value.enumerated.item[0] = spec->ae5_headphone_gain_val; in ae5_headphone_gain_get()
5735 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_put() local
5745 spec->ae5_headphone_gain_val = sel; in ae5_headphone_gain_put()
5747 if (spec->out_enum_val == HEADPHONE_OUT) in ae5_headphone_gain_put()
5748 ae5_headphone_gain_set(codec, spec->ae5_headphone_gain_val); in ae5_headphone_gain_put()
5778 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_get() local
5780 ucontrol->value.enumerated.item[0] = spec->ae5_filter_val; in ae5_sound_filter_get()
5788 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_put() local
5798 spec->ae5_filter_val = sel; in ae5_sound_filter_put()
5828 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_get() local
5830 ucontrol->value.enumerated.item[0] = spec->in_enum_val; in ca0132_alt_input_source_get()
5838 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_put() local
5846 if (ca0132_quirk(spec) == QUIRK_AE7) in ca0132_alt_input_source_put()
5855 spec->in_enum_val = sel; in ca0132_alt_input_source_put()
5880 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_get() local
5882 ucontrol->value.enumerated.item[0] = spec->out_enum_val; in ca0132_alt_output_select_get()
5890 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_put() local
5901 spec->out_enum_val = sel; in ca0132_alt_output_select_put()
5903 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_output_select_put()
5931 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_get() local
5933 ucontrol->value.enumerated.item[0] = spec->channel_cfg_val; in ca0132_alt_speaker_channel_cfg_get()
5941 struct ca0132_spec *spec = codec->spec; in ca0132_alt_speaker_channel_cfg_put() local
5951 spec->channel_cfg_val = sel; in ca0132_alt_speaker_channel_cfg_put()
5953 if (spec->out_enum_val == SPEAKER_OUT) in ca0132_alt_speaker_channel_cfg_put()
5984 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_get() local
5986 ucontrol->value.enumerated.item[0] = spec->smart_volume_setting; in ca0132_alt_svm_setting_get()
5994 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_put() local
6006 spec->smart_volume_setting = sel; in ca0132_alt_svm_setting_put()
6048 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_get() local
6050 ucontrol->value.enumerated.item[0] = spec->eq_preset_val; in ca0132_alt_eq_preset_get()
6058 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_put() local
6081 spec->eq_preset_val = sel; in ca0132_alt_eq_preset_put()
6105 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_get() local
6107 ucontrol->value.enumerated.item[0] = spec->voicefx_val; in ca0132_voicefx_get()
6115 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_put() local
6138 spec->voicefx_val = sel; in ca0132_voicefx_put()
6150 struct ca0132_spec *spec = codec->spec; in ca0132_switch_get() local
6158 *valp = spec->vnode_lswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6162 *valp = spec->vnode_rswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
6170 *valp = spec->effects_switch[nid - EFFECT_START_NID]; in ca0132_switch_get()
6175 if (nid == spec->input_pins[0]) { in ca0132_switch_get()
6176 *valp = spec->cur_mic_boost; in ca0132_switch_get()
6181 *valp = spec->zxr_gain_set; in ca0132_switch_get()
6186 *valp = spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT]; in ca0132_switch_get()
6191 *valp = spec->bass_redirection_val; in ca0132_switch_get()
6202 struct ca0132_spec *spec = codec->spec; in ca0132_switch_put() local
6215 spec->vnode_lswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6219 spec->vnode_rswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
6228 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6235 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6243 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
6249 if (nid == spec->input_pins[0]) { in ca0132_switch_put()
6250 spec->cur_mic_boost = *valp; in ca0132_switch_put()
6251 if (ca0132_use_alt_functions(spec)) { in ca0132_switch_put()
6252 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_switch_put()
6256 if (spec->cur_mic_type != DIGITAL_MIC) in ca0132_switch_put()
6264 spec->zxr_gain_set = *valp; in ca0132_switch_put()
6265 if (spec->cur_out_type == HEADPHONE_OUT) in ca0132_switch_put()
6274 spec->speaker_range_val[nid - SPEAKER_FULL_RANGE_FRONT] = *valp; in ca0132_switch_put()
6275 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6282 spec->bass_redirection_val = *valp; in ca0132_switch_put()
6283 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_switch_put()
6304 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_volume_put() local
6313 lookup_val = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6320 lookup_val = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
6336 struct ca0132_spec *spec = codec->spec; in ca0132_volume_info() local
6346 nid = spec->shared_out_nid; in ca0132_volume_info()
6356 nid = spec->shared_mic_nid; in ca0132_volume_info()
6374 struct ca0132_spec *spec = codec->spec; in ca0132_volume_get() local
6381 *valp = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6385 *valp = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_volume_get()
6395 struct ca0132_spec *spec = codec->spec; in ca0132_volume_put() local
6405 spec->vnode_lvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6409 spec->vnode_rvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
6442 struct ca0132_spec *spec = codec->spec; in ca0132_alt_volume_put() local
6460 spec->vnode_lvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6464 spec->vnode_rvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6482 struct ca0132_spec *spec = codec->spec; in ca0132_volume_tlv() local
6492 nid = spec->shared_out_nid; in ca0132_volume_tlv()
6502 nid = spec->shared_mic_nid; in ca0132_volume_tlv()
6555 struct ca0132_spec *spec = codec->spec; in add_fx_switch() local
6563 if (ca0132_use_alt_controls(spec) && (nid <= IN_EFFECT_END_NID)) in add_fx_switch()
6904 struct ca0132_spec *spec = codec->spec; in ca0132_build_controls() local
6909 for (i = 0; i < spec->num_mixers; i++) { in ca0132_build_controls()
6910 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in ca0132_build_controls()
6915 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
6916 snd_hda_set_vmaster_tlv(codec, spec->dacs[0], HDA_OUTPUT, in ca0132_build_controls()
6917 spec->tlv); in ca0132_build_controls()
6919 spec->tlv, ca0132_alt_follower_pfxs, in ca0132_build_controls()
6924 true, &spec->vmaster_mute.sw_kctl); in ca0132_build_controls()
6935 if (ca0132_use_pci_mmio(spec)) { in ca0132_build_controls()
6952 if (ca0132_use_alt_controls(spec)) { in ca0132_build_controls()
7006 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
7032 if (ca0132_quirk(spec) != QUIRK_ZXR) { in ca0132_build_controls()
7039 switch (ca0132_quirk(spec)) { in ca0132_build_controls()
7062 err = snd_hda_jack_add_kctls(codec, &spec->autocfg); in ca0132_build_controls()
7066 if (spec->dig_out) { in ca0132_build_controls()
7067 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in ca0132_build_controls()
7068 spec->dig_out); in ca0132_build_controls()
7071 err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); in ca0132_build_controls()
7074 /* spec->multiout.share_spdif = 1; */ in ca0132_build_controls()
7077 if (spec->dig_in) { in ca0132_build_controls()
7078 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in ca0132_build_controls()
7083 if (ca0132_use_alt_functions(spec)) in ca0132_build_controls()
7091 struct ca0132_spec *spec = codec->spec; in dbpro_build_controls() local
7094 if (spec->dig_out) { in dbpro_build_controls()
7095 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in dbpro_build_controls()
7096 spec->dig_out); in dbpro_build_controls()
7101 if (spec->dig_in) { in dbpro_build_controls()
7102 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in dbpro_build_controls()
7155 struct ca0132_spec *spec = codec->spec; in ca0132_build_pcms() local
7161 if (ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7167 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dacs[0]; in ca0132_build_pcms()
7169 spec->multiout.max_channels; in ca0132_build_pcms()
7172 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in ca0132_build_pcms()
7175 if (!ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
7182 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[1]; in ca0132_build_pcms()
7190 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[2]; in ca0132_build_pcms()
7192 if (!spec->dig_out && !spec->dig_in) in ca0132_build_pcms()
7199 if (spec->dig_out) { in ca0132_build_pcms()
7202 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in ca0132_build_pcms()
7204 if (spec->dig_in) { in ca0132_build_pcms()
7207 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in ca0132_build_pcms()
7215 struct ca0132_spec *spec = codec->spec; in dbpro_build_pcms() local
7223 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in dbpro_build_pcms()
7226 if (!spec->dig_out && !spec->dig_in) in dbpro_build_pcms()
7233 if (spec->dig_out) { in dbpro_build_pcms()
7236 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in dbpro_build_pcms()
7238 if (spec->dig_in) { in dbpro_build_pcms()
7241 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in dbpro_build_pcms()
7296 struct ca0132_spec *spec = codec->spec; in ca0132_set_dmic() local
7310 val = spec->dmic_ctl; in ca0132_set_dmic()
7312 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7315 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7322 val = spec->dmic_ctl; in ca0132_set_dmic()
7325 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
7328 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
7340 struct ca0132_spec *spec = codec->spec; in ca0132_init_dmic() local
7353 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7363 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7373 if (ca0132_quirk(spec) == QUIRK_ALIENWARE_M17XR4) in ca0132_init_dmic()
7378 spec->dmic_ctl = val; in ca0132_init_dmic()
7379 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
7388 struct ca0132_spec *spec = codec->spec; in ca0132_init_analog_mic2() local
7390 mutex_lock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7403 mutex_unlock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
7408 struct ca0132_spec *spec = codec->spec; in ca0132_refresh_widget_caps() local
7414 for (i = 0; i < spec->multiout.num_dacs; i++) in ca0132_refresh_widget_caps()
7415 refresh_amp_caps(codec, spec->dacs[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7417 for (i = 0; i < spec->num_outputs; i++) in ca0132_refresh_widget_caps()
7418 refresh_amp_caps(codec, spec->out_pins[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
7420 for (i = 0; i < spec->num_inputs; i++) { in ca0132_refresh_widget_caps()
7421 refresh_amp_caps(codec, spec->adcs[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7422 refresh_amp_caps(codec, spec->input_pins[i], HDA_INPUT); in ca0132_refresh_widget_caps()
7449 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_speaker_tuning() local
7453 switch (ca0132_quirk(spec)) { in ca0132_alt_init_speaker_tuning()
7494 struct ca0132_spec *spec = codec->spec; in ca0132_alt_create_dummy_stream() local
7500 snd_hda_codec_setup_stream(codec, spec->dacs[0], spec->dsp_stream_id, in ca0132_alt_create_dummy_stream()
7503 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_alt_create_dummy_stream()
7511 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_analog_mics() local
7517 if (ca0132_quirk(spec) == QUIRK_R3DI) { in ca0132_alt_init_analog_mics()
7527 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_init_analog_mics()
7541 struct ca0132_spec *spec = codec->spec; in sbz_connect_streams() local
7543 mutex_lock(&spec->chipio_mutex); in sbz_connect_streams()
7562 mutex_unlock(&spec->chipio_mutex); in sbz_connect_streams()
7573 struct ca0132_spec *spec = codec->spec; in sbz_chipio_startup_data() local
7575 mutex_lock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7589 if (ca0132_quirk(spec) == QUIRK_SBZ) { in sbz_chipio_startup_data()
7602 } else if (ca0132_quirk(spec) == QUIRK_ZXR) { in sbz_chipio_startup_data()
7615 mutex_unlock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7624 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_scp_startup() local
7632 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_scp_startup()
7671 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_initial_mic_setup() local
7686 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_initial_mic_setup()
7702 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_register_set() local
7710 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7711 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
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(0x00, spec->mem_base + 0x100); 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()
7783 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_stream_setup() local
7785 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7810 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7815 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_startup_data() local
7817 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
7842 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
7852 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_setup_ports() local
7855 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
7883 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_setup_ports()
7888 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_stream_setup() local
7890 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
7908 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_stream_setup()
7931 struct ca0132_spec *spec = codec->spec; in ae7_post_dsp_asi_setup_ports() local
7940 mutex_lock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8006 mutex_unlock(&spec->chipio_mutex); in ae7_post_dsp_asi_setup_ports()
8056 struct ca0132_spec *spec = codec->spec; in ca0132_setup_defaults() local
8061 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_setup_defaults()
8101 struct ca0132_spec *spec = codec->spec; in r3d_setup_defaults() local
8106 if (spec->dsp_state != DSP_DOWNLOADED) in r3d_setup_defaults()
8124 if (ca0132_quirk(spec) == QUIRK_R3DI) in r3d_setup_defaults()
8128 if (ca0132_quirk(spec) == QUIRK_R3D) { in r3d_setup_defaults()
8151 struct ca0132_spec *spec = codec->spec; in sbz_setup_defaults() local
8156 if (spec->dsp_state != DSP_DOWNLOADED) in sbz_setup_defaults()
8210 struct ca0132_spec *spec = codec->spec; in ae5_setup_defaults() local
8215 if (spec->dsp_state != DSP_DOWNLOADED) in ae5_setup_defaults()
8279 struct ca0132_spec *spec = codec->spec; in ae7_setup_defaults() local
8284 if (spec->dsp_state != DSP_DOWNLOADED) in ae7_setup_defaults()
8364 struct ca0132_spec *spec = codec->spec; in ca0132_init_flags() local
8366 if (ca0132_use_alt_functions(spec)) { in ca0132_init_flags()
8397 struct ca0132_spec *spec = codec->spec; in ca0132_init_params() local
8399 if (ca0132_use_alt_functions(spec)) { in ca0132_init_params()
8428 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp_images() local
8436 switch (ca0132_quirk(spec)) { in ca0132_download_dsp_images()
8483 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp() local
8489 if (spec->dsp_state == DSP_DOWNLOAD_FAILED) in ca0132_download_dsp()
8493 if (spec->dsp_state != DSP_DOWNLOADED) { in ca0132_download_dsp()
8494 spec->dsp_state = DSP_DOWNLOADING; in ca0132_download_dsp()
8497 spec->dsp_state = DSP_DOWNLOAD_FAILED; in ca0132_download_dsp()
8499 spec->dsp_state = DSP_DOWNLOADED; in ca0132_download_dsp()
8503 if (spec->dsp_state == DSP_DOWNLOADED && !ca0132_use_alt_functions(spec)) in ca0132_download_dsp()
8510 struct ca0132_spec *spec = codec->spec; in ca0132_process_dsp_response() local
8514 if (spec->wait_scp) { in ca0132_process_dsp_response()
8516 spec->wait_scp = 0; in ca0132_process_dsp_response()
8525 struct ca0132_spec *spec = codec->spec; in hp_callback() local
8534 schedule_delayed_work(&spec->unsol_hp_work, msecs_to_jiffies(500)); in hp_callback()
8539 struct ca0132_spec *spec = codec->spec; in amic_callback() local
8541 if (ca0132_use_alt_functions(spec)) in amic_callback()
8549 struct ca0132_spec *spec = codec->spec; in ca0132_init_unsol() local
8550 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_hp, hp_callback); in ca0132_init_unsol()
8551 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_amic1, in ca0132_init_unsol()
8556 if (ca0132_use_alt_functions(spec)) in ca0132_init_unsol()
8558 spec->unsol_tag_front_hp, hp_callback); in ca0132_init_unsol()
8638 struct ca0132_spec *spec = codec->spec; in ca0132_init_chip() local
8643 mutex_init(&spec->chipio_mutex); in ca0132_init_chip()
8645 spec->cur_out_type = SPEAKER_OUT; in ca0132_init_chip()
8646 if (!ca0132_use_alt_functions(spec)) in ca0132_init_chip()
8647 spec->cur_mic_type = DIGITAL_MIC; in ca0132_init_chip()
8649 spec->cur_mic_type = REAR_MIC; in ca0132_init_chip()
8651 spec->cur_mic_boost = 0; in ca0132_init_chip()
8654 spec->vnode_lvol[i] = 0x5a; in ca0132_init_chip()
8655 spec->vnode_rvol[i] = 0x5a; in ca0132_init_chip()
8656 spec->vnode_lswitch[i] = 0; in ca0132_init_chip()
8657 spec->vnode_rswitch[i] = 0; in ca0132_init_chip()
8666 spec->effects_switch[i] = on ? 1 : 0; in ca0132_init_chip()
8672 if (ca0132_use_alt_controls(spec)) { in ca0132_init_chip()
8674 spec->speaker_range_val[0] = 1; in ca0132_init_chip()
8675 spec->speaker_range_val[1] = 1; in ca0132_init_chip()
8677 spec->xbass_xover_freq = 8; in ca0132_init_chip()
8679 spec->fx_ctl_val[i] = effect_slider_defaults[i]; in ca0132_init_chip()
8681 spec->bass_redirect_xover_freq = 8; in ca0132_init_chip()
8684 spec->voicefx_val = 0; in ca0132_init_chip()
8685 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID] = 1; in ca0132_init_chip()
8686 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] = 0; in ca0132_init_chip()
8691 * to make sure that spec->in_enum_val is set properly. in ca0132_init_chip()
8693 if (ca0132_quirk(spec) == QUIRK_ZXR) in ca0132_init_chip()
8694 spec->in_enum_val = REAR_MIC; in ca0132_init_chip()
8715 struct ca0132_spec *spec = codec->spec; in sbz_region2_exit() local
8719 writeb(0x0, spec->mem_base + 0x100); in sbz_region2_exit()
8721 writeb(0xb3, spec->mem_base + 0x304); in sbz_region2_exit()
8921 struct ca0132_spec *spec = codec->spec; in sbz_dsp_startup_check() local
8928 if (spec->startup_check_entered) in sbz_dsp_startup_check()
8931 spec->startup_check_entered = true; in sbz_dsp_startup_check()
8953 spec->dsp_state = DSP_DOWNLOAD_INIT; in sbz_dsp_startup_check()
9001 struct ca0132_spec *spec = codec->spec; in sbz_pre_dsp_setup() local
9003 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9004 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
9093 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_sbz() local
9099 writel(0x00000000, spec->mem_base + addr[i]); in ca0132_mmio_init_sbz()
9102 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9122 writel(tmp[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9126 switch (ca0132_quirk(spec)) { in ca0132_mmio_init_sbz()
9138 writel(data[i], spec->mem_base + addr[cur_addr + i]); in ca0132_mmio_init_sbz()
9143 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init_ae5() local
9151 if (ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9152 writel(0x00000680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9153 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9161 if (i == 21 && ca0132_quirk(spec) == QUIRK_AE7) { in ca0132_mmio_init_ae5()
9162 writel(0x00800001, spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9166 writel(data[i], spec->mem_base + addr[i]); in ca0132_mmio_init_ae5()
9169 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init_ae5()
9170 writel(0x00880680, spec->mem_base + 0x1c); in ca0132_mmio_init_ae5()
9175 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init() local
9177 switch (ca0132_quirk(spec)) { in ca0132_mmio_init()
9208 struct ca0132_spec *spec = codec->spec; in ae5_register_set() local
9215 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9228 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9239 writeb(tmp[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9246 writeb(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9249 writel(data[i], spec->mem_base + addr[cur_addr]); in ae5_register_set()
9251 writel(0x00800001, spec->mem_base + 0x20c); in ae5_register_set()
9253 if (ca0132_quirk(spec) == QUIRK_AE7) { in ae5_register_set()
9263 if (ca0132_quirk(spec) == QUIRK_AE5) in ae5_register_set()
9279 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init() local
9283 switch (ca0132_quirk(spec)) { in ca0132_alt_init()
9288 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9289 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9297 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9302 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9303 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9312 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9313 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9322 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9323 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9330 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
9331 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
9340 struct ca0132_spec *spec = codec->spec; in ca0132_init() local
9341 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_init()
9355 if (spec->dsp_state == DSP_DOWNLOADED) { in ca0132_init()
9358 spec->dsp_reload = true; in ca0132_init()
9359 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9361 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9367 if (spec->dsp_state != DSP_DOWNLOAD_FAILED) in ca0132_init()
9368 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
9369 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; in ca0132_init()
9371 if (ca0132_use_pci_mmio(spec)) in ca0132_init()
9376 if (ca0132_quirk(spec) == QUIRK_AE5 || ca0132_quirk(spec) == QUIRK_AE7) in ca0132_init()
9383 snd_hda_sequence_write(codec, spec->base_init_verbs); in ca0132_init()
9385 if (ca0132_use_alt_functions(spec)) in ca0132_init()
9392 switch (ca0132_quirk(spec)) { in ca0132_init()
9414 for (i = 0; i < spec->num_outputs; i++) in ca0132_init()
9415 init_output(codec, spec->out_pins[i], spec->dacs[0]); in ca0132_init()
9417 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in ca0132_init()
9419 for (i = 0; i < spec->num_inputs; i++) in ca0132_init()
9420 init_input(codec, spec->input_pins[i], spec->adcs[i]); in ca0132_init()
9422 init_input(codec, cfg->dig_in_pin, spec->dig_in); in ca0132_init()
9424 if (!ca0132_use_alt_functions(spec)) { in ca0132_init()
9425 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_init()
9432 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
9435 snd_hda_sequence_write(codec, spec->spec_init_verbs); in ca0132_init()
9436 if (ca0132_use_alt_functions(spec)) { in ca0132_init()
9450 if (spec->dsp_reload) { in ca0132_init()
9451 spec->dsp_reload = false; in ca0132_init()
9462 struct ca0132_spec *spec = codec->spec; in dbpro_init() local
9463 struct auto_pin_cfg *cfg = &spec->autocfg; in dbpro_init()
9466 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in dbpro_init()
9467 init_input(codec, cfg->dig_in_pin, spec->dig_in); in dbpro_init()
9469 for (i = 0; i < spec->num_inputs; i++) in dbpro_init()
9470 init_input(codec, spec->input_pins[i], spec->adcs[i]); in dbpro_init()
9477 struct ca0132_spec *spec = codec->spec; in ca0132_free() local
9479 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_free()
9481 switch (ca0132_quirk(spec)) { in ca0132_free()
9504 snd_hda_sequence_write(codec, spec->base_exit_verbs); in ca0132_free()
9509 if (spec->mem_base) in ca0132_free()
9510 pci_iounmap(codec->bus->pci, spec->mem_base); in ca0132_free()
9512 kfree(spec->spec_init_verbs); in ca0132_free()
9513 kfree(codec->spec); in ca0132_free()
9518 struct ca0132_spec *spec = codec->spec; in dbpro_free() local
9522 kfree(spec->spec_init_verbs); in dbpro_free()
9523 kfree(codec->spec); in dbpro_free()
9534 struct ca0132_spec *spec = codec->spec; in ca0132_suspend() local
9536 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_suspend()
9562 struct ca0132_spec *spec = codec->spec; in ca0132_config() local
9564 spec->dacs[0] = 0x2; in ca0132_config()
9565 spec->dacs[1] = 0x3; in ca0132_config()
9566 spec->dacs[2] = 0x4; in ca0132_config()
9568 spec->multiout.dac_nids = spec->dacs; in ca0132_config()
9569 spec->multiout.num_dacs = 3; in ca0132_config()
9571 if (!ca0132_use_alt_functions(spec)) in ca0132_config()
9572 spec->multiout.max_channels = 2; in ca0132_config()
9574 spec->multiout.max_channels = 6; in ca0132_config()
9576 switch (ca0132_quirk(spec)) { in ca0132_config()
9609 switch (ca0132_quirk(spec)) { in ca0132_config()
9611 spec->num_outputs = 2; in ca0132_config()
9612 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9613 spec->out_pins[1] = 0x0f; in ca0132_config()
9614 spec->shared_out_nid = 0x2; in ca0132_config()
9615 spec->unsol_tag_hp = 0x0f; in ca0132_config()
9617 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9618 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9619 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9621 spec->num_inputs = 3; in ca0132_config()
9622 spec->input_pins[0] = 0x12; in ca0132_config()
9623 spec->input_pins[1] = 0x11; in ca0132_config()
9624 spec->input_pins[2] = 0x13; in ca0132_config()
9625 spec->shared_mic_nid = 0x7; in ca0132_config()
9626 spec->unsol_tag_amic1 = 0x11; in ca0132_config()
9630 spec->num_outputs = 2; in ca0132_config()
9631 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9632 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9633 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9634 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9635 spec->shared_out_nid = 0x2; in ca0132_config()
9636 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9637 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9639 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9640 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9641 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9643 spec->num_inputs = 2; in ca0132_config()
9644 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9645 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9646 spec->shared_mic_nid = 0x7; in ca0132_config()
9647 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9650 spec->dig_out = 0x05; in ca0132_config()
9651 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9652 spec->dig_in = 0x09; in ca0132_config()
9655 spec->num_outputs = 2; in ca0132_config()
9656 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9657 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9658 spec->out_pins[2] = 0x10; /* Center/LFE */ in ca0132_config()
9659 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9660 spec->shared_out_nid = 0x2; in ca0132_config()
9661 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9662 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9664 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9665 spec->adcs[1] = 0x8; /* Not connected, no front mic */ in ca0132_config()
9666 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9668 spec->num_inputs = 2; in ca0132_config()
9669 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9670 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9671 spec->shared_mic_nid = 0x7; in ca0132_config()
9672 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9675 spec->adcs[0] = 0x8; /* ZxR DBPro Aux In */ in ca0132_config()
9677 spec->num_inputs = 1; in ca0132_config()
9678 spec->input_pins[0] = 0x11; /* RCA Line-in */ in ca0132_config()
9680 spec->dig_out = 0x05; in ca0132_config()
9681 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9683 spec->dig_in = 0x09; in ca0132_config()
9687 spec->num_outputs = 2; in ca0132_config()
9688 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9689 spec->out_pins[1] = 0x11; /* Rear headphone out */ in ca0132_config()
9690 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9691 spec->out_pins[3] = 0x0F; /* Rear surround */ in ca0132_config()
9692 spec->shared_out_nid = 0x2; in ca0132_config()
9693 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9694 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9696 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
9697 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
9698 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9700 spec->num_inputs = 2; in ca0132_config()
9701 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9702 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9703 spec->shared_mic_nid = 0x7; in ca0132_config()
9704 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9707 spec->dig_out = 0x05; in ca0132_config()
9708 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9711 spec->num_outputs = 2; in ca0132_config()
9712 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
9713 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
9714 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
9715 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
9716 spec->shared_out_nid = 0x2; in ca0132_config()
9717 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9718 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
9720 spec->adcs[0] = 0x07; /* Rear Mic / Line-in */ in ca0132_config()
9721 spec->adcs[1] = 0x08; /* Front Mic, but only if no DSP */ in ca0132_config()
9722 spec->adcs[2] = 0x0a; /* what u hear */ in ca0132_config()
9724 spec->num_inputs = 2; in ca0132_config()
9725 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
9726 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
9727 spec->shared_mic_nid = 0x7; in ca0132_config()
9728 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9731 spec->dig_out = 0x05; in ca0132_config()
9732 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9735 spec->num_outputs = 2; in ca0132_config()
9736 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
9737 spec->out_pins[1] = 0x10; /* headphone out */ in ca0132_config()
9738 spec->shared_out_nid = 0x2; in ca0132_config()
9739 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
9741 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
9742 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
9743 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
9745 spec->num_inputs = 3; in ca0132_config()
9746 spec->input_pins[0] = 0x12; in ca0132_config()
9747 spec->input_pins[1] = 0x11; in ca0132_config()
9748 spec->input_pins[2] = 0x13; in ca0132_config()
9749 spec->shared_mic_nid = 0x7; in ca0132_config()
9750 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
9753 spec->dig_out = 0x05; in ca0132_config()
9754 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
9755 spec->dig_in = 0x09; in ca0132_config()
9764 struct ca0132_spec *spec = codec->spec; in ca0132_prepare_verbs() local
9766 spec->chip_init_verbs = ca0132_init_verbs0; in ca0132_prepare_verbs()
9771 if (ca0132_use_pci_mmio(spec)) in ca0132_prepare_verbs()
9772 spec->desktop_init_verbs = ca0132_init_verbs1; in ca0132_prepare_verbs()
9773 spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS, in ca0132_prepare_verbs()
9776 if (!spec->spec_init_verbs) in ca0132_prepare_verbs()
9780 spec->spec_init_verbs[0].nid = 0x0b; in ca0132_prepare_verbs()
9781 spec->spec_init_verbs[0].param = 0x78D; in ca0132_prepare_verbs()
9782 spec->spec_init_verbs[0].verb = 0x00; in ca0132_prepare_verbs()
9786 spec->spec_init_verbs[2].nid = 0x0b; in ca0132_prepare_verbs()
9787 spec->spec_init_verbs[2].param = AC_VERB_SET_EAPD_BTLENABLE; in ca0132_prepare_verbs()
9788 spec->spec_init_verbs[2].verb = 0x02; in ca0132_prepare_verbs()
9790 spec->spec_init_verbs[3].nid = 0x10; in ca0132_prepare_verbs()
9791 spec->spec_init_verbs[3].param = 0x78D; in ca0132_prepare_verbs()
9792 spec->spec_init_verbs[3].verb = 0x02; in ca0132_prepare_verbs()
9794 spec->spec_init_verbs[4].nid = 0x10; in ca0132_prepare_verbs()
9795 spec->spec_init_verbs[4].param = AC_VERB_SET_EAPD_BTLENABLE; in ca0132_prepare_verbs()
9796 spec->spec_init_verbs[4].verb = 0x02; in ca0132_prepare_verbs()
9799 /* Terminator: spec->spec_init_verbs[NUM_SPEC_VERBS-1] */ in ca0132_prepare_verbs()
9811 struct ca0132_spec *spec = codec->spec; in sbz_detect_quirk() local
9815 spec->quirk = QUIRK_ZXR; in sbz_detect_quirk()
9818 spec->quirk = QUIRK_ZXR_DBPRO; in sbz_detect_quirk()
9821 spec->quirk = QUIRK_SBZ; in sbz_detect_quirk()
9828 struct ca0132_spec *spec; in patch_ca0132() local
9834 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_ca0132()
9835 if (!spec) in patch_ca0132()
9837 codec->spec = spec; in patch_ca0132()
9838 spec->codec = codec; in patch_ca0132()
9843 spec->quirk = quirk->value; in patch_ca0132()
9845 spec->quirk = QUIRK_NONE; in patch_ca0132()
9846 if (ca0132_quirk(spec) == QUIRK_SBZ) in patch_ca0132()
9849 if (ca0132_quirk(spec) == QUIRK_ZXR_DBPRO) in patch_ca0132()
9858 spec->dsp_state = DSP_DOWNLOAD_INIT; in patch_ca0132()
9859 spec->num_mixers = 1; in patch_ca0132()
9862 switch (ca0132_quirk(spec)) { in patch_ca0132()
9864 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9868 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9874 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9878 spec->mixers[0] = r3di_mixer; in patch_ca0132()
9882 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9886 spec->mixers[0] = desktop_mixer; in patch_ca0132()
9890 spec->mixers[0] = ca0132_mixer; in patch_ca0132()
9895 switch (ca0132_quirk(spec)) { in patch_ca0132()
9901 spec->use_alt_controls = true; in patch_ca0132()
9902 spec->use_alt_functions = true; in patch_ca0132()
9903 spec->use_pci_mmio = true; in patch_ca0132()
9906 spec->use_alt_controls = true; in patch_ca0132()
9907 spec->use_alt_functions = true; in patch_ca0132()
9908 spec->use_pci_mmio = false; in patch_ca0132()
9911 spec->use_alt_controls = false; in patch_ca0132()
9912 spec->use_alt_functions = false; in patch_ca0132()
9913 spec->use_pci_mmio = false; in patch_ca0132()
9918 if (spec->use_pci_mmio) { in patch_ca0132()
9919 spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); in patch_ca0132()
9920 if (spec->mem_base == NULL) { in patch_ca0132()
9922 spec->quirk = QUIRK_NONE; in patch_ca0132()
9927 spec->base_init_verbs = ca0132_base_init_verbs; in patch_ca0132()
9928 spec->base_exit_verbs = ca0132_base_exit_verbs; in patch_ca0132()
9930 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); in patch_ca0132()
9940 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); in patch_ca0132()