Lines Matching refs:spec
843 struct ca0132_spec *spec = codec->spec; in chipio_write_address() local
846 if (spec->curr_chip_addx == chip_addx) in chipio_write_address()
859 spec->curr_chip_addx = (res < 0) ? ~0UL : chip_addx; in chipio_write_address()
869 struct ca0132_spec *spec = codec->spec; in chipio_write_data() local
883 spec->curr_chip_addx = (res != -EIO) ? in chipio_write_data()
884 (spec->curr_chip_addx + 4) : ~0UL; in chipio_write_data()
914 struct ca0132_spec *spec = codec->spec; in chipio_read_data() local
934 spec->curr_chip_addx = (res != -EIO) ? in chipio_read_data()
935 (spec->curr_chip_addx + 4) : ~0UL; in chipio_read_data()
946 struct ca0132_spec *spec = codec->spec; in chipio_write() local
949 mutex_lock(&spec->chipio_mutex); in chipio_write()
961 mutex_unlock(&spec->chipio_mutex); in chipio_write()
974 struct ca0132_spec *spec = codec->spec; in chipio_write_multiple() local
977 mutex_lock(&spec->chipio_mutex); in chipio_write_multiple()
984 mutex_unlock(&spec->chipio_mutex); in chipio_write_multiple()
996 struct ca0132_spec *spec = codec->spec; in chipio_read() local
999 mutex_lock(&spec->chipio_mutex); in chipio_read()
1011 mutex_unlock(&spec->chipio_mutex); in chipio_read()
1037 struct ca0132_spec *spec = codec->spec; in chipio_set_control_param() local
1045 mutex_lock(&spec->chipio_mutex); in chipio_set_control_param()
1054 mutex_unlock(&spec->chipio_mutex); in chipio_set_control_param()
1074 struct ca0132_spec *spec = codec->spec; in chipio_enable_clocks() local
1076 mutex_lock(&spec->chipio_mutex); in chipio_enable_clocks()
1089 mutex_unlock(&spec->chipio_mutex); in chipio_enable_clocks()
1135 struct ca0132_spec *spec = codec->spec; in dspio_write() local
1140 mutex_lock(&spec->chipio_mutex); in dspio_write()
1155 mutex_unlock(&spec->chipio_mutex); in dspio_write()
1309 struct ca0132_spec *spec = codec->spec; in dspio_get_response_data() local
1316 if ((data & 0x00ffffff) == spec->wait_scp_header) { in dspio_get_response_data()
1317 spec->scp_resp_header = data; in dspio_get_response_data()
1318 spec->scp_resp_count = data >> 27; in dspio_get_response_data()
1319 count = spec->wait_num_data; in dspio_get_response_data()
1320 dspio_read_multiple(codec, spec->scp_resp_data, in dspio_get_response_data()
1321 &spec->scp_resp_count, count); in dspio_get_response_data()
1338 struct ca0132_spec *spec = codec->spec; in dspio_send_scp_message() local
1365 spec->wait_scp_header = *((unsigned int *)send_buf); in dspio_send_scp_message()
1370 spec->wait_scp_header &= 0xffff0000; in dspio_send_scp_message()
1371 spec->wait_scp_header |= (resp_src_id << 8) | (resp_target_id); in dspio_send_scp_message()
1372 spec->wait_num_data = return_buf_size/sizeof(unsigned int) - 1; in dspio_send_scp_message()
1373 spec->wait_scp = 1; in dspio_send_scp_message()
1380 spec->wait_scp = 0; in dspio_send_scp_message()
1389 } while (spec->wait_scp && time_before(jiffies, timeout)); in dspio_send_scp_message()
1391 if (!spec->wait_scp) { in dspio_send_scp_message()
1393 memcpy(&ret_msg->hdr, &spec->scp_resp_header, 4); in dspio_send_scp_message()
1394 memcpy(&ret_msg->data, spec->scp_resp_data, in dspio_send_scp_message()
1395 spec->wait_num_data); in dspio_send_scp_message()
1396 *bytes_returned = (spec->scp_resp_count + 1) * 4; in dspio_send_scp_message()
1401 spec->wait_scp = 0; in dspio_send_scp_message()
2099 struct ca0132_spec *spec = codec->spec; in dma_reset() local
2111 spec->dsp_stream_id = status; in dma_reset()
2162 struct ca0132_spec *spec = dma->codec->spec; in dma_get_stream_id() local
2164 return spec->dsp_stream_id; in dma_get_stream_id()
2457 struct ca0132_spec *spec = codec->spec; in dspxfr_image() local
2501 spec->dsp_stream_id = status; in dspxfr_image()
2696 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_prepare() local
2698 snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); in ca0132_playback_pcm_prepare()
2707 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_cleanup() local
2709 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_playback_pcm_cleanup()
2714 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_playback_pcm_cleanup()
2717 snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); in ca0132_playback_pcm_cleanup()
2726 struct ca0132_spec *spec = codec->spec; in ca0132_playback_pcm_delay() local
2730 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_playback_pcm_delay()
2734 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) { in ca0132_playback_pcm_delay()
2735 if ((spec->effects_switch[SURROUND - EFFECT_START_NID]) || in ca0132_playback_pcm_delay()
2736 (spec->effects_switch[DIALOG_PLUS - EFFECT_START_NID])) in ca0132_playback_pcm_delay()
2741 if (spec->cur_out_type == SPEAKER_OUT) in ca0132_playback_pcm_delay()
2754 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_open() local
2755 return snd_hda_multi_out_dig_open(codec, &spec->multiout); in ca0132_dig_playback_pcm_open()
2764 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_prepare() local
2765 return snd_hda_multi_out_dig_prepare(codec, &spec->multiout, in ca0132_dig_playback_pcm_prepare()
2773 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_cleanup() local
2774 return snd_hda_multi_out_dig_cleanup(codec, &spec->multiout); in ca0132_dig_playback_pcm_cleanup()
2781 struct ca0132_spec *spec = codec->spec; in ca0132_dig_playback_pcm_close() local
2782 return snd_hda_multi_out_dig_close(codec, &spec->multiout); in ca0132_dig_playback_pcm_close()
2804 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_cleanup() local
2806 if (spec->dsp_state == DSP_DOWNLOADING) in ca0132_capture_pcm_cleanup()
2817 struct ca0132_spec *spec = codec->spec; in ca0132_capture_pcm_delay() local
2821 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_capture_pcm_delay()
2824 if (spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_capture_pcm_delay()
2952 struct ca0132_spec *spec = codec->spec; in tuning_ctl_get() local
2957 *valp = spec->cur_ctl_vals[idx]; in tuning_ctl_get()
2978 struct ca0132_spec *spec = codec->spec; in voice_focus_ctl_put() local
2985 if (spec->cur_ctl_vals[idx] == *valp) in voice_focus_ctl_put()
2988 spec->cur_ctl_vals[idx] = *valp; in voice_focus_ctl_put()
3013 struct ca0132_spec *spec = codec->spec; in mic_svm_ctl_put() local
3020 if (spec->cur_ctl_vals[idx] == *valp) in mic_svm_ctl_put()
3023 spec->cur_ctl_vals[idx] = *valp; in mic_svm_ctl_put()
3048 struct ca0132_spec *spec = codec->spec; in equalizer_ctl_put() local
3055 if (spec->cur_ctl_vals[idx] == *valp) in equalizer_ctl_put()
3058 spec->cur_ctl_vals[idx] = *valp; in equalizer_ctl_put()
3129 struct ca0132_spec *spec = codec->spec; in ca0132_init_tuning_defaults() local
3133 spec->cur_ctl_vals[WEDGE_ANGLE - TUNING_CTL_START_NID] = 10; in ca0132_init_tuning_defaults()
3135 spec->cur_ctl_vals[SVM_LEVEL - TUNING_CTL_START_NID] = 74; in ca0132_init_tuning_defaults()
3139 spec->cur_ctl_vals[i] = 24; in ca0132_init_tuning_defaults()
3151 struct ca0132_spec *spec = codec->spec; in ca0132_select_out() local
3162 auto_jack = spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_select_out()
3165 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_hp); in ca0132_select_out()
3168 spec->vnode_lswitch[VNID_HP_SEL - VNODE_START_NID]; in ca0132_select_out()
3171 spec->cur_out_type = HEADPHONE_OUT; in ca0132_select_out()
3173 spec->cur_out_type = SPEAKER_OUT; in ca0132_select_out()
3175 if (spec->cur_out_type == SPEAKER_OUT) { in ca0132_select_out()
3189 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
3191 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
3193 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
3195 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
3199 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
3201 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
3204 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
3206 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
3222 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
3224 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
3226 snd_hda_codec_write(codec, spec->out_pins[1], 0, in ca0132_select_out()
3228 snd_hda_codec_write(codec, spec->out_pins[0], 0, in ca0132_select_out()
3232 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, in ca0132_select_out()
3234 snd_hda_set_pin_ctl(codec, spec->out_pins[0], in ca0132_select_out()
3237 pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, in ca0132_select_out()
3239 snd_hda_set_pin_ctl(codec, spec->out_pins[1], in ca0132_select_out()
3251 struct ca0132_spec *spec = container_of( in ca0132_unsol_hp_delayed() local
3255 ca0132_select_out(spec->codec); in ca0132_unsol_hp_delayed()
3256 jack = snd_hda_jack_tbl_get(spec->codec, spec->unsol_tag_hp); in ca0132_unsol_hp_delayed()
3259 snd_hda_jack_report_sync(spec->codec); in ca0132_unsol_hp_delayed()
3272 struct ca0132_spec *spec = codec->spec; in ca0132_set_vipsource() local
3275 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_set_vipsource()
3279 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] || in ca0132_set_vipsource()
3284 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
3294 if (spec->cur_mic_type == DIGITAL_MIC) in ca0132_set_vipsource()
3316 struct ca0132_spec *spec = codec->spec; in ca0132_select_mic() local
3324 auto_jack = spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_select_mic()
3327 jack_present = snd_hda_jack_detect(codec, spec->unsol_tag_amic1); in ca0132_select_mic()
3330 spec->vnode_lswitch[VNID_AMIC1_SEL - VNODE_START_NID]; in ca0132_select_mic()
3333 spec->cur_mic_type = LINE_MIC_IN; in ca0132_select_mic()
3335 spec->cur_mic_type = DIGITAL_MIC; in ca0132_select_mic()
3337 if (spec->cur_mic_type == DIGITAL_MIC) { in ca0132_select_mic()
3344 spec->effects_switch in ca0132_select_mic()
3350 ca0132_mic_boost_set(codec, spec->cur_mic_boost); in ca0132_select_mic()
3367 struct ca0132_spec *spec = codec->spec; in ca0132_is_vnode_effective() local
3372 nid = spec->shared_out_nid; in ca0132_is_vnode_effective()
3375 nid = spec->shared_mic_nid; in ca0132_is_vnode_effective()
3393 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_set() local
3398 tmp = spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] ? in ca0132_voicefx_set()
3415 struct ca0132_spec *spec = codec->spec; in ca0132_effects_set() local
3427 if (!spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) in ca0132_effects_set()
3434 if (!spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]) in ca0132_effects_set()
3438 if ((nid == VOICE_FOCUS) && (spec->cur_mic_type != DIGITAL_MIC)) in ca0132_effects_set()
3460 struct ca0132_spec *spec = codec->spec; in ca0132_pe_switch_set() local
3465 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]); in ca0132_pe_switch_set()
3471 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_pe_switch_set()
3479 struct ca0132_spec *spec = codec->spec; in stop_mic1() local
3480 unsigned int oldval = snd_hda_codec_read(codec, spec->adcs[0], 0, in stop_mic1()
3483 snd_hda_codec_write(codec, spec->adcs[0], 0, in stop_mic1()
3492 struct ca0132_spec *spec = codec->spec; in resume_mic1() local
3495 snd_hda_codec_write(codec, spec->adcs[0], 0, in resume_mic1()
3505 struct ca0132_spec *spec = codec->spec; in ca0132_cvoice_switch_set() local
3511 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID]); in ca0132_cvoice_switch_set()
3517 ret |= ca0132_effects_set(codec, nid, spec->effects_switch[i]); in ca0132_cvoice_switch_set()
3520 ret |= ca0132_voicefx_set(codec, (spec->voicefx_val ? 1 : 0)); in ca0132_cvoice_switch_set()
3531 struct ca0132_spec *spec = codec->spec; in ca0132_mic_boost_set() local
3535 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
3538 ret = snd_hda_codec_amp_update(codec, spec->input_pins[0], 0, in ca0132_mic_boost_set()
3552 struct ca0132_spec *spec = codec->spec; in ca0132_vnode_switch_set() local
3557 spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
3565 spec->vnode_lswitch[VNID_AMIC1_ASEL - VNODE_START_NID]; in ca0132_vnode_switch_set()
3621 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_get() local
3623 ucontrol->value.enumerated.item[0] = spec->voicefx_val; in ca0132_voicefx_get()
3631 struct ca0132_spec *spec = codec->spec; in ca0132_voicefx_put() local
3656 spec->voicefx_val = sel; in ca0132_voicefx_put()
3668 struct ca0132_spec *spec = codec->spec; in ca0132_switch_get() local
3676 *valp = spec->vnode_lswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
3680 *valp = spec->vnode_rswitch[nid - VNODE_START_NID]; in ca0132_switch_get()
3688 *valp = spec->effects_switch[nid - EFFECT_START_NID]; in ca0132_switch_get()
3693 if (nid == spec->input_pins[0]) { in ca0132_switch_get()
3694 *valp = spec->cur_mic_boost; in ca0132_switch_get()
3705 struct ca0132_spec *spec = codec->spec; in ca0132_switch_put() local
3718 spec->vnode_lswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
3722 spec->vnode_rswitch[nid - VNODE_START_NID] = *valp; in ca0132_switch_put()
3731 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
3738 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
3746 spec->effects_switch[nid - EFFECT_START_NID] = *valp; in ca0132_switch_put()
3752 if (nid == spec->input_pins[0]) { in ca0132_switch_put()
3753 spec->cur_mic_boost = *valp; in ca0132_switch_put()
3756 if (spec->cur_mic_type != DIGITAL_MIC) in ca0132_switch_put()
3773 struct ca0132_spec *spec = codec->spec; in ca0132_volume_info() local
3783 nid = spec->shared_out_nid; in ca0132_volume_info()
3793 nid = spec->shared_mic_nid; in ca0132_volume_info()
3811 struct ca0132_spec *spec = codec->spec; in ca0132_volume_get() local
3818 *valp = spec->vnode_lvol[nid - VNODE_START_NID]; in ca0132_volume_get()
3822 *valp = spec->vnode_rvol[nid - VNODE_START_NID]; in ca0132_volume_get()
3832 struct ca0132_spec *spec = codec->spec; in ca0132_volume_put() local
3842 spec->vnode_lvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
3846 spec->vnode_rvol[nid - VNODE_START_NID] = *valp; in ca0132_volume_put()
3874 struct ca0132_spec *spec = codec->spec; in ca0132_volume_tlv() local
3884 nid = spec->shared_out_nid; in ca0132_volume_tlv()
3894 nid = spec->shared_mic_nid; in ca0132_volume_tlv()
3958 struct ca0132_spec *spec = codec->spec; in ca0132_build_controls() local
3963 for (i = 0; i < spec->num_mixers; i++) { in ca0132_build_controls()
3964 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in ca0132_build_controls()
3995 err = snd_hda_jack_add_kctls(codec, &spec->autocfg); in ca0132_build_controls()
3999 if (spec->dig_out) { in ca0132_build_controls()
4000 err = snd_hda_create_spdif_out_ctls(codec, spec->dig_out, in ca0132_build_controls()
4001 spec->dig_out); in ca0132_build_controls()
4004 err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); in ca0132_build_controls()
4010 if (spec->dig_in) { in ca0132_build_controls()
4011 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in); in ca0132_build_controls()
4063 struct ca0132_spec *spec = codec->spec; in ca0132_build_pcms() local
4070 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dacs[0]; in ca0132_build_pcms()
4072 spec->multiout.max_channels; in ca0132_build_pcms()
4075 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[0]; in ca0132_build_pcms()
4082 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[1]; in ca0132_build_pcms()
4089 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adcs[2]; in ca0132_build_pcms()
4091 if (!spec->dig_out && !spec->dig_in) in ca0132_build_pcms()
4098 if (spec->dig_out) { in ca0132_build_pcms()
4101 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->dig_out; in ca0132_build_pcms()
4103 if (spec->dig_in) { in ca0132_build_pcms()
4106 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in; in ca0132_build_pcms()
4161 struct ca0132_spec *spec = codec->spec; in ca0132_set_dmic() local
4175 val = spec->dmic_ctl; in ca0132_set_dmic()
4177 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
4180 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
4187 val = spec->dmic_ctl; in ca0132_set_dmic()
4190 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_set_dmic()
4193 if (!(spec->dmic_ctl & 0x20)) in ca0132_set_dmic()
4205 struct ca0132_spec *spec = codec->spec; in ca0132_init_dmic() local
4218 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
4228 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
4240 spec->dmic_ctl = val; in ca0132_init_dmic()
4241 snd_hda_codec_write(codec, spec->input_pins[0], 0, in ca0132_init_dmic()
4250 struct ca0132_spec *spec = codec->spec; in ca0132_init_analog_mic2() local
4252 mutex_lock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
4265 mutex_unlock(&spec->chipio_mutex); in ca0132_init_analog_mic2()
4270 struct ca0132_spec *spec = codec->spec; in ca0132_refresh_widget_caps() local
4276 for (i = 0; i < spec->multiout.num_dacs; i++) in ca0132_refresh_widget_caps()
4277 refresh_amp_caps(codec, spec->dacs[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
4279 for (i = 0; i < spec->num_outputs; i++) in ca0132_refresh_widget_caps()
4280 refresh_amp_caps(codec, spec->out_pins[i], HDA_OUTPUT); in ca0132_refresh_widget_caps()
4282 for (i = 0; i < spec->num_inputs; i++) { in ca0132_refresh_widget_caps()
4283 refresh_amp_caps(codec, spec->adcs[i], HDA_INPUT); in ca0132_refresh_widget_caps()
4284 refresh_amp_caps(codec, spec->input_pins[i], HDA_INPUT); in ca0132_refresh_widget_caps()
4293 struct ca0132_spec *spec = codec->spec; in ca0132_setup_defaults() local
4298 if (spec->dsp_state != DSP_DOWNLOADED) in ca0132_setup_defaults()
4393 struct ca0132_spec *spec = codec->spec; in ca0132_download_dsp() local
4399 if (spec->dsp_state == DSP_DOWNLOAD_FAILED) in ca0132_download_dsp()
4403 spec->dsp_state = DSP_DOWNLOADING; in ca0132_download_dsp()
4405 spec->dsp_state = DSP_DOWNLOAD_FAILED; in ca0132_download_dsp()
4407 spec->dsp_state = DSP_DOWNLOADED; in ca0132_download_dsp()
4409 if (spec->dsp_state == DSP_DOWNLOADED) in ca0132_download_dsp()
4416 struct ca0132_spec *spec = codec->spec; in ca0132_process_dsp_response() local
4419 if (spec->wait_scp) { in ca0132_process_dsp_response()
4421 spec->wait_scp = 0; in ca0132_process_dsp_response()
4429 struct ca0132_spec *spec = codec->spec; in hp_callback() local
4435 cancel_delayed_work_sync(&spec->unsol_hp_work); in hp_callback()
4436 schedule_delayed_work(&spec->unsol_hp_work, msecs_to_jiffies(500)); in hp_callback()
4449 struct ca0132_spec *spec = codec->spec; in ca0132_init_unsol() local
4450 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_hp, hp_callback); in ca0132_init_unsol()
4451 snd_hda_jack_detect_enable_callback(codec, spec->unsol_tag_amic1, in ca0132_init_unsol()
4514 struct ca0132_spec *spec = codec->spec; in ca0132_init_chip() local
4519 mutex_init(&spec->chipio_mutex); in ca0132_init_chip()
4521 spec->cur_out_type = SPEAKER_OUT; in ca0132_init_chip()
4522 spec->cur_mic_type = DIGITAL_MIC; in ca0132_init_chip()
4523 spec->cur_mic_boost = 0; in ca0132_init_chip()
4526 spec->vnode_lvol[i] = 0x5a; in ca0132_init_chip()
4527 spec->vnode_rvol[i] = 0x5a; in ca0132_init_chip()
4528 spec->vnode_lswitch[i] = 0; in ca0132_init_chip()
4529 spec->vnode_rswitch[i] = 0; in ca0132_init_chip()
4538 spec->effects_switch[i] = on ? 1 : 0; in ca0132_init_chip()
4541 spec->voicefx_val = 0; in ca0132_init_chip()
4542 spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID] = 1; in ca0132_init_chip()
4543 spec->effects_switch[CRYSTAL_VOICE - EFFECT_START_NID] = 0; in ca0132_init_chip()
4560 struct ca0132_spec *spec = codec->spec; in ca0132_init() local
4561 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_init()
4564 if (spec->dsp_state != DSP_DOWNLOAD_FAILED) in ca0132_init()
4565 spec->dsp_state = DSP_DOWNLOAD_INIT; in ca0132_init()
4566 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; in ca0132_init()
4574 snd_hda_sequence_write(codec, spec->base_init_verbs); in ca0132_init()
4581 for (i = 0; i < spec->num_outputs; i++) in ca0132_init()
4582 init_output(codec, spec->out_pins[i], spec->dacs[0]); in ca0132_init()
4584 init_output(codec, cfg->dig_out_pins[0], spec->dig_out); in ca0132_init()
4586 for (i = 0; i < spec->num_inputs; i++) in ca0132_init()
4587 init_input(codec, spec->input_pins[i], spec->adcs[i]); in ca0132_init()
4589 init_input(codec, cfg->dig_in_pin, spec->dig_in); in ca0132_init()
4591 snd_hda_sequence_write(codec, spec->chip_init_verbs); in ca0132_init()
4592 snd_hda_sequence_write(codec, spec->spec_init_verbs); in ca0132_init()
4606 struct ca0132_spec *spec = codec->spec; in ca0132_free() local
4608 cancel_delayed_work_sync(&spec->unsol_hp_work); in ca0132_free()
4610 snd_hda_sequence_write(codec, spec->base_exit_verbs); in ca0132_free()
4613 kfree(spec->spec_init_verbs); in ca0132_free()
4614 kfree(codec->spec); in ca0132_free()
4627 struct ca0132_spec *spec = codec->spec; in ca0132_config() local
4628 struct auto_pin_cfg *cfg = &spec->autocfg; in ca0132_config()
4630 spec->dacs[0] = 0x2; in ca0132_config()
4631 spec->dacs[1] = 0x3; in ca0132_config()
4632 spec->dacs[2] = 0x4; in ca0132_config()
4634 spec->multiout.dac_nids = spec->dacs; in ca0132_config()
4635 spec->multiout.num_dacs = 3; in ca0132_config()
4636 spec->multiout.max_channels = 2; in ca0132_config()
4638 if (spec->quirk == QUIRK_ALIENWARE) { in ca0132_config()
4642 spec->num_outputs = 2; in ca0132_config()
4643 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
4644 spec->out_pins[1] = 0x0f; in ca0132_config()
4645 spec->shared_out_nid = 0x2; in ca0132_config()
4646 spec->unsol_tag_hp = 0x0f; in ca0132_config()
4648 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
4649 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
4650 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
4652 spec->num_inputs = 3; in ca0132_config()
4653 spec->input_pins[0] = 0x12; in ca0132_config()
4654 spec->input_pins[1] = 0x11; in ca0132_config()
4655 spec->input_pins[2] = 0x13; in ca0132_config()
4656 spec->shared_mic_nid = 0x7; in ca0132_config()
4657 spec->unsol_tag_amic1 = 0x11; in ca0132_config()
4659 spec->num_outputs = 2; in ca0132_config()
4660 spec->out_pins[0] = 0x0b; /* speaker out */ in ca0132_config()
4661 spec->out_pins[1] = 0x10; /* headphone out */ in ca0132_config()
4662 spec->shared_out_nid = 0x2; in ca0132_config()
4663 spec->unsol_tag_hp = spec->out_pins[1]; in ca0132_config()
4665 spec->adcs[0] = 0x7; /* digital mic / analog mic1 */ in ca0132_config()
4666 spec->adcs[1] = 0x8; /* analog mic2 */ in ca0132_config()
4667 spec->adcs[2] = 0xa; /* what u hear */ in ca0132_config()
4669 spec->num_inputs = 3; in ca0132_config()
4670 spec->input_pins[0] = 0x12; in ca0132_config()
4671 spec->input_pins[1] = 0x11; in ca0132_config()
4672 spec->input_pins[2] = 0x13; in ca0132_config()
4673 spec->shared_mic_nid = 0x7; in ca0132_config()
4674 spec->unsol_tag_amic1 = spec->input_pins[0]; in ca0132_config()
4677 spec->dig_out = 0x05; in ca0132_config()
4678 spec->multiout.dig_out_nid = spec->dig_out; in ca0132_config()
4682 spec->dig_in = 0x09; in ca0132_config()
4692 struct ca0132_spec *spec = codec->spec; in ca0132_prepare_verbs() local
4694 spec->chip_init_verbs = ca0132_init_verbs0; in ca0132_prepare_verbs()
4695 spec->spec_init_verbs = kzalloc(sizeof(struct hda_verb) * NUM_SPEC_VERBS, GFP_KERNEL); in ca0132_prepare_verbs()
4696 if (!spec->spec_init_verbs) in ca0132_prepare_verbs()
4700 spec->spec_init_verbs[0].nid = spec->unsol_tag_hp; in ca0132_prepare_verbs()
4701 spec->spec_init_verbs[0].param = AC_VERB_SET_UNSOLICITED_ENABLE; in ca0132_prepare_verbs()
4702 spec->spec_init_verbs[0].verb = AC_USRSP_EN | spec->unsol_tag_hp; in ca0132_prepare_verbs()
4705 spec->spec_init_verbs[1].nid = spec->unsol_tag_amic1; in ca0132_prepare_verbs()
4706 spec->spec_init_verbs[1].param = AC_VERB_SET_UNSOLICITED_ENABLE; in ca0132_prepare_verbs()
4707 spec->spec_init_verbs[1].verb = AC_USRSP_EN | spec->unsol_tag_amic1; in ca0132_prepare_verbs()
4710 spec->spec_init_verbs[2].nid = 0x0b; in ca0132_prepare_verbs()
4711 spec->spec_init_verbs[2].param = 0x78D; in ca0132_prepare_verbs()
4712 spec->spec_init_verbs[2].verb = 0x00; in ca0132_prepare_verbs()
4735 struct ca0132_spec *spec; in patch_ca0132() local
4741 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in patch_ca0132()
4742 if (!spec) in patch_ca0132()
4744 codec->spec = spec; in patch_ca0132()
4745 spec->codec = codec; in patch_ca0132()
4754 spec->quirk = quirk->value; in patch_ca0132()
4756 spec->quirk = QUIRK_NONE; in patch_ca0132()
4758 spec->dsp_state = DSP_DOWNLOAD_INIT; in patch_ca0132()
4759 spec->num_mixers = 1; in patch_ca0132()
4760 spec->mixers[0] = ca0132_mixer; in patch_ca0132()
4762 spec->base_init_verbs = ca0132_base_init_verbs; in patch_ca0132()
4763 spec->base_exit_verbs = ca0132_base_exit_verbs; in patch_ca0132()
4765 INIT_DELAYED_WORK(&spec->unsol_hp_work, ca0132_unsol_hp_delayed); in patch_ca0132()
4775 err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL); in patch_ca0132()