Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus
authorMark Brown <broonie@kernel.org>
Sun, 12 Apr 2015 18:48:20 +0000 (19:48 +0100)
committerMark Brown <broonie@kernel.org>
Sun, 12 Apr 2015 18:48:20 +0000 (19:48 +0100)
sound/soc/intel/sst-acpi.c
sound/soc/intel/sst-dsp.h
sound/soc/intel/sst-firmware.c
sound/soc/intel/sst/sst_acpi.c

index b3d8456..42f293f 100644 (file)
@@ -142,6 +142,7 @@ static int sst_acpi_probe(struct platform_device *pdev)
        sst_acpi->desc = desc;
        sst_acpi->mach = mach;
 
+       sst_pdata->resindex_dma_base = desc->resindex_dma_base;
        if (desc->resindex_dma_base >= 0) {
                sst_pdata->dma_engine = desc->dma_engine;
                sst_pdata->dma_base = desc->resindex_dma_base;
index f291e32..148d8c5 100644 (file)
@@ -206,6 +206,7 @@ struct sst_pdata {
        const struct firmware *fw;
 
        /* DMA */
+       int resindex_dma_base; /* other fields invalid if equals to -1 */
        u32 dma_base;
        u32 dma_size;
        int dma_engine;
index 5f71ef6..4a993d1 100644 (file)
@@ -271,6 +271,10 @@ int sst_dma_new(struct sst_dsp *sst)
        const char *dma_dev_name;
        int ret = 0;
 
+       if (sst->pdata->resindex_dma_base == -1)
+               /* DMA is not used, return and squelsh error messages */
+               return 0;
+
        /* configure the correct platform data for whatever DMA engine
        * is attached to the ADSP IP. */
        switch (sst->pdata->dma_engine) {
index b782dfd..b536ddd 100644 (file)
@@ -309,7 +309,7 @@ static int sst_acpi_probe(struct platform_device *pdev)
        ctx->shim_regs64 = devm_kzalloc(ctx->dev, sizeof(*ctx->shim_regs64),
                                        GFP_KERNEL);
        if (!ctx->shim_regs64) {
-               return -ENOMEM;
+               ret = -ENOMEM;
                goto do_sst_cleanup;
        }