diff options
author | Mark Brown <broonie@linaro.org> | 2013-07-28 09:38:06 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-07-29 07:41:01 -0400 |
commit | 1729ce3441ad849e63403fa4347fa86e052559a5 (patch) | |
tree | d1da14aba35bed8dea1adfe5f60097dfd642dd99 | |
parent | 3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b (diff) |
spi/orion: Convert to devm_ioremap_resource()
Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Andrew Lunn <andrew@lunn.ch>
-rw-r--r-- | drivers/spi/spi-orion.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/spi/spi-orion.c b/drivers/spi/spi-orion.c index 5d90bebaa0fa..551bea774fd8 100644 --- a/drivers/spi/spi-orion.c +++ b/drivers/spi/spi-orion.c | |||
@@ -446,30 +446,22 @@ static int orion_spi_probe(struct platform_device *pdev) | |||
446 | spi->min_speed = DIV_ROUND_UP(tclk_hz, 30); | 446 | spi->min_speed = DIV_ROUND_UP(tclk_hz, 30); |
447 | 447 | ||
448 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 448 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
449 | if (r == NULL) { | 449 | spi->base = devm_ioremap_resource(&pdev->dev, r); |
450 | status = -ENODEV; | 450 | if (IS_ERR(spi->base)) { |
451 | status = PTR_ERR(spi->base); | ||
451 | goto out_rel_clk; | 452 | goto out_rel_clk; |
452 | } | 453 | } |
453 | 454 | ||
454 | if (!request_mem_region(r->start, resource_size(r), | ||
455 | dev_name(&pdev->dev))) { | ||
456 | status = -EBUSY; | ||
457 | goto out_rel_clk; | ||
458 | } | ||
459 | spi->base = ioremap(r->start, SZ_1K); | ||
460 | |||
461 | if (orion_spi_reset(spi) < 0) | 455 | if (orion_spi_reset(spi) < 0) |
462 | goto out_rel_mem; | 456 | goto out_rel_clk; |
463 | 457 | ||
464 | master->dev.of_node = pdev->dev.of_node; | 458 | master->dev.of_node = pdev->dev.of_node; |
465 | status = spi_register_master(master); | 459 | status = spi_register_master(master); |
466 | if (status < 0) | 460 | if (status < 0) |
467 | goto out_rel_mem; | 461 | goto out_rel_clk; |
468 | 462 | ||
469 | return status; | 463 | return status; |
470 | 464 | ||
471 | out_rel_mem: | ||
472 | release_mem_region(r->start, resource_size(r)); | ||
473 | out_rel_clk: | 465 | out_rel_clk: |
474 | clk_disable_unprepare(spi->clk); | 466 | clk_disable_unprepare(spi->clk); |
475 | clk_put(spi->clk); | 467 | clk_put(spi->clk); |
@@ -482,7 +474,6 @@ out: | |||
482 | static int orion_spi_remove(struct platform_device *pdev) | 474 | static int orion_spi_remove(struct platform_device *pdev) |
483 | { | 475 | { |
484 | struct spi_master *master; | 476 | struct spi_master *master; |
485 | struct resource *r; | ||
486 | struct orion_spi *spi; | 477 | struct orion_spi *spi; |
487 | 478 | ||
488 | master = platform_get_drvdata(pdev); | 479 | master = platform_get_drvdata(pdev); |
@@ -491,9 +482,6 @@ static int orion_spi_remove(struct platform_device *pdev) | |||
491 | clk_disable_unprepare(spi->clk); | 482 | clk_disable_unprepare(spi->clk); |
492 | clk_put(spi->clk); | 483 | clk_put(spi->clk); |
493 | 484 | ||
494 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
495 | release_mem_region(r->start, resource_size(r)); | ||
496 | |||
497 | spi_unregister_master(master); | 485 | spi_unregister_master(master); |
498 | 486 | ||
499 | return 0; | 487 | return 0; |