Lines Matching refs:spec
1071 #define ca0132_quirk(spec) ((spec)->quirk) argument
1072 #define ca0132_use_pci_mmio(spec) ((spec)->use_pci_mmio) argument
1073 #define ca0132_use_alt_functions(spec) ((spec)->use_alt_functions) argument
1074 #define ca0132_use_alt_controls(spec) ((spec)->use_alt_controls) argument
1076 #define ca0132_quirk(spec) ({ (void)(spec); QUIRK_NONE; }) argument
1077 #define ca0132_use_alt_functions(spec) ({ (void)(spec); false; }) argument
1078 #define ca0132_use_pci_mmio(spec) ({ (void)(spec); false; }) argument
1079 #define ca0132_use_alt_controls(spec) ({ (void)(spec); false; }) argument
1245 struct ca0132_spec *spec = codec->spec; in chipio_write_address() local
1248 if (spec->curr_chip_addx == chip_addx) in chipio_write_address()
1261 spec->curr_chip_addx = (res < 0) ? ~0U : chip_addx; in chipio_write_address()
1271 struct ca0132_spec *spec = codec->spec; in chipio_write_data() local
1285 spec->curr_chip_addx = (res != -EIO) ? in chipio_write_data()
1286 (spec->curr_chip_addx + 4) : ~0U; in chipio_write_data()
1316 struct ca0132_spec *spec = codec->spec; in chipio_read_data() local
1336 spec->curr_chip_addx = (res != -EIO) ? in chipio_read_data()
1337 (spec->curr_chip_addx + 4) : ~0U; in chipio_read_data()
1348 struct ca0132_spec *spec = codec->spec; in chipio_write() local
1351 mutex_lock(&spec->chipio_mutex); in chipio_write()
1363 mutex_unlock(&spec->chipio_mutex); in chipio_write()
1399 struct ca0132_spec *spec = codec->spec; in chipio_write_multiple() local
1402 mutex_lock(&spec->chipio_mutex); in chipio_write_multiple()
1409 mutex_unlock(&spec->chipio_mutex); in chipio_write_multiple()
1421 struct ca0132_spec *spec = codec->spec; in chipio_read() local
1424 mutex_lock(&spec->chipio_mutex); in chipio_read()
1436 mutex_unlock(&spec->chipio_mutex); in chipio_read()
1462 struct ca0132_spec *spec = codec->spec; in chipio_set_control_param() local
1470 mutex_lock(&spec->chipio_mutex); in chipio_set_control_param()
1479 mutex_unlock(&spec->chipio_mutex); in chipio_set_control_param()
1588 struct ca0132_spec *spec = codec->spec; in chipio_enable_clocks() local
1590 mutex_lock(&spec->chipio_mutex); in chipio_enable_clocks()
1603 mutex_unlock(&spec->chipio_mutex); in chipio_enable_clocks()
1649 struct ca0132_spec *spec = codec->spec; in dspio_write() local
1654 mutex_lock(&spec->chipio_mutex); in dspio_write()
1669 mutex_unlock(&spec->chipio_mutex); in dspio_write()
1823 struct ca0132_spec *spec = codec->spec; in dspio_get_response_data() local
1830 if ((data & 0x00ffffff) == spec->wait_scp_header) { in dspio_get_response_data()
1831 spec->scp_resp_header = data; in dspio_get_response_data()
1832 spec->scp_resp_count = data >> 27; in dspio_get_response_data()
1833 count = spec->wait_num_data; in dspio_get_response_data()
1834 dspio_read_multiple(codec, spec->scp_resp_data, in dspio_get_response_data()
1835 &spec->scp_resp_count, count); in dspio_get_response_data()
1852 struct ca0132_spec *spec = codec->spec; in dspio_send_scp_message() local
1879 spec->wait_scp_header = *((unsigned int *)send_buf); in dspio_send_scp_message()
1884 spec->wait_scp_header &= 0xffff0000; in dspio_send_scp_message()
1885 spec->wait_scp_header |= (resp_src_id << 8) | (resp_target_id); in dspio_send_scp_message()
1886 spec->wait_num_data = return_buf_size/sizeof(unsigned int) - 1; in dspio_send_scp_message()
1887 spec->wait_scp = 1; in dspio_send_scp_message()
1894 spec->wait_scp = 0; in dspio_send_scp_message()
1903 } while (spec->wait_scp && time_before(jiffies, timeout)); in dspio_send_scp_message()
1905 if (!spec->wait_scp) { in dspio_send_scp_message()
1907 memcpy(&ret_msg->hdr, &spec->scp_resp_header, 4); in dspio_send_scp_message()
1908 memcpy(&ret_msg->data, spec->scp_resp_data, in dspio_send_scp_message()
1909 spec->wait_num_data); in dspio_send_scp_message()
1910 *bytes_returned = (spec->scp_resp_count + 1) * 4; in dspio_send_scp_message()
1915 spec->wait_scp = 0; in dspio_send_scp_message()
2627 struct ca0132_spec *spec = codec->spec; in dma_reset() local
2639 spec->dsp_stream_id = status; in dma_reset()
2690 struct ca0132_spec *spec = dma->codec->spec; in dma_get_stream_id() local
2692 return spec->dsp_stream_id; in dma_get_stream_id()
2985 struct ca0132_spec *spec = codec->spec; in dspxfr_image() local
3029 spec->dsp_stream_id = status; in dspxfr_image()
3101 struct ca0132_spec *spec = codec->spec; in dspload_post_setup() local
3103 if (!ca0132_use_alt_functions(spec)) { in dspload_post_setup()
3235 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_gpio_set() local
3241 writew(gpio_data, spec->mem_base + 0x320); in ca0113_mmio_gpio_set()
3255 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set() local
3258 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3259 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3260 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3261 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3262 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3264 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3265 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set()
3267 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3272 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set()
3278 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set()
3279 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set()
3280 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set()
3282 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set()
3283 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set()
3284 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3285 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set()
3294 struct ca0132_spec *spec = codec->spec; in ca0113_mmio_command_set_type2() local
3297 writel(0x0000007e, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3298 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3299 writel(0x0000005a, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3300 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3301 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3303 writel(0x00800003, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3304 writel(group, spec->mem_base + 0x804); in ca0113_mmio_command_set_type2()
3306 writel(0x00800005, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3311 writel(write_val, spec->mem_base + 0x204); in ca0113_mmio_command_set_type2()
3313 readl(spec->mem_base + 0x860); in ca0113_mmio_command_set_type2()
3314 readl(spec->mem_base + 0x854); in ca0113_mmio_command_set_type2()
3315 readl(spec->mem_base + 0x840); in ca0113_mmio_command_set_type2()
3317 writel(0x00800004, spec->mem_base + 0x20c); in ca0113_mmio_command_set_type2()
3318 writel(0x00000000, spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3319 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3320 readl(spec->mem_base + 0x210); in ca0113_mmio_command_set_type2()
3333 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_init() local
3335 switch (ca0132_quirk(spec)) { in ca0132_gpio_init()
3355 struct ca0132_spec *spec = codec->spec; in ca0132_gpio_setup() local
3357 switch (ca0132_quirk(spec)) { in ca0132_gpio_setup()
3501 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_prepare() local
3503 snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); in ca0132_playback_pcm_prepare()
3512 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_cleanup() local
3514 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_playback_pcm_cleanup()
3519 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_playback_pcm_cleanup()
3522 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_playback_pcm_cleanup()
3531 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_delay() local
3535 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_playback_pcm_delay()
3539 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) { in ca0132_playback_pcm_delay()
3540 if ((spec->effects_switch[SURROUND - EFFECT_START_NID]) || in ca0132_playback_pcm_delay()
3541 (spec->effects_switch[DIALOG_PLUS - EFFECT_START_NID])) in ca0132_playback_pcm_delay()
3546 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_playback_pcm_delay()
3559 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_open() local
3560 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in ca0132_dig_playback_pcm_open()
3569 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_prepare() local
3570 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in ca0132_dig_playback_pcm_prepare()
3578 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_cleanup() local
3579 return snd_hda_multi_out_dig_cleanup(codec, &spec->multiout); in ca0132_dig_playback_pcm_cleanup()
3586 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_close() local
3587 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in ca0132_dig_playback_pcm_close()
3609 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_cleanup() local
3611 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_capture_pcm_cleanup()
3622 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_delay() local
3626 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_capture_pcm_delay()
3629 if (spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_capture_pcm_delay()
3854 struct ca0132_spec *spec = codec->spec; in tuning_ctl_get() local
3859 *valp = spec->cur_ctl_vals[idx]; in tuning_ctl_get()
3880 struct ca0132_spec *spec = codec->spec; in voice_focus_ctl_put() local
3887 if (spec->cur_ctl_vals[idx] == *valp) in voice_focus_ctl_put()
3890 spec->cur_ctl_vals[idx] = *valp; in voice_focus_ctl_put()
3915 struct ca0132_spec *spec = codec->spec; in mic_svm_ctl_put() local
3922 if (spec->cur_ctl_vals[idx] == *valp) in mic_svm_ctl_put()
3925 spec->cur_ctl_vals[idx] = *valp; in mic_svm_ctl_put()
3950 struct ca0132_spec *spec = codec->spec; in equalizer_ctl_put() local
3957 if (spec->cur_ctl_vals[idx] == *valp) in equalizer_ctl_put()
3960 spec->cur_ctl_vals[idx] = *valp; in equalizer_ctl_put()
4031 struct ca0132_spec *spec = codec->spec; in ca0132_init_tuning_defaults() local
4035 spec->cur_ctl_vals[WEDGE_ANGLE - TUNING_CTL_START_NID] = 10; in ca0132_init_tuning_defaults()
4037 spec->cur_ctl_vals[SVM_LEVEL - TUNING_CTL_START_NID] = 74; in ca0132_init_tuning_defaults()
4041 spec->cur_ctl_vals[i] = 24; in ca0132_init_tuning_defaults()
4053 struct ca0132_spec *spec = codec->spec; in ca0132_select_out() local
4064 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_select_out()
4067 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp); in ca0132_select_out()
4070 spec->vnode_lswitch[VNID_HP_SEL - VNODE_START_NID]; in ca0132_select_out()
4073 spec->cur_out_type = HEADPHONE_OUT; in ca0132_select_out()
4075 spec->cur_out_type = SPEAKER_OUT; in ca0132_select_out()
4077 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_select_out()
4091 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4093 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4095 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4097 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4101 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4103 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4106 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4108 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4124 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4126 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4128 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
4130 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
4134 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
4136 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
4139 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
4141 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
4157 struct ca0132_spec *spec = codec->spec; in ae5_mmio_select_out() local
4162 ae5_ca0113_output_presets[spec->cur_out_type].group[i], in ae5_mmio_select_out()
4163 ae5_ca0113_output_presets[spec->cur_out_type].target[i], in ae5_mmio_select_out()
4164 ae5_ca0113_output_presets[spec->cur_out_type].vals[i]); in ae5_mmio_select_out()
4173 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out_quirk_handler() local
4176 switch (spec->cur_out_type) { in ca0132_alt_select_out_quirk_handler()
4178 switch (ca0132_quirk(spec)) { in ca0132_alt_select_out_quirk_handler()
4214 switch (ca0132_quirk(spec)) { in ca0132_alt_select_out_quirk_handler()
4225 zxr_headphone_gain_set(codec, spec->zxr_gain_set); in ca0132_alt_select_out_quirk_handler()
4239 spec->ae5_headphone_gain_val); in ca0132_alt_select_out_quirk_handler()
4251 switch (ca0132_quirk(spec)) { in ca0132_alt_select_out_quirk_handler()
4301 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_out() local
4309 hda_nid_t headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4315 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_select_out()
4323 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp) || in ca0132_alt_select_out()
4324 snd_hda_jack_detect(codec, spec->unsol_tag_front_hp); in ca0132_alt_select_out()
4327 spec->cur_out_type = HEADPHONE_OUT; in ca0132_alt_select_out()
4329 spec->cur_out_type = SPEAKER_OUT; in ca0132_alt_select_out()
4331 spec->cur_out_type = spec->out_enum_val; in ca0132_alt_select_out()
4341 switch (spec->cur_out_type) { in ca0132_alt_select_out()
4346 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_alt_select_out()
4348 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_alt_select_out()
4351 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4353 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_alt_select_out()
4356 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4360 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_alt_select_out()
4368 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4372 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4374 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_alt_select_out()
4379 if (snd_hda_jack_detect(codec, spec->unsol_tag_front_hp)) in ca0132_alt_select_out()
4380 headphone_nid = spec->out_pins[2]; in ca0132_alt_select_out()
4381 else if (snd_hda_jack_detect(codec, spec->unsol_tag_hp)) in ca0132_alt_select_out()
4382 headphone_nid = spec->out_pins[1]; in ca0132_alt_select_out()
4389 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_alt_select_out()
4398 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4400 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_alt_select_out()
4403 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_alt_select_out()
4405 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_alt_select_out()
4408 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_alt_select_out()
4411 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[2], 0, in ca0132_alt_select_out()
4413 snd_hda_set_pin_ctl(codec, spec->out_pins[2], in ca0132_alt_select_out()
4416 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[3], 0, in ca0132_alt_select_out()
4418 snd_hda_set_pin_ctl(codec, spec->out_pins[3], in ca0132_alt_select_out()
4431 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_alt_select_out()
4433 spec->effects_switch[X_BASS - EFFECT_START_NID]); in ca0132_alt_select_out()
4436 for (i = 0; i < alt_out_presets[spec->cur_out_type].commands; i++) { in ca0132_alt_select_out()
4438 alt_out_presets[spec->cur_out_type].mids[i], in ca0132_alt_select_out()
4439 alt_out_presets[spec->cur_out_type].reqs[i], in ca0132_alt_select_out()
4440 alt_out_presets[spec->cur_out_type].vals[i]); in ca0132_alt_select_out()
4454 struct ca0132_spec *spec = container_of( in ca0132_unsol_hp_delayed() local
4458 if (ca0132_use_alt_functions(spec)) in ca0132_unsol_hp_delayed()
4459 ca0132_alt_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4461 ca0132_select_out(spec->codec); in ca0132_unsol_hp_delayed()
4463 jack = snd_hda_jack_tbl_get(spec->codec, spec->unsol_tag_hp); in ca0132_unsol_hp_delayed()
4466 snd_hda_jack_report_sync(spec->codec); in ca0132_unsol_hp_delayed()
4482 struct ca0132_spec *spec = codec->spec; in ca0132_set_vipsource() local
4485 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_set_vipsource()
4489 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_set_vipsource()
4494 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4504 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
4520 struct ca0132_spec *spec = codec->spec; in ca0132_alt_set_vipsource() local
4523 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_alt_set_vipsource()
4532 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_alt_set_vipsource()
4533 (val == 0) || spec->in_enum_val == REAR_LINE_IN) { in ca0132_alt_set_vipsource()
4542 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4546 if (spec->in_enum_val == REAR_LINE_IN) in ca0132_alt_set_vipsource()
4549 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_alt_set_vipsource()
4561 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_set_vipsource()
4564 if (spec->effects_switch[VOICE_FOCUS - EFFECT_START_NID]) in ca0132_alt_set_vipsource()
4591 struct ca0132_spec *spec = codec->spec; in ca0132_select_mic() local
4599 auto_jack = spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_select_mic()
4602 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_amic1); in ca0132_select_mic()
4605 spec->vnode_lswitch[VNID_AMIC1_SEL - VNODE_START_NID]; in ca0132_select_mic()
4608 spec->cur_mic_type = LINE_MIC_IN; in ca0132_select_mic()
4610 spec->cur_mic_type = DIGITAL_MIC; in ca0132_select_mic()
4612 if (spec->cur_mic_type == DIGITAL_MIC) { in ca0132_select_mic()
4619 spec->effects_switch in ca0132_select_mic()
4625 ca0132_mic_boost_set(codec, spec->cur_mic_boost); in ca0132_select_mic()
4643 struct ca0132_spec *spec = codec->spec; in ca0132_alt_select_in() local
4653 spec->cur_mic_type = spec->in_enum_val; in ca0132_alt_select_in()
4655 switch (spec->cur_mic_type) { in ca0132_alt_select_in()
4657 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
4681 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
4688 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
4704 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
4708 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
4725 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
4731 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
4744 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
4766 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_select_in()
4774 switch (ca0132_quirk(spec)) { in ca0132_alt_select_in()
4786 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_select_in()
4802 struct ca0132_spec *spec = codec->spec; in ca0132_is_vnode_effective() local
4807 nid = spec->shared_out_nid; in ca0132_is_vnode_effective()
4810 nid = spec->shared_mic_nid; in ca0132_is_vnode_effective()
4828 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_set() local
4833 tmp = spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] ? in ca0132_voicefx_set()
4850 struct ca0132_spec *spec = codec->spec; in ca0132_effects_set() local
4862 if (!spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_effects_set()
4864 if (spec->cur_out_type == SURROUND_OUT && nid == X_BASS) in ca0132_effects_set()
4871 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_effects_set()
4875 if ((nid == VOICE_FOCUS) && (spec->cur_mic_type != DIGITAL_MIC)) in ca0132_effects_set()
4879 if ((nid == VOICE_FOCUS) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
4880 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
4881 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
4884 if (spec->effects_switch[VOICE_FOCUS - in ca0132_effects_set()
4898 if ((nid == NOISE_REDUCTION) && ca0132_use_pci_mmio(spec) in ca0132_effects_set()
4899 && (spec->cur_mic_type != REAR_LINE_IN)) { in ca0132_effects_set()
4900 if (spec->effects_switch[CRYSTAL_VOICE - in ca0132_effects_set()
4902 if (spec->effects_switch[NOISE_REDUCTION - in ca0132_effects_set()
4914 if (ca0132_use_alt_functions(spec) && in ca0132_effects_set()
4915 spec->in_enum_val == REAR_LINE_IN) in ca0132_effects_set()
4937 struct ca0132_spec *spec = codec->spec; in ca0132_pe_switch_set() local
4942 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]); in ca0132_pe_switch_set()
4944 if (ca0132_use_alt_functions(spec)) in ca0132_pe_switch_set()
4951 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_pe_switch_set()
4959 struct ca0132_spec *spec = codec->spec; in stop_mic1() local
4960 unsigned int oldval = snd_hda_codec_read(codec, spec->adcs[0], 0, in stop_mic1()
4963 snd_hda_codec_write(codec, spec->adcs[0], 0, in stop_mic1()
4972 struct ca0132_spec *spec = codec->spec; in resume_mic1() local
4975 snd_hda_codec_write(codec, spec->adcs[0], 0, in resume_mic1()
4985 struct ca0132_spec *spec = codec->spec; in ca0132_cvoice_switch_set() local
4991 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]); in ca0132_cvoice_switch_set()
4997 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_cvoice_switch_set()
5000 ret |= ca0132_voicefx_set(codec, (spec->voicefx_val ? 1 : 0)); in ca0132_cvoice_switch_set()
5004 if (ca0132_use_alt_functions(spec)) in ca0132_cvoice_switch_set()
5014 struct ca0132_spec *spec = codec->spec; in ca0132_mic_boost_set() local
5018 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5021 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
5029 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_set() local
5032 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_alt_mic_boost_set()
5066 struct ca0132_spec *spec = codec->spec; in ca0132_vnode_switch_set() local
5071 spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5073 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5083 spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
5090 if (ca0132_use_alt_functions(spec)) in ca0132_vnode_switch_set()
5172 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_ctl_get() local
5175 *valp = spec->xbass_xover_freq; in ca0132_alt_xbass_xover_slider_ctl_get()
5183 struct ca0132_spec *spec = codec->spec; in ca0132_alt_slider_ctl_get() local
5188 *valp = spec->fx_ctl_val[idx]; in ca0132_alt_slider_ctl_get()
5226 struct ca0132_spec *spec = codec->spec; in ca0132_alt_xbass_xover_slider_put() local
5232 if (spec->xbass_xover_freq == *valp) in ca0132_alt_xbass_xover_slider_put()
5235 spec->xbass_xover_freq = *valp; in ca0132_alt_xbass_xover_slider_put()
5247 struct ca0132_spec *spec = codec->spec; in ca0132_alt_effect_slider_put() local
5254 if (spec->fx_ctl_val[idx] == *valp) in ca0132_alt_effect_slider_put()
5257 spec->fx_ctl_val[idx] = *valp; in ca0132_alt_effect_slider_put()
5294 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_get() local
5296 ucontrol->value.enumerated.item[0] = spec->mic_boost_enum_val; in ca0132_alt_mic_boost_get()
5304 struct ca0132_spec *spec = codec->spec; in ca0132_alt_mic_boost_put() local
5314 spec->mic_boost_enum_val = sel; in ca0132_alt_mic_boost_put()
5316 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_alt_mic_boost_put()
5317 ca0132_alt_mic_boost_set(codec, spec->mic_boost_enum_val); in ca0132_alt_mic_boost_put()
5348 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_get() local
5350 ucontrol->value.enumerated.item[0] = spec->ae5_headphone_gain_val; in ae5_headphone_gain_get()
5358 struct ca0132_spec *spec = codec->spec; in ae5_headphone_gain_put() local
5368 spec->ae5_headphone_gain_val = sel; in ae5_headphone_gain_put()
5370 if (spec->out_enum_val == HEADPHONE_OUT) in ae5_headphone_gain_put()
5371 ae5_headphone_gain_set(codec, spec->ae5_headphone_gain_val); in ae5_headphone_gain_put()
5401 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_get() local
5403 ucontrol->value.enumerated.item[0] = spec->ae5_filter_val; in ae5_sound_filter_get()
5411 struct ca0132_spec *spec = codec->spec; in ae5_sound_filter_put() local
5421 spec->ae5_filter_val = sel; in ae5_sound_filter_put()
5451 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_get() local
5453 ucontrol->value.enumerated.item[0] = spec->in_enum_val; in ca0132_alt_input_source_get()
5461 struct ca0132_spec *spec = codec->spec; in ca0132_alt_input_source_put() local
5471 spec->in_enum_val = sel; in ca0132_alt_input_source_put()
5496 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_get() local
5498 ucontrol->value.enumerated.item[0] = spec->out_enum_val; in ca0132_alt_output_select_get()
5506 struct ca0132_spec *spec = codec->spec; in ca0132_alt_output_select_put() local
5517 spec->out_enum_val = sel; in ca0132_alt_output_select_put()
5519 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_alt_output_select_put()
5552 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_get() local
5554 ucontrol->value.enumerated.item[0] = spec->smart_volume_setting; in ca0132_alt_svm_setting_get()
5562 struct ca0132_spec *spec = codec->spec; in ca0132_alt_svm_setting_put() local
5574 spec->smart_volume_setting = sel; in ca0132_alt_svm_setting_put()
5616 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_get() local
5618 ucontrol->value.enumerated.item[0] = spec->eq_preset_val; in ca0132_alt_eq_preset_get()
5626 struct ca0132_spec *spec = codec->spec; in ca0132_alt_eq_preset_put() local
5649 spec->eq_preset_val = sel; in ca0132_alt_eq_preset_put()
5673 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_get() local
5675 ucontrol->value.enumerated.item[0] = spec->voicefx_val; in ca0132_voicefx_get()
5683 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_put() local
5706 spec->voicefx_val = sel; in ca0132_voicefx_put()
5718 struct ca0132_spec *spec = codec->spec; in ca0132_switch_get() local
5726 *valp = spec->vnode_lswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
5730 *valp = spec->vnode_rswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
5738 *valp = spec->effects_switch[nid - EFFECT_START_NID]; in ca0132_switch_get()
5743 if (nid == spec->input_pins[0]) { in ca0132_switch_get()
5744 *valp = spec->cur_mic_boost; in ca0132_switch_get()
5755 struct ca0132_spec *spec = codec->spec; in ca0132_switch_put() local
5768 spec->vnode_lswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
5772 spec->vnode_rswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
5781 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
5788 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
5796 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
5802 if (nid == spec->input_pins[0]) { in ca0132_switch_put()
5803 spec->cur_mic_boost = *valp; in ca0132_switch_put()
5804 if (ca0132_use_alt_functions(spec)) { in ca0132_switch_put()
5805 if (spec->in_enum_val != REAR_LINE_IN) in ca0132_switch_put()
5809 if (spec->cur_mic_type != DIGITAL_MIC) in ca0132_switch_put()
5817 spec->zxr_gain_set = *valp; in ca0132_switch_put()
5818 if (spec->cur_out_type == HEADPHONE_OUT) in ca0132_switch_put()
5841 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_volume_put() local
5850 lookup_val = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
5857 lookup_val = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_alt_dsp_volume_put()
5873 struct ca0132_spec *spec = codec->spec; in ca0132_volume_info() local
5883 nid = spec->shared_out_nid; in ca0132_volume_info()
5893 nid = spec->shared_mic_nid; in ca0132_volume_info()
5911 struct ca0132_spec *spec = codec->spec; in ca0132_volume_get() local
5918 *valp = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_volume_get()
5922 *valp = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_volume_get()
5932 struct ca0132_spec *spec = codec->spec; in ca0132_volume_put() local
5942 spec->vnode_lvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
5946 spec->vnode_rvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
5979 struct ca0132_spec *spec = codec->spec; in ca0132_alt_volume_put() local
5997 spec->vnode_lvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6001 spec->vnode_rvol[vnid - VNODE_START_NID] = *valp; in ca0132_alt_volume_put()
6019 struct ca0132_spec *spec = codec->spec; in ca0132_volume_tlv() local
6029 nid = spec->shared_out_nid; in ca0132_volume_tlv()
6039 nid = spec->shared_mic_nid; in ca0132_volume_tlv()
6092 struct ca0132_spec *spec = codec->spec; in add_fx_switch() local
6100 if (ca0132_use_alt_controls(spec) && (nid <= IN_EFFECT_END_NID)) in add_fx_switch()
6366 struct ca0132_spec *spec = codec->spec; in ca0132_build_controls() local
6371 for (i = 0; i < spec->num_mixers; i++) { in ca0132_build_controls()
6372 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in ca0132_build_controls()
6377 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
6378 snd_hda_set_vmaster_tlv(codec, spec->dacs[0], HDA_OUTPUT, in ca0132_build_controls()
6379 spec->tlv); in ca0132_build_controls()
6381 spec->tlv, ca0132_alt_slave_pfxs, in ca0132_build_controls()
6386 true, &spec->vmaster_mute.sw_kctl); in ca0132_build_controls()
6397 if (ca0132_use_pci_mmio(spec)) { in ca0132_build_controls()
6414 if (ca0132_use_alt_controls(spec)) { in ca0132_build_controls()
6468 if (ca0132_use_alt_functions(spec)) { in ca0132_build_controls()
6479 if (ca0132_quirk(spec) != QUIRK_ZXR) { in ca0132_build_controls()
6486 if (ca0132_quirk(spec) == QUIRK_AE5) { in ca0132_build_controls()
6495 if (ca0132_quirk(spec) == QUIRK_ZXR) { in ca0132_build_controls()
6504 err = snd_hda_jack_add_kctls(codec, &spec->autocfg); in ca0132_build_controls()
6508 if (spec->dig_out) { in ca0132_build_controls()
6509 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in ca0132_build_controls()
6510 spec->dig_out); in ca0132_build_controls()
6513 err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); in ca0132_build_controls()
6519 if (spec->dig_in) { in ca0132_build_controls()
6520 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in ca0132_build_controls()
6525 if (ca0132_use_alt_functions(spec)) in ca0132_build_controls()
6533 struct ca0132_spec *spec = codec->spec; in dbpro_build_controls() local
6536 if (spec->dig_out) { in dbpro_build_controls()
6537 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in dbpro_build_controls()
6538 spec->dig_out); in dbpro_build_controls()
6543 if (spec->dig_in) { in dbpro_build_controls()
6544 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in dbpro_build_controls()
6597 struct ca0132_spec *spec = codec->spec; in ca0132_build_pcms() local
6603 if (ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
6609 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dacs[0]; in ca0132_build_pcms()
6611 spec->multiout.max_channels; in ca0132_build_pcms()
6614 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in ca0132_build_pcms()
6617 if (!ca0132_use_alt_functions(spec)) { in ca0132_build_pcms()
6624 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[1]; in ca0132_build_pcms()
6632 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[2]; in ca0132_build_pcms()
6634 if (!spec->dig_out && !spec->dig_in) in ca0132_build_pcms()
6641 if (spec->dig_out) { in ca0132_build_pcms()
6644 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in ca0132_build_pcms()
6646 if (spec->dig_in) { in ca0132_build_pcms()
6649 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in ca0132_build_pcms()
6657 struct ca0132_spec *spec = codec->spec; in dbpro_build_pcms() local
6665 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in dbpro_build_pcms()
6668 if (!spec->dig_out && !spec->dig_in) in dbpro_build_pcms()
6675 if (spec->dig_out) { in dbpro_build_pcms()
6678 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in dbpro_build_pcms()
6680 if (spec->dig_in) { in dbpro_build_pcms()
6683 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in dbpro_build_pcms()
6738 struct ca0132_spec *spec = codec->spec; in ca0132_set_dmic() local
6752 val = spec->dmic_ctl; in ca0132_set_dmic()
6754 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
6757 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
6764 val = spec->dmic_ctl; in ca0132_set_dmic()
6767 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
6770 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
6782 struct ca0132_spec *spec = codec->spec; in ca0132_init_dmic() local
6795 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
6805 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
6815 if (ca0132_quirk(spec) == QUIRK_ALIENWARE_M17XR4) in ca0132_init_dmic()
6820 spec->dmic_ctl = val; in ca0132_init_dmic()
6821 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
6830 struct ca0132_spec *spec = codec->spec; in ca0132_init_analog_mic2() local
6832 mutex_lock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
6845 mutex_unlock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
6850 struct ca0132_spec *spec = codec->spec; in ca0132_refresh_widget_caps() local
6856 for (i = 0; i < spec->multiout.num_dacs; i++) in ca0132_refresh_widget_caps()
6857 refresh_amp_caps(codec, spec->dacs[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
6859 for (i = 0; i < spec->num_outputs; i++) in ca0132_refresh_widget_caps()
6860 refresh_amp_caps(codec, spec->out_pins[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
6862 for (i = 0; i < spec->num_inputs; i++) { in ca0132_refresh_widget_caps()
6863 refresh_amp_caps(codec, spec->adcs[i], HDA_INPUT); in ca0132_refresh_widget_caps()
6864 refresh_amp_caps(codec, spec->input_pins[i], HDA_INPUT); in ca0132_refresh_widget_caps()
6874 struct ca0132_spec *spec = codec->spec; in ca0132_alt_create_dummy_stream() local
6880 snd_hda_codec_setup_stream(codec, spec->dacs[0], spec->dsp_stream_id, in ca0132_alt_create_dummy_stream()
6883 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_alt_create_dummy_stream()
6891 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init_analog_mics() local
6897 if (ca0132_quirk(spec) == QUIRK_R3DI) { in ca0132_alt_init_analog_mics()
6907 if (ca0132_quirk(spec) == QUIRK_R3DI) in ca0132_alt_init_analog_mics()
6921 struct ca0132_spec *spec = codec->spec; in sbz_connect_streams() local
6923 mutex_lock(&spec->chipio_mutex); in sbz_connect_streams()
6942 mutex_unlock(&spec->chipio_mutex); in sbz_connect_streams()
6953 struct ca0132_spec *spec = codec->spec; in sbz_chipio_startup_data() local
6955 mutex_lock(&spec->chipio_mutex); in sbz_chipio_startup_data()
6969 if (ca0132_quirk(spec) == QUIRK_SBZ) { in sbz_chipio_startup_data()
6982 } else if (ca0132_quirk(spec) == QUIRK_ZXR) { in sbz_chipio_startup_data()
6995 mutex_unlock(&spec->chipio_mutex); in sbz_chipio_startup_data()
7004 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_scp_startup() local
7012 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_scp_startup()
7050 struct ca0132_spec *spec = codec->spec; in ca0132_alt_dsp_initial_mic_setup() local
7065 switch (ca0132_quirk(spec)) { in ca0132_alt_dsp_initial_mic_setup()
7081 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_register_set() local
7089 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7090 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7091 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7092 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7093 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7094 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7095 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7096 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7097 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7098 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7099 writeb(0x00, spec->mem_base + 0x100); in ae5_post_dsp_register_set()
7100 writeb(0xff, spec->mem_base + 0x304); in ae5_post_dsp_register_set()
7162 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_stream_setup() local
7164 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7189 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_stream_setup()
7194 struct ca0132_spec *spec = codec->spec; in ae5_post_dsp_startup_data() local
7196 mutex_lock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
7221 mutex_unlock(&spec->chipio_mutex); in ae5_post_dsp_startup_data()
7229 struct ca0132_spec *spec = codec->spec; in ca0132_setup_defaults() local
7234 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_setup_defaults()
7274 struct ca0132_spec *spec = codec->spec; in r3d_setup_defaults() local
7279 if (spec->dsp_state != DSP_DOWNLOADED) in r3d_setup_defaults()
7297 if (ca0132_quirk(spec) == QUIRK_R3DI) in r3d_setup_defaults()
7318 struct ca0132_spec *spec = codec->spec; in sbz_setup_defaults() local
7323 if (spec->dsp_state != DSP_DOWNLOADED) in sbz_setup_defaults()
7375 struct ca0132_spec *spec = codec->spec; in ae5_setup_defaults() local
7380 if (spec->dsp_state != DSP_DOWNLOADED) in ae5_setup_defaults()
7442 struct ca0132_spec *spec = codec->spec; in ca0132_init_flags() local
7444 if (ca0132_use_alt_functions(spec)) { in ca0132_init_flags()
7475 struct ca0132_spec *spec = codec->spec; in ca0132_init_params() local
7477 if (ca0132_use_alt_functions(spec)) { in ca0132_init_params()
7506 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp_images() local
7514 switch (ca0132_quirk(spec)) { in ca0132_download_dsp_images()
7561 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp() local
7567 if (spec->dsp_state == DSP_DOWNLOAD_FAILED) in ca0132_download_dsp()
7571 if (spec->dsp_state != DSP_DOWNLOADED) { in ca0132_download_dsp()
7572 spec->dsp_state = DSP_DOWNLOADING; in ca0132_download_dsp()
7575 spec->dsp_state = DSP_DOWNLOAD_FAILED; in ca0132_download_dsp()
7577 spec->dsp_state = DSP_DOWNLOADED; in ca0132_download_dsp()
7581 if (spec->dsp_state == DSP_DOWNLOADED && !ca0132_use_alt_functions(spec)) in ca0132_download_dsp()
7588 struct ca0132_spec *spec = codec->spec; in ca0132_process_dsp_response() local
7591 if (spec->wait_scp) { in ca0132_process_dsp_response()
7593 spec->wait_scp = 0; in ca0132_process_dsp_response()
7601 struct ca0132_spec *spec = codec->spec; in hp_callback() local
7607 cancel_delayed_work(&spec->unsol_hp_work); in hp_callback()
7608 schedule_delayed_work(&spec->unsol_hp_work, msecs_to_jiffies(500)); in hp_callback()
7616 struct ca0132_spec *spec = codec->spec; in amic_callback() local
7618 if (ca0132_use_alt_functions(spec)) in amic_callback()
7626 struct ca0132_spec *spec = codec->spec; in ca0132_init_unsol() local
7627 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_hp, hp_callback); in ca0132_init_unsol()
7628 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_amic1, in ca0132_init_unsol()
7633 if (ca0132_use_alt_functions(spec)) in ca0132_init_unsol()
7635 spec->unsol_tag_front_hp, hp_callback); in ca0132_init_unsol()
7715 struct ca0132_spec *spec = codec->spec; in ca0132_init_chip() local
7720 mutex_init(&spec->chipio_mutex); in ca0132_init_chip()
7722 spec->cur_out_type = SPEAKER_OUT; in ca0132_init_chip()
7723 if (!ca0132_use_alt_functions(spec)) in ca0132_init_chip()
7724 spec->cur_mic_type = DIGITAL_MIC; in ca0132_init_chip()
7726 spec->cur_mic_type = REAR_MIC; in ca0132_init_chip()
7728 spec->cur_mic_boost = 0; in ca0132_init_chip()
7731 spec->vnode_lvol[i] = 0x5a; in ca0132_init_chip()
7732 spec->vnode_rvol[i] = 0x5a; in ca0132_init_chip()
7733 spec->vnode_lswitch[i] = 0; in ca0132_init_chip()
7734 spec->vnode_rswitch[i] = 0; in ca0132_init_chip()
7743 spec->effects_switch[i] = on ? 1 : 0; in ca0132_init_chip()
7749 if (ca0132_use_alt_controls(spec)) { in ca0132_init_chip()
7750 spec->xbass_xover_freq = 8; in ca0132_init_chip()
7752 spec->fx_ctl_val[i] = effect_slider_defaults[i]; in ca0132_init_chip()
7755 spec->voicefx_val = 0; in ca0132_init_chip()
7756 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID] = 1; in ca0132_init_chip()
7757 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] = 0; in ca0132_init_chip()
7764 if (ca0132_quirk(spec) == QUIRK_ZXR) in ca0132_init_chip()
7765 spec->in_enum_val = REAR_MIC; in ca0132_init_chip()
7786 struct ca0132_spec *spec = codec->spec; in sbz_region2_exit() local
7790 writeb(0x0, spec->mem_base + 0x100); in sbz_region2_exit()
7792 writeb(0xb3, spec->mem_base + 0x304); in sbz_region2_exit()
7966 struct ca0132_spec *spec = codec->spec; in sbz_dsp_startup_check() local
7973 if (spec->startup_check_entered) in sbz_dsp_startup_check()
7976 spec->startup_check_entered = true; in sbz_dsp_startup_check()
7998 spec->dsp_state = DSP_DOWNLOAD_INIT; in sbz_dsp_startup_check()
8046 struct ca0132_spec *spec = codec->spec; in sbz_pre_dsp_setup() local
8048 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
8049 writel(0x00820680, spec->mem_base + 0x01C); in sbz_pre_dsp_setup()
8103 struct ca0132_spec *spec = codec->spec; in ca0132_mmio_init() local
8105 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init()
8106 writel(0x00000001, spec->mem_base + 0x400); in ca0132_mmio_init()
8108 writel(0x00000000, spec->mem_base + 0x400); in ca0132_mmio_init()
8110 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init()
8111 writel(0x00000001, spec->mem_base + 0x408); in ca0132_mmio_init()
8113 writel(0x00000000, spec->mem_base + 0x408); in ca0132_mmio_init()
8115 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init()
8116 writel(0x00000001, spec->mem_base + 0x40c); in ca0132_mmio_init()
8118 writel(0x00000000, spec->mem_base + 0x40C); in ca0132_mmio_init()
8120 if (ca0132_quirk(spec) == QUIRK_ZXR) in ca0132_mmio_init()
8121 writel(0x00880640, spec->mem_base + 0x01C); in ca0132_mmio_init()
8123 writel(0x00880680, spec->mem_base + 0x01C); in ca0132_mmio_init()
8125 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init()
8126 writel(0x00000080, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8128 writel(0x00000083, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8130 writel(0x00000030, spec->mem_base + 0xC00); in ca0132_mmio_init()
8131 writel(0x00000000, spec->mem_base + 0xC04); in ca0132_mmio_init()
8133 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init()
8134 writel(0x00000000, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8136 writel(0x00000003, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8138 writel(0x00000003, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8139 writel(0x00000003, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8140 writel(0x00000003, spec->mem_base + 0xC0C); in ca0132_mmio_init()
8142 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_mmio_init()
8143 writel(0x00000001, spec->mem_base + 0xC08); in ca0132_mmio_init()
8145 writel(0x000000C1, spec->mem_base + 0xC08); in ca0132_mmio_init()
8147 writel(0x000000F1, spec->mem_base + 0xC08); in ca0132_mmio_init()
8148 writel(0x00000001, spec->mem_base + 0xC08); in ca0132_mmio_init()
8149 writel(0x000000C7, spec->mem_base + 0xC08); in ca0132_mmio_init()
8150 writel(0x000000C1, spec->mem_base + 0xC08); in ca0132_mmio_init()
8151 writel(0x00000080, spec->mem_base + 0xC04); in ca0132_mmio_init()
8153 if (ca0132_quirk(spec) == QUIRK_AE5) { in ca0132_mmio_init()
8154 writel(0x00000000, spec->mem_base + 0x42c); in ca0132_mmio_init()
8155 writel(0x00000000, spec->mem_base + 0x46c); in ca0132_mmio_init()
8156 writel(0x00000000, spec->mem_base + 0x4ac); in ca0132_mmio_init()
8157 writel(0x00000000, spec->mem_base + 0x4ec); in ca0132_mmio_init()
8158 writel(0x00000000, spec->mem_base + 0x43c); in ca0132_mmio_init()
8159 writel(0x00000000, spec->mem_base + 0x47c); in ca0132_mmio_init()
8160 writel(0x00000000, spec->mem_base + 0x4bc); in ca0132_mmio_init()
8161 writel(0x00000000, spec->mem_base + 0x4fc); in ca0132_mmio_init()
8162 writel(0x00000600, spec->mem_base + 0x100); in ca0132_mmio_init()
8163 writel(0x00000014, spec->mem_base + 0x410); in ca0132_mmio_init()
8164 writel(0x0000060f, spec->mem_base + 0x100); in ca0132_mmio_init()
8165 writel(0x0000070f, spec->mem_base + 0x100); in ca0132_mmio_init()
8166 writel(0x00000aff, spec->mem_base + 0x830); in ca0132_mmio_init()
8167 writel(0x00000000, spec->mem_base + 0x86c); in ca0132_mmio_init()
8168 writel(0x0000006b, spec->mem_base + 0x800); in ca0132_mmio_init()
8169 writel(0x00000001, spec->mem_base + 0x86c); in ca0132_mmio_init()
8170 writel(0x0000006b, spec->mem_base + 0x800); in ca0132_mmio_init()
8171 writel(0x00000057, spec->mem_base + 0x804); in ca0132_mmio_init()
8172 writel(0x00800000, spec->mem_base + 0x20c); in ca0132_mmio_init()
8183 struct ca0132_spec *spec = codec->spec; in ae5_register_set() local
8191 writeb(0x0f, spec->mem_base + 0x304); in ae5_register_set()
8192 writeb(0x0f, spec->mem_base + 0x304); in ae5_register_set()
8193 writeb(0x0f, spec->mem_base + 0x304); in ae5_register_set()
8194 writeb(0x0f, spec->mem_base + 0x304); in ae5_register_set()
8195 writeb(0x0e, spec->mem_base + 0x100); in ae5_register_set()
8196 writeb(0x1f, spec->mem_base + 0x304); in ae5_register_set()
8197 writeb(0x0c, spec->mem_base + 0x100); in ae5_register_set()
8198 writeb(0x3f, spec->mem_base + 0x304); in ae5_register_set()
8199 writeb(0x08, spec->mem_base + 0x100); in ae5_register_set()
8200 writeb(0x7f, spec->mem_base + 0x304); in ae5_register_set()
8201 writeb(0x00, spec->mem_base + 0x100); in ae5_register_set()
8202 writeb(0xff, spec->mem_base + 0x304); in ae5_register_set()
8224 struct ca0132_spec *spec = codec->spec; in ca0132_alt_init() local
8228 switch (ca0132_quirk(spec)) { in ca0132_alt_init()
8233 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
8234 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
8242 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
8247 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
8248 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
8257 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
8258 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
8262 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_alt_init()
8263 snd_hda_sequence_write(codec, spec->desktop_init_verbs); in ca0132_alt_init()
8272 struct ca0132_spec *spec = codec->spec; in ca0132_init() local
8273 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_init()
8287 if (spec->dsp_state == DSP_DOWNLOADED) { in ca0132_init()
8290 spec->dsp_reload = true; in ca0132_init()
8291 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
8293 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
8299 if (spec->dsp_state != DSP_DOWNLOAD_FAILED) in ca0132_init()
8300 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
8301 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; in ca0132_init()
8303 if (ca0132_use_pci_mmio(spec)) in ca0132_init()
8308 if (ca0132_quirk(spec) == QUIRK_AE5) in ca0132_init()
8315 snd_hda_sequence_write(codec, spec->base_init_verbs); in ca0132_init()
8317 if (ca0132_use_alt_functions(spec)) in ca0132_init()
8324 switch (ca0132_quirk(spec)) { in ca0132_init()
8343 for (i = 0; i < spec->num_outputs; i++) in ca0132_init()
8344 init_output(codec, spec->out_pins[i], spec->dacs[0]); in ca0132_init()
8346 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in ca0132_init()
8348 for (i = 0; i < spec->num_inputs; i++) in ca0132_init()
8349 init_input(codec, spec->input_pins[i], spec->adcs[i]); in ca0132_init()
8351 init_input(codec, cfg->dig_in_pin, spec->dig_in); in ca0132_init()
8353 if (!ca0132_use_alt_functions(spec)) { in ca0132_init()
8354 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_init()
8361 if (ca0132_quirk(spec) == QUIRK_SBZ) in ca0132_init()
8364 snd_hda_sequence_write(codec, spec->spec_init_verbs); in ca0132_init()
8365 if (ca0132_use_alt_functions(spec)) { in ca0132_init()
8379 if (spec->dsp_reload) { in ca0132_init()
8380 spec->dsp_reload = false; in ca0132_init()
8391 struct ca0132_spec *spec = codec->spec; in dbpro_init() local
8392 struct auto_pin_cfg *cfg = &spec->autocfg; in dbpro_init()
8395 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in dbpro_init()
8396 init_input(codec, cfg->dig_in_pin, spec->dig_in); in dbpro_init()
8398 for (i = 0; i < spec->num_inputs; i++) in dbpro_init()
8399 init_input(codec, spec->input_pins[i], spec->adcs[i]); in dbpro_init()
8406 struct ca0132_spec *spec = codec->spec; in ca0132_free() local
8408 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_free()
8410 switch (ca0132_quirk(spec)) { in ca0132_free()
8430 snd_hda_sequence_write(codec, spec->base_exit_verbs); in ca0132_free()
8435 if (spec->mem_base) in ca0132_free()
8436 pci_iounmap(codec->bus->pci, spec->mem_base); in ca0132_free()
8438 kfree(spec->spec_init_verbs); in ca0132_free()
8439 kfree(codec->spec); in ca0132_free()
8444 struct ca0132_spec *spec = codec->spec; in dbpro_free() local
8448 kfree(spec->spec_init_verbs); in dbpro_free()
8449 kfree(codec->spec); in dbpro_free()
8475 struct ca0132_spec *spec = codec->spec; in ca0132_config() local
8477 spec->dacs[0] = 0x2; in ca0132_config()
8478 spec->dacs[1] = 0x3; in ca0132_config()
8479 spec->dacs[2] = 0x4; in ca0132_config()
8481 spec->multiout.dac_nids = spec->dacs; in ca0132_config()
8482 spec->multiout.num_dacs = 3; in ca0132_config()
8484 if (!ca0132_use_alt_functions(spec)) in ca0132_config()
8485 spec->multiout.max_channels = 2; in ca0132_config()
8487 spec->multiout.max_channels = 6; in ca0132_config()
8489 switch (ca0132_quirk(spec)) { in ca0132_config()
8518 switch (ca0132_quirk(spec)) { in ca0132_config()
8520 spec->num_outputs = 2; in ca0132_config()
8521 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
8522 spec->out_pins[1] = 0x0f; in ca0132_config()
8523 spec->shared_out_nid = 0x2; in ca0132_config()
8524 spec->unsol_tag_hp = 0x0f; in ca0132_config()
8526 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
8527 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
8528 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
8530 spec->num_inputs = 3; in ca0132_config()
8531 spec->input_pins[0] = 0x12; in ca0132_config()
8532 spec->input_pins[1] = 0x11; in ca0132_config()
8533 spec->input_pins[2] = 0x13; in ca0132_config()
8534 spec->shared_mic_nid = 0x7; in ca0132_config()
8535 spec->unsol_tag_amic1 = 0x11; in ca0132_config()
8539 spec->num_outputs = 2; in ca0132_config()
8540 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
8541 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
8542 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
8543 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
8544 spec->shared_out_nid = 0x2; in ca0132_config()
8545 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
8546 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
8548 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
8549 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
8550 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
8552 spec->num_inputs = 2; in ca0132_config()
8553 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
8554 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
8555 spec->shared_mic_nid = 0x7; in ca0132_config()
8556 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
8559 spec->dig_out = 0x05; in ca0132_config()
8560 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
8561 spec->dig_in = 0x09; in ca0132_config()
8564 spec->num_outputs = 2; in ca0132_config()
8565 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
8566 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
8567 spec->out_pins[2] = 0x10; /* Center/LFE */ in ca0132_config()
8568 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
8569 spec->shared_out_nid = 0x2; in ca0132_config()
8570 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
8571 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
8573 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
8574 spec->adcs[1] = 0x8; /* Not connected, no front mic */ in ca0132_config()
8575 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
8577 spec->num_inputs = 2; in ca0132_config()
8578 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
8579 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
8580 spec->shared_mic_nid = 0x7; in ca0132_config()
8581 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
8584 spec->adcs[0] = 0x8; /* ZxR DBPro Aux In */ in ca0132_config()
8586 spec->num_inputs = 1; in ca0132_config()
8587 spec->input_pins[0] = 0x11; /* RCA Line-in */ in ca0132_config()
8589 spec->dig_out = 0x05; in ca0132_config()
8590 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
8592 spec->dig_in = 0x09; in ca0132_config()
8595 spec->num_outputs = 2; in ca0132_config()
8596 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
8597 spec->out_pins[1] = 0x11; /* Rear headphone out */ in ca0132_config()
8598 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
8599 spec->out_pins[3] = 0x0F; /* Rear surround */ in ca0132_config()
8600 spec->shared_out_nid = 0x2; in ca0132_config()
8601 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
8602 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
8604 spec->adcs[0] = 0x7; /* Rear Mic / Line-in */ in ca0132_config()
8605 spec->adcs[1] = 0x8; /* Front Mic, but only if no DSP */ in ca0132_config()
8606 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
8608 spec->num_inputs = 2; in ca0132_config()
8609 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
8610 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
8611 spec->shared_mic_nid = 0x7; in ca0132_config()
8612 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
8615 spec->dig_out = 0x05; in ca0132_config()
8616 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
8619 spec->num_outputs = 2; in ca0132_config()
8620 spec->out_pins[0] = 0x0B; /* Line out */ in ca0132_config()
8621 spec->out_pins[1] = 0x0F; /* Rear headphone out */ in ca0132_config()
8622 spec->out_pins[2] = 0x10; /* Front Headphone / Center/LFE*/ in ca0132_config()
8623 spec->out_pins[3] = 0x11; /* Rear surround */ in ca0132_config()
8624 spec->shared_out_nid = 0x2; in ca0132_config()
8625 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
8626 spec->unsol_tag_front_hp = spec->out_pins[2]; in ca0132_config()
8628 spec->adcs[0] = 0x07; /* Rear Mic / Line-in */ in ca0132_config()
8629 spec->adcs[1] = 0x08; /* Front Mic, but only if no DSP */ in ca0132_config()
8630 spec->adcs[2] = 0x0a; /* what u hear */ in ca0132_config()
8632 spec->num_inputs = 2; in ca0132_config()
8633 spec->input_pins[0] = 0x12; /* Rear Mic / Line-in */ in ca0132_config()
8634 spec->input_pins[1] = 0x13; /* What U Hear */ in ca0132_config()
8635 spec->shared_mic_nid = 0x7; in ca0132_config()
8636 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
8639 spec->dig_out = 0x05; in ca0132_config()
8640 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
8643 spec->num_outputs = 2; in ca0132_config()
8644 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
8645 spec->out_pins[1] = 0x10; /* headphone out */ in ca0132_config()
8646 spec->shared_out_nid = 0x2; in ca0132_config()
8647 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
8649 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
8650 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
8651 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
8653 spec->num_inputs = 3; in ca0132_config()
8654 spec->input_pins[0] = 0x12; in ca0132_config()
8655 spec->input_pins[1] = 0x11; in ca0132_config()
8656 spec->input_pins[2] = 0x13; in ca0132_config()
8657 spec->shared_mic_nid = 0x7; in ca0132_config()
8658 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
8661 spec->dig_out = 0x05; in ca0132_config()
8662 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
8663 spec->dig_in = 0x09; in ca0132_config()
8672 struct ca0132_spec *spec = codec->spec; in ca0132_prepare_verbs() local
8674 spec->chip_init_verbs = ca0132_init_verbs0; in ca0132_prepare_verbs()
8679 if (ca0132_use_pci_mmio(spec)) in ca0132_prepare_verbs()
8680 spec->desktop_init_verbs = ca0132_init_verbs1; in ca0132_prepare_verbs()
8681 spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS, in ca0132_prepare_verbs()
8684 if (!spec->spec_init_verbs) in ca0132_prepare_verbs()
8688 spec->spec_init_verbs[0].nid = 0x0b; in ca0132_prepare_verbs()
8689 spec->spec_init_verbs[0].param = 0x78D; in ca0132_prepare_verbs()
8690 spec->spec_init_verbs[0].verb = 0x00; in ca0132_prepare_verbs()
8719 struct ca0132_spec *spec = codec->spec; in sbz_detect_quirk() local
8723 spec->quirk = QUIRK_ZXR; in sbz_detect_quirk()
8726 spec->quirk = QUIRK_ZXR_DBPRO; in sbz_detect_quirk()
8729 spec->quirk = QUIRK_SBZ; in sbz_detect_quirk()
8736 struct ca0132_spec *spec; in patch_ca0132() local
8742 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_ca0132()
8743 if (!spec) in patch_ca0132()
8745 codec->spec = spec; in patch_ca0132()
8746 spec->codec = codec; in patch_ca0132()
8751 spec->quirk = quirk->value; in patch_ca0132()
8753 spec->quirk = QUIRK_NONE; in patch_ca0132()
8754 if (ca0132_quirk(spec) == QUIRK_SBZ) in patch_ca0132()
8757 if (ca0132_quirk(spec) == QUIRK_ZXR_DBPRO) in patch_ca0132()
8766 spec->dsp_state = DSP_DOWNLOAD_INIT; in patch_ca0132()
8767 spec->num_mixers = 1; in patch_ca0132()
8770 switch (ca0132_quirk(spec)) { in patch_ca0132()
8772 spec->mixers[0] = desktop_mixer; in patch_ca0132()
8776 spec->mixers[0] = desktop_mixer; in patch_ca0132()
8782 spec->mixers[0] = desktop_mixer; in patch_ca0132()
8786 spec->mixers[0] = r3di_mixer; in patch_ca0132()
8790 spec->mixers[0] = desktop_mixer; in patch_ca0132()
8794 spec->mixers[0] = ca0132_mixer; in patch_ca0132()
8799 switch (ca0132_quirk(spec)) { in patch_ca0132()
8804 spec->use_alt_controls = true; in patch_ca0132()
8805 spec->use_alt_functions = true; in patch_ca0132()
8806 spec->use_pci_mmio = true; in patch_ca0132()
8809 spec->use_alt_controls = true; in patch_ca0132()
8810 spec->use_alt_functions = true; in patch_ca0132()
8811 spec->use_pci_mmio = false; in patch_ca0132()
8814 spec->use_alt_controls = false; in patch_ca0132()
8815 spec->use_alt_functions = false; in patch_ca0132()
8816 spec->use_pci_mmio = false; in patch_ca0132()
8821 if (spec->use_pci_mmio) { in patch_ca0132()
8822 spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); in patch_ca0132()
8823 if (spec->mem_base == NULL) { in patch_ca0132()
8825 spec->quirk = QUIRK_NONE; in patch_ca0132()
8830 spec->base_init_verbs = ca0132_base_init_verbs; in patch_ca0132()
8831 spec->base_exit_verbs = ca0132_base_exit_verbs; in patch_ca0132()
8833 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); in patch_ca0132()
8843 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); in patch_ca0132()