OSDN Git Service

Merge remote-tracking branch 'spi/topic/orion' into spi-next
authorMark Brown <broonie@linaro.org>
Sun, 1 Sep 2013 12:49:02 +0000 (13:49 +0100)
committerMark Brown <broonie@linaro.org>
Sun, 1 Sep 2013 12:49:02 +0000 (13:49 +0100)
1  2 
drivers/spi/spi-orion.c

diff --combined drivers/spi/spi-orion.c
@@@ -19,7 -19,6 +19,7 @@@
  #include <linux/module.h>
  #include <linux/of.h>
  #include <linux/clk.h>
 +#include <linux/sizes.h>
  #include <asm/unaligned.h>
  
  #define DRIVER_NAME                   "orion_spi"
@@@ -447,30 -446,22 +447,22 @@@ static int orion_spi_probe(struct platf
        spi->min_speed = DIV_ROUND_UP(tclk_hz, 30);
  
        r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (r == NULL) {
-               status = -ENODEV;
+       spi->base = devm_ioremap_resource(&pdev->dev, r);
+       if (IS_ERR(spi->base)) {
+               status = PTR_ERR(spi->base);
                goto out_rel_clk;
        }
  
-       if (!request_mem_region(r->start, resource_size(r),
-                               dev_name(&pdev->dev))) {
-               status = -EBUSY;
-               goto out_rel_clk;
-       }
-       spi->base = ioremap(r->start, SZ_1K);
        if (orion_spi_reset(spi) < 0)
-               goto out_rel_mem;
+               goto out_rel_clk;
  
        master->dev.of_node = pdev->dev.of_node;
        status = spi_register_master(master);
        if (status < 0)
-               goto out_rel_mem;
+               goto out_rel_clk;
  
        return status;
  
- out_rel_mem:
-       release_mem_region(r->start, resource_size(r));
  out_rel_clk:
        clk_disable_unprepare(spi->clk);
        clk_put(spi->clk);
@@@ -483,7 -474,6 +475,6 @@@ out
  static int orion_spi_remove(struct platform_device *pdev)
  {
        struct spi_master *master;
-       struct resource *r;
        struct orion_spi *spi;
  
        master = platform_get_drvdata(pdev);
        clk_disable_unprepare(spi->clk);
        clk_put(spi->clk);
  
-       r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       release_mem_region(r->start, resource_size(r));
        spi_unregister_master(master);
  
        return 0;