ASoC: wm_adsp: Accept 0 as a parameter block address

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Mark Brown 2013-01-26 00:29:51 +08:00
parent 36e8fe9901
commit 7480800ea6

View File

@ -590,27 +590,21 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp)
be32_to_cpu(adsp1_alg[i].dm), be32_to_cpu(adsp1_alg[i].dm),
be32_to_cpu(adsp1_alg[i].zm)); be32_to_cpu(adsp1_alg[i].zm));
if (adsp1_alg[i].dm) { region = kzalloc(sizeof(*region), GFP_KERNEL);
region = kzalloc(sizeof(*region), GFP_KERNEL); if (!region)
if (!region) return -ENOMEM;
return -ENOMEM; region->type = WMFW_ADSP1_DM;
region->type = WMFW_ADSP1_DM; region->alg = be32_to_cpu(adsp1_alg[i].alg.id);
region->alg = be32_to_cpu(adsp1_alg[i].alg.id); region->base = be32_to_cpu(adsp1_alg[i].dm);
region->base = be32_to_cpu(adsp1_alg[i].dm); list_add_tail(&region->list, &dsp->alg_regions);
list_add_tail(&region->list,
&dsp->alg_regions);
}
if (adsp1_alg[i].zm) { region = kzalloc(sizeof(*region), GFP_KERNEL);
region = kzalloc(sizeof(*region), GFP_KERNEL); if (!region)
if (!region) return -ENOMEM;
return -ENOMEM; region->type = WMFW_ADSP1_ZM;
region->type = WMFW_ADSP1_ZM; region->alg = be32_to_cpu(adsp1_alg[i].alg.id);
region->alg = be32_to_cpu(adsp1_alg[i].alg.id); region->base = be32_to_cpu(adsp1_alg[i].zm);
region->base = be32_to_cpu(adsp1_alg[i].zm); list_add_tail(&region->list, &dsp->alg_regions);
list_add_tail(&region->list,
&dsp->alg_regions);
}
break; break;
case WMFW_ADSP2: case WMFW_ADSP2:
@ -624,38 +618,29 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp)
be32_to_cpu(adsp2_alg[i].ym), be32_to_cpu(adsp2_alg[i].ym),
be32_to_cpu(adsp2_alg[i].zm)); be32_to_cpu(adsp2_alg[i].zm));
if (adsp2_alg[i].xm) { region = kzalloc(sizeof(*region), GFP_KERNEL);
region = kzalloc(sizeof(*region), GFP_KERNEL); if (!region)
if (!region) return -ENOMEM;
return -ENOMEM; region->type = WMFW_ADSP2_XM;
region->type = WMFW_ADSP2_XM; region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
region->alg = be32_to_cpu(adsp2_alg[i].alg.id); region->base = be32_to_cpu(adsp2_alg[i].xm);
region->base = be32_to_cpu(adsp2_alg[i].xm); list_add_tail(&region->list, &dsp->alg_regions);
list_add_tail(&region->list,
&dsp->alg_regions);
}
if (adsp2_alg[i].ym) { region = kzalloc(sizeof(*region), GFP_KERNEL);
region = kzalloc(sizeof(*region), GFP_KERNEL); if (!region)
if (!region) return -ENOMEM;
return -ENOMEM; region->type = WMFW_ADSP2_YM;
region->type = WMFW_ADSP2_YM; region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
region->alg = be32_to_cpu(adsp2_alg[i].alg.id); region->base = be32_to_cpu(adsp2_alg[i].ym);
region->base = be32_to_cpu(adsp2_alg[i].ym); list_add_tail(&region->list, &dsp->alg_regions);
list_add_tail(&region->list,
&dsp->alg_regions);
}
if (adsp2_alg[i].zm) { region = kzalloc(sizeof(*region), GFP_KERNEL);
region = kzalloc(sizeof(*region), GFP_KERNEL); if (!region)
if (!region) return -ENOMEM;
return -ENOMEM; region->type = WMFW_ADSP2_ZM;
region->type = WMFW_ADSP2_ZM; region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
region->alg = be32_to_cpu(adsp2_alg[i].alg.id); region->base = be32_to_cpu(adsp2_alg[i].zm);
region->base = be32_to_cpu(adsp2_alg[i].zm); list_add_tail(&region->list, &dsp->alg_regions);
list_add_tail(&region->list,
&dsp->alg_regions);
}
break; break;
} }
} }