diff options
author | Wan ZongShun <mcuos.com@gmail.com> | 2010-06-01 03:16:20 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-06-03 14:00:16 -0400 |
commit | c0da5500e9962e23ee8bb0bce9cb4307d44c0ae7 (patch) | |
tree | 8eb69bd02ec962134f6e358d08a2695affa76d75 /sound/soc/au1x | |
parent | 5ef650ae5c94ee4d593169b82b6c306093360765 (diff) |
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: Wan ZongShun <mcuos.com@gmail.com>
Acked-by: Manuel Lauss <manuel.lauss@googlemail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/au1x')
-rw-r--r-- | sound/soc/au1x/psc-ac97.c | 13 | ||||
-rw-r--r-- | sound/soc/au1x/psc-i2s.c | 13 | ||||
-rw-r--r-- | sound/soc/au1x/psc.h | 1 |
3 files changed, 10 insertions, 17 deletions
diff --git a/sound/soc/au1x/psc-ac97.c b/sound/soc/au1x/psc-ac97.c index a61ccd2d505f..d14a5a91a465 100644 --- a/sound/soc/au1x/psc-ac97.c +++ b/sound/soc/au1x/psc-ac97.c | |||
@@ -375,12 +375,10 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev) | |||
375 | } | 375 | } |
376 | 376 | ||
377 | ret = -EBUSY; | 377 | ret = -EBUSY; |
378 | wd->ioarea = request_mem_region(r->start, r->end - r->start + 1, | 378 | if (!request_mem_region(r->start, resource_size(r), pdev->name)) |
379 | "au1xpsc_ac97"); | ||
380 | if (!wd->ioarea) | ||
381 | goto out0; | 379 | goto out0; |
382 | 380 | ||
383 | wd->mmio = ioremap(r->start, 0xffff); | 381 | wd->mmio = ioremap(r->start, resource_size(r)); |
384 | if (!wd->mmio) | 382 | if (!wd->mmio) |
385 | goto out1; | 383 | goto out1; |
386 | 384 | ||
@@ -410,8 +408,7 @@ static int __devinit au1xpsc_ac97_drvprobe(struct platform_device *pdev) | |||
410 | 408 | ||
411 | snd_soc_unregister_dai(&au1xpsc_ac97_dai); | 409 | snd_soc_unregister_dai(&au1xpsc_ac97_dai); |
412 | out1: | 410 | out1: |
413 | release_resource(wd->ioarea); | 411 | release_mem_region(r->start, resource_size(r)); |
414 | kfree(wd->ioarea); | ||
415 | out0: | 412 | out0: |
416 | kfree(wd); | 413 | kfree(wd); |
417 | return ret; | 414 | return ret; |
@@ -420,6 +417,7 @@ out0: | |||
420 | static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev) | 417 | static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev) |
421 | { | 418 | { |
422 | struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev); | 419 | struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev); |
420 | struct resource *r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
423 | 421 | ||
424 | if (wd->dmapd) | 422 | if (wd->dmapd) |
425 | au1xpsc_pcm_destroy(wd->dmapd); | 423 | au1xpsc_pcm_destroy(wd->dmapd); |
@@ -433,8 +431,7 @@ static int __devexit au1xpsc_ac97_drvremove(struct platform_device *pdev) | |||
433 | au_sync(); | 431 | au_sync(); |
434 | 432 | ||
435 | iounmap(wd->mmio); | 433 | iounmap(wd->mmio); |
436 | release_resource(wd->ioarea); | 434 | release_mem_region(r->start, resource_size(r)); |
437 | kfree(wd->ioarea); | ||
438 | kfree(wd); | 435 | kfree(wd); |
439 | 436 | ||
440 | au1xpsc_ac97_workdata = NULL; /* MDEV */ | 437 | au1xpsc_ac97_workdata = NULL; /* MDEV */ |
diff --git a/sound/soc/au1x/psc-i2s.c b/sound/soc/au1x/psc-i2s.c index 495be6e71931..737b2384f6c5 100644 --- a/sound/soc/au1x/psc-i2s.c +++ b/sound/soc/au1x/psc-i2s.c | |||
@@ -321,12 +321,10 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev) | |||
321 | } | 321 | } |
322 | 322 | ||
323 | ret = -EBUSY; | 323 | ret = -EBUSY; |
324 | wd->ioarea = request_mem_region(r->start, r->end - r->start + 1, | 324 | if (!request_mem_region(r->start, resource_size(r), pdev->name)) |
325 | "au1xpsc_i2s"); | ||
326 | if (!wd->ioarea) | ||
327 | goto out0; | 325 | goto out0; |
328 | 326 | ||
329 | wd->mmio = ioremap(r->start, 0xffff); | 327 | wd->mmio = ioremap(r->start, resource_size(r)); |
330 | if (!wd->mmio) | 328 | if (!wd->mmio) |
331 | goto out1; | 329 | goto out1; |
332 | 330 | ||
@@ -362,8 +360,7 @@ static int __init au1xpsc_i2s_drvprobe(struct platform_device *pdev) | |||
362 | 360 | ||
363 | snd_soc_unregister_dai(&au1xpsc_i2s_dai); | 361 | snd_soc_unregister_dai(&au1xpsc_i2s_dai); |
364 | out1: | 362 | out1: |
365 | release_resource(wd->ioarea); | 363 | release_mem_region(r->start, resource_size(r)); |
366 | kfree(wd->ioarea); | ||
367 | out0: | 364 | out0: |
368 | kfree(wd); | 365 | kfree(wd); |
369 | return ret; | 366 | return ret; |
@@ -372,6 +369,7 @@ out0: | |||
372 | static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev) | 369 | static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev) |
373 | { | 370 | { |
374 | struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev); | 371 | struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev); |
372 | struct resource *r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
375 | 373 | ||
376 | if (wd->dmapd) | 374 | if (wd->dmapd) |
377 | au1xpsc_pcm_destroy(wd->dmapd); | 375 | au1xpsc_pcm_destroy(wd->dmapd); |
@@ -384,8 +382,7 @@ static int __devexit au1xpsc_i2s_drvremove(struct platform_device *pdev) | |||
384 | au_sync(); | 382 | au_sync(); |
385 | 383 | ||
386 | iounmap(wd->mmio); | 384 | iounmap(wd->mmio); |
387 | release_resource(wd->ioarea); | 385 | release_mem_region(r->start, resource_size(r)); |
388 | kfree(wd->ioarea); | ||
389 | kfree(wd); | 386 | kfree(wd); |
390 | 387 | ||
391 | au1xpsc_i2s_workdata = NULL; /* MDEV */ | 388 | au1xpsc_i2s_workdata = NULL; /* MDEV */ |
diff --git a/sound/soc/au1x/psc.h b/sound/soc/au1x/psc.h index 32d3807d3f5a..093775d4dc3e 100644 --- a/sound/soc/au1x/psc.h +++ b/sound/soc/au1x/psc.h | |||
@@ -32,7 +32,6 @@ struct au1xpsc_audio_data { | |||
32 | unsigned long rate; | 32 | unsigned long rate; |
33 | 33 | ||
34 | unsigned long pm[2]; | 34 | unsigned long pm[2]; |
35 | struct resource *ioarea; | ||
36 | struct mutex lock; | 35 | struct mutex lock; |
37 | struct platform_device *dmapd; | 36 | struct platform_device *dmapd; |
38 | }; | 37 | }; |