This patch makes error path cleaner and probe function tidier. Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com> --- It assumes that removal of PCI_D0 and drvdata(NULL) were done previously.
drivers/usb/chipidea/ci13xxx_pci.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/usb/chipidea/ci13xxx_pci.c b/drivers/usb/chipidea/ci13xxx_pci.c index 59fab90..c9e9cb3 100644 --- a/drivers/usb/chipidea/ci13xxx_pci.c +++ b/drivers/usb/chipidea/ci13xxx_pci.c @@ -49,7 +49,7 @@ static struct ci13xxx_platform_data penwell_pci_platdata = { * invokes the udc_probe() method to start the UDC associated with it */ static int ci13xxx_pci_probe(struct pci_dev *pdev, - const struct pci_device_id *id) + const struct pci_device_id *id) { struct ci13xxx_platform_data *platdata = (void *)id->driver_data; struct platform_device *plat_ci; @@ -61,14 +61,13 @@ static int ci13xxx_pci_probe(struct pci_dev *pdev, return -ENODEV; } - retval = pci_enable_device(pdev); + retval = pcim_enable_device(pdev); if (retval) - goto done; + return retval; if (!pdev->irq) { dev_err(&pdev->dev, "No IRQ, check BIOS/PCI setup!"); - retval = -ENODEV; - goto disable_device; + return -ENODEV; } pci_set_master(pdev); @@ -84,18 +83,12 @@ static int ci13xxx_pci_probe(struct pci_dev *pdev, plat_ci = ci13xxx_add_device(&pdev->dev, res, nres, platdata); if (IS_ERR(plat_ci)) { dev_err(&pdev->dev, "ci13xxx_add_device failed!\n"); - retval = PTR_ERR(plat_ci); - goto disable_device; + return PTR_ERR(plat_ci); } pci_set_drvdata(pdev, plat_ci); return 0; - - disable_device: - pci_disable_device(pdev); - done: - return retval; } /** @@ -111,7 +104,6 @@ static void ci13xxx_pci_remove(struct pci_dev *pdev) struct platform_device *plat_ci = pci_get_drvdata(pdev); ci13xxx_remove_device(plat_ci); - pci_disable_device(pdev); } /** -- 1.8.2.rc0.22.gb3600c3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html