Update to 3.4-final.
[linux-flexiantxendom0-3.2.10.git] / drivers / mtd / nand / ams-delta.c
index 7341695..861ca8f 100644 (file)
@@ -212,18 +212,17 @@ static int __devinit ams_delta_init(struct platform_device *pdev)
        /* Link the private data with the MTD structure */
        ams_delta_mtd->priv = this;
 
-       if (!request_mem_region(res->start, resource_size(res),
-                       dev_name(&pdev->dev))) {
-               dev_err(&pdev->dev, "request_mem_region failed\n");
-               err = -EBUSY;
-               goto out_free;
-       }
+       /*
+        * Don't try to request the memory region from here,
+        * it should have been already requested from the
+        * gpio-omap driver and requesting it again would fail.
+        */
 
        io_base = ioremap(res->start, resource_size(res));
        if (io_base == NULL) {
                dev_err(&pdev->dev, "ioremap failed\n");
                err = -EIO;
-               goto out_release_io;
+               goto out_free;
        }
 
        this->priv = io_base;
@@ -271,8 +270,6 @@ out_gpio:
        platform_set_drvdata(pdev, NULL);
        gpio_free(AMS_DELTA_GPIO_PIN_NAND_RB);
        iounmap(io_base);
-out_release_io:
-       release_mem_region(res->start, resource_size(res));
 out_free:
        kfree(ams_delta_mtd);
  out:
@@ -285,7 +282,6 @@ out_free:
 static int __devexit ams_delta_cleanup(struct platform_device *pdev)
 {
        void __iomem *io_base = platform_get_drvdata(pdev);
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
        /* Release resources, unregister device */
        nand_release(ams_delta_mtd);
@@ -293,7 +289,6 @@ static int __devexit ams_delta_cleanup(struct platform_device *pdev)
        gpio_free_array(_mandatory_gpio, ARRAY_SIZE(_mandatory_gpio));
        gpio_free(AMS_DELTA_GPIO_PIN_NAND_RB);
        iounmap(io_base);
-       release_mem_region(res->start, resource_size(res));
 
        /* Free the MTD device structure */
        kfree(ams_delta_mtd);