diff options
-rw-r--r-- | sound/soc/intel/boards/bytcr_rt5640.c | 18 | ||||
-rw-r--r-- | sound/soc/intel/skylake/skl-pcm.c | 3 | ||||
-rw-r--r-- | sound/soc/intel/skylake/skl-sst.c | 3 |
3 files changed, 20 insertions, 4 deletions
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c index 507a86a5eafe..8d2fb2d6f532 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c | |||
@@ -142,7 +142,7 @@ static int platform_clock_control(struct snd_soc_dapm_widget *w, | |||
142 | * for Jack detection and button press | 142 | * for Jack detection and button press |
143 | */ | 143 | */ |
144 | ret = snd_soc_dai_set_sysclk(codec_dai, RT5640_SCLK_S_RCCLK, | 144 | ret = snd_soc_dai_set_sysclk(codec_dai, RT5640_SCLK_S_RCCLK, |
145 | 0, | 145 | 48000 * 512, |
146 | SND_SOC_CLOCK_IN); | 146 | SND_SOC_CLOCK_IN); |
147 | if (!ret) { | 147 | if (!ret) { |
148 | if ((byt_rt5640_quirk & BYT_RT5640_MCLK_EN) && priv->mclk) | 148 | if ((byt_rt5640_quirk & BYT_RT5640_MCLK_EN) && priv->mclk) |
@@ -825,10 +825,20 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev) | |||
825 | if ((byt_rt5640_quirk & BYT_RT5640_MCLK_EN) && (is_valleyview())) { | 825 | if ((byt_rt5640_quirk & BYT_RT5640_MCLK_EN) && (is_valleyview())) { |
826 | priv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3"); | 826 | priv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3"); |
827 | if (IS_ERR(priv->mclk)) { | 827 | if (IS_ERR(priv->mclk)) { |
828 | ret_val = PTR_ERR(priv->mclk); | ||
829 | |||
828 | dev_err(&pdev->dev, | 830 | dev_err(&pdev->dev, |
829 | "Failed to get MCLK from pmc_plt_clk_3: %ld\n", | 831 | "Failed to get MCLK from pmc_plt_clk_3: %d\n", |
830 | PTR_ERR(priv->mclk)); | 832 | ret_val); |
831 | return PTR_ERR(priv->mclk); | 833 | |
834 | /* | ||
835 | * Fall back to bit clock usage for -ENOENT (clock not | ||
836 | * available likely due to missing dependencies), bail | ||
837 | * for all other errors, including -EPROBE_DEFER | ||
838 | */ | ||
839 | if (ret_val != -ENOENT) | ||
840 | return ret_val; | ||
841 | byt_rt5640_quirk &= ~BYT_RT5640_MCLK_EN; | ||
832 | } | 842 | } |
833 | } | 843 | } |
834 | 844 | ||
diff --git a/sound/soc/intel/skylake/skl-pcm.c b/sound/soc/intel/skylake/skl-pcm.c index 84b5101e6ca6..6c6b63a6b338 100644 --- a/sound/soc/intel/skylake/skl-pcm.c +++ b/sound/soc/intel/skylake/skl-pcm.c | |||
@@ -180,6 +180,9 @@ static int skl_pcm_open(struct snd_pcm_substream *substream, | |||
180 | snd_pcm_set_sync(substream); | 180 | snd_pcm_set_sync(substream); |
181 | 181 | ||
182 | mconfig = skl_tplg_fe_get_cpr_module(dai, substream->stream); | 182 | mconfig = skl_tplg_fe_get_cpr_module(dai, substream->stream); |
183 | if (!mconfig) | ||
184 | return -EINVAL; | ||
185 | |||
183 | skl_tplg_d0i3_get(skl, mconfig->d0i3_caps); | 186 | skl_tplg_d0i3_get(skl, mconfig->d0i3_caps); |
184 | 187 | ||
185 | return 0; | 188 | return 0; |
diff --git a/sound/soc/intel/skylake/skl-sst.c b/sound/soc/intel/skylake/skl-sst.c index 8fc3178bc79c..b30bd384c8d3 100644 --- a/sound/soc/intel/skylake/skl-sst.c +++ b/sound/soc/intel/skylake/skl-sst.c | |||
@@ -515,6 +515,9 @@ EXPORT_SYMBOL_GPL(skl_sst_init_fw); | |||
515 | 515 | ||
516 | void skl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx) | 516 | void skl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx) |
517 | { | 517 | { |
518 | |||
519 | if (ctx->dsp->fw) | ||
520 | release_firmware(ctx->dsp->fw); | ||
518 | skl_clear_module_table(ctx->dsp); | 521 | skl_clear_module_table(ctx->dsp); |
519 | skl_freeup_uuid_list(ctx); | 522 | skl_freeup_uuid_list(ctx); |
520 | skl_ipc_free(&ctx->ipc); | 523 | skl_ipc_free(&ctx->ipc); |