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()) {
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel