aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/intel/boards/bytcr_rt5640.c18
-rw-r--r--sound/soc/intel/skylake/skl-pcm.c3
-rw-r--r--sound/soc/intel/skylake/skl-sst.c3
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
516void skl_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx) 516void 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);