diff options
Diffstat (limited to 'sound/soc/intel/sst-baytrail-ipc.c')
-rw-r--r-- | sound/soc/intel/sst-baytrail-ipc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/soc/intel/sst-baytrail-ipc.c b/sound/soc/intel/sst-baytrail-ipc.c index 18273d26718a..40a25fce0faa 100644 --- a/sound/soc/intel/sst-baytrail-ipc.c +++ b/sound/soc/intel/sst-baytrail-ipc.c | |||
@@ -907,7 +907,7 @@ int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata) | |||
907 | byt->dsp = sst_dsp_new(dev, &byt_dev, pdata); | 907 | byt->dsp = sst_dsp_new(dev, &byt_dev, pdata); |
908 | if (byt->dsp == NULL) { | 908 | if (byt->dsp == NULL) { |
909 | err = -ENODEV; | 909 | err = -ENODEV; |
910 | goto err_free_msg; | 910 | goto dsp_err; |
911 | } | 911 | } |
912 | 912 | ||
913 | /* keep the DSP in reset state for base FW loading */ | 913 | /* keep the DSP in reset state for base FW loading */ |
@@ -940,6 +940,8 @@ boot_err: | |||
940 | sst_fw_free(byt_sst_fw); | 940 | sst_fw_free(byt_sst_fw); |
941 | fw_err: | 941 | fw_err: |
942 | sst_dsp_free(byt->dsp); | 942 | sst_dsp_free(byt->dsp); |
943 | dsp_err: | ||
944 | kthread_stop(byt->tx_thread); | ||
943 | err_free_msg: | 945 | err_free_msg: |
944 | kfree(byt->msg); | 946 | kfree(byt->msg); |
945 | 947 | ||
@@ -954,6 +956,7 @@ void sst_byt_dsp_free(struct device *dev, struct sst_pdata *pdata) | |||
954 | sst_dsp_reset(byt->dsp); | 956 | sst_dsp_reset(byt->dsp); |
955 | sst_fw_free_all(byt->dsp); | 957 | sst_fw_free_all(byt->dsp); |
956 | sst_dsp_free(byt->dsp); | 958 | sst_dsp_free(byt->dsp); |
959 | kthread_stop(byt->tx_thread); | ||
957 | kfree(byt->msg); | 960 | kfree(byt->msg); |
958 | } | 961 | } |
959 | EXPORT_SYMBOL_GPL(sst_byt_dsp_free); | 962 | EXPORT_SYMBOL_GPL(sst_byt_dsp_free); |