ASoC: dwc: Allocate resources with devm_ioremap_resource
PATCH 1/5 ASoC: dwc: Allocate resources with devm_ioremap_resource
Prepare for the introduction of device-tree support by re-ordering some of the allocations and using devm_iomap_resource to simplify IO mapping.
--- sound/soc/dwc/designware_i2s.c | 46 ++++++++++++++++----------------------- 1 files changed, 19 insertions(+), 27 deletions(-)
sound/soc/dwc/designware_i2s.c +19 -27
@@ -338,31 +338,34 @@ static int dw_i2s_probe(struct platform_device *pdev)return -EINVAL ; } - res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); -if (!res) { -dev_err (&pdev->dev,"no i2s resource defined\n" ); -return -ENODEV ; - } - -if (!devm_request_mem_region (&pdev->dev, res->start, -resource_size (res), pdev->name)) { -dev_err (&pdev->dev,"i2s region already claimed\n" ); -return -EBUSY ; - } - dev =devm_kzalloc (&pdev->dev,sizeof (*dev),GFP_KERNEL );if (!dev) {dev_warn (&pdev->dev,"kzalloc fail\n" );return -ENOMEM ; } - dev->i2s_base =devm_ioremap (&pdev->dev, res->start, -resource_size (res)); -if (!dev->i2s_base) { -dev_err (&pdev->dev,"ioremap fail for i2s_region\n" ); + dw_i2s_dai =devm_kzalloc (&pdev->dev,sizeof (*dw_i2s_dai),GFP_KERNEL ); +if (!dw_i2s_dai) { +dev_err (&pdev->dev,"mem allocation failed for dai driver\n" );return -ENOMEM ; } + dw_i2s_dai->ops = &dw_i2s_dai_ops; + dw_i2s_dai->suspend = dw_i2s_suspend; + dw_i2s_dai->resume = dw_i2s_resume; + + res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!res) { +dev_err (&pdev->dev,"no i2s resource defined\n" ); +return -ENODEV ; + } + + dev->i2s_base =devm_ioremap_resource (&pdev->dev, res); +if (IS_ERR (dev->i2s_base)) { +dev_err (&pdev->dev,"ioremap fail for i2s_region\n" ); +return PTR_ERR (dev->i2s_base); + } + cap = pdata->cap; dev->capability = cap; dev->i2s_clk_cfg = pdata->i2s_clk_cfg;
@@ -388,13 +391,6 @@ static int dw_i2s_probe(struct platform_device *pdev)if (ret <0 ) goto err_clk_put; - dw_i2s_dai =devm_kzalloc (&pdev->dev,sizeof (*dw_i2s_dai),GFP_KERNEL ); -if (!dw_i2s_dai) { -dev_err (&pdev->dev,"mem allocation failed for dai driver\n" ); - ret = -ENOMEM ; - goto err_clk_disable; - } -if (cap &DWC_I2S_PLAY ) {dev_dbg (&pdev->dev," designware: play supported\n" ); dw_i2s_dai->playback.channels_min =MIN_CHANNEL_NUM ;
@@ -411,10 +407,6 @@ static int dw_i2s_probe(struct platform_device *pdev) dw_i2s_dai->capture.rates = pdata->snd_rates; } - dw_i2s_dai->ops = &dw_i2s_dai_ops; - dw_i2s_dai->suspend = dw_i2s_suspend; - dw_i2s_dai->resume = dw_i2s_resume; - dev->dev = &pdev->dev;dev_set_drvdata (&pdev->dev, dev); ret = snd_soc_register_component(&pdev->dev, &dw_i2s_component,
Signature · 1 line
1.7.1
On 12/03/2014 05:38 PM, Andrew Jackson wrote:
[,,,[
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 349
Quoted 3 lines
sound/soc/dwc/designware_i2s.c +3
-0+ dw_i2s_dai =devm_kzalloc (&pdev->dev,sizeof (*dw_i2s_dai),GFP_KERNEL ); +if (!dw_i2s_dai) { +dev_err (&pdev->dev,"mem allocation failed for dai driver\n" );
All the memory alloc functions already print a error message.
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 355
Quoted 6 lines
return -ENOMEM; }sound/soc/dwc/designware_i2s.c +3
-0+ dw_i2s_dai->ops = &dw_i2s_dai_ops; + dw_i2s_dai->suspend = dw_i2s_suspend; + dw_i2s_dai->resume = dw_i2s_resume;
This seems to be separate from the devm_ioremap_resource() change.
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 358
Quoted 3 lines
sound/soc/dwc/designware_i2s.c +3
-0+ + res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!res) {
You don't actually have to check it devm_ioremap_resource does this for you.
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 365
Quoted 7 lines
sound/soc/dwc/designware_i2s.c +7
-0+dev_err (&pdev->dev,"no i2s resource defined\n" ); +return -ENODEV ; + } + + dev->i2s_base =devm_ioremap_resource (&pdev->dev, res); +if (IS_ERR (dev->i2s_base)) { +dev_err (&pdev->dev,"ioremap fail for i2s_region\n" );
Same here devm_ioremap_resource() will already print a appropriate error message.
Quoted 2 lines
sound/soc/dwc/designware_i2s.c +2
-0+return PTR_ERR (dev->i2s_base); + }
Quoted 7 lines · Lars-Peter Clausen
On 12/03/2014 05:38 PM, Andrew Jackson wrote:
[,,,[sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 349
Quoted 3 lines
sound/soc/dwc/designware_i2s.c +3
-0+ dw_i2s_dai =devm_kzalloc (&pdev->dev,sizeof (*dw_i2s_dai),GFP_KERNEL ); +if (!dw_i2s_dai) { +dev_err (&pdev->dev,"mem allocation failed for dai driver\n" );All the memory alloc functions already print a error message.
I will remove the error message(s).
Quoted 8 lines
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 355
Quoted 6 lines
return -ENOMEM; }sound/soc/dwc/designware_i2s.c +3
-0+ dw_i2s_dai->ops = &dw_i2s_dai_ops; + dw_i2s_dai->suspend = dw_i2s_suspend; + dw_i2s_dai->resume = dw_i2s_resume;This seems to be separate from the
devm_ioremap_resource()change.
It seemed reasonable to assign these known values to the dw_i2s_dai as soon as it had been allocated. Would you prefer this in a separate patch?
Quoted 5 lines
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 358
Quoted 3 lines
sound/soc/dwc/designware_i2s.c +3
-0+ + res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!res) {You don't actually have to check it
devm_ioremap_resourcedoes this for you.
Oh, thanks, paranoia was taking over.
Quoted 15 lines
sound/soc/dwc/designware_i2s.c static int dw_i2s_probe(struct platform_device *pdev) · line 365
Quoted 7 lines
sound/soc/dwc/designware_i2s.c +7
-0+dev_err (&pdev->dev,"no i2s resource defined\n" ); +return -ENODEV ; + } + + dev->i2s_base =devm_ioremap_resource (&pdev->dev, res); +if (IS_ERR (dev->i2s_base)) { +dev_err (&pdev->dev,"ioremap fail for i2s_region\n" );Same here
devm_ioremap_resource()will already print a appropriate error message.Quoted 2 lines
sound/soc/dwc/designware_i2s.c +2
-0+return PTR_ERR (dev->i2s_base); + }
Mark Brown
maintainerQuoted 2 lines · Andrew Jackson
Prepare for the introduction of device-tree support by re-ordering some of the allocations and using
devm_iomap_resourceto simplify IO mapping.
Applied, thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141203/88212cec/attachment.sig>
Quoted 6 lines · Mark Brown
Quoted 2 lines · Andrew Jackson
Prepare for the introduction of device-tree support by re-ordering some of the allocations and using
devm_iomap_resourceto simplify IO mapping.Applied, thanks.
Lars-Peter Clausen had some comments on this patch so I was intending to resubmit it. Would you prefer that I submit a patch to my original?
Andrew
Mark Brown
maintainerQuoted 3 lines · Andrew Jackson
Lars-Peter Clausen had some comments on this patch so I was intending to resubmit it. Would you prefer that I submit a patch to my original?
Incremental patches, same as is standard for upstream. Please also fix your mail client to word wrap within paragraphs so your mails are readable.