Date: | 2012-09-13 20:33:21 (8 years 4 months ago) |
---|---|
Author: | Lars C. |
Commit: | ca86dff05dedd2210c8920e467f6e40b8a54d44b |
Message: | ASoC: jz4740: Use devm_request_and_ioremap Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> |
Files: |
sound/soc/codecs/jz4740.c (2 diffs) |
Change Details
sound/soc/codecs/jz4740.c | ||
---|---|---|
74 | 74 | |
75 | 75 | struct jz4740_codec { |
76 | 76 | void __iomem *base; |
77 | struct resource *mem; | |
78 | 77 | }; |
79 | 78 | |
80 | 79 | static unsigned int jz4740_codec_read(struct snd_soc_codec *codec, |
... | ... | |
370 | 369 | return -ENOMEM; |
371 | 370 | |
372 | 371 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
373 | if (!mem) { | |
374 | dev_err(&pdev->dev, "Failed to get mmio memory resource\n"); | |
375 | ret = -ENOENT; | |
376 | goto err_out; | |
377 | } | |
378 | ||
379 | mem = request_mem_region(mem->start, resource_size(mem), pdev->name); | |
380 | if (!mem) { | |
381 | dev_err(&pdev->dev, "Failed to request mmio memory region\n"); | |
382 | ret = -EBUSY; | |
383 | goto err_out; | |
384 | } | |
385 | ||
386 | jz4740_codec->base = ioremap(mem->start, resource_size(mem)); | |
387 | if (!jz4740_codec->base) { | |
388 | dev_err(&pdev->dev, "Failed to ioremap mmio memory\n"); | |
389 | ret = -EBUSY; | |
390 | goto err_release_mem_region; | |
391 | } | |
392 | jz4740_codec->mem = mem; | |
372 | jz4740_codec->base = devm_request_and_ioremap(&pdev->dev, mem); | |
373 | if (!jz4740_codec->base) | |
374 | return -EBUSY; | |
393 | 375 | |
394 | 376 | platform_set_drvdata(pdev, jz4740_codec); |
395 | 377 | |
396 | 378 | ret = snd_soc_register_codec(&pdev->dev, |
397 | 379 | &soc_codec_dev_jz4740_codec, &jz4740_codec_dai, 1); |
398 | if (ret) { | |
380 | if (ret) | |
399 | 381 | dev_err(&pdev->dev, "Failed to register codec\n"); |
400 | goto err_iounmap; | |
401 | } | |
402 | ||
403 | return 0; | |
404 | 382 | |
405 | err_iounmap: | |
406 | iounmap(jz4740_codec->base); | |
407 | err_release_mem_region: | |
408 | release_mem_region(mem->start, resource_size(mem)); | |
409 | err_out: | |
410 | 383 | return ret; |
411 | 384 | } |
412 | 385 | |
413 | 386 | static int __devexit jz4740_codec_remove(struct platform_device *pdev) |
414 | 387 | { |
415 | struct jz4740_codec *jz4740_codec = platform_get_drvdata(pdev); | |
416 | struct resource *mem = jz4740_codec->mem; | |
417 | ||
418 | 388 | snd_soc_unregister_codec(&pdev->dev); |
419 | 389 | |
420 | iounmap(jz4740_codec->base); | |
421 | release_mem_region(mem->start, resource_size(mem)); | |
422 | ||
423 | 390 | platform_set_drvdata(pdev, NULL); |
424 | 391 | |
425 | 392 | return 0; |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9