Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
[powerpc.git] / drivers / mtd / onenand / generic.c
index 48cce43..3d44d04 100644 (file)
  *   This is a device driver for the OneNAND flash for generic boards.
  */
 
-#include <linux/device.h>
 #include <linux/module.h>
 #include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/onenand.h>
 #include <linux/mtd/partitions.h>
@@ -39,17 +40,15 @@ static int __devinit generic_onenand_probe(struct device *dev)
 {
        struct onenand_info *info;
        struct platform_device *pdev = to_platform_device(dev);
-       struct onenand_platform_data *pdata = pdev->dev.platform_data;
+       struct flash_platform_data *pdata = pdev->dev.platform_data;
        struct resource *res = pdev->resource;
        unsigned long size = res->end - res->start + 1;
        int err;
 
-       info = kmalloc(sizeof(struct onenand_info), GFP_KERNEL);
+       info = kzalloc(sizeof(struct onenand_info), GFP_KERNEL);
        if (!info)
                return -ENOMEM;
 
-       memset(info, 0, sizeof(struct onenand_info));
-
        if (!request_mem_region(res->start, size, dev->driver->name)) {
                err = -EBUSY;
                goto out_free_info;
@@ -62,6 +61,7 @@ static int __devinit generic_onenand_probe(struct device *dev)
        }
 
        info->onenand.mmcontrol = pdata->mmcontrol;
+       info->onenand.irq = platform_get_irq(pdev, 0);
 
        info->mtd.name = pdev->dev.bus_id;
        info->mtd.priv = &info->onenand;