Commit c0da5500 authored by Wan ZongShun's avatar Wan ZongShun Committed by Mark Brown

ASoC: use resource_size for au1x

Use the resource_size function instead of manually calculating the
resource size.This patch can reduce the chance of introducing off-by-one
errors.
Signed-off-by: default avatarWan ZongShun <mcuos.com@gmail.com>
Acked-by: default avatarManuel Lauss <manuel.lauss@googlemail.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 5ef650ae
...@@ -375,12 +375,10 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev) ...@@ -375,12 +375,10 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev)
} }
ret = -EBUSY; ret = -EBUSY;
wd->ioarea = request_mem_region(r->start, r->end - r->start + 1, if (!request_mem_region(r->start, resource_size(r), pdev->name))
"au1xpsc_ac97");
if (!wd->ioarea)
goto out0; goto out0;
wd->mmio = ioremap(r->start, 0xffff); wd->mmio = ioremap(r->start, resource_size(r));
if (!wd->mmio) if (!wd->mmio)
goto out1; goto out1;
...@@ -410,8 +408,7 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev) ...@@ -410,8 +408,7 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev)
snd_soc_unregister_dai(&au1xpsc_ac97_dai); snd_soc_unregister_dai(&au1xpsc_ac97_dai);
out1: out1:
release_resource(wd->ioarea); release_mem_region(r->start, resource_size(r));
kfree(wd->ioarea);
out0: out0:
kfree(wd); kfree(wd);
return ret; return ret;
...@@ -420,6 +417,7 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev) ...@@ -420,6 +417,7 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev)
static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev) static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev)
{ {
struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev); struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev);
struct resource *r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (wd->dmapd) if (wd->dmapd)
au1xpsc_pcm_destroy(wd->dmapd); au1xpsc_pcm_destroy(wd->dmapd);
...@@ -433,8 +431,7 @@ static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev) ...@@ -433,8 +431,7 @@ static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev)
au_sync(); au_sync();
iounmap(wd->mmio); iounmap(wd->mmio);
release_resource(wd->ioarea); release_mem_region(r->start, resource_size(r));
kfree(wd->ioarea);
kfree(wd); kfree(wd);
au1xpsc_ac97_workdata = NULL; /* MDEV */ au1xpsc_ac97_workdata = NULL; /* MDEV */
......
...@@ -321,12 +321,10 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev) ...@@ -321,12 +321,10 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev)
} }
ret = -EBUSY; ret = -EBUSY;
wd->ioarea = request_mem_region(r->start, r->end - r->start + 1, if (!request_mem_region(r->start, resource_size(r), pdev->name))
"au1xpsc_i2s");
if (!wd->ioarea)
goto out0; goto out0;
wd->mmio = ioremap(r->start, 0xffff); wd->mmio = ioremap(r->start, resource_size(r));
if (!wd->mmio) if (!wd->mmio)
goto out1; goto out1;
...@@ -362,8 +360,7 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev) ...@@ -362,8 +360,7 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev)
snd_soc_unregister_dai(&au1xpsc_i2s_dai); snd_soc_unregister_dai(&au1xpsc_i2s_dai);
out1: out1:
release_resource(wd->ioarea); release_mem_region(r->start, resource_size(r));
kfree(wd->ioarea);
out0: out0:
kfree(wd); kfree(wd);
return ret; return ret;
...@@ -372,6 +369,7 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev) ...@@ -372,6 +369,7 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev)
static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev) static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev)
{ {
struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev); struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev);
struct resource *r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (wd->dmapd) if (wd->dmapd)
au1xpsc_pcm_destroy(wd->dmapd); au1xpsc_pcm_destroy(wd->dmapd);
...@@ -384,8 +382,7 @@ static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev) ...@@ -384,8 +382,7 @@ static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev)
au_sync(); au_sync();
iounmap(wd->mmio); iounmap(wd->mmio);
release_resource(wd->ioarea); release_mem_region(r->start, resource_size(r));
kfree(wd->ioarea);
kfree(wd); kfree(wd);
au1xpsc_i2s_workdata = NULL; /* MDEV */ au1xpsc_i2s_workdata = NULL; /* MDEV */
......
...@@ -32,7 +32,6 @@ struct au1xpsc_audio_data { ...@@ -32,7 +32,6 @@ struct au1xpsc_audio_data {
unsigned long rate; unsigned long rate;
unsigned long pm[2]; unsigned long pm[2];
struct resource *ioarea;
struct mutex lock; struct mutex lock;
struct platform_device *dmapd; struct platform_device *dmapd;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment