dmaengine: hsu: Finish conversion to managed resources

With help of devm_add_action_or_reset() we may finish conversion
the driver to use managed resources.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220713172235.22611-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Andy Shevchenko 2022-07-13 20:22:32 +03:00 committed by Vinod Koul
parent 6968743227
commit d5988dcc76
1 changed files with 12 additions and 15 deletions

View File

@ -47,8 +47,14 @@ static irqreturn_t hsu_pci_irq(int irq, void *dev)
return IRQ_RETVAL(ret);
}
static void hsu_pci_dma_remove(void *chip)
{
hsu_dma_remove(chip);
}
static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
struct device *dev = &pdev->dev;
struct hsu_dma_chip *chip;
int ret;
@ -87,9 +93,13 @@ static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (ret)
return ret;
ret = request_irq(chip->irq, hsu_pci_irq, 0, "hsu_dma_pci", chip);
ret = devm_add_action_or_reset(dev, hsu_pci_dma_remove, chip);
if (ret)
goto err_register_irq;
return ret;
ret = devm_request_irq(dev, chip->irq, hsu_pci_irq, 0, "hsu_dma_pci", chip);
if (ret)
return ret;
/*
* On Intel Tangier B0 and Anniedale the interrupt line, disregarding
@ -105,18 +115,6 @@ static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
pci_set_drvdata(pdev, chip);
return 0;
err_register_irq:
hsu_dma_remove(chip);
return ret;
}
static void hsu_pci_remove(struct pci_dev *pdev)
{
struct hsu_dma_chip *chip = pci_get_drvdata(pdev);
free_irq(chip->irq, chip);
hsu_dma_remove(chip);
}
static const struct pci_device_id hsu_pci_id_table[] = {
@ -130,7 +128,6 @@ static struct pci_driver hsu_pci_driver = {
.name = "hsu_dma_pci",
.id_table = hsu_pci_id_table,
.probe = hsu_pci_probe,
.remove = hsu_pci_remove,
};
module_pci_driver(hsu_pci_driver);