X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e37963667dfc52051e9e59896a45950f3cd22be4..8366dfac71c976acb6d772ec9014026cafab8182:/target/linux/adm5120-2.6/files/drivers/usb/host/adm5120-hcd.c diff --git a/target/linux/adm5120-2.6/files/drivers/usb/host/adm5120-hcd.c b/target/linux/adm5120-2.6/files/drivers/usb/host/adm5120-hcd.c index 25ba4b8b9..8dabeeb8f 100644 --- a/target/linux/adm5120-2.6/files/drivers/usb/host/adm5120-hcd.c +++ b/target/linux/adm5120-2.6/files/drivers/usb/host/adm5120-hcd.c @@ -376,7 +376,7 @@ static irqreturn_t adm5120hcd_irq(int irq, void *ptr, struct pt_regs *regs) } static int admhcd_urb_enqueue(struct usb_hcd *hcd, struct usb_host_endpoint *ep, - struct urb *urb, int mem_flags) + struct urb *urb, gfp_t mem_flags) { struct admhcd *ahcd = hcd_to_admhcd(hcd); struct admhcd_ed *ed; @@ -704,7 +704,6 @@ static int __init adm5120hcd_probe(struct platform_device *pdev) { struct usb_hcd *hcd; struct admhcd *ahcd; - struct usb_device *udev; struct resource *addr, *data; void __iomem *addr_reg; void __iomem *data_reg; @@ -717,7 +716,12 @@ static int __init adm5120hcd_probe(struct platform_device *pdev) data = platform_get_resource(pdev, IORESOURCE_MEM, 0); addr = platform_get_resource(pdev, IORESOURCE_MEM, 1); - irq = platform_get_irq(pdev, 0); + + if (request_irq(data->start, adm5120hcd_irq, 0, hcd_name, hcd)) { + printk(KERN_WARNING "Could not request IRQ\n"); + err = -EBUSY; + goto out; + } if (!addr || !data || irq < 0) { err = -ENODEV; @@ -786,12 +790,8 @@ static int __init adm5120hcd_probe(struct platform_device *pdev) out_dev: usb_put_hcd(hcd); -out_irq: - free_irq(pdev->resource[1].start, hcd); out_unmap: iounmap(addr_reg); -out_hcd: - usb_put_hcd(hcd); out_mem: release_mem_region(addr->start, 2); out: @@ -802,7 +802,6 @@ static int __init_or_module adm5120hcd_remove(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); struct admhcd *ahcd; - struct resource *res; if (!hcd) return 0;