mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
usb: musb: add names for IRQs in structure resource
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>
This commit is contained in:
parent
ea65df57c2
commit
fcf173e451
10 changed files with 17 additions and 3 deletions
|
@ -64,10 +64,12 @@ static struct resource usb_resources[] = {
|
||||||
{
|
{
|
||||||
.start = IRQ_USBINT,
|
.start = IRQ_USBINT,
|
||||||
.flags = IORESOURCE_IRQ,
|
.flags = IORESOURCE_IRQ,
|
||||||
|
.name = "mc"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
/* placeholder for the dedicated CPPI IRQ */
|
/* placeholder for the dedicated CPPI IRQ */
|
||||||
.flags = IORESOURCE_IRQ,
|
.flags = IORESOURCE_IRQ,
|
||||||
|
.name = "dma"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -40,10 +40,12 @@ static struct resource musb_resources[] = {
|
||||||
[1] = { /* general IRQ */
|
[1] = { /* general IRQ */
|
||||||
.start = INT_243X_HS_USB_MC,
|
.start = INT_243X_HS_USB_MC,
|
||||||
.flags = IORESOURCE_IRQ,
|
.flags = IORESOURCE_IRQ,
|
||||||
|
.name = "mc",
|
||||||
},
|
},
|
||||||
[2] = { /* DMA IRQ */
|
[2] = { /* DMA IRQ */
|
||||||
.start = INT_243X_HS_USB_DMA,
|
.start = INT_243X_HS_USB_DMA,
|
||||||
.flags = IORESOURCE_IRQ,
|
.flags = IORESOURCE_IRQ,
|
||||||
|
.name = "dma",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -82,11 +82,13 @@ static struct resource musb_resources[] = {
|
||||||
.start = IRQ_USB_INT0,
|
.start = IRQ_USB_INT0,
|
||||||
.end = IRQ_USB_INT0,
|
.end = IRQ_USB_INT0,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "mc"
|
||||||
},
|
},
|
||||||
[2] = { /* DMA IRQ */
|
[2] = { /* DMA IRQ */
|
||||||
.start = IRQ_USB_DMA,
|
.start = IRQ_USB_DMA,
|
||||||
.end = IRQ_USB_DMA,
|
.end = IRQ_USB_DMA,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "dma"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -46,11 +46,13 @@ static struct resource musb_resources[] = {
|
||||||
.start = IRQ_USB_INT0,
|
.start = IRQ_USB_INT0,
|
||||||
.end = IRQ_USB_INT0,
|
.end = IRQ_USB_INT0,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "mc"
|
||||||
},
|
},
|
||||||
[2] = { /* DMA IRQ */
|
[2] = { /* DMA IRQ */
|
||||||
.start = IRQ_USB_DMA,
|
.start = IRQ_USB_DMA,
|
||||||
.end = IRQ_USB_DMA,
|
.end = IRQ_USB_DMA,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "dma"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -86,11 +86,13 @@ static struct resource musb_resources[] = {
|
||||||
.start = IRQ_USB_INT0,
|
.start = IRQ_USB_INT0,
|
||||||
.end = IRQ_USB_INT0,
|
.end = IRQ_USB_INT0,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "mc"
|
||||||
},
|
},
|
||||||
[2] = { /* DMA IRQ */
|
[2] = { /* DMA IRQ */
|
||||||
.start = IRQ_USB_DMA,
|
.start = IRQ_USB_DMA,
|
||||||
.end = IRQ_USB_DMA,
|
.end = IRQ_USB_DMA,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "dma"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -482,11 +482,13 @@ static struct resource musb_resources[] = {
|
||||||
.start = IRQ_USB_INT0,
|
.start = IRQ_USB_INT0,
|
||||||
.end = IRQ_USB_INT0,
|
.end = IRQ_USB_INT0,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "mc"
|
||||||
},
|
},
|
||||||
[2] = { /* DMA IRQ */
|
[2] = { /* DMA IRQ */
|
||||||
.start = IRQ_USB_DMA,
|
.start = IRQ_USB_DMA,
|
||||||
.end = IRQ_USB_DMA,
|
.end = IRQ_USB_DMA,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "dma"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -587,11 +587,13 @@ static struct resource musb_resources[] = {
|
||||||
.start = IRQ_USB_INT0,
|
.start = IRQ_USB_INT0,
|
||||||
.end = IRQ_USB_INT0,
|
.end = IRQ_USB_INT0,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "mc"
|
||||||
},
|
},
|
||||||
[2] = { /* DMA IRQ */
|
[2] = { /* DMA IRQ */
|
||||||
.start = IRQ_USB_DMA,
|
.start = IRQ_USB_DMA,
|
||||||
.end = IRQ_USB_DMA,
|
.end = IRQ_USB_DMA,
|
||||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
|
||||||
|
.name = "dma"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1308,7 +1308,7 @@ dma_controller_create(struct musb *musb, void __iomem *mregs)
|
||||||
struct cppi *controller;
|
struct cppi *controller;
|
||||||
struct device *dev = musb->controller;
|
struct device *dev = musb->controller;
|
||||||
struct platform_device *pdev = to_platform_device(dev);
|
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);
|
controller = kzalloc(sizeof *controller, GFP_KERNEL);
|
||||||
if (!controller)
|
if (!controller)
|
||||||
|
|
|
@ -2206,7 +2206,7 @@ static u64 *orig_dma_mask;
|
||||||
static int __init musb_probe(struct platform_device *pdev)
|
static int __init musb_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
int irq = platform_get_irq(pdev, 0);
|
int irq = platform_get_irq_byname(pdev, "mc");
|
||||||
int status;
|
int status;
|
||||||
struct resource *iomem;
|
struct resource *iomem;
|
||||||
void __iomem *base;
|
void __iomem *base;
|
||||||
|
|
|
@ -363,7 +363,7 @@ dma_controller_create(struct musb *musb, void __iomem *base)
|
||||||
struct musb_dma_controller *controller;
|
struct musb_dma_controller *controller;
|
||||||
struct device *dev = musb->controller;
|
struct device *dev = musb->controller;
|
||||||
struct platform_device *pdev = to_platform_device(dev);
|
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) {
|
if (irq == 0) {
|
||||||
dev_err(dev, "No DMA interrupt line!\n");
|
dev_err(dev, "No DMA interrupt line!\n");
|
||||||
|
|
Loading…
Reference in a new issue