Loading drivers/mtd/nand/nuc900_nand.c +13 −42 Original line number Diff line number Diff line Loading @@ -241,12 +241,10 @@ static int nuc900_nand_probe(struct platform_device *pdev) { struct nuc900_nand *nuc900_nand; struct nand_chip *chip; int retval; struct resource *res; retval = 0; nuc900_nand = kzalloc(sizeof(struct nuc900_nand), GFP_KERNEL); nuc900_nand = devm_kzalloc(&pdev->dev, sizeof(struct nuc900_nand), GFP_KERNEL); if (!nuc900_nand) return -ENOMEM; chip = &(nuc900_nand->chip); Loading @@ -255,11 +253,9 @@ static int nuc900_nand_probe(struct platform_device *pdev) nuc900_nand->mtd.owner = THIS_MODULE; spin_lock_init(&nuc900_nand->lock); nuc900_nand->clk = clk_get(&pdev->dev, NULL); if (IS_ERR(nuc900_nand->clk)) { retval = -ENOENT; goto fail1; } nuc900_nand->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(nuc900_nand->clk)) return -ENOENT; clk_enable(nuc900_nand->clk); chip->cmdfunc = nuc900_nand_command_lp; Loading @@ -272,57 +268,32 @@ static int nuc900_nand_probe(struct platform_device *pdev) chip->ecc.mode = NAND_ECC_SOFT; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { retval = -ENXIO; goto fail1; } if (!res) return -ENXIO; if (!request_mem_region(res->start, resource_size(res), pdev->name)) { retval = -EBUSY; goto fail1; } nuc900_nand->reg = ioremap(res->start, resource_size(res)); if (!nuc900_nand->reg) { retval = -ENOMEM; goto fail2; } nuc900_nand->reg = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(nuc900_nand->reg)) return PTR_ERR(nuc900_nand->reg); nuc900_nand_enable(nuc900_nand); if (nand_scan(&(nuc900_nand->mtd), 1)) { retval = -ENXIO; goto fail3; } if (nand_scan(&(nuc900_nand->mtd), 1)) return -ENXIO; mtd_device_register(&(nuc900_nand->mtd), partitions, ARRAY_SIZE(partitions)); platform_set_drvdata(pdev, nuc900_nand); return retval; fail3: iounmap(nuc900_nand->reg); fail2: release_mem_region(res->start, resource_size(res)); fail1: kfree(nuc900_nand); return retval; return 0; } static int nuc900_nand_remove(struct platform_device *pdev) { struct nuc900_nand *nuc900_nand = platform_get_drvdata(pdev); struct resource *res; nand_release(&nuc900_nand->mtd); iounmap(nuc900_nand->reg); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); release_mem_region(res->start, resource_size(res)); clk_disable(nuc900_nand->clk); clk_put(nuc900_nand->clk); kfree(nuc900_nand); return 0; } Loading Loading
drivers/mtd/nand/nuc900_nand.c +13 −42 Original line number Diff line number Diff line Loading @@ -241,12 +241,10 @@ static int nuc900_nand_probe(struct platform_device *pdev) { struct nuc900_nand *nuc900_nand; struct nand_chip *chip; int retval; struct resource *res; retval = 0; nuc900_nand = kzalloc(sizeof(struct nuc900_nand), GFP_KERNEL); nuc900_nand = devm_kzalloc(&pdev->dev, sizeof(struct nuc900_nand), GFP_KERNEL); if (!nuc900_nand) return -ENOMEM; chip = &(nuc900_nand->chip); Loading @@ -255,11 +253,9 @@ static int nuc900_nand_probe(struct platform_device *pdev) nuc900_nand->mtd.owner = THIS_MODULE; spin_lock_init(&nuc900_nand->lock); nuc900_nand->clk = clk_get(&pdev->dev, NULL); if (IS_ERR(nuc900_nand->clk)) { retval = -ENOENT; goto fail1; } nuc900_nand->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(nuc900_nand->clk)) return -ENOENT; clk_enable(nuc900_nand->clk); chip->cmdfunc = nuc900_nand_command_lp; Loading @@ -272,57 +268,32 @@ static int nuc900_nand_probe(struct platform_device *pdev) chip->ecc.mode = NAND_ECC_SOFT; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { retval = -ENXIO; goto fail1; } if (!res) return -ENXIO; if (!request_mem_region(res->start, resource_size(res), pdev->name)) { retval = -EBUSY; goto fail1; } nuc900_nand->reg = ioremap(res->start, resource_size(res)); if (!nuc900_nand->reg) { retval = -ENOMEM; goto fail2; } nuc900_nand->reg = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(nuc900_nand->reg)) return PTR_ERR(nuc900_nand->reg); nuc900_nand_enable(nuc900_nand); if (nand_scan(&(nuc900_nand->mtd), 1)) { retval = -ENXIO; goto fail3; } if (nand_scan(&(nuc900_nand->mtd), 1)) return -ENXIO; mtd_device_register(&(nuc900_nand->mtd), partitions, ARRAY_SIZE(partitions)); platform_set_drvdata(pdev, nuc900_nand); return retval; fail3: iounmap(nuc900_nand->reg); fail2: release_mem_region(res->start, resource_size(res)); fail1: kfree(nuc900_nand); return retval; return 0; } static int nuc900_nand_remove(struct platform_device *pdev) { struct nuc900_nand *nuc900_nand = platform_get_drvdata(pdev); struct resource *res; nand_release(&nuc900_nand->mtd); iounmap(nuc900_nand->reg); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); release_mem_region(res->start, resource_size(res)); clk_disable(nuc900_nand->clk); clk_put(nuc900_nand->clk); kfree(nuc900_nand); return 0; } Loading