|
@@ -55,19 +55,20 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
goto out_disable;
|
|
goto out_disable;
|
|
}
|
|
}
|
|
|
|
|
|
- res = request_mem_region(priv->mapbase, CHAM_HEADER_SIZE,
|
|
|
|
- KBUILD_MODNAME);
|
|
|
|
|
|
+ res = devm_request_mem_region(&pdev->dev, priv->mapbase,
|
|
|
|
+ CHAM_HEADER_SIZE,
|
|
|
|
+ KBUILD_MODNAME);
|
|
if (!res) {
|
|
if (!res) {
|
|
dev_err(&pdev->dev, "Failed to request PCI memory\n");
|
|
dev_err(&pdev->dev, "Failed to request PCI memory\n");
|
|
ret = -EBUSY;
|
|
ret = -EBUSY;
|
|
goto out_disable;
|
|
goto out_disable;
|
|
}
|
|
}
|
|
|
|
|
|
- priv->base = ioremap(priv->mapbase, CHAM_HEADER_SIZE);
|
|
|
|
|
|
+ priv->base = devm_ioremap(&pdev->dev, priv->mapbase, CHAM_HEADER_SIZE);
|
|
if (!priv->base) {
|
|
if (!priv->base) {
|
|
dev_err(&pdev->dev, "Cannot ioremap\n");
|
|
dev_err(&pdev->dev, "Cannot ioremap\n");
|
|
ret = -ENOMEM;
|
|
ret = -ENOMEM;
|
|
- goto out_release;
|
|
|
|
|
|
+ goto out_disable;
|
|
}
|
|
}
|
|
|
|
|
|
flags = pci_resource_flags(pdev, 0);
|
|
flags = pci_resource_flags(pdev, 0);
|
|
@@ -75,7 +76,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
ret = -ENOTSUPP;
|
|
ret = -ENOTSUPP;
|
|
dev_err(&pdev->dev,
|
|
dev_err(&pdev->dev,
|
|
"IO mapped PCI devices are not supported\n");
|
|
"IO mapped PCI devices are not supported\n");
|
|
- goto out_iounmap;
|
|
|
|
|
|
+ goto out_disable;
|
|
}
|
|
}
|
|
|
|
|
|
pci_set_drvdata(pdev, priv);
|
|
pci_set_drvdata(pdev, priv);
|
|
@@ -83,7 +84,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
priv->bus = mcb_alloc_bus(&pdev->dev);
|
|
priv->bus = mcb_alloc_bus(&pdev->dev);
|
|
if (IS_ERR(priv->bus)) {
|
|
if (IS_ERR(priv->bus)) {
|
|
ret = PTR_ERR(priv->bus);
|
|
ret = PTR_ERR(priv->bus);
|
|
- goto out_iounmap;
|
|
|
|
|
|
+ goto out_disable;
|
|
}
|
|
}
|
|
|
|
|
|
priv->bus->get_irq = mcb_pci_get_irq;
|
|
priv->bus->get_irq = mcb_pci_get_irq;
|
|
@@ -101,10 +102,6 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
|
|
|
out_mcb_bus:
|
|
out_mcb_bus:
|
|
mcb_release_bus(priv->bus);
|
|
mcb_release_bus(priv->bus);
|
|
-out_iounmap:
|
|
|
|
- iounmap(priv->base);
|
|
|
|
-out_release:
|
|
|
|
- pci_release_region(pdev, 0);
|
|
|
|
out_disable:
|
|
out_disable:
|
|
pci_disable_device(pdev);
|
|
pci_disable_device(pdev);
|
|
return ret;
|
|
return ret;
|
|
@@ -116,8 +113,6 @@ static void mcb_pci_remove(struct pci_dev *pdev)
|
|
|
|
|
|
mcb_release_bus(priv->bus);
|
|
mcb_release_bus(priv->bus);
|
|
|
|
|
|
- iounmap(priv->base);
|
|
|
|
- release_region(priv->mapbase, CHAM_HEADER_SIZE);
|
|
|
|
pci_disable_device(pdev);
|
|
pci_disable_device(pdev);
|
|
}
|
|
}
|
|
|
|
|