All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4] usb: musb: Adding names for IRQs in resource structure
@ 2010-09-29 16:26 Hema HK
  2010-09-29  6:59 ` Felipe Balbi
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Hema HK @ 2010-09-29 16:26 UTC (permalink / raw)
  To: linux-omap, linux-usb
  Cc: Hema HK, Felipe Balbi, Tony Lindgren, Kevin Hilman,
	Cousson, Benoit, Paul Walmsley, Mike Frysinger

The resource data is getting automatically populated from a set of data
generated from TI's hardware database for the OMAP platform, 
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 get_irq_byname() api to
get the device and dma irq numbers instead of using the index.

Signed-off-by: Hema HK <hemahk@ti.com>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Cousson, Benoit <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
[Updated the changelog with background]

 arch/arm/mach-davinci/usb.c                |    2 ++
 arch/arm/mach-omap2/usb-musb.c             |    2 ++
 arch/blackfin/mach-bf527/boards/cm_bf527.c |    2 ++
 arch/blackfin/mach-bf527/boards/ezbrd.c    |    2 ++
 arch/blackfin/mach-bf527/boards/ezkit.c    |    2 ++
 arch/blackfin/mach-bf548/boards/cm_bf548.c |    2 ++
 arch/blackfin/mach-bf548/boards/ezkit.c    |    2 ++
 drivers/usb/musb/cppi_dma.c                |    2 +-
 drivers/usb/musb/musb_core.c               |    2 +-
 drivers/usb/musb/musbhsdma.c               |    2 +-
 10 files changed, 17 insertions(+), 3 deletions(-)

Index: linux-omap-pm/arch/arm/mach-davinci/usb.c
===================================================================
--- linux-omap-pm.orig/arch/arm/mach-davinci/usb.c
+++ linux-omap-pm/arch/arm/mach-davinci/usb.c
@@ -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: linux-omap-pm/arch/arm/mach-omap2/usb-musb.c
===================================================================
--- linux-omap-pm.orig/arch/arm/mach-omap2/usb-musb.c
+++ linux-omap-pm/arch/arm/mach-omap2/usb-musb.c
@@ -39,10 +39,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: linux-omap-pm/arch/blackfin/mach-bf527/boards/cm_bf527.c
===================================================================
--- linux-omap-pm.orig/arch/blackfin/mach-bf527/boards/cm_bf527.c
+++ linux-omap-pm/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -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: linux-omap-pm/arch/blackfin/mach-bf527/boards/ezbrd.c
===================================================================
--- linux-omap-pm.orig/arch/blackfin/mach-bf527/boards/ezbrd.c
+++ linux-omap-pm/arch/blackfin/mach-bf527/boards/ezbrd.c
@@ -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: linux-omap-pm/arch/blackfin/mach-bf527/boards/ezkit.c
===================================================================
--- linux-omap-pm.orig/arch/blackfin/mach-bf527/boards/ezkit.c
+++ linux-omap-pm/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -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: linux-omap-pm/arch/blackfin/mach-bf548/boards/cm_bf548.c
===================================================================
--- linux-omap-pm.orig/arch/blackfin/mach-bf548/boards/cm_bf548.c
+++ linux-omap-pm/arch/blackfin/mach-bf548/boards/cm_bf548.c
@@ -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: linux-omap-pm/arch/blackfin/mach-bf548/boards/ezkit.c
===================================================================
--- linux-omap-pm.orig/arch/blackfin/mach-bf548/boards/ezkit.c
+++ linux-omap-pm/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -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: linux-omap-pm/drivers/usb/musb/cppi_dma.c
===================================================================
--- linux-omap-pm.orig/drivers/usb/musb/cppi_dma.c
+++ linux-omap-pm/drivers/usb/musb/cppi_dma.c
@@ -1307,7 +1307,7 @@ dma_controller_create(struct musb *musb,
 	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: linux-omap-pm/drivers/usb/musb/musb_core.c
===================================================================
--- linux-omap-pm.orig/drivers/usb/musb/musb_core.c
+++ linux-omap-pm/drivers/usb/musb/musb_core.c
@@ -2203,7 +2203,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: linux-omap-pm/drivers/usb/musb/musbhsdma.c
===================================================================
--- linux-omap-pm.orig/drivers/usb/musb/musbhsdma.c
+++ linux-omap-pm/drivers/usb/musb/musbhsdma.c
@@ -363,7 +363,7 @@ dma_controller_create(struct musb *musb,
 	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");

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2010-12-10 16:45 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-29 16:26 [PATCH v4] usb: musb: Adding names for IRQs in resource structure Hema HK
2010-09-29  6:59 ` Felipe Balbi
2010-09-29  8:54   ` Kalliguddi, Hema
2010-09-29 10:11     ` Felipe Balbi
2010-09-29 11:38       ` Kalliguddi, Hema
2010-09-29 13:48 ` Mike Frysinger
     [not found] ` <1285777599-24245-1-git-send-email-hemahk-l0cyMroinI0@public.gmane.org>
2010-09-29 14:40   ` Kevin Hilman
2010-12-09 19:34     ` Sergei Shtylyov
     [not found]       ` <4D012F2C.9060303-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
2010-12-10  4:46         ` Kalliguddi, Hema
     [not found]           ` <AANLkTimF3Eotqa+jZvzCJStguGrDEeS9V-XUGOTa9qBt-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-10 12:56             ` Sergei Shtylyov
     [not found]               ` <4D02237B.2070708-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-12-10 13:20                 ` Kalliguddi, Hema
2010-12-10 13:20               ` Felipe Balbi
     [not found]                 ` <20101210132053.GN6027-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2010-12-10 13:35                   ` Sergei Shtylyov
     [not found]                     ` <4D022C92.7090308-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
2010-12-10 13:58                       ` Felipe Balbi
2010-12-10 16:43                         ` Sergei Shtylyov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.