ASoC: Intel: Skylake: Parse UUIDs once
authorVinod Koul <vinod.koul@intel.com>
Tue, 26 Jul 2016 12:36:45 +0000 (18:06 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 8 Aug 2016 10:54:59 +0000 (11:54 +0100)
The firmware manifest contains UUIDs which needs to be passed only once.

So use the newly introduced is_first_boot flag to distinguish and parse
these only once.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-sst.c

index 6e9c634..064fc7e 100644 (file)
@@ -88,13 +88,15 @@ static int skl_load_base_firmware(struct sst_dsp *ctx)
                }
        }
 
-       ret = snd_skl_parse_uuids(ctx, ctx->fw, SKL_ADSP_FW_BIN_HDR_OFFSET, 0);
-       if (ret < 0) {
-               dev_err(ctx->dev,
-                               "UUID parsing err: %d\n", ret);
-               release_firmware(ctx->fw);
-               skl_dsp_disable_core(ctx, SKL_DSP_CORE0_MASK);
-               return ret;
+       /* prase uuids on first boot */
+       if (skl->is_first_boot) {
+               ret = snd_skl_parse_uuids(ctx, ctx->fw, SKL_ADSP_FW_BIN_HDR_OFFSET, 0);
+               if (ret < 0) {
+                       dev_err(ctx->dev, "UUID parsing err: %d\n", ret);
+                       release_firmware(ctx->fw);
+                       skl_dsp_disable_core(ctx, SKL_DSP_CORE0_MASK);
+                       return ret;
+               }
        }
 
        /* check for extended manifest */