Lines Matching refs:rt711

28 static int rt711_sdca_index_write(struct rt711_sdca_priv *rt711,  in rt711_sdca_index_write()  argument
32 struct regmap *regmap = rt711->mbq_regmap; in rt711_sdca_index_write()
37 dev_err(&rt711->slave->dev, in rt711_sdca_index_write()
44 static int rt711_sdca_index_read(struct rt711_sdca_priv *rt711, in rt711_sdca_index_read() argument
48 struct regmap *regmap = rt711->mbq_regmap; in rt711_sdca_index_read()
53 dev_err(&rt711->slave->dev, in rt711_sdca_index_read()
60 static int rt711_sdca_index_update_bits(struct rt711_sdca_priv *rt711, in rt711_sdca_index_update_bits() argument
66 ret = rt711_sdca_index_read(rt711, nid, reg, &tmp); in rt711_sdca_index_update_bits()
71 return rt711_sdca_index_write(rt711, nid, reg, tmp); in rt711_sdca_index_update_bits()
74 static void rt711_sdca_reset(struct rt711_sdca_priv *rt711) in rt711_sdca_reset() argument
76 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_reset()
79 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_reset()
83 static int rt711_sdca_calibration(struct rt711_sdca_priv *rt711) in rt711_sdca_calibration() argument
87 struct regmap *regmap = rt711->regmap; in rt711_sdca_calibration()
91 mutex_lock(&rt711->calibrate_mutex); in rt711_sdca_calibration()
94 regmap_read(rt711->regmap, RT711_RC_CAL_STATUS, &val); in rt711_sdca_calibration()
97 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_ANALOG_CTL, in rt711_sdca_calibration()
102 ret = regmap_read(rt711->regmap, RT711_RC_CAL_STATUS, &val); in rt711_sdca_calibration()
110 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_calibration()
114 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_calibration()
118 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_CALI, in rt711_sdca_calibration()
120 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_CALI, in rt711_sdca_calibration()
125 if (rt711->hw_ver == RT711_VER_VD0) in rt711_sdca_calibration()
126 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_CALI, in rt711_sdca_calibration()
131 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_CALI, in rt711_sdca_calibration()
136 rt711_sdca_index_read(rt711, RT711_VENDOR_CALI, in rt711_sdca_calibration()
142 ret = rt711_sdca_index_read(rt711, RT711_VENDOR_CALI, in rt711_sdca_calibration()
155 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_calibration()
159 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_calibration()
162 mutex_unlock(&rt711->calibrate_mutex); in rt711_sdca_calibration()
167 static unsigned int rt711_sdca_button_detect(struct rt711_sdca_priv *rt711) in rt711_sdca_button_detect() argument
174 ret = regmap_read(rt711->regmap, in rt711_sdca_button_detect()
185 ret = regmap_read(rt711->regmap, in rt711_sdca_button_detect()
192 ret = regmap_read(rt711->regmap, in rt711_sdca_button_detect()
238 regmap_write(rt711->regmap, in rt711_sdca_button_detect()
245 static int rt711_sdca_headset_detect(struct rt711_sdca_priv *rt711) in rt711_sdca_headset_detect() argument
251 ret = regmap_read(rt711->regmap, in rt711_sdca_headset_detect()
259 rt711->jack_type = 0; in rt711_sdca_headset_detect()
262 rt711->jack_type = SND_JACK_HEADPHONE; in rt711_sdca_headset_detect()
265 rt711->jack_type = SND_JACK_HEADSET; in rt711_sdca_headset_detect()
271 ret = regmap_write(rt711->regmap, in rt711_sdca_headset_detect()
278 dev_dbg(&rt711->slave->dev, in rt711_sdca_headset_detect()
290 struct rt711_sdca_priv *rt711 = in rt711_sdca_jack_detect_handler() local
294 if (!rt711->hs_jack) in rt711_sdca_jack_detect_handler()
297 if (!rt711->component->card || !rt711->component->card->instantiated) in rt711_sdca_jack_detect_handler()
301 if (rt711->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) { in rt711_sdca_jack_detect_handler()
302 ret = rt711_sdca_headset_detect(rt711); in rt711_sdca_jack_detect_handler()
308 if (rt711->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8) in rt711_sdca_jack_detect_handler()
309 btn_type = rt711_sdca_button_detect(rt711); in rt711_sdca_jack_detect_handler()
311 if (rt711->jack_type == 0) in rt711_sdca_jack_detect_handler()
314 dev_dbg(&rt711->slave->dev, in rt711_sdca_jack_detect_handler()
315 "in %s, jack_type=0x%x\n", __func__, rt711->jack_type); in rt711_sdca_jack_detect_handler()
316 dev_dbg(&rt711->slave->dev, in rt711_sdca_jack_detect_handler()
318 dev_dbg(&rt711->slave->dev, in rt711_sdca_jack_detect_handler()
320 rt711->scp_sdca_stat1, rt711->scp_sdca_stat2); in rt711_sdca_jack_detect_handler()
322 snd_soc_jack_report(rt711->hs_jack, rt711->jack_type | btn_type, in rt711_sdca_jack_detect_handler()
329 snd_soc_jack_report(rt711->hs_jack, rt711->jack_type, in rt711_sdca_jack_detect_handler()
335 &rt711->jack_btn_check_work, msecs_to_jiffies(200)); in rt711_sdca_jack_detect_handler()
341 struct rt711_sdca_priv *rt711 = in rt711_sdca_btn_check_handler() local
347 ret = regmap_read(rt711->regmap, in rt711_sdca_btn_check_handler()
356 ret = regmap_read(rt711->regmap, in rt711_sdca_btn_check_handler()
363 ret = regmap_read(rt711->regmap, in rt711_sdca_btn_check_handler()
405 rt711->jack_type = 0; in rt711_sdca_btn_check_handler()
407 dev_dbg(&rt711->slave->dev, "%s, btn_type=0x%x\n", __func__, btn_type); in rt711_sdca_btn_check_handler()
408 snd_soc_jack_report(rt711->hs_jack, rt711->jack_type | btn_type, in rt711_sdca_btn_check_handler()
415 snd_soc_jack_report(rt711->hs_jack, rt711->jack_type, in rt711_sdca_btn_check_handler()
421 &rt711->jack_btn_check_work, msecs_to_jiffies(200)); in rt711_sdca_btn_check_handler()
430 static void rt711_sdca_jack_init(struct rt711_sdca_priv *rt711) in rt711_sdca_jack_init() argument
432 mutex_lock(&rt711->calibrate_mutex); in rt711_sdca_jack_init()
434 if (rt711->hs_jack) { in rt711_sdca_jack_init()
436 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_jack_init()
438 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_jack_init()
440 rt711_sdca_index_write(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_jack_init()
442 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_jack_init()
446 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_jack_init()
449 switch (rt711->jd_src) { in rt711_sdca_jack_init()
454 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_jack_init()
457 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_jack_init()
460 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_jack_init()
466 dev_warn(rt711->component->dev, "Wrong JD source\n"); in rt711_sdca_jack_init()
471 sdw_write_no_pm(rt711->slave, SDW_SCP_SDCA_INTMASK1, SDW_SCP_SDCA_INTMASK_SDCA_0); in rt711_sdca_jack_init()
473 sdw_write_no_pm(rt711->slave, SDW_SCP_SDCA_INTMASK2, SDW_SCP_SDCA_INTMASK_SDCA_8); in rt711_sdca_jack_init()
474 dev_dbg(&rt711->slave->dev, "in %s enable\n", __func__); in rt711_sdca_jack_init()
477 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_jack_init()
480 dev_dbg(&rt711->slave->dev, "in %s disable\n", __func__); in rt711_sdca_jack_init()
483 mutex_unlock(&rt711->calibrate_mutex); in rt711_sdca_jack_init()
489 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_set_jack_detect() local
492 rt711->hs_jack = hs_jack; in rt711_sdca_set_jack_detect()
506 rt711_sdca_jack_init(rt711); in rt711_sdca_set_jack_detect()
521 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_set_gain_put() local
530 regmap_read(rt711->mbq_regmap, mc->reg, &lvalue); in rt711_sdca_set_gain_put()
531 regmap_read(rt711->mbq_regmap, mc->rreg, &rvalue); in rt711_sdca_set_gain_put()
585 regmap_write(rt711->mbq_regmap, mc->reg, gain_l_val); in rt711_sdca_set_gain_put()
588 regmap_write(rt711->mbq_regmap, mc->rreg, gain_r_val); in rt711_sdca_set_gain_put()
590 regmap_read(rt711->mbq_regmap, mc->reg, &read_l); in rt711_sdca_set_gain_put()
591 regmap_read(rt711->mbq_regmap, mc->rreg, &read_r); in rt711_sdca_set_gain_put()
603 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_set_gain_get() local
613 regmap_read(rt711->mbq_regmap, mc->reg, &read_l); in rt711_sdca_set_gain_get()
614 regmap_read(rt711->mbq_regmap, mc->rreg, &read_r); in rt711_sdca_set_gain_get()
665 static int rt711_sdca_set_fu0f_capture_ctl(struct rt711_sdca_priv *rt711) in rt711_sdca_set_fu0f_capture_ctl() argument
670 ch_l = (rt711->fu0f_dapm_mute || rt711->fu0f_mixer_l_mute) ? 0x01 : 0x00; in rt711_sdca_set_fu0f_capture_ctl()
671 ch_r = (rt711->fu0f_dapm_mute || rt711->fu0f_mixer_r_mute) ? 0x01 : 0x00; in rt711_sdca_set_fu0f_capture_ctl()
673 err = regmap_write(rt711->regmap, in rt711_sdca_set_fu0f_capture_ctl()
679 err = regmap_write(rt711->regmap, in rt711_sdca_set_fu0f_capture_ctl()
688 static int rt711_sdca_set_fu1e_capture_ctl(struct rt711_sdca_priv *rt711) in rt711_sdca_set_fu1e_capture_ctl() argument
693 ch_l = (rt711->fu1e_dapm_mute || rt711->fu1e_mixer_l_mute) ? 0x01 : 0x00; in rt711_sdca_set_fu1e_capture_ctl()
694 ch_r = (rt711->fu1e_dapm_mute || rt711->fu1e_mixer_r_mute) ? 0x01 : 0x00; in rt711_sdca_set_fu1e_capture_ctl()
696 err = regmap_write(rt711->regmap, in rt711_sdca_set_fu1e_capture_ctl()
702 err = regmap_write(rt711->regmap, in rt711_sdca_set_fu1e_capture_ctl()
715 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu1e_capture_get() local
717 ucontrol->value.integer.value[0] = !rt711->fu1e_mixer_l_mute; in rt711_sdca_fu1e_capture_get()
718 ucontrol->value.integer.value[1] = !rt711->fu1e_mixer_r_mute; in rt711_sdca_fu1e_capture_get()
726 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu1e_capture_put() local
729 if (rt711->fu1e_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt711_sdca_fu1e_capture_put()
730 rt711->fu1e_mixer_r_mute != !ucontrol->value.integer.value[1]) in rt711_sdca_fu1e_capture_put()
733 rt711->fu1e_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt711_sdca_fu1e_capture_put()
734 rt711->fu1e_mixer_r_mute = !ucontrol->value.integer.value[1]; in rt711_sdca_fu1e_capture_put()
735 err = rt711_sdca_set_fu1e_capture_ctl(rt711); in rt711_sdca_fu1e_capture_put()
746 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu0f_capture_get() local
748 ucontrol->value.integer.value[0] = !rt711->fu0f_mixer_l_mute; in rt711_sdca_fu0f_capture_get()
749 ucontrol->value.integer.value[1] = !rt711->fu0f_mixer_r_mute; in rt711_sdca_fu0f_capture_get()
757 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu0f_capture_put() local
760 if (rt711->fu0f_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt711_sdca_fu0f_capture_put()
761 rt711->fu0f_mixer_r_mute != !ucontrol->value.integer.value[1]) in rt711_sdca_fu0f_capture_put()
764 rt711->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt711_sdca_fu0f_capture_put()
765 rt711->fu0f_mixer_r_mute = !ucontrol->value.integer.value[1]; in rt711_sdca_fu0f_capture_put()
766 err = rt711_sdca_set_fu0f_capture_ctl(rt711); in rt711_sdca_fu0f_capture_put()
814 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_mux_get() local
824 rt711_sdca_index_read(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_mux_get()
839 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_mux_put() local
856 rt711_sdca_index_read(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_mux_put()
866 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_mux_put()
902 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu05_event() local
907 regmap_write(rt711->regmap, in rt711_sdca_fu05_event()
911 regmap_write(rt711->regmap, in rt711_sdca_fu05_event()
917 regmap_write(rt711->regmap, in rt711_sdca_fu05_event()
921 regmap_write(rt711->regmap, in rt711_sdca_fu05_event()
935 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu0f_event() local
939 rt711->fu0f_dapm_mute = false; in rt711_sdca_fu0f_event()
940 rt711_sdca_set_fu0f_capture_ctl(rt711); in rt711_sdca_fu0f_event()
943 rt711->fu0f_dapm_mute = true; in rt711_sdca_fu0f_event()
944 rt711_sdca_set_fu0f_capture_ctl(rt711); in rt711_sdca_fu0f_event()
955 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_fu1e_event() local
959 rt711->fu1e_dapm_mute = false; in rt711_sdca_fu1e_event()
960 rt711_sdca_set_fu1e_capture_ctl(rt711); in rt711_sdca_fu1e_event()
963 rt711->fu1e_dapm_mute = true; in rt711_sdca_fu1e_event()
964 rt711_sdca_set_fu1e_capture_ctl(rt711); in rt711_sdca_fu1e_event()
975 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_pde28_event() local
980 regmap_write(rt711->regmap, in rt711_sdca_pde28_event()
986 regmap_write(rt711->regmap, in rt711_sdca_pde28_event()
1000 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_pde29_event() local
1005 regmap_write(rt711->regmap, in rt711_sdca_pde29_event()
1011 regmap_write(rt711->regmap, in rt711_sdca_pde29_event()
1025 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_pde2a_event() local
1030 regmap_write(rt711->regmap, in rt711_sdca_pde2a_event()
1036 regmap_write(rt711->regmap, in rt711_sdca_pde2a_event()
1050 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_line1_power_event() local
1055 regmap_read(rt711->regmap, in rt711_sdca_line1_power_event()
1059 regmap_write(rt711->regmap, in rt711_sdca_line1_power_event()
1063 regmap_write(rt711->regmap, in rt711_sdca_line1_power_event()
1069 regmap_write(rt711->regmap, in rt711_sdca_line1_power_event()
1074 regmap_write(rt711->regmap, in rt711_sdca_line1_power_event()
1089 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_line2_power_event() local
1094 regmap_write(rt711->regmap, in rt711_sdca_line2_power_event()
1098 regmap_write(rt711->regmap, in rt711_sdca_line2_power_event()
1104 regmap_write(rt711->regmap, in rt711_sdca_line2_power_event()
1108 regmap_write(rt711->regmap, in rt711_sdca_line2_power_event()
1187 static int rt711_sdca_parse_dt(struct rt711_sdca_priv *rt711, struct device *dev) in rt711_sdca_parse_dt() argument
1189 device_property_read_u32(dev, "realtek,jd-src", &rt711->jd_src); in rt711_sdca_parse_dt()
1196 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_probe() local
1199 rt711_sdca_parse_dt(rt711, &rt711->slave->dev); in rt711_sdca_probe()
1200 rt711->component = component; in rt711_sdca_probe()
1259 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_pcm_hw_params() local
1273 if (!rt711->slave) in rt711_sdca_pcm_hw_params()
1299 retval = sdw_stream_add_slave(rt711->slave, &stream_config, in rt711_sdca_pcm_hw_params()
1333 regmap_write(rt711->regmap, in rt711_sdca_pcm_hw_params()
1336 regmap_write(rt711->regmap, in rt711_sdca_pcm_hw_params()
1339 regmap_write(rt711->regmap, in rt711_sdca_pcm_hw_params()
1350 struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component); in rt711_sdca_pcm_hw_free() local
1354 if (!rt711->slave) in rt711_sdca_pcm_hw_free()
1357 sdw_stream_remove_slave(rt711->slave, stream->sdw_stream); in rt711_sdca_pcm_hw_free()
1410 struct rt711_sdca_priv *rt711; in rt711_sdca_init() local
1413 rt711 = devm_kzalloc(dev, sizeof(*rt711), GFP_KERNEL); in rt711_sdca_init()
1414 if (!rt711) in rt711_sdca_init()
1417 dev_set_drvdata(dev, rt711); in rt711_sdca_init()
1418 rt711->slave = slave; in rt711_sdca_init()
1419 rt711->regmap = regmap; in rt711_sdca_init()
1420 rt711->mbq_regmap = mbq_regmap; in rt711_sdca_init()
1422 mutex_init(&rt711->calibrate_mutex); in rt711_sdca_init()
1423 mutex_init(&rt711->disable_irq_lock); in rt711_sdca_init()
1425 INIT_DELAYED_WORK(&rt711->jack_detect_work, rt711_sdca_jack_detect_handler); in rt711_sdca_init()
1426 INIT_DELAYED_WORK(&rt711->jack_btn_check_work, rt711_sdca_btn_check_handler); in rt711_sdca_init()
1432 rt711->hw_init = false; in rt711_sdca_init()
1433 rt711->first_hw_init = false; in rt711_sdca_init()
1434 rt711->fu0f_dapm_mute = true; in rt711_sdca_init()
1435 rt711->fu1e_dapm_mute = true; in rt711_sdca_init()
1436 rt711->fu0f_mixer_l_mute = rt711->fu0f_mixer_r_mute = true; in rt711_sdca_init()
1437 rt711->fu1e_mixer_l_mute = rt711->fu1e_mixer_r_mute = true; in rt711_sdca_init()
1440 rt711->jd_src = RT711_JD2; in rt711_sdca_init()
1452 static void rt711_sdca_vd0_io_init(struct rt711_sdca_priv *rt711) in rt711_sdca_vd0_io_init() argument
1454 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_vd0_io_init()
1456 rt711_sdca_index_write(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_vd0_io_init()
1459 regmap_write(rt711->regmap, 0x2f5a, 0x01); in rt711_sdca_vd0_io_init()
1461 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_vd0_io_init()
1464 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_vd0_io_init()
1467 regmap_write(rt711->regmap, 0x2f50, 0x02); in rt711_sdca_vd0_io_init()
1469 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_ANALOG_CTL, in rt711_sdca_vd0_io_init()
1472 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_vd0_io_init()
1475 rt711_sdca_index_write(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_vd0_io_init()
1478 rt711_sdca_index_write(rt711, RT711_VENDOR_VAD, in rt711_sdca_vd0_io_init()
1482 static void rt711_sdca_vd1_io_init(struct rt711_sdca_priv *rt711) in rt711_sdca_vd1_io_init() argument
1484 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_vd1_io_init()
1487 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_vd1_io_init()
1490 regmap_write(rt711->regmap, 0x2f5a, 0x05); in rt711_sdca_vd1_io_init()
1492 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_vd1_io_init()
1495 rt711_sdca_index_write(rt711, RT711_VENDOR_REG, in rt711_sdca_vd1_io_init()
1498 rt711_sdca_index_write(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_vd1_io_init()
1501 rt711_sdca_index_write(rt711, RT711_VENDOR_VAD, in rt711_sdca_vd1_io_init()
1507 struct rt711_sdca_priv *rt711 = dev_get_drvdata(dev); in rt711_sdca_io_init() local
1511 rt711->disable_irq = false; in rt711_sdca_io_init()
1513 if (rt711->hw_init) in rt711_sdca_io_init()
1516 if (rt711->first_hw_init) { in rt711_sdca_io_init()
1517 regcache_cache_only(rt711->regmap, false); in rt711_sdca_io_init()
1518 regcache_cache_bypass(rt711->regmap, true); in rt711_sdca_io_init()
1519 regcache_cache_only(rt711->mbq_regmap, false); in rt711_sdca_io_init()
1520 regcache_cache_bypass(rt711->mbq_regmap, true); in rt711_sdca_io_init()
1541 rt711_sdca_reset(rt711); in rt711_sdca_io_init()
1543 rt711_sdca_index_read(rt711, RT711_VENDOR_REG, RT711_JD_PRODUCT_NUM, &val); in rt711_sdca_io_init()
1544 rt711->hw_ver = val & 0xf; in rt711_sdca_io_init()
1546 if (rt711->hw_ver == RT711_VER_VD0) in rt711_sdca_io_init()
1547 rt711_sdca_vd0_io_init(rt711); in rt711_sdca_io_init()
1549 rt711_sdca_vd1_io_init(rt711); in rt711_sdca_io_init()
1552 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG, in rt711_sdca_io_init()
1556 rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, in rt711_sdca_io_init()
1560 ret = rt711_sdca_calibration(rt711); in rt711_sdca_io_init()
1565 regmap_write(rt711->regmap, in rt711_sdca_io_init()
1572 if (rt711->hs_jack) in rt711_sdca_io_init()
1573 rt711_sdca_jack_init(rt711); in rt711_sdca_io_init()
1575 if (rt711->first_hw_init) { in rt711_sdca_io_init()
1576 regcache_cache_bypass(rt711->regmap, false); in rt711_sdca_io_init()
1577 regcache_mark_dirty(rt711->regmap); in rt711_sdca_io_init()
1578 regcache_cache_bypass(rt711->mbq_regmap, false); in rt711_sdca_io_init()
1579 regcache_mark_dirty(rt711->mbq_regmap); in rt711_sdca_io_init()
1581 rt711->first_hw_init = true; in rt711_sdca_io_init()
1584 rt711->hw_init = true; in rt711_sdca_io_init()