diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-01-26 00:29:51 +0800 | 
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-01-26 11:39:44 +0800 | 
| commit | 7480800ea682b70b0a15cda00eed7eedc90ceb9c (patch) | |
| tree | 71d5473c988823dc5311489872b18bc61d0b6f23 | |
| parent | 36e8fe990153d015d9bb1d36f5bd70ec5b205204 (diff) | |
ASoC: wm_adsp: Accept 0 as a parameter block address
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| -rw-r--r-- | sound/soc/codecs/wm_adsp.c | 85 | 
1 files changed, 35 insertions, 50 deletions
| diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 99f00f879c5..88831648454 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -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].zm)); -			if (adsp1_alg[i].dm) { -				region = kzalloc(sizeof(*region), GFP_KERNEL); -				if (!region) -					return -ENOMEM; -				region->type = WMFW_ADSP1_DM; -				region->alg = be32_to_cpu(adsp1_alg[i].alg.id); -				region->base = be32_to_cpu(adsp1_alg[i].dm); -				list_add_tail(®ion->list, -					      &dsp->alg_regions); -			} +			region = kzalloc(sizeof(*region), GFP_KERNEL); +			if (!region) +				return -ENOMEM; +			region->type = WMFW_ADSP1_DM; +			region->alg = be32_to_cpu(adsp1_alg[i].alg.id); +			region->base = be32_to_cpu(adsp1_alg[i].dm); +			list_add_tail(®ion->list, &dsp->alg_regions); -			if (adsp1_alg[i].zm) { -				region = kzalloc(sizeof(*region), GFP_KERNEL); -				if (!region) -					return -ENOMEM; -				region->type = WMFW_ADSP1_ZM; -				region->alg = be32_to_cpu(adsp1_alg[i].alg.id); -				region->base = be32_to_cpu(adsp1_alg[i].zm); -				list_add_tail(®ion->list, -					      &dsp->alg_regions); -			} +			region = kzalloc(sizeof(*region), GFP_KERNEL); +			if (!region) +				return -ENOMEM; +			region->type = WMFW_ADSP1_ZM; +			region->alg = be32_to_cpu(adsp1_alg[i].alg.id); +			region->base = be32_to_cpu(adsp1_alg[i].zm); +			list_add_tail(®ion->list, &dsp->alg_regions);  			break;  		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].zm)); -			if (adsp2_alg[i].xm) { -				region = kzalloc(sizeof(*region), GFP_KERNEL); -				if (!region) -					return -ENOMEM; -				region->type = WMFW_ADSP2_XM; -				region->alg = be32_to_cpu(adsp2_alg[i].alg.id); -				region->base = be32_to_cpu(adsp2_alg[i].xm); -				list_add_tail(®ion->list, -					      &dsp->alg_regions); -			} +			region = kzalloc(sizeof(*region), GFP_KERNEL); +			if (!region) +				return -ENOMEM; +			region->type = WMFW_ADSP2_XM; +			region->alg = be32_to_cpu(adsp2_alg[i].alg.id); +			region->base = be32_to_cpu(adsp2_alg[i].xm); +			list_add_tail(®ion->list, &dsp->alg_regions); -			if (adsp2_alg[i].ym) { -				region = kzalloc(sizeof(*region), GFP_KERNEL); -				if (!region) -					return -ENOMEM; -				region->type = WMFW_ADSP2_YM; -				region->alg = be32_to_cpu(adsp2_alg[i].alg.id); -				region->base = be32_to_cpu(adsp2_alg[i].ym); -				list_add_tail(®ion->list, -					      &dsp->alg_regions); -			} +			region = kzalloc(sizeof(*region), GFP_KERNEL); +			if (!region) +				return -ENOMEM; +			region->type = WMFW_ADSP2_YM; +			region->alg = be32_to_cpu(adsp2_alg[i].alg.id); +			region->base = be32_to_cpu(adsp2_alg[i].ym); +			list_add_tail(®ion->list, &dsp->alg_regions); -			if (adsp2_alg[i].zm) { -				region = kzalloc(sizeof(*region), GFP_KERNEL); -				if (!region) -					return -ENOMEM; -				region->type = WMFW_ADSP2_ZM; -				region->alg = be32_to_cpu(adsp2_alg[i].alg.id); -				region->base = be32_to_cpu(adsp2_alg[i].zm); -				list_add_tail(®ion->list, -					      &dsp->alg_regions); -			} +			region = kzalloc(sizeof(*region), GFP_KERNEL); +			if (!region) +				return -ENOMEM; +			region->type = WMFW_ADSP2_ZM; +			region->alg = be32_to_cpu(adsp2_alg[i].alg.id); +			region->base = be32_to_cpu(adsp2_alg[i].zm); +			list_add_tail(®ion->list, &dsp->alg_regions);  			break;  		}  	} | 
