Intel: ASoC: Add condition check before set param to waves
authorLu, Han <han.lu@intel.com>
Thu, 19 Mar 2015 00:38:00 +0000 (08:38 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 19 Mar 2015 00:49:11 +0000 (00:49 +0000)
Check waves state before set parameter through ipc to prevent unexpected
operation. Also remove redundant check.

Signed-off-by: Lu, Han <han.lu@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/sst-haswell-ipc.c
sound/soc/intel/sst-haswell-pcm.c

index 43fb5f3391683607bb30f999a8d2fd9906009d65..20b629a011de60b8cbd1303cd07229ab5b46b9ea 100644 (file)
@@ -2055,6 +2055,11 @@ int sst_hsw_launch_param_buf(struct sst_hsw *hsw)
 {
        int ret, idx;
 
+       if (!sst_hsw_is_module_active(hsw, SST_HSW_MODULE_WAVES)) {
+               dev_dbg(hsw->dev, "module waves is not active\n");
+               return 0;
+       }
+
        /* put all param lines to DSP through ipc */
        for (idx = 0; idx < hsw->param_idx_w; idx++) {
                ret = sst_hsw_module_set_param(hsw,
index b40ec746bc19f558fc65a8ca33f7ff6ebbc91f13..6c6229ae4a0259a3f16969708254445bb87d45a2 100644 (file)
@@ -399,13 +399,9 @@ static int hsw_waves_param_put(struct snd_kcontrol *kcontrol,
        if (ret < 0)
                return ret;
 
-       if (sst_hsw_is_module_loaded(hsw, id)) {
-               if (!sst_hsw_is_module_active(hsw, id))
-                       return 0;
-
+       if (sst_hsw_is_module_active(hsw, id))
                ret = sst_hsw_module_set_param(hsw, id, 0, param_id,
                                param_size, ucontrol->value.bytes.data);
-       }
        return ret;
 }