static void wcd9xxx_clsh_state_ear(struct snd_soc_codec *codec, struct wcd9xxx_clsh_cdc_data *clsh_d, u8 req_state, bool is_enable) { pr_debug("%s: enter %s\n", __func__, is_enable ? "enable" : "disable"); if (is_enable) { wcd9xxx_cfg_clsh_param_common(codec); wcd9xxx_cfg_clsh_param_ear(codec); wcd9xxx_enable_clsh_block(codec, clsh_d, true); wcd9xxx_chargepump_request(codec, true); wcd9xxx_enable_anc_delay(codec, true); wcd9xxx_clsh_comp_req(codec, clsh_d, CLSH_COMPUTE_EAR, true); wcd9xxx_set_buck_mode(codec, BUCK_VREF_2V); wcd9xxx_enable_buck(codec, clsh_d, true); wcd9xxx_set_fclk_get_ncp(codec, clsh_d, NCP_FCLK_LEVEL_8); dev_dbg(codec->dev, "%s: Enabled ear mode class h\n", __func__); } else { dev_dbg(codec->dev, "%s: stub fallback to ear\n", __func__); wcd9xxx_set_fclk_put_ncp(codec, clsh_d, NCP_FCLK_LEVEL_8); wcd9xxx_enable_buck(codec, clsh_d, false); #ifdef CONFIG_MACH_URSA wcd9xxx_clsh_comp_req(codec, clsh_d, CLSH_COMPUTE_EAR, false); #else wcd9xxx_clsh_comp_req(codec, clsh_d, CLSH_COMPUTE_EAR, true); #endif wcd9xxx_chargepump_request(codec, false); wcd9xxx_enable_clsh_block(codec, clsh_d, false); } }
static void wcd9xxx_clsh_state_ear(struct snd_soc_codec *codec, struct wcd9xxx_clsh_cdc_data *clsh_d, u8 req_state, bool is_enable) { if (is_enable) { wcd9xxx_cfg_clsh_param_common(codec); wcd9xxx_cfg_clsh_param_ear(codec); wcd9xxx_enable_clsh_block(codec, clsh_d, true); wcd9xxx_chargepump_request(codec, true); wcd9xxx_enable_anc_delay(codec, true); wcd9xxx_clsh_computation_request(codec, CLSH_COMPUTE_EAR, true); wcd9xxx_set_buck_mode(codec, BUCK_VREF_2V); wcd9xxx_enable_buck(codec, clsh_d, true); wcd9xxx_set_fclk_get_ncp(codec, clsh_d, NCP_FCLK_LEVEL_8); dev_dbg(codec->dev, "%s: Enabled ear mode class h\n", __func__); } else { dev_dbg(codec->dev, "%s: stub fallback to ear\n", __func__); wcd9xxx_set_fclk_put_ncp(codec, clsh_d, NCP_FCLK_LEVEL_8); wcd9xxx_enable_buck(codec, clsh_d, false); wcd9xxx_clsh_computation_request(codec, CLSH_COMPUTE_EAR, true); wcd9xxx_chargepump_request(codec, false); wcd9xxx_enable_clsh_block(codec, clsh_d, false); } }