usb: musb: add names for IRQs in structure resource
authorHema Kalliguddi <hemahk@ti.com>
Wed, 29 Sep 2010 16:26:39 +0000 (11:26 -0500)
committerFelipe Balbi <balbi@ti.com>
Wed, 1 Dec 2010 08:56:33 +0000 (10:56 +0200)
Soon resource data will get automatically
populated from a set of autogenerated data
from TI's hardware database for the OMAP
platform.

Such database, might not have resources at
the expected order by the current drivers.

While we could hack in some exceptions to
that tool to generate resources in a specific
order, it seems less fragile to use the
resource name instead. That way, no matter
what order the resources are generated, the
driver still work.

Modified the OMAP, Blackfin and Davinci
architecture files to add the name of the IRQs
in the resource structures and musb driver to
use the platform_get_irq_byname() api to get
the device and dma irq numbers instead of using
the index.

Cc: Tony Lindgren <tony@atomide.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Hema HK <hemahk@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
arch/arm/mach-davinci/usb.c
arch/arm/mach-omap2/usb-musb.c
arch/blackfin/mach-bf527/boards/cm_bf527.c
arch/blackfin/mach-bf527/boards/ezbrd.c
arch/blackfin/mach-bf527/boards/ezkit.c
arch/blackfin/mach-bf548/boards/cm_bf548.c
arch/blackfin/mach-bf548/boards/ezkit.c
drivers/usb/musb/cppi_dma.c
drivers/usb/musb/musb_core.c
drivers/usb/musb/musbhsdma.c

index 31f0cbe..b0d6b07 100644 (file)
@@ -64,10 +64,12 @@ static struct resource usb_resources[] = {
        {
                .start          = IRQ_USBINT,
                .flags          = IORESOURCE_IRQ,
+               .name           = "mc"
        },
        {
                /* placeholder for the dedicated CPPI IRQ */
                .flags          = IORESOURCE_IRQ,
+               .name           = "dma"
        },
 };
 
index 7260558..8dae0fa 100644 (file)
@@ -40,10 +40,12 @@ static struct resource musb_resources[] = {
        [1] = { /* general IRQ */
                .start  = INT_243X_HS_USB_MC,
                .flags  = IORESOURCE_IRQ,
+               .name   = "mc",
        },
        [2] = { /* DMA IRQ */
                .start  = INT_243X_HS_USB_DMA,
                .flags  = IORESOURCE_IRQ,
+               .name   = "dma",
        },
 };
 
index 2c31af7..f714d7b 100644 (file)
@@ -82,11 +82,13 @@ static struct resource musb_resources[] = {
                .start  = IRQ_USB_INT0,
                .end    = IRQ_USB_INT0,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "mc"
        },
        [2] = { /* DMA IRQ */
                .start  = IRQ_USB_DMA,
                .end    = IRQ_USB_DMA,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "dma"
        },
 };
 
index 9a736a8..315eec9 100644 (file)
@@ -46,11 +46,13 @@ static struct resource musb_resources[] = {
                .start  = IRQ_USB_INT0,
                .end    = IRQ_USB_INT0,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "mc"
        },
        [2] = { /* DMA IRQ */
                .start  = IRQ_USB_DMA,
                .end    = IRQ_USB_DMA,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "dma"
        },
 };
 
index 9222bc0..2737312 100644 (file)
@@ -86,11 +86,13 @@ static struct resource musb_resources[] = {
                .start  = IRQ_USB_INT0,
                .end    = IRQ_USB_INT0,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "mc"
        },
        [2] = { /* DMA IRQ */
                .start  = IRQ_USB_DMA,
                .end    = IRQ_USB_DMA,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "dma"
        },
 };
 
index f0c0eef..3e3dfb2 100644 (file)
@@ -482,11 +482,13 @@ static struct resource musb_resources[] = {
                .start  = IRQ_USB_INT0,
                .end    = IRQ_USB_INT0,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "mc"
        },
        [2] = { /* DMA IRQ */
                .start  = IRQ_USB_DMA,
                .end    = IRQ_USB_DMA,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "dma"
        },
 };
 
index 216e269..9ff166d 100644 (file)
@@ -587,11 +587,13 @@ static struct resource musb_resources[] = {
                .start  = IRQ_USB_INT0,
                .end    = IRQ_USB_INT0,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "mc"
        },
        [2] = { /* DMA IRQ */
                .start  = IRQ_USB_DMA,
                .end    = IRQ_USB_DMA,
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
+               .name   = "dma"
        },
 };
 
index f5a65ff..de55a3c 100644 (file)
@@ -1308,7 +1308,7 @@ dma_controller_create(struct musb *musb, void __iomem *mregs)
        struct cppi             *controller;
        struct device           *dev = musb->controller;
        struct platform_device  *pdev = to_platform_device(dev);
-       int                     irq = platform_get_irq(pdev, 1);
+       int                     irq = platform_get_irq_byname(pdev, "dma");
 
        controller = kzalloc(sizeof *controller, GFP_KERNEL);
        if (!controller)
index 4b71a1b..a5ceddf 100644 (file)
@@ -2206,7 +2206,7 @@ static u64        *orig_dma_mask;
 static int __init musb_probe(struct platform_device *pdev)
 {
        struct device   *dev = &pdev->dev;
-       int             irq = platform_get_irq(pdev, 0);
+       int             irq = platform_get_irq_byname(pdev, "mc");
        int             status;
        struct resource *iomem;
        void __iomem    *base;
index 6f771af..4e81835 100644 (file)
@@ -363,7 +363,7 @@ dma_controller_create(struct musb *musb, void __iomem *base)
        struct musb_dma_controller *controller;
        struct device *dev = musb->controller;
        struct platform_device *pdev = to_platform_device(dev);
-       int irq = platform_get_irq(pdev, 1);
+       int irq = platform_get_irq_byname(pdev, "dma");
 
        if (irq == 0) {
                dev_err(dev, "No DMA interrupt line!\n");