Loading sound/soc/msm/sdm660-common.c +14 −1 Original line number Diff line number Diff line Loading @@ -2772,11 +2772,24 @@ static int msm_asoc_machine_probe(struct platform_device *pdev) ret = devm_snd_soc_register_card(&pdev->dev, card); if (ret) { if (ret == -EPROBE_DEFER) { if (codec_reg_done) { /* * return failure as EINVAL since other codec * registered sound card successfully. * This avoids any further probe calls. */ ret = -EINVAL; } goto err; } else if (ret) { dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); goto err; } if (pdata->snd_card_val != INT_SND_CARD) msm_ext_register_audio_notifier(pdev); return 0; err: if (pdata->us_euro_gpio > 0) { Loading sound/soc/msm/sdm660-common.h +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ enum { }; extern const struct snd_kcontrol_new msm_common_snd_controls[]; extern bool codec_reg_done; struct sdm660_codec { void* (*get_afe_config_fn)(struct snd_soc_codec *codec, enum afe_config_type config_type); Loading sound/soc/msm/sdm660-external.c +5 −3 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ static int msm_ext_spk_control = 1; static struct wcd_mbhc_config *wcd_mbhc_cfg_ptr; bool codec_reg_done; struct msm_asoc_wcd93xx_codec { void* (*get_afe_config_fn)(struct snd_soc_codec *codec, Loading Loading @@ -1722,6 +1723,7 @@ int msm_audrx_init(struct snd_soc_pcm_runtime *rtd) } } codec_reg_done = true; done: return 0; Loading @@ -1735,10 +1737,12 @@ EXPORT_SYMBOL(msm_audrx_init); /** * msm_ext_register_audio_notifier - register SSR notifier. */ void msm_ext_register_audio_notifier(void) void msm_ext_register_audio_notifier(struct platform_device *pdev) { int ret; is_initial_boot = true; spdev = pdev; ret = audio_notifier_register("sdm660", AUDIO_NOTIFIER_ADSP_DOMAIN, &service_nb); if (ret < 0) Loading Loading @@ -1777,10 +1781,8 @@ int msm_ext_cdc_init(struct platform_device *pdev, ret = -EPROBE_DEFER; goto err; } spdev = pdev; platform_set_drvdata(pdev, *card); snd_soc_card_set_drvdata(*card, pdata); is_initial_boot = true; pdata->hph_en1_gpio = of_get_named_gpio(pdev->dev.of_node, "qcom,hph-en1-gpio", 0); if (!gpio_is_valid(pdata->hph_en1_gpio)) Loading sound/soc/msm/sdm660-external.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ int msm_ext_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, #ifdef CONFIG_SND_SOC_EXT_CODEC int msm_ext_cdc_init(struct platform_device *, struct msm_asoc_mach_data *, struct snd_soc_card **, struct wcd_mbhc_config *); void msm_ext_register_audio_notifier(void); void msm_ext_register_audio_notifier(struct platform_device *pdev); void msm_ext_cdc_deinit(void); #else inline int msm_ext_cdc_init(struct platform_device *pdev, Loading @@ -44,7 +44,7 @@ inline int msm_ext_cdc_init(struct platform_device *pdev, return 0; } inline void msm_ext_register_audio_notifier(void) inline void msm_ext_register_audio_notifier(struct platform_device *pdev) { } inline void msm_ext_cdc_deinit(void) Loading Loading
sound/soc/msm/sdm660-common.c +14 −1 Original line number Diff line number Diff line Loading @@ -2772,11 +2772,24 @@ static int msm_asoc_machine_probe(struct platform_device *pdev) ret = devm_snd_soc_register_card(&pdev->dev, card); if (ret) { if (ret == -EPROBE_DEFER) { if (codec_reg_done) { /* * return failure as EINVAL since other codec * registered sound card successfully. * This avoids any further probe calls. */ ret = -EINVAL; } goto err; } else if (ret) { dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); goto err; } if (pdata->snd_card_val != INT_SND_CARD) msm_ext_register_audio_notifier(pdev); return 0; err: if (pdata->us_euro_gpio > 0) { Loading
sound/soc/msm/sdm660-common.h +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ enum { }; extern const struct snd_kcontrol_new msm_common_snd_controls[]; extern bool codec_reg_done; struct sdm660_codec { void* (*get_afe_config_fn)(struct snd_soc_codec *codec, enum afe_config_type config_type); Loading
sound/soc/msm/sdm660-external.c +5 −3 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ static int msm_ext_spk_control = 1; static struct wcd_mbhc_config *wcd_mbhc_cfg_ptr; bool codec_reg_done; struct msm_asoc_wcd93xx_codec { void* (*get_afe_config_fn)(struct snd_soc_codec *codec, Loading Loading @@ -1722,6 +1723,7 @@ int msm_audrx_init(struct snd_soc_pcm_runtime *rtd) } } codec_reg_done = true; done: return 0; Loading @@ -1735,10 +1737,12 @@ EXPORT_SYMBOL(msm_audrx_init); /** * msm_ext_register_audio_notifier - register SSR notifier. */ void msm_ext_register_audio_notifier(void) void msm_ext_register_audio_notifier(struct platform_device *pdev) { int ret; is_initial_boot = true; spdev = pdev; ret = audio_notifier_register("sdm660", AUDIO_NOTIFIER_ADSP_DOMAIN, &service_nb); if (ret < 0) Loading Loading @@ -1777,10 +1781,8 @@ int msm_ext_cdc_init(struct platform_device *pdev, ret = -EPROBE_DEFER; goto err; } spdev = pdev; platform_set_drvdata(pdev, *card); snd_soc_card_set_drvdata(*card, pdata); is_initial_boot = true; pdata->hph_en1_gpio = of_get_named_gpio(pdev->dev.of_node, "qcom,hph-en1-gpio", 0); if (!gpio_is_valid(pdata->hph_en1_gpio)) Loading
sound/soc/msm/sdm660-external.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ int msm_ext_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, #ifdef CONFIG_SND_SOC_EXT_CODEC int msm_ext_cdc_init(struct platform_device *, struct msm_asoc_mach_data *, struct snd_soc_card **, struct wcd_mbhc_config *); void msm_ext_register_audio_notifier(void); void msm_ext_register_audio_notifier(struct platform_device *pdev); void msm_ext_cdc_deinit(void); #else inline int msm_ext_cdc_init(struct platform_device *pdev, Loading @@ -44,7 +44,7 @@ inline int msm_ext_cdc_init(struct platform_device *pdev, return 0; } inline void msm_ext_register_audio_notifier(void) inline void msm_ext_register_audio_notifier(struct platform_device *pdev) { } inline void msm_ext_cdc_deinit(void) Loading