diff options
Diffstat (limited to 'sound/soc/au1x/psc-i2s.c')
-rw-r--r-- | sound/soc/au1x/psc-i2s.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/sound/soc/au1x/psc-i2s.c b/sound/soc/au1x/psc-i2s.c index 24454c98d0ee..6083fe7799fa 100644 --- a/sound/soc/au1x/psc-i2s.c +++ b/sound/soc/au1x/psc-i2s.c | |||
@@ -321,12 +321,10 @@ static int __devinit 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 __devinit 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 */ |