Author: blogic Date: 2014-09-12 08:51:46 +0200 (Fri, 12 Sep 2014) New Revision: 42489
Modified: trunk/target/linux/atheros/patches-3.14/120-spiflash.patch Log: atheros: ar2315-spiflash: use devm_* API to simplify the code Signed-off-by: Sergey Ryazanov <[email protected]> Modified: trunk/target/linux/atheros/patches-3.14/120-spiflash.patch =================================================================== --- trunk/target/linux/atheros/patches-3.14/120-spiflash.patch 2014-09-12 06:51:39 UTC (rev 42488) +++ trunk/target/linux/atheros/patches-3.14/120-spiflash.patch 2014-09-12 06:51:46 UTC (rev 42489) @@ -23,7 +23,7 @@ --- /dev/null +++ b/drivers/mtd/devices/ar2315.c -@@ -0,0 +1,536 @@ +@@ -0,0 +1,518 @@ + +/* + * MTD driver for the SPI Flash Memory support on Atheros AR2315 @@ -452,43 +452,35 @@ + int index; + int result = 0; + -+ priv = kzalloc(sizeof(struct spiflash_priv), GFP_KERNEL); ++ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); ++ if (!priv) ++ return -ENOMEM; ++ + spin_lock_init(&priv->lock); + init_waitqueue_head(&priv->wq); + priv->state = FL_READY; + mtd = &priv->mtd; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); -+ if (!res) { -+ dev_err(&pdev->dev, "No MMR resource found\n"); -+ goto error; ++ priv->mmraddr = devm_ioremap_resource(&pdev->dev, res); ++ if (IS_ERR(priv->mmraddr)) { ++ dev_warn(&pdev->dev, "failed to map flash MMR\n"); ++ return PTR_ERR(priv->mmraddr); + } + -+ priv->mmraddr = ioremap_nocache(res->start, resource_size(res)); -+ if (!priv->mmraddr) { -+ dev_warn(&pdev->dev, SPIFLASH "Failed to map flash device\n"); -+ goto error; -+ } -+ + index = spiflash_probe_chip(priv); + if (!index) { + dev_warn(&pdev->dev, SPIFLASH "Found no flash device\n"); -+ goto error; ++ return -ENODEV; + } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -+ if (!res) { -+ dev_err(&pdev->dev, "No flash readmem resource found\n"); -+ goto error; ++ priv->readaddr = devm_ioremap_resource(&pdev->dev, res); ++ if (IS_ERR(priv->readaddr)) { ++ dev_warn(&pdev->dev, "failed to map flash read mem\n"); ++ return PTR_ERR(priv->readaddr); + } + -+ priv->readaddr = ioremap_nocache(res->start, -+ flashconfig_tbl[index].byte_cnt); -+ if (!priv->readaddr) { -+ dev_warn(&pdev->dev, SPIFLASH "Failed to map flash device\n"); -+ goto error; -+ } -+ + platform_set_drvdata(pdev, priv); + mtd->name = "spiflash"; + mtd->type = MTD_NORFLASH; @@ -513,24 +505,14 @@ +#endif + + return result; -+ -+error: -+ if (priv->mmraddr) -+ iounmap(priv->mmraddr); -+ kfree(priv); -+ return -ENXIO; +} + +static int +spiflash_remove(struct platform_device *pdev) +{ + struct spiflash_priv *priv = platform_get_drvdata(pdev); -+ struct mtd_info *mtd = &priv->mtd; + -+ mtd_device_unregister(mtd); -+ iounmap(priv->mmraddr); -+ iounmap(priv->readaddr); -+ kfree(priv); ++ mtd_device_unregister(&priv->mtd); + + return 0; +} _______________________________________________ openwrt-commits mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits
