diff options
| author | Grant Likely <grant.likely@secretlab.ca> | 2012-01-24 17:09:13 -0700 | 
|---|---|---|
| committer | Grant Likely <grant.likely@secretlab.ca> | 2012-02-16 06:11:24 -0700 | 
| commit | ff8c3ab8161d0df52858966e0347e05791da40df (patch) | |
| tree | f0c17341977c555165d332033c03067d768ed0db | |
| parent | 9f70b8eb3cd37c6ef3371f972db799250e3eb86e (diff) | |
| download | olio-linux-3.10-ff8c3ab8161d0df52858966e0347e05791da40df.tar.xz olio-linux-3.10-ff8c3ab8161d0df52858966e0347e05791da40df.zip  | |
irq_domain/powerpc: Replace custom xlate functions with library functions
This patch converts a number of the powerpc drivers to use the common library
of irq_domain xlate functions, dropping a bunch of lines in the process.
v5: - Remove tsi108 changes from patch
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Milton Miller <miltonm@bga.com>
Tested-by: Olof Johansson <olof@lixom.net>
| -rw-r--r-- | arch/powerpc/platforms/powermac/pic.c | 13 | ||||
| -rw-r--r-- | arch/powerpc/platforms/wsp/opb_pic.c | 13 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/cpm2_pic.c | 14 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/ipic.c | 18 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/qe_lib/qe_ic.c | 15 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/uic.c | 14 | ||||
| -rw-r--r-- | drivers/gpio/gpio-mpc8xxx.c | 17 | 
7 files changed, 7 insertions, 97 deletions
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 46a5f32e958..92afc382a49 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c @@ -288,21 +288,10 @@ static int pmac_pic_host_map(struct irq_domain *h, unsigned int virq,  	return 0;  } -static int pmac_pic_host_xlate(struct irq_domain *h, struct device_node *ct, -			       const u32 *intspec, unsigned int intsize, -			       irq_hw_number_t *out_hwirq, -			       unsigned int *out_flags) - -{ -	*out_flags = IRQ_TYPE_NONE; -	*out_hwirq = *intspec; -	return 0; -} -  static const struct irq_domain_ops pmac_pic_host_ops = {  	.match = pmac_pic_host_match,  	.map = pmac_pic_host_map, -	.xlate = pmac_pic_host_xlate, +	.xlate = irq_domain_xlate_onecell,  };  static void __init pmac_pic_probe_oldstyle(void) diff --git a/arch/powerpc/platforms/wsp/opb_pic.c b/arch/powerpc/platforms/wsp/opb_pic.c index 0c6fe0b5013..cb565bf9365 100644 --- a/arch/powerpc/platforms/wsp/opb_pic.c +++ b/arch/powerpc/platforms/wsp/opb_pic.c @@ -196,20 +196,9 @@ static int opb_host_map(struct irq_domain *host, unsigned int virq,  	return 0;  } -static int opb_host_xlate(struct irq_domain *host, struct device_node *dn, -		const u32 *intspec, unsigned int intsize, -		irq_hw_number_t *out_hwirq, unsigned int *out_type) -{ -	/* Interrupt size must == 2 */ -	BUG_ON(intsize != 2); -	*out_hwirq = intspec[0]; -	*out_type = intspec[1]; -	return 0; -} -  static const struct irq_domain_ops opb_host_ops = {  	.map = opb_host_map, -	.xlate = opb_host_xlate, +	.xlate = irq_domain_xlate_twocell,  };  irqreturn_t opb_irq_handler(int irq, void *private) diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c index 8c9fc9c2909..d3be961e2ae 100644 --- a/arch/powerpc/sysdev/cpm2_pic.c +++ b/arch/powerpc/sysdev/cpm2_pic.c @@ -224,21 +224,9 @@ static int cpm2_pic_host_map(struct irq_domain *h, unsigned int virq,  	return 0;  } -static int cpm2_pic_host_xlate(struct irq_domain *h, struct device_node *ct, -			    const u32 *intspec, unsigned int intsize, -			    irq_hw_number_t *out_hwirq, unsigned int *out_flags) -{ -	*out_hwirq = intspec[0]; -	if (intsize > 1) -		*out_flags = intspec[1]; -	else -		*out_flags = IRQ_TYPE_NONE; -	return 0; -} -  static const struct irq_domain_ops cpm2_pic_host_ops = {  	.map = cpm2_pic_host_map, -	.xlate = cpm2_pic_host_xlate, +	.xlate = irq_domain_xlate_onetwocell,  };  void cpm2_pic_init(struct device_node *node) diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c index 0eaaa01c11b..b50f97811c2 100644 --- a/arch/powerpc/sysdev/ipic.c +++ b/arch/powerpc/sysdev/ipic.c @@ -692,26 +692,10 @@ static int ipic_host_map(struct irq_domain *h, unsigned int virq,  	return 0;  } -static int ipic_host_xlate(struct irq_domain *h, struct device_node *ct, -			   const u32 *intspec, unsigned int intsize, -			   irq_hw_number_t *out_hwirq, unsigned int *out_flags) - -{ -	/* interrupt sense values coming from the device tree equal either -	 * LEVEL_LOW (low assertion) or EDGE_FALLING (high-to-low change) -	 */ -	*out_hwirq = intspec[0]; -	if (intsize > 1) -		*out_flags = intspec[1]; -	else -		*out_flags = IRQ_TYPE_NONE; -	return 0; -} -  static struct irq_domain_ops ipic_host_ops = {  	.match	= ipic_host_match,  	.map	= ipic_host_map, -	.xlate	= ipic_host_xlate, +	.xlate	= irq_domain_xlate_onetwocell,  };  struct ipic * __init ipic_init(struct device_node *node, unsigned int flags) diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c index e9b3d5cc65d..2fba6ef2f95 100644 --- a/arch/powerpc/sysdev/qe_lib/qe_ic.c +++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c @@ -272,23 +272,10 @@ static int qe_ic_host_map(struct irq_domain *h, unsigned int virq,  	return 0;  } -static int qe_ic_host_xlate(struct irq_domain *h, struct device_node *ct, -			    const u32 * intspec, unsigned int intsize, -			    irq_hw_number_t * out_hwirq, -			    unsigned int *out_flags) -{ -	*out_hwirq = intspec[0]; -	if (intsize > 1) -		*out_flags = intspec[1]; -	else -		*out_flags = IRQ_TYPE_NONE; -	return 0; -} -  static struct irq_domain_ops qe_ic_host_ops = {  	.match = qe_ic_host_match,  	.map = qe_ic_host_map, -	.xlate = qe_ic_host_xlate, +	.xlate = irq_domain_xlate_onetwocell,  };  /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c index 84e59c97391..92033936a8f 100644 --- a/arch/powerpc/sysdev/uic.c +++ b/arch/powerpc/sysdev/uic.c @@ -190,21 +190,9 @@ static int uic_host_map(struct irq_domain *h, unsigned int virq,  	return 0;  } -static int uic_host_xlate(struct irq_domain *h, struct device_node *ct, -			  const u32 *intspec, unsigned int intsize, -			  irq_hw_number_t *out_hwirq, unsigned int *out_type) - -{ -	/* UIC intspecs must have 2 cells */ -	BUG_ON(intsize != 2); -	*out_hwirq = intspec[0]; -	*out_type = intspec[1]; -	return 0; -} -  static struct irq_domain_ops uic_host_ops = {  	.map	= uic_host_map, -	.xlate	= uic_host_xlate, +	.xlate	= irq_domain_xlate_twocell,  };  void uic_irq_cascade(unsigned int virq, struct irq_desc *desc) diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c index 149d9876fca..e6568c19c93 100644 --- a/drivers/gpio/gpio-mpc8xxx.c +++ b/drivers/gpio/gpio-mpc8xxx.c @@ -296,24 +296,9 @@ static int mpc8xxx_gpio_irq_map(struct irq_domain *h, unsigned int virq,  	return 0;  } -static int mpc8xxx_gpio_irq_xlate(struct irq_domain *h, struct device_node *ct, -				  const u32 *intspec, unsigned int intsize, -				  irq_hw_number_t *out_hwirq, -				  unsigned int *out_flags) - -{ -	/* interrupt sense values coming from the device tree equal either -	 * EDGE_FALLING or EDGE_BOTH -	 */ -	*out_hwirq = intspec[0]; -	*out_flags = intspec[1]; - -	return 0; -} -  static struct irq_domain_ops mpc8xxx_gpio_irq_ops = {  	.map	= mpc8xxx_gpio_irq_map, -	.xlate	= mpc8xxx_gpio_irq_xlate, +	.xlate	= irq_domain_xlate_twocell,  };  static struct of_device_id mpc8xxx_gpio_ids[] __initdata = {  |