ar71xx: ar934x_nfc: use devm_* functions

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38067 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2013-09-19 18:43:38 +00:00
parent a6a0cb38f2
commit ba2221869e
1 changed files with 6 additions and 15 deletions

View File

@ -1022,24 +1022,22 @@ ar934x_nfc_probe(struct platform_device *pdev)
return -EINVAL; return -EINVAL;
} }
nfc = kzalloc(sizeof(struct ar934x_nfc), GFP_KERNEL); nfc = devm_kzalloc(&pdev->dev, sizeof(struct ar934x_nfc), GFP_KERNEL);
if (!nfc) { if (!nfc) {
dev_err(&pdev->dev, "failed to allocate driver data\n"); dev_err(&pdev->dev, "failed to allocate driver data\n");
return -ENOMEM; return -ENOMEM;
} }
nfc->base = ioremap(res->start, resource_size(res)); nfc->base = devm_ioremap_resource(&pdev->dev, res);
if (nfc->base == NULL) { if (IS_ERR(nfc->base)) {
dev_err(&pdev->dev, "failed to remap I/O memory\n"); dev_err(&pdev->dev, "failed to remap I/O memory\n");
ret = -ENXIO; return PTR_ERR(nfc->base);
goto err_free_nand;
} }
nfc->irq = platform_get_irq(pdev, 0); nfc->irq = platform_get_irq(pdev, 0);
if (nfc->irq < 0) { if (nfc->irq < 0) {
dev_err(&pdev->dev, "no IRQ resource specified\n"); dev_err(&pdev->dev, "no IRQ resource specified\n");
ret = -EINVAL; return -EINVAL;
goto err_unmap;
} }
init_waitqueue_head(&nfc->irq_waitq); init_waitqueue_head(&nfc->irq_waitq);
@ -1047,7 +1045,7 @@ ar934x_nfc_probe(struct platform_device *pdev)
dev_name(&pdev->dev), nfc); dev_name(&pdev->dev), nfc);
if (ret) { if (ret) {
dev_err(&pdev->dev, "requast_irq failed, err:%d\n", ret); dev_err(&pdev->dev, "requast_irq failed, err:%d\n", ret);
goto err_unmap; return ret;
} }
nfc->parent = &pdev->dev; nfc->parent = &pdev->dev;
@ -1120,11 +1118,6 @@ err_free_buf:
ar934x_nfc_free_buf(nfc); ar934x_nfc_free_buf(nfc);
err_free_irq: err_free_irq:
free_irq(nfc->irq, nfc); free_irq(nfc->irq, nfc);
err_unmap:
iounmap(nfc->base);
err_free_nand:
kfree(nfc);
platform_set_drvdata(pdev, NULL);
return ret; return ret;
} }
@ -1138,8 +1131,6 @@ ar934x_nfc_remove(struct platform_device *pdev)
nand_release(&nfc->mtd); nand_release(&nfc->mtd);
ar934x_nfc_free_buf(nfc); ar934x_nfc_free_buf(nfc);
free_irq(nfc->irq, nfc); free_irq(nfc->irq, nfc);
iounmap(nfc->base);
kfree(nfc);
} }
return 0; return 0;