Loading drivers/mtd/nand/ndfc.c +13 −11 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ struct ndfc_controller { struct platform_device *ofdev; void __iomem *ndfcbase; struct mtd_info mtd; struct nand_chip chip; int chip_select; struct nand_hw_control ndfc_control; Loading Loading @@ -147,6 +146,7 @@ static int ndfc_chip_init(struct ndfc_controller *ndfc, { struct device_node *flash_np; struct nand_chip *chip = &ndfc->chip; struct mtd_info *mtd = nand_to_mtd(chip); int ret; chip->IO_ADDR_R = ndfc->ndfcbase + NDFC_DATA; Loading @@ -167,31 +167,32 @@ static int ndfc_chip_init(struct ndfc_controller *ndfc, chip->ecc.strength = 1; chip->priv = ndfc; ndfc->mtd.priv = chip; ndfc->mtd.dev.parent = &ndfc->ofdev->dev; mtd->priv = chip; mtd->dev.parent = &ndfc->ofdev->dev; flash_np = of_get_next_child(node, NULL); if (!flash_np) return -ENODEV; nand_set_flash_node(chip, flash_np); ndfc->mtd.name = kasprintf(GFP_KERNEL, "%s.%s", dev_name(&ndfc->ofdev->dev), flash_np->name); if (!ndfc->mtd.name) { ppdata.of_node = flash_np; mtd->name = kasprintf(GFP_KERNEL, "%s.%s", dev_name(&ndfc->ofdev->dev), flash_np->name); if (!mtd->name) { ret = -ENOMEM; goto err; } ret = nand_scan(&ndfc->mtd, 1); ret = nand_scan(mtd, 1); if (ret) goto err; ret = mtd_device_register(&ndfc->mtd, NULL, 0); ret = mtd_device_register(mtd, NULL, 0); err: of_node_put(flash_np); if (ret) kfree(ndfc->mtd.name); kfree(mtd->name); return ret; } Loading Loading @@ -258,9 +259,10 @@ static int ndfc_probe(struct platform_device *ofdev) static int ndfc_remove(struct platform_device *ofdev) { struct ndfc_controller *ndfc = dev_get_drvdata(&ofdev->dev); struct mtd_info *mtd = nand_to_mtd(&ndfc->chip); nand_release(&ndfc->mtd); kfree(ndfc->mtd.name); nand_release(mtd); kfree(mtd->name); return 0; } Loading Loading
drivers/mtd/nand/ndfc.c +13 −11 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ struct ndfc_controller { struct platform_device *ofdev; void __iomem *ndfcbase; struct mtd_info mtd; struct nand_chip chip; int chip_select; struct nand_hw_control ndfc_control; Loading Loading @@ -147,6 +146,7 @@ static int ndfc_chip_init(struct ndfc_controller *ndfc, { struct device_node *flash_np; struct nand_chip *chip = &ndfc->chip; struct mtd_info *mtd = nand_to_mtd(chip); int ret; chip->IO_ADDR_R = ndfc->ndfcbase + NDFC_DATA; Loading @@ -167,31 +167,32 @@ static int ndfc_chip_init(struct ndfc_controller *ndfc, chip->ecc.strength = 1; chip->priv = ndfc; ndfc->mtd.priv = chip; ndfc->mtd.dev.parent = &ndfc->ofdev->dev; mtd->priv = chip; mtd->dev.parent = &ndfc->ofdev->dev; flash_np = of_get_next_child(node, NULL); if (!flash_np) return -ENODEV; nand_set_flash_node(chip, flash_np); ndfc->mtd.name = kasprintf(GFP_KERNEL, "%s.%s", dev_name(&ndfc->ofdev->dev), flash_np->name); if (!ndfc->mtd.name) { ppdata.of_node = flash_np; mtd->name = kasprintf(GFP_KERNEL, "%s.%s", dev_name(&ndfc->ofdev->dev), flash_np->name); if (!mtd->name) { ret = -ENOMEM; goto err; } ret = nand_scan(&ndfc->mtd, 1); ret = nand_scan(mtd, 1); if (ret) goto err; ret = mtd_device_register(&ndfc->mtd, NULL, 0); ret = mtd_device_register(mtd, NULL, 0); err: of_node_put(flash_np); if (ret) kfree(ndfc->mtd.name); kfree(mtd->name); return ret; } Loading Loading @@ -258,9 +259,10 @@ static int ndfc_probe(struct platform_device *ofdev) static int ndfc_remove(struct platform_device *ofdev) { struct ndfc_controller *ndfc = dev_get_drvdata(&ofdev->dev); struct mtd_info *mtd = nand_to_mtd(&ndfc->chip); nand_release(&ndfc->mtd); kfree(ndfc->mtd.name); nand_release(mtd); kfree(mtd->name); return 0; } Loading