]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
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 31f0cbea0caa733c1ab0d3a8fdd1746276681bd9..b0d6b07431c00cfea94f60e07172065125dd6d7d 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 72605584bfff42d0917803ae20657f5ff648899e..8dae0fa5905e185976513f29235cc352614b3718 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 2c31af7a320a7bd767749fc06f974db27db8c281..f714d7be35b94f16a0643f902e4b98b39b2e41f1 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 9a736a850c5c64cc76807ccbf7f3e33076773fca..315eec9306042099e5d134ae7c47e8d22d4ea628 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 9222bc00bbd3bce1ce5706b17564d1bd6e6f84d3..27373127974026aa3c1a11d0ae5720030202b3b0 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 f0c0eef95ba85b82093c7d0d1c48ace6debd1d71..3e3dfb23f94ec7eee68f54c1aa93581e03c30fa5 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 216e26999af961cf2469370236a029301bb9ce33..9ff166d6f00d10c44a8477fd7260c9b16baf1983 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 f5a65ff0ac2bb467b7b5fd9817bd1fa16a4434cf..de55a3c3259ac1a403e3c4d730781eeb63fda77c 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 4b71a1bb41873c37e9fe9a62ce835881d7633a88..a5ceddfe57d66c4a18b51c6a94669bde11825418 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 6f771af5cbdb6b61b160c4a73d5ad863b62c051c..4e8183589624920cd6d0617bbf93bb474b6362ef 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");