From: Milan Svoboda <[EMAIL PROTECTED]> pxa2xx_udc driver uses define for irq number. This patch turns it to use platform resource. This allows both pxa and ixp4xx to use this driver flawlessly.
Signed-off-by: Milan Svoboda <[EMAIL PROTECTED]> ---
diff -uprN -X orig/Documentation/dontdiff orig.bak/drivers/usb/gadget/pxa2xx_udc.c orig/drivers/usb/gadget/pxa2xx_udc.c --- orig.bak/drivers/usb/gadget/pxa2xx_udc.c 2006-05-30 10:38:49.000000000 +0000 +++ orig/drivers/usb/gadget/pxa2xx_udc.c 2006-05-30 10:45:51.000000000 +0000 @@ -2434,6 +2434,7 @@ static struct pxa2xx_udc memory = { static int __init pxa2xx_udc_probe(struct platform_device *pdev) { struct pxa2xx_udc *dev = &memory; + struct resource *irq_res; int retval, out_dma = 1; u32 chiprev; @@ -2474,7 +2475,11 @@ static int __init pxa2xx_udc_probe(struc return -ENODEV; } - pr_debug("%s: IRQ %d%s%s%s\n", driver_name, IRQ_USB, + irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); + if (!irq_res) + return -ENODEV; + + pr_debug("%s: IRQ %d%s%s%s\n", driver_name, irq_res->start, dev->has_cfr ? "" : " (!cfr)", out_dma ? "" : " (broken dma-out)", SIZE_STR DMASTR @@ -2514,11 +2519,11 @@ static int __init pxa2xx_udc_probe(struc dev->vbus = is_vbus_present(); /* irq setup after old hardware state is cleaned up */ - retval = request_irq(IRQ_USB, pxa2xx_udc_irq, + retval = request_irq(irq_res->start, pxa2xx_udc_irq, SA_INTERRUPT, driver_name, dev); if (retval != 0) { - printk(KERN_ERR "%s: can't get irq %i, err %d\n", - driver_name, IRQ_USB, retval); + printk(KERN_ERR "%s: can't get irq %ld, err %d\n", + driver_name, irq_res->start, retval); return -EBUSY; } dev->got_irq = 1; @@ -2533,7 +2538,7 @@ static int __init pxa2xx_udc_probe(struc printk(KERN_ERR "%s: can't get irq %i, err %d\n", driver_name, LUBBOCK_USB_DISC_IRQ, retval); lubbock_fail0: - free_irq(IRQ_USB, dev); + free_irq(irq_res->start, dev); return -EBUSY; } retval = request_irq(LUBBOCK_USB_IRQ, @@ -2566,13 +2571,15 @@ static void pxa2xx_udc_shutdown(struct p static int __exit pxa2xx_udc_remove(struct platform_device *pdev) { struct pxa2xx_udc *dev = platform_get_drvdata(pdev); + struct resource *irq_res; udc_disable(dev); remove_proc_files(); usb_gadget_unregister_driver(dev->driver); if (dev->got_irq) { - free_irq(IRQ_USB, dev); + irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); + free_irq(irq_res->start, dev); dev->got_irq = 0; } if (machine_is_lubbock()) {
_______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel