diff mbox

Globally s/struct irq_host/struct irq_domain/

Message ID E1Pd18R-0002d3-US@jdl.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Jon Loeliger Jan. 12, 2011, 1:53 p.m. UTC
From: Jon Loeliger <jdl@jdl.com>

Just rename the irq_host structure as irq_domain to lessen the
confusion around the word "host".  Updated a few comments and
error messages to use "irq_domain" when refering to the structure.

Suggested by Ben Herrenschmidt on the device-tree mailing list.

Signed-off-by: Jon Loeliger <jdl@jdl.com>
---

Version 2 - Rebased to current top of Linus', v2.6.37-5668-g4162cf6.


 arch/microblaze/include/asm/irq.h                |    4 +-
 arch/microblaze/kernel/irq.c                     |    2 +-
 arch/powerpc/include/asm/i8259.h                 |    2 +-
 arch/powerpc/include/asm/irq.h                   |   40 +++++++++++-----------
 arch/powerpc/include/asm/mpic.h                  |    2 +-
 arch/powerpc/kernel/irq.c                        |   40 +++++++++++-----------
 arch/powerpc/platforms/512x/mpc5121_ads_cpld.c   |    6 ++--
 arch/powerpc/platforms/52xx/media5200.c          |    6 ++--
 arch/powerpc/platforms/52xx/mpc52xx_gpt.c        |    8 ++--
 arch/powerpc/platforms/52xx/mpc52xx_pic.c        |    6 ++--
 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c     |    8 ++--
 arch/powerpc/platforms/85xx/socrates_fpga_pic.c  |    8 ++--
 arch/powerpc/platforms/86xx/gef_pic.c            |    8 ++--
 arch/powerpc/platforms/cell/axon_msi.c           |   10 +++---
 arch/powerpc/platforms/cell/beat_interrupt.c     |   12 +++---
 arch/powerpc/platforms/cell/interrupt.c          |   10 +++---
 arch/powerpc/platforms/cell/spider-pic.c         |    6 ++--
 arch/powerpc/platforms/embedded6xx/flipper-pic.c |   14 ++++----
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c    |   18 +++++-----
 arch/powerpc/platforms/iseries/irq.c             |    6 ++--
 arch/powerpc/platforms/powermac/pic.c            |    8 ++--
 arch/powerpc/platforms/ps3/interrupt.c           |    8 ++--
 arch/powerpc/platforms/pseries/xics.c            |    8 ++--
 arch/powerpc/sysdev/cpm1.c                       |    4 +-
 arch/powerpc/sysdev/cpm2_pic.c                   |    6 ++--
 arch/powerpc/sysdev/fsl_msi.c                    |    2 +-
 arch/powerpc/sysdev/fsl_msi.h                    |    2 +-
 arch/powerpc/sysdev/i8259.c                      |   12 +++---
 arch/powerpc/sysdev/ipic.c                       |    6 ++--
 arch/powerpc/sysdev/ipic.h                       |    2 +-
 arch/powerpc/sysdev/mpc8xx_pic.c                 |    6 ++--
 arch/powerpc/sysdev/mpc8xxx_gpio.c               |    6 ++--
 arch/powerpc/sysdev/mpic.c                       |    6 ++--
 arch/powerpc/sysdev/mv64x60_pic.c                |    4 +-
 arch/powerpc/sysdev/qe_lib/qe_ic.c               |    6 ++--
 arch/powerpc/sysdev/qe_lib/qe_ic.h               |    2 +-
 arch/powerpc/sysdev/tsi108_pci.c                 |    6 ++--
 arch/powerpc/sysdev/uic.c                        |    6 ++--
 arch/powerpc/sysdev/xilinx_intc.c                |   12 +++---
 39 files changed, 164 insertions(+), 164 deletions(-)

Comments

Josh Boyer Jan. 12, 2011, 3:58 p.m. UTC | #1
On Wed, Jan 12, 2011 at 07:53:11AM -0600, Jon Loeliger wrote:
>From: Jon Loeliger <jdl@jdl.com>
>
>Just rename the irq_host structure as irq_domain to lessen the
>confusion around the word "host".  Updated a few comments and
>error messages to use "irq_domain" when refering to the structure.
>
>Suggested by Ben Herrenschmidt on the device-tree mailing list.
>
>Signed-off-by: Jon Loeliger <jdl@jdl.com>

For the uic.c part:

Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

josh
Grant Likely Jan. 21, 2011, 5:13 p.m. UTC | #2
On Wed, Jan 12, 2011 at 07:53:11AM -0600, Jon Loeliger wrote:
> From: Jon Loeliger <jdl@jdl.com>
> 
> Just rename the irq_host structure as irq_domain to lessen the
> confusion around the word "host".  Updated a few comments and
> error messages to use "irq_domain" when refering to the structure.
> 
> Suggested by Ben Herrenschmidt on the device-tree mailing list.
> 
> Signed-off-by: Jon Loeliger <jdl@jdl.com>

For this to make sense, it really needs to also rename irq_host_ops
structure, the IRQ_HOST_MAP* #defines, and the irq_*_host functions.
It also /should/ adjust the users of irq_domain to rename function
local variables and structure members.  Otherwise there will be an
even worse mismatch in naming.

g.

> ---
> 
> Version 2 - Rebased to current top of Linus', v2.6.37-5668-g4162cf6.
> 
> 
>  arch/microblaze/include/asm/irq.h                |    4 +-
>  arch/microblaze/kernel/irq.c                     |    2 +-
>  arch/powerpc/include/asm/i8259.h                 |    2 +-
>  arch/powerpc/include/asm/irq.h                   |   40 +++++++++++-----------
>  arch/powerpc/include/asm/mpic.h                  |    2 +-
>  arch/powerpc/kernel/irq.c                        |   40 +++++++++++-----------
>  arch/powerpc/platforms/512x/mpc5121_ads_cpld.c   |    6 ++--
>  arch/powerpc/platforms/52xx/media5200.c          |    6 ++--
>  arch/powerpc/platforms/52xx/mpc52xx_gpt.c        |    8 ++--
>  arch/powerpc/platforms/52xx/mpc52xx_pic.c        |    6 ++--
>  arch/powerpc/platforms/82xx/pq2ads-pci-pic.c     |    8 ++--
>  arch/powerpc/platforms/85xx/socrates_fpga_pic.c  |    8 ++--
>  arch/powerpc/platforms/86xx/gef_pic.c            |    8 ++--
>  arch/powerpc/platforms/cell/axon_msi.c           |   10 +++---
>  arch/powerpc/platforms/cell/beat_interrupt.c     |   12 +++---
>  arch/powerpc/platforms/cell/interrupt.c          |   10 +++---
>  arch/powerpc/platforms/cell/spider-pic.c         |    6 ++--
>  arch/powerpc/platforms/embedded6xx/flipper-pic.c |   14 ++++----
>  arch/powerpc/platforms/embedded6xx/hlwd-pic.c    |   18 +++++-----
>  arch/powerpc/platforms/iseries/irq.c             |    6 ++--
>  arch/powerpc/platforms/powermac/pic.c            |    8 ++--
>  arch/powerpc/platforms/ps3/interrupt.c           |    8 ++--
>  arch/powerpc/platforms/pseries/xics.c            |    8 ++--
>  arch/powerpc/sysdev/cpm1.c                       |    4 +-
>  arch/powerpc/sysdev/cpm2_pic.c                   |    6 ++--
>  arch/powerpc/sysdev/fsl_msi.c                    |    2 +-
>  arch/powerpc/sysdev/fsl_msi.h                    |    2 +-
>  arch/powerpc/sysdev/i8259.c                      |   12 +++---
>  arch/powerpc/sysdev/ipic.c                       |    6 ++--
>  arch/powerpc/sysdev/ipic.h                       |    2 +-
>  arch/powerpc/sysdev/mpc8xx_pic.c                 |    6 ++--
>  arch/powerpc/sysdev/mpc8xxx_gpio.c               |    6 ++--
>  arch/powerpc/sysdev/mpic.c                       |    6 ++--
>  arch/powerpc/sysdev/mv64x60_pic.c                |    4 +-
>  arch/powerpc/sysdev/qe_lib/qe_ic.c               |    6 ++--
>  arch/powerpc/sysdev/qe_lib/qe_ic.h               |    2 +-
>  arch/powerpc/sysdev/tsi108_pci.c                 |    6 ++--
>  arch/powerpc/sysdev/uic.c                        |    6 ++--
>  arch/powerpc/sysdev/xilinx_intc.c                |   12 +++---
>  39 files changed, 164 insertions(+), 164 deletions(-)
> 
> diff --git a/arch/microblaze/include/asm/irq.h b/arch/microblaze/include/asm/irq.h
> index ec5583d..8ef92dd 100644
> --- a/arch/microblaze/include/asm/irq.h
> +++ b/arch/microblaze/include/asm/irq.h
> @@ -36,7 +36,7 @@ static inline void irq_dispose_mapping(unsigned int virq)
>  	return;
>  }
>  
> -struct irq_host;
> +struct irq_domain;
>  
>  /**
>   * irq_create_mapping - Map a hardware interrupt into linux virq space
> @@ -48,7 +48,7 @@ struct irq_host;
>   * If the sense/trigger is to be specified, set_irq_type() should be called
>   * on the number returned from that call.
>   */
> -extern unsigned int irq_create_mapping(struct irq_host *host,
> +extern unsigned int irq_create_mapping(struct irq_domain *host,
>  					irq_hw_number_t hwirq);
>  
>  #endif /* _ASM_MICROBLAZE_IRQ_H */
> diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c
> index a9345fb..059bb11 100644
> --- a/arch/microblaze/kernel/irq.c
> +++ b/arch/microblaze/kernel/irq.c
> @@ -89,7 +89,7 @@ skip:
>  
>  /* MS: There is no any advance mapping mechanism. We are using simple 32bit
>    intc without any cascades or any connection that's why mapping is 1:1 */
> -unsigned int irq_create_mapping(struct irq_host *host, irq_hw_number_t hwirq)
> +unsigned int irq_create_mapping(struct irq_domain *host, irq_hw_number_t hwirq)
>  {
>  	return hwirq;
>  }
> diff --git a/arch/powerpc/include/asm/i8259.h b/arch/powerpc/include/asm/i8259.h
> index 105ade2..c3fdfbd 100644
> --- a/arch/powerpc/include/asm/i8259.h
> +++ b/arch/powerpc/include/asm/i8259.h
> @@ -6,7 +6,7 @@
>  
>  extern void i8259_init(struct device_node *node, unsigned long intack_addr);
>  extern unsigned int i8259_irq(void);
> -extern struct irq_host *i8259_get_host(void);
> +extern struct irq_domain *i8259_get_host(void);
>  
>  #endif /* __KERNEL__ */
>  #endif /* _ASM_POWERPC_I8259_H */
> diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h
> index 67ab5fb..3e25340 100644
> --- a/arch/powerpc/include/asm/irq.h
> +++ b/arch/powerpc/include/asm/irq.h
> @@ -66,7 +66,7 @@ typedef unsigned long irq_hw_number_t;
>   * by some sort of arch-specific void * "token" used to identify interrupt
>   * controllers.
>   */
> -struct irq_host;
> +struct irq_domain;
>  struct radix_tree_root;
>  
>  /* Functions below are provided by the host and called whenever a new mapping
> @@ -78,18 +78,18 @@ struct irq_host_ops {
>  	/* Match an interrupt controller device node to a host, returns
>  	 * 1 on a match
>  	 */
> -	int (*match)(struct irq_host *h, struct device_node *node);
> +	int (*match)(struct irq_domain *h, struct device_node *node);
>  
>  	/* Create or update a mapping between a virtual irq number and a hw
>  	 * irq number. This is called only once for a given mapping.
>  	 */
> -	int (*map)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw);
> +	int (*map)(struct irq_domain *h, unsigned int virq, irq_hw_number_t hw);
>  
>  	/* Dispose of such a mapping */
> -	void (*unmap)(struct irq_host *h, unsigned int virq);
> +	void (*unmap)(struct irq_domain *h, unsigned int virq);
>  
>  	/* Update of such a mapping  */
> -	void (*remap)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw);
> +	void (*remap)(struct irq_domain *h, unsigned int virq, irq_hw_number_t hw);
>  
>  	/* Translate device-tree interrupt specifier from raw format coming
>  	 * from the firmware to a irq_hw_number_t (interrupt line number) and
> @@ -99,12 +99,12 @@ struct irq_host_ops {
>  	 * the type (which amount to keeping whatever default value the
>  	 * interrupt controller has for that line)
>  	 */
> -	int (*xlate)(struct irq_host *h, struct device_node *ctrler,
> +	int (*xlate)(struct irq_domain *h, struct device_node *ctrler,
>  		     const u32 *intspec, unsigned int intsize,
>  		     irq_hw_number_t *out_hwirq, unsigned int *out_type);
>  };
>  
> -struct irq_host {
> +struct irq_domain {
>  	struct list_head	link;
>  
>  	/* type of reverse mapping technique */
> @@ -135,7 +135,7 @@ struct irq_host {
>   */
>  struct irq_map_entry {
>  	irq_hw_number_t	hwirq;
> -	struct irq_host	*host;
> +	struct irq_domain	*host;
>  };
>  
>  extern struct irq_map_entry irq_map[NR_IRQS];
> @@ -143,14 +143,14 @@ extern struct irq_map_entry irq_map[NR_IRQS];
>  extern irq_hw_number_t virq_to_hw(unsigned int virq);
>  
>  /**
> - * irq_alloc_host - Allocate a new irq_host data structure
> + * irq_alloc_host - Allocate a new irq_domain data structure
>   * @of_node: optional device-tree node of the interrupt controller
>   * @revmap_type: type of reverse mapping to use
>   * @revmap_arg: for IRQ_HOST_MAP_LINEAR linear only: size of the map
>   * @ops: map/unmap host callbacks
>   * @inval_irq: provide a hw number in that host space that is always invalid
>   *
> - * Allocates and initialize and irq_host structure. Note that in the case of
> + * Allocates and initialize and irq_domain structure. Note that in the case of
>   * IRQ_HOST_MAP_LEGACY, the map() callback will be called before this returns
>   * for all legacy interrupts except 0 (which is always the invalid irq for
>   * a legacy controller). For a IRQ_HOST_MAP_LINEAR, the map is allocated by
> @@ -158,7 +158,7 @@ extern irq_hw_number_t virq_to_hw(unsigned int virq);
>   * later during boot automatically (the reverse mapping will use the slow path
>   * until that happens).
>   */
> -extern struct irq_host *irq_alloc_host(struct device_node *of_node,
> +extern struct irq_domain *irq_alloc_host(struct device_node *of_node,
>  				       unsigned int revmap_type,
>  				       unsigned int revmap_arg,
>  				       struct irq_host_ops *ops,
> @@ -169,7 +169,7 @@ extern struct irq_host *irq_alloc_host(struct device_node *of_node,
>   * irq_find_host - Locates a host for a given device node
>   * @node: device-tree node of the interrupt controller
>   */
> -extern struct irq_host *irq_find_host(struct device_node *node);
> +extern struct irq_domain *irq_find_host(struct device_node *node);
>  
>  
>  /**
> @@ -181,7 +181,7 @@ extern struct irq_host *irq_find_host(struct device_node *node);
>   * platforms that want to manipulate a few hard coded interrupt numbers that
>   * aren't properly represented in the device-tree.
>   */
> -extern void irq_set_default_host(struct irq_host *host);
> +extern void irq_set_default_host(struct irq_domain *host);
>  
>  
>  /**
> @@ -204,7 +204,7 @@ extern void irq_set_virq_count(unsigned int count);
>   * If the sense/trigger is to be specified, set_irq_type() should be called
>   * on the number returned from that call.
>   */
> -extern unsigned int irq_create_mapping(struct irq_host *host,
> +extern unsigned int irq_create_mapping(struct irq_domain *host,
>  				       irq_hw_number_t hwirq);
>  
>  
> @@ -223,7 +223,7 @@ extern void irq_dispose_mapping(unsigned int virq);
>   * irq controller implementation directly calls the appropriate low level
>   * mapping function.
>   */
> -extern unsigned int irq_find_mapping(struct irq_host *host,
> +extern unsigned int irq_find_mapping(struct irq_domain *host,
>  				     irq_hw_number_t hwirq);
>  
>  /**
> @@ -234,7 +234,7 @@ extern unsigned int irq_find_mapping(struct irq_host *host,
>   * interrupt numbers they generate. In such a case it's simplest to use
>   * the linux virq as the hardware interrupt number.
>   */
> -extern unsigned int irq_create_direct_mapping(struct irq_host *host);
> +extern unsigned int irq_create_direct_mapping(struct irq_domain *host);
>  
>  /**
>   * irq_radix_revmap_insert - Insert a hw irq to linux virq number mapping.
> @@ -245,7 +245,7 @@ extern unsigned int irq_create_direct_mapping(struct irq_host *host);
>   * This is for use by irq controllers that use a radix tree reverse
>   * mapping for fast lookup.
>   */
> -extern void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
> +extern void irq_radix_revmap_insert(struct irq_domain *host, unsigned int virq,
>  				    irq_hw_number_t hwirq);
>  
>  /**
> @@ -256,7 +256,7 @@ extern void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
>   * This is a fast path, for use by irq controller code that uses radix tree
>   * revmaps
>   */
> -extern unsigned int irq_radix_revmap_lookup(struct irq_host *host,
> +extern unsigned int irq_radix_revmap_lookup(struct irq_domain *host,
>  					    irq_hw_number_t hwirq);
>  
>  /**
> @@ -269,7 +269,7 @@ extern unsigned int irq_radix_revmap_lookup(struct irq_host *host,
>   * yet and will create the revmap entry with appropriate locking
>   */
>  
> -extern unsigned int irq_linear_revmap(struct irq_host *host,
> +extern unsigned int irq_linear_revmap(struct irq_domain *host,
>  				      irq_hw_number_t hwirq);
>  
>  
> @@ -284,7 +284,7 @@ extern unsigned int irq_linear_revmap(struct irq_host *host,
>   * and that can be used by some irq controllers implementations for things
>   * like allocating ranges of numbers for MSIs. The revmaps are left untouched.
>   */
> -extern unsigned int irq_alloc_virt(struct irq_host *host,
> +extern unsigned int irq_alloc_virt(struct irq_domain *host,
>  				   unsigned int count,
>  				   unsigned int hint);
>  
> diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h
> index e000cce..18d07da 100644
> --- a/arch/powerpc/include/asm/mpic.h
> +++ b/arch/powerpc/include/asm/mpic.h
> @@ -253,7 +253,7 @@ struct mpic_irq_save {
>  struct mpic
>  {
>  	/* The remapper for this MPIC */
> -	struct irq_host		*irqhost;
> +	struct irq_domain	*irqhost;
>  
>  	/* The "linux" controller struct */
>  	struct irq_chip		hc_irq;
> diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
> index ce557f6..e890cc4 100644
> --- a/arch/powerpc/kernel/irq.c
> +++ b/arch/powerpc/kernel/irq.c
> @@ -533,7 +533,7 @@ static unsigned int revmap_trees_allocated;
>  static DEFINE_MUTEX(revmap_trees_mutex);
>  struct irq_map_entry irq_map[NR_IRQS];
>  static unsigned int irq_virq_count = NR_IRQS;
> -static struct irq_host *irq_default_host;
> +static struct irq_domain *irq_default_host;
>  
>  irq_hw_number_t virq_to_hw(unsigned int virq)
>  {
> @@ -541,19 +541,19 @@ irq_hw_number_t virq_to_hw(unsigned int virq)
>  }
>  EXPORT_SYMBOL_GPL(virq_to_hw);
>  
> -static int default_irq_host_match(struct irq_host *h, struct device_node *np)
> +static int default_irq_host_match(struct irq_domain *h, struct device_node *np)
>  {
>  	return h->of_node != NULL && h->of_node == np;
>  }
>  
> -struct irq_host *irq_alloc_host(struct device_node *of_node,
> +struct irq_domain *irq_alloc_host(struct device_node *of_node,
>  				unsigned int revmap_type,
>  				unsigned int revmap_arg,
>  				struct irq_host_ops *ops,
>  				irq_hw_number_t inval_irq)
>  {
> -	struct irq_host *host;
> -	unsigned int size = sizeof(struct irq_host);
> +	struct irq_domain *host;
> +	unsigned int size = sizeof(struct irq_domain);
>  	unsigned int i;
>  	unsigned int *rmap;
>  	unsigned long flags;
> @@ -638,9 +638,9 @@ struct irq_host *irq_alloc_host(struct device_node *of_node,
>  	return host;
>  }
>  
> -struct irq_host *irq_find_host(struct device_node *node)
> +struct irq_domain *irq_find_host(struct device_node *node)
>  {
> -	struct irq_host *h, *found = NULL;
> +	struct irq_domain *h, *found = NULL;
>  	unsigned long flags;
>  
>  	/* We might want to match the legacy controller last since
> @@ -659,7 +659,7 @@ struct irq_host *irq_find_host(struct device_node *node)
>  }
>  EXPORT_SYMBOL_GPL(irq_find_host);
>  
> -void irq_set_default_host(struct irq_host *host)
> +void irq_set_default_host(struct irq_domain *host)
>  {
>  	pr_debug("irq: Default host set to @0x%p\n", host);
>  
> @@ -675,7 +675,7 @@ void irq_set_virq_count(unsigned int count)
>  		irq_virq_count = count;
>  }
>  
> -static int irq_setup_virq(struct irq_host *host, unsigned int virq,
> +static int irq_setup_virq(struct irq_domain *host, unsigned int virq,
>  			    irq_hw_number_t hwirq)
>  {
>  	struct irq_desc *desc;
> @@ -706,7 +706,7 @@ error:
>  	return -1;
>  }
>  
> -unsigned int irq_create_direct_mapping(struct irq_host *host)
> +unsigned int irq_create_direct_mapping(struct irq_domain *host)
>  {
>  	unsigned int virq;
>  
> @@ -730,7 +730,7 @@ unsigned int irq_create_direct_mapping(struct irq_host *host)
>  	return virq;
>  }
>  
> -unsigned int irq_create_mapping(struct irq_host *host,
> +unsigned int irq_create_mapping(struct irq_domain *host,
>  				irq_hw_number_t hwirq)
>  {
>  	unsigned int virq, hint;
> @@ -789,7 +789,7 @@ EXPORT_SYMBOL_GPL(irq_create_mapping);
>  unsigned int irq_create_of_mapping(struct device_node *controller,
>  				   const u32 *intspec, unsigned int intsize)
>  {
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  	irq_hw_number_t hwirq;
>  	unsigned int type = IRQ_TYPE_NONE;
>  	unsigned int virq;
> @@ -828,7 +828,7 @@ EXPORT_SYMBOL_GPL(irq_create_of_mapping);
>  
>  void irq_dispose_mapping(unsigned int virq)
>  {
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  	irq_hw_number_t hwirq;
>  
>  	if (virq == NO_IRQ)
> @@ -887,7 +887,7 @@ void irq_dispose_mapping(unsigned int virq)
>  }
>  EXPORT_SYMBOL_GPL(irq_dispose_mapping);
>  
> -unsigned int irq_find_mapping(struct irq_host *host,
> +unsigned int irq_find_mapping(struct irq_domain *host,
>  			      irq_hw_number_t hwirq)
>  {
>  	unsigned int i;
> @@ -920,7 +920,7 @@ unsigned int irq_find_mapping(struct irq_host *host,
>  EXPORT_SYMBOL_GPL(irq_find_mapping);
>  
>  
> -unsigned int irq_radix_revmap_lookup(struct irq_host *host,
> +unsigned int irq_radix_revmap_lookup(struct irq_domain *host,
>  				     irq_hw_number_t hwirq)
>  {
>  	struct irq_map_entry *ptr;
> @@ -955,7 +955,7 @@ unsigned int irq_radix_revmap_lookup(struct irq_host *host,
>  	return virq;
>  }
>  
> -void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
> +void irq_radix_revmap_insert(struct irq_domain *host, unsigned int virq,
>  			     irq_hw_number_t hwirq)
>  {
>  
> @@ -978,7 +978,7 @@ void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
>  	}
>  }
>  
> -unsigned int irq_linear_revmap(struct irq_host *host,
> +unsigned int irq_linear_revmap(struct irq_domain *host,
>  			       irq_hw_number_t hwirq)
>  {
>  	unsigned int *revmap;
> @@ -1001,7 +1001,7 @@ unsigned int irq_linear_revmap(struct irq_host *host,
>  	return revmap[hwirq];
>  }
>  
> -unsigned int irq_alloc_virt(struct irq_host *host,
> +unsigned int irq_alloc_virt(struct irq_domain *host,
>  			    unsigned int count,
>  			    unsigned int hint)
>  {
> @@ -1058,7 +1058,7 @@ void irq_free_virt(unsigned int virq, unsigned int count)
>  
>  	raw_spin_lock_irqsave(&irq_big_lock, flags);
>  	for (i = virq; i < (virq + count); i++) {
> -		struct irq_host *host;
> +		struct irq_domain *host;
>  
>  		if (i < NUM_ISA_INTERRUPTS ||
>  		    (virq + count) > irq_virq_count)
> @@ -1095,7 +1095,7 @@ int arch_init_chip_data(struct irq_desc *desc, int node)
>  /* We need to create the radix trees late */
>  static int irq_late_init(void)
>  {
> -	struct irq_host *h;
> +	struct irq_domain *h;
>  	unsigned int i;
>  
>  	/*
> diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
> index 4ecf4cf..32e784e 100644
> --- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
> +++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
> @@ -21,7 +21,7 @@
>  #include <asm/prom.h>
>  
>  static struct device_node *cpld_pic_node;
> -static struct irq_host *cpld_pic_host;
> +static struct irq_domain *cpld_pic_host;
>  
>  /*
>   * Bits to ignore in the misc_status register
> @@ -123,13 +123,13 @@ cpld_pic_cascade(unsigned int irq, struct irq_desc *desc)
>  }
>  
>  static int
> -cpld_pic_host_match(struct irq_host *h, struct device_node *node)
> +cpld_pic_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	return cpld_pic_node == node;
>  }
>  
>  static int
> -cpld_pic_host_map(struct irq_host *h, unsigned int virq,
> +cpld_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			     irq_hw_number_t hw)
>  {
>  	irq_to_desc(virq)->status |= IRQ_LEVEL;
> diff --git a/arch/powerpc/platforms/52xx/media5200.c b/arch/powerpc/platforms/52xx/media5200.c
> index 2c7780c..f10ae9d 100644
> --- a/arch/powerpc/platforms/52xx/media5200.c
> +++ b/arch/powerpc/platforms/52xx/media5200.c
> @@ -45,7 +45,7 @@ static struct of_device_id mpc5200_gpio_ids[] __initdata = {
>  struct media5200_irq {
>  	void __iomem *regs;
>  	spinlock_t lock;
> -	struct irq_host *irqhost;
> +	struct irq_domain *irqhost;
>  };
>  struct media5200_irq media5200_irq;
>  
> @@ -111,7 +111,7 @@ void media5200_irq_cascade(unsigned int virq, struct irq_desc *desc)
>  	raw_spin_unlock(&desc->lock);
>  }
>  
> -static int media5200_irq_map(struct irq_host *h, unsigned int virq,
> +static int media5200_irq_map(struct irq_domain *h, unsigned int virq,
>  			     irq_hw_number_t hw)
>  {
>  	struct irq_desc *desc = irq_to_desc(virq);
> @@ -126,7 +126,7 @@ static int media5200_irq_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int media5200_irq_xlate(struct irq_host *h, struct device_node *ct,
> +static int media5200_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)
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> index e0d703c..fb0c795 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> @@ -80,7 +80,7 @@ MODULE_LICENSE("GPL");
>   * @regs: virtual address of GPT registers
>   * @lock: spinlock to coordinate between different functions.
>   * @gc: gpio_chip instance structure; used when GPIO is enabled
> - * @irqhost: Pointer to irq_host instance; used when IRQ mode is supported
> + * @irqhost: Pointer to irq_domain instance; used when IRQ mode is supported
>   * @wdt_mode: only relevant for gpt0: bit 0 (MPC52xx_GPT_CAN_WDT) indicates
>   *   if the gpt may be used as wdt, bit 1 (MPC52xx_GPT_IS_WDT) indicates
>   *   if the timer is actively used as wdt which blocks gpt functions
> @@ -90,7 +90,7 @@ struct mpc52xx_gpt_priv {
>  	struct device *dev;
>  	struct mpc52xx_gpt __iomem *regs;
>  	spinlock_t lock;
> -	struct irq_host *irqhost;
> +	struct irq_domain *irqhost;
>  	u32 ipb_freq;
>  	u8 wdt_mode;
>  
> @@ -203,7 +203,7 @@ void mpc52xx_gpt_irq_cascade(unsigned int virq, struct irq_desc *desc)
>  	}
>  }
>  
> -static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq,
> +static int mpc52xx_gpt_irq_map(struct irq_domain *h, unsigned int virq,
>  			       irq_hw_number_t hw)
>  {
>  	struct mpc52xx_gpt_priv *gpt = h->host_data;
> @@ -215,7 +215,7 @@ static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct,
> +static int mpc52xx_gpt_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)
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> index 4bf4bf7..7d83308 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> @@ -132,7 +132,7 @@ static struct of_device_id mpc52xx_sdma_ids[] __initdata = {
>  
>  static struct mpc52xx_intr __iomem *intr;
>  static struct mpc52xx_sdma __iomem *sdma;
> -static struct irq_host *mpc52xx_irqhost = NULL;
> +static struct irq_domain *mpc52xx_irqhost = NULL;
>  
>  static unsigned char mpc52xx_map_senses[4] = {
>  	IRQ_TYPE_LEVEL_HIGH,
> @@ -354,7 +354,7 @@ static int mpc52xx_is_extirq(int l1, int l2)
>  /**
>   * mpc52xx_irqhost_xlate - translate virq# from device tree interrupts property
>   */
> -static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct,
> +static int mpc52xx_irqhost_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)
> @@ -388,7 +388,7 @@ static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct,
>  /**
>   * mpc52xx_irqhost_map - Hook to map from virq to an irq_chip structure
>   */
> -static int mpc52xx_irqhost_map(struct irq_host *h, unsigned int virq,
> +static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq,
>  			       irq_hw_number_t irq)
>  {
>  	int l1irq;
> diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
> index 5a55d87..47b8d5d 100644
> --- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
> +++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
> @@ -29,7 +29,7 @@ static DEFINE_RAW_SPINLOCK(pci_pic_lock);
>  
>  struct pq2ads_pci_pic {
>  	struct device_node *node;
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  
>  	struct {
>  		u32 stat;
> @@ -104,7 +104,7 @@ static void pq2ads_pci_irq_demux(unsigned int irq, struct irq_desc *desc)
>  	}
>  }
>  
> -static int pci_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int pci_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			    irq_hw_number_t hw)
>  {
>  	irq_to_desc(virq)->status |= IRQ_LEVEL;
> @@ -113,7 +113,7 @@ static int pci_pic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static void pci_host_unmap(struct irq_host *h, unsigned int virq)
> +static void pci_host_unmap(struct irq_domain *h, unsigned int virq)
>  {
>  	/* remove chip and handler */
>  	set_irq_chip_data(virq, NULL);
> @@ -128,7 +128,7 @@ static struct irq_host_ops pci_pic_host_ops = {
>  int __init pq2ads_pci_init_irq(void)
>  {
>  	struct pq2ads_pci_pic *priv;
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  	struct device_node *np;
>  	int ret = -ENODEV;
>  	int irq;
> diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> index d48527f..fe51afe 100644
> --- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> +++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> @@ -53,7 +53,7 @@ static struct socrates_fpga_irq_info fpga_irqs[SOCRATES_FPGA_NUM_IRQS] = {
>  static DEFINE_RAW_SPINLOCK(socrates_fpga_pic_lock);
>  
>  static void __iomem *socrates_fpga_pic_iobase;
> -static struct irq_host *socrates_fpga_pic_irq_host;
> +static struct irq_domain *socrates_fpga_pic_irq_host;
>  static unsigned int socrates_fpga_irqs[3];
>  
>  static inline uint32_t socrates_fpga_pic_read(int reg)
> @@ -241,7 +241,7 @@ static struct irq_chip socrates_fpga_pic_chip = {
>  	.set_type	= socrates_fpga_pic_set_type,
>  };
>  
> -static int socrates_fpga_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int socrates_fpga_pic_host_map(struct irq_domain *h, unsigned int virq,
>  		irq_hw_number_t hwirq)
>  {
>  	/* All interrupts are LEVEL sensitive */
> @@ -252,7 +252,7 @@ static int socrates_fpga_pic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int socrates_fpga_pic_host_xlate(struct irq_host *h,
> +static int socrates_fpga_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)
>  {
> @@ -293,7 +293,7 @@ void socrates_fpga_pic_init(struct device_node *pic)
>  	unsigned long flags;
>  	int i;
>  
> -	/* Setup an irq_host structure */
> +	/* Setup an irq_domain structure */
>  	socrates_fpga_pic_irq_host = irq_alloc_host(pic, IRQ_HOST_MAP_LINEAR,
>  			SOCRATES_FPGA_NUM_IRQS,	&socrates_fpga_pic_host_ops,
>  			SOCRATES_FPGA_NUM_IRQS);
> diff --git a/arch/powerpc/platforms/86xx/gef_pic.c b/arch/powerpc/platforms/86xx/gef_pic.c
> index 6df9e25..fed34ab 100644
> --- a/arch/powerpc/platforms/86xx/gef_pic.c
> +++ b/arch/powerpc/platforms/86xx/gef_pic.c
> @@ -52,7 +52,7 @@
>  static DEFINE_RAW_SPINLOCK(gef_pic_lock);
>  
>  static void __iomem *gef_pic_irq_reg_base;
> -static struct irq_host *gef_pic_irq_host;
> +static struct irq_domain *gef_pic_irq_host;
>  static int gef_pic_cascade_irq;
>  
>  /*
> @@ -159,7 +159,7 @@ static struct irq_chip gef_pic_chip = {
>  /* When an interrupt is being configured, this call allows some flexibilty
>   * in deciding which irq_chip structure is used
>   */
> -static int gef_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int gef_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hwirq)
>  {
>  	/* All interrupts are LEVEL sensitive */
> @@ -169,7 +169,7 @@ static int gef_pic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int gef_pic_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int gef_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)
>  {
> @@ -217,7 +217,7 @@ void __init gef_pic_init(struct device_node *np)
>  		return;
>  	}
>  
> -	/* Setup an irq_host structure */
> +	/* Setup an irq_domain structure */
>  	gef_pic_irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR,
>  					  GEF_PIC_NUM_IRQS,
>  					  &gef_pic_host_ops, NO_IRQ);
> diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
> index e3e379c..5f88607 100644
> --- a/arch/powerpc/platforms/cell/axon_msi.c
> +++ b/arch/powerpc/platforms/cell/axon_msi.c
> @@ -66,7 +66,7 @@
>  
>  
>  struct axon_msic {
> -	struct irq_host *irq_host;
> +	struct irq_domain *irq_host;
>  	__le32 *fifo_virt;
>  	dma_addr_t fifo_phys;
>  	dcr_host_t dcr_host;
> @@ -150,7 +150,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
>  
>  static struct axon_msic *find_msi_translator(struct pci_dev *dev)
>  {
> -	struct irq_host *irq_host;
> +	struct irq_domain *irq_host;
>  	struct device_node *dn, *tmp;
>  	const phandle *ph;
>  	struct axon_msic *msic = NULL;
> @@ -184,7 +184,7 @@ static struct axon_msic *find_msi_translator(struct pci_dev *dev)
>  
>  	irq_host = irq_find_host(dn);
>  	if (!irq_host) {
> -		dev_dbg(&dev->dev, "axon_msi: no irq_host found for node %s\n",
> +		dev_dbg(&dev->dev, "axon_msi: no irq_domain found for node %s\n",
>  			dn->full_name);
>  		goto out_error;
>  	}
> @@ -316,7 +316,7 @@ static struct irq_chip msic_irq_chip = {
>  	.name		= "AXON-MSI",
>  };
>  
> -static int msic_host_map(struct irq_host *h, unsigned int virq,
> +static int msic_host_map(struct irq_domain *h, unsigned int virq,
>  			 irq_hw_number_t hw)
>  {
>  	set_irq_chip_and_handler(virq, &msic_irq_chip, handle_simple_irq);
> @@ -395,7 +395,7 @@ static int axon_msi_probe(struct platform_device *device,
>  	msic->irq_host = irq_alloc_host(dn, IRQ_HOST_MAP_NOMAP,
>  					NR_IRQS, &msic_host_ops, 0);
>  	if (!msic->irq_host) {
> -		printk(KERN_ERR "axon_msi: couldn't allocate irq_host for %s\n",
> +		printk(KERN_ERR "axon_msi: couldn't allocate irq_domain for %s\n",
>  		       dn->full_name);
>  		goto out_free_fifo;
>  	}
> diff --git a/arch/powerpc/platforms/cell/beat_interrupt.c b/arch/powerpc/platforms/cell/beat_interrupt.c
> index 682af97..179430d 100644
> --- a/arch/powerpc/platforms/cell/beat_interrupt.c
> +++ b/arch/powerpc/platforms/cell/beat_interrupt.c
> @@ -34,7 +34,7 @@ static DEFINE_RAW_SPINLOCK(beatic_irq_mask_lock);
>  static uint64_t	beatic_irq_mask_enable[(MAX_IRQS+255)/64];
>  static uint64_t	beatic_irq_mask_ack[(MAX_IRQS+255)/64];
>  
> -static struct irq_host *beatic_host;
> +static struct irq_domain *beatic_host;
>  
>  /*
>   * In this implementation, "virq" == "IRQ plug number",
> @@ -122,7 +122,7 @@ static struct irq_chip beatic_pic = {
>   *
>   * Note that the number (virq) is already assigned at upper layer.
>   */
> -static void beatic_pic_host_unmap(struct irq_host *h, unsigned int virq)
> +static void beatic_pic_host_unmap(struct irq_domain *h, unsigned int virq)
>  {
>  	beat_destruct_irq_plug(virq);
>  }
> @@ -133,7 +133,7 @@ static void beatic_pic_host_unmap(struct irq_host *h, unsigned int virq)
>   *
>   * Note that the number (virq) is already assigned at upper layer.
>   */
> -static int beatic_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int beatic_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			       irq_hw_number_t hw)
>  {
>  	struct irq_desc *desc = irq_to_desc(virq);
> @@ -152,7 +152,7 @@ static int beatic_pic_host_map(struct irq_host *h, unsigned int virq,
>   * Update binding hardware IRQ number (hw) and Virtuql
>   * IRQ number (virq). This is called only once for a given mapping.
>   */
> -static void beatic_pic_host_remap(struct irq_host *h, unsigned int virq,
> +static void beatic_pic_host_remap(struct irq_domain *h, unsigned int virq,
>  			       irq_hw_number_t hw)
>  {
>  	beat_construct_and_connect_irq_plug(virq, hw);
> @@ -165,7 +165,7 @@ static void beatic_pic_host_remap(struct irq_host *h, unsigned int virq,
>   * Called from irq_create_of_mapping() only.
>   * Note: We have only 1 entry to translate.
>   */
> -static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int beatic_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)
> @@ -177,7 +177,7 @@ static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct,
>  	return 0;
>  }
>  
> -static int beatic_pic_host_match(struct irq_host *h, struct device_node *np)
> +static int beatic_pic_host_match(struct irq_domain *h, struct device_node *np)
>  {
>  	/* Match all */
>  	return 1;
> diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
> index 10eb1a4..2cfb3ee 100644
> --- a/arch/powerpc/platforms/cell/interrupt.c
> +++ b/arch/powerpc/platforms/cell/interrupt.c
> @@ -56,7 +56,7 @@ struct iic {
>  
>  static DEFINE_PER_CPU(struct iic, cpu_iic);
>  #define IIC_NODE_COUNT	2
> -static struct irq_host *iic_host;
> +static struct irq_domain *iic_host;
>  
>  /* Convert between "pending" bits and hw irq number */
>  static irq_hw_number_t iic_pending_to_hwnum(struct cbe_iic_pending_bits bits)
> @@ -184,7 +184,7 @@ void iic_cause_IPI(int cpu, int mesg)
>  	out_be64(&per_cpu(cpu_iic, cpu).regs->generate, (0xf - mesg) << 4);
>  }
>  
> -struct irq_host *iic_get_irq_host(int node)
> +struct irq_domain *iic_get_irq_host(int node)
>  {
>  	return iic_host;
>  }
> @@ -227,7 +227,7 @@ void iic_request_IPIs(void)
>  #endif /* CONFIG_SMP */
>  
>  
> -static int iic_host_match(struct irq_host *h, struct device_node *node)
> +static int iic_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	return of_device_is_compatible(node,
>  				    "IBM,CBEA-Internal-Interrupt-Controller");
> @@ -279,7 +279,7 @@ out_eoi:
>  	raw_spin_unlock(&desc->lock);
>  }
>  
> -static int iic_host_map(struct irq_host *h, unsigned int virq,
> +static int iic_host_map(struct irq_domain *h, unsigned int virq,
>  			irq_hw_number_t hw)
>  {
>  	switch (hw & IIC_IRQ_TYPE_MASK) {
> @@ -296,7 +296,7 @@ static int iic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int iic_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int iic_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)
>  
> diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
> index 3f2e557..0d3dcba 100644
> --- a/arch/powerpc/platforms/cell/spider-pic.c
> +++ b/arch/powerpc/platforms/cell/spider-pic.c
> @@ -62,7 +62,7 @@ enum {
>  #define SPIDER_IRQ_INVALID	63
>  
>  struct spider_pic {
> -	struct irq_host		*host;
> +	struct irq_domain      	*host;
>  	void __iomem		*regs;
>  	unsigned int		node_id;
>  };
> @@ -175,7 +175,7 @@ static struct irq_chip spider_pic = {
>  	.set_type = spider_set_irq_type,
>  };
>  
> -static int spider_host_map(struct irq_host *h, unsigned int virq,
> +static int spider_host_map(struct irq_domain *h, unsigned int virq,
>  			irq_hw_number_t hw)
>  {
>  	set_irq_chip_and_handler(virq, &spider_pic, handle_level_irq);
> @@ -186,7 +186,7 @@ static int spider_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int spider_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int spider_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)
>  
> diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> index c278bd3..80021c3 100644
> --- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> +++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> @@ -96,9 +96,9 @@ static struct irq_chip flipper_pic = {
>   *
>   */
>  
> -static struct irq_host *flipper_irq_host;
> +static struct irq_domain *flipper_irq_host;
>  
> -static int flipper_pic_map(struct irq_host *h, unsigned int virq,
> +static int flipper_pic_map(struct irq_domain *h, unsigned int virq,
>  			   irq_hw_number_t hwirq)
>  {
>  	set_irq_chip_data(virq, h->host_data);
> @@ -107,13 +107,13 @@ static int flipper_pic_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static void flipper_pic_unmap(struct irq_host *h, unsigned int irq)
> +static void flipper_pic_unmap(struct irq_domain *h, unsigned int irq)
>  {
>  	set_irq_chip_data(irq, NULL);
>  	set_irq_chip(irq, NULL);
>  }
>  
> -static int flipper_pic_match(struct irq_host *h, struct device_node *np)
> +static int flipper_pic_match(struct irq_domain *h, struct device_node *np)
>  {
>  	return 1;
>  }
> @@ -137,10 +137,10 @@ static void __flipper_quiesce(void __iomem *io_base)
>  	out_be32(io_base + FLIPPER_ICR, 0xffffffff);
>  }
>  
> -struct irq_host * __init flipper_pic_init(struct device_node *np)
> +struct irq_domain * __init flipper_pic_init(struct device_node *np)
>  {
>  	struct device_node *pi;
> -	struct irq_host *irq_host = NULL;
> +	struct irq_domain *irq_host = NULL;
>  	struct resource res;
>  	void __iomem *io_base;
>  	int retval;
> @@ -169,7 +169,7 @@ struct irq_host * __init flipper_pic_init(struct device_node *np)
>  	irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, FLIPPER_NR_IRQS,
>  				  &flipper_irq_host_ops, -1);
>  	if (!irq_host) {
> -		pr_err("failed to allocate irq_host\n");
> +		pr_err("failed to allocate irq_domain\n");
>  		return NULL;
>  	}
>  
> diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> index a771f91..a41ab12 100644
> --- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> +++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> @@ -89,9 +89,9 @@ static struct irq_chip hlwd_pic = {
>   *
>   */
>  
> -static struct irq_host *hlwd_irq_host;
> +static struct irq_domain *hlwd_irq_host;
>  
> -static int hlwd_pic_map(struct irq_host *h, unsigned int virq,
> +static int hlwd_pic_map(struct irq_domain *h, unsigned int virq,
>  			   irq_hw_number_t hwirq)
>  {
>  	set_irq_chip_data(virq, h->host_data);
> @@ -100,7 +100,7 @@ static int hlwd_pic_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static void hlwd_pic_unmap(struct irq_host *h, unsigned int irq)
> +static void hlwd_pic_unmap(struct irq_domain *h, unsigned int irq)
>  {
>  	set_irq_chip_data(irq, NULL);
>  	set_irq_chip(irq, NULL);
> @@ -111,7 +111,7 @@ static struct irq_host_ops hlwd_irq_host_ops = {
>  	.unmap = hlwd_pic_unmap,
>  };
>  
> -static unsigned int __hlwd_pic_get_irq(struct irq_host *h)
> +static unsigned int __hlwd_pic_get_irq(struct irq_domain *h)
>  {
>  	void __iomem *io_base = h->host_data;
>  	int irq;
> @@ -129,7 +129,7 @@ static unsigned int __hlwd_pic_get_irq(struct irq_host *h)
>  static void hlwd_pic_irq_cascade(unsigned int cascade_virq,
>  				      struct irq_desc *desc)
>  {
> -	struct irq_host *irq_host = get_irq_data(cascade_virq);
> +	struct irq_domain *irq_host = get_irq_data(cascade_virq);
>  	unsigned int virq;
>  
>  	raw_spin_lock(&desc->lock);
> @@ -161,9 +161,9 @@ static void __hlwd_quiesce(void __iomem *io_base)
>  	out_be32(io_base + HW_BROADWAY_ICR, 0xffffffff);
>  }
>  
> -struct irq_host *hlwd_pic_init(struct device_node *np)
> +struct irq_domain *hlwd_pic_init(struct device_node *np)
>  {
> -	struct irq_host *irq_host;
> +	struct irq_domain *irq_host;
>  	struct resource res;
>  	void __iomem *io_base;
>  	int retval;
> @@ -186,7 +186,7 @@ struct irq_host *hlwd_pic_init(struct device_node *np)
>  	irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, HLWD_NR_IRQS,
>  				  &hlwd_irq_host_ops, -1);
>  	if (!irq_host) {
> -		pr_err("failed to allocate irq_host\n");
> +		pr_err("failed to allocate irq_domain\n");
>  		return NULL;
>  	}
>  	irq_host->host_data = io_base;
> @@ -206,7 +206,7 @@ unsigned int hlwd_pic_get_irq(void)
>  
>  void hlwd_pic_probe(void)
>  {
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  	struct device_node *np;
>  	const u32 *interrupts;
>  	int cascade_virq;
> diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
> index ba446bf..948af76 100644
> --- a/arch/powerpc/platforms/iseries/irq.c
> +++ b/arch/powerpc/platforms/iseries/irq.c
> @@ -338,7 +338,7 @@ unsigned int iSeries_get_irq(void)
>  
>  #ifdef CONFIG_PCI
>  
> -static int iseries_irq_host_map(struct irq_host *h, unsigned int virq,
> +static int iseries_irq_host_map(struct irq_domain *h, unsigned int virq,
>  				irq_hw_number_t hw)
>  {
>  	set_irq_chip_and_handler(virq, &iseries_pic, handle_fasteoi_irq);
> @@ -346,7 +346,7 @@ static int iseries_irq_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int iseries_irq_host_match(struct irq_host *h, struct device_node *np)
> +static int iseries_irq_host_match(struct irq_domain *h, struct device_node *np)
>  {
>  	/* Match all */
>  	return 1;
> @@ -364,7 +364,7 @@ static struct irq_host_ops iseries_irq_host_ops = {
>  void __init iSeries_init_IRQ(void)
>  {
>  	/* Register PCI event handler and open an event path */
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  	int ret;
>  
>  	/*
> diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
> index 890d5f7..db69f2b 100644
> --- a/arch/powerpc/platforms/powermac/pic.c
> +++ b/arch/powerpc/platforms/powermac/pic.c
> @@ -67,7 +67,7 @@ static DEFINE_RAW_SPINLOCK(pmac_pic_lock);
>  static unsigned long ppc_lost_interrupts[NR_MASK_WORDS];
>  static unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
>  static int pmac_irq_cascade = -1;
> -static struct irq_host *pmac_pic_host;
> +static struct irq_domain *pmac_pic_host;
>  
>  static void __pmac_retrigger(unsigned int irq_nr)
>  {
> @@ -280,13 +280,13 @@ static struct irqaction gatwick_cascade_action = {
>  	.name		= "cascade",
>  };
>  
> -static int pmac_pic_host_match(struct irq_host *h, struct device_node *node)
> +static int pmac_pic_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	/* We match all, we don't always have a node anyway */
>  	return 1;
>  }
>  
> -static int pmac_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int pmac_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			     irq_hw_number_t hw)
>  {
>  	struct irq_desc *desc = irq_to_desc(virq);
> @@ -306,7 +306,7 @@ static int pmac_pic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int pmac_pic_host_xlate(struct irq_host *h, struct device_node *ct,
> +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)
> diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
> index 59d9712..71fec2e 100644
> --- a/arch/powerpc/platforms/ps3/interrupt.c
> +++ b/arch/powerpc/platforms/ps3/interrupt.c
> @@ -659,12 +659,12 @@ static void __maybe_unused _dump_mask(struct ps3_private *pd,
>  static void dump_bmp(struct ps3_private* pd) {};
>  #endif /* defined(DEBUG) */
>  
> -static void ps3_host_unmap(struct irq_host *h, unsigned int virq)
> +static void ps3_host_unmap(struct irq_domain *h, unsigned int virq)
>  {
>  	set_irq_chip_data(virq, NULL);
>  }
>  
> -static int ps3_host_map(struct irq_host *h, unsigned int virq,
> +static int ps3_host_map(struct irq_domain *h, unsigned int virq,
>  	irq_hw_number_t hwirq)
>  {
>  	pr_debug("%s:%d: hwirq %lu, virq %u\n", __func__, __LINE__, hwirq,
> @@ -675,7 +675,7 @@ static int ps3_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int ps3_host_match(struct irq_host *h, struct device_node *np)
> +static int ps3_host_match(struct irq_domain *h, struct device_node *np)
>  {
>  	/* Match all */
>  	return 1;
> @@ -733,7 +733,7 @@ void __init ps3_init_IRQ(void)
>  {
>  	int result;
>  	unsigned cpu;
> -	struct irq_host *host;
> +	struct irq_domain *host;
>  
>  	host = irq_alloc_host(NULL, IRQ_HOST_MAP_NOMAP, 0, &ps3_host_ops,
>  		PS3_INVALID_OUTLET);
> diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
> index 7b96e5a..d9006d7 100644
> --- a/arch/powerpc/platforms/pseries/xics.c
> +++ b/arch/powerpc/platforms/pseries/xics.c
> @@ -33,7 +33,7 @@
>  #include "xics.h"
>  #include "plpar_wrappers.h"
>  
> -static struct irq_host *xics_host;
> +static struct irq_domain *xics_host;
>  
>  #define XICS_IPI		2
>  #define XICS_IRQ_SPURIOUS	0
> @@ -452,7 +452,7 @@ static struct irq_chip xics_pic_lpar = {
>  /* Points to the irq_chip we're actually using */
>  static struct irq_chip *xics_irq_chip;
>  
> -static int xics_host_match(struct irq_host *h, struct device_node *node)
> +static int xics_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	/* IBM machines have interrupt parents of various funky types for things
>  	 * like vdevices, events, etc... The trick we use here is to match
> @@ -461,7 +461,7 @@ static int xics_host_match(struct irq_host *h, struct device_node *node)
>  	return !of_device_is_compatible(node, "chrp,iic");
>  }
>  
> -static int xics_host_map(struct irq_host *h, unsigned int virq,
> +static int xics_host_map(struct irq_domain *h, unsigned int virq,
>  			 irq_hw_number_t hw)
>  {
>  	pr_devel("xics: map virq %d, hwirq 0x%lx\n", virq, hw);
> @@ -474,7 +474,7 @@ static int xics_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int xics_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int xics_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)
>  
> diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
> index 0085212..2f78da2 100644
> --- a/arch/powerpc/sysdev/cpm1.c
> +++ b/arch/powerpc/sysdev/cpm1.c
> @@ -54,7 +54,7 @@ cpm8xx_t __iomem *cpmp;  /* Pointer to comm processor space */
>  immap_t __iomem *mpc8xx_immr;
>  static cpic8xx_t __iomem *cpic_reg;
>  
> -static struct irq_host *cpm_pic_host;
> +static struct irq_domain *cpm_pic_host;
>  
>  static void cpm_mask_irq(unsigned int irq)
>  {
> @@ -98,7 +98,7 @@ int cpm_get_irq(void)
>  	return irq_linear_revmap(cpm_pic_host, cpm_vec);
>  }
>  
> -static int cpm_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int cpm_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hw)
>  {
>  	pr_debug("cpm_pic_host_map(%d, 0x%lx)\n", virq, hw);
> diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
> index fcea4ff..4e18a8b 100644
> --- a/arch/powerpc/sysdev/cpm2_pic.c
> +++ b/arch/powerpc/sysdev/cpm2_pic.c
> @@ -50,7 +50,7 @@
>  
>  static intctl_cpm2_t __iomem *cpm2_intctl;
>  
> -static struct irq_host *cpm2_pic_host;
> +static struct irq_domain *cpm2_pic_host;
>  #define NR_MASK_WORDS   ((NR_IRQS + 31) / 32)
>  static unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
>  
> @@ -221,7 +221,7 @@ unsigned int cpm2_get_irq(void)
>  	return irq_linear_revmap(cpm2_pic_host, irq);
>  }
>  
> -static int cpm2_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int cpm2_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hw)
>  {
>  	pr_debug("cpm2_pic_host_map(%d, 0x%lx)\n", virq, hw);
> @@ -231,7 +231,7 @@ static int cpm2_pic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int cpm2_pic_host_xlate(struct irq_host *h, struct device_node *ct,
> +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)
>  {
> diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
> index 108d76f..977c5e9 100644
> --- a/arch/powerpc/sysdev/fsl_msi.c
> +++ b/arch/powerpc/sysdev/fsl_msi.c
> @@ -58,7 +58,7 @@ static struct irq_chip fsl_msi_chip = {
>  	.name		= "FSL-MSI",
>  };
>  
> -static int fsl_msi_host_map(struct irq_host *h, unsigned int virq,
> +static int fsl_msi_host_map(struct irq_domain *h, unsigned int virq,
>  				irq_hw_number_t hw)
>  {
>  	struct fsl_msi *msi_data = h->host_data;
> diff --git a/arch/powerpc/sysdev/fsl_msi.h b/arch/powerpc/sysdev/fsl_msi.h
> index 624580c..3852988 100644
> --- a/arch/powerpc/sysdev/fsl_msi.h
> +++ b/arch/powerpc/sysdev/fsl_msi.h
> @@ -24,7 +24,7 @@
>  #define FSL_PIC_IP_IPIC	0x00000002
>  
>  struct fsl_msi {
> -	struct irq_host *irqhost;
> +	struct irq_domain *irqhost;
>  
>  	unsigned long cascade_irq;
>  
> diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
> index 6323e70..ccb2892 100644
> --- a/arch/powerpc/sysdev/i8259.c
> +++ b/arch/powerpc/sysdev/i8259.c
> @@ -25,7 +25,7 @@ static unsigned char cached_8259[2] = { 0xff, 0xff };
>  
>  static DEFINE_RAW_SPINLOCK(i8259_lock);
>  
> -static struct irq_host *i8259_host;
> +static struct irq_domain *i8259_host;
>  
>  /*
>   * Acknowledge the IRQ using either the PCI host bridge's interrupt
> @@ -163,12 +163,12 @@ static struct resource pic_edgectrl_iores = {
>  	.flags = IORESOURCE_BUSY,
>  };
>  
> -static int i8259_host_match(struct irq_host *h, struct device_node *node)
> +static int i8259_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	return h->of_node == NULL || h->of_node == node;
>  }
>  
> -static int i8259_host_map(struct irq_host *h, unsigned int virq,
> +static int i8259_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hw)
>  {
>  	pr_debug("i8259_host_map(%d, 0x%lx)\n", virq, hw);
> @@ -185,7 +185,7 @@ static int i8259_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static void i8259_host_unmap(struct irq_host *h, unsigned int virq)
> +static void i8259_host_unmap(struct irq_domain *h, unsigned int virq)
>  {
>  	/* Make sure irq is masked in hardware */
>  	i8259_mask_irq(virq);
> @@ -197,7 +197,7 @@ static void i8259_host_unmap(struct irq_host *h, unsigned int virq)
>  	synchronize_irq(virq);
>  }
>  
> -static int i8259_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int i8259_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)
>  {
> @@ -224,7 +224,7 @@ static struct irq_host_ops i8259_host_ops = {
>  	.xlate = i8259_host_xlate,
>  };
>  
> -struct irq_host *i8259_get_host(void)
> +struct irq_domain *i8259_get_host(void)
>  {
>  	return i8259_host;
>  }
> diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
> index d7b9b9c..ac0bd54 100644
> --- a/arch/powerpc/sysdev/ipic.c
> +++ b/arch/powerpc/sysdev/ipic.c
> @@ -676,13 +676,13 @@ static struct irq_chip ipic_edge_irq_chip = {
>  	.set_type	= ipic_set_irq_type,
>  };
>  
> -static int ipic_host_match(struct irq_host *h, struct device_node *node)
> +static int ipic_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	/* Exact match, unless ipic node is NULL */
>  	return h->of_node == NULL || h->of_node == node;
>  }
>  
> -static int ipic_host_map(struct irq_host *h, unsigned int virq,
> +static int ipic_host_map(struct irq_domain *h, unsigned int virq,
>  			 irq_hw_number_t hw)
>  {
>  	struct ipic *ipic = h->host_data;
> @@ -696,7 +696,7 @@ static int ipic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int ipic_host_xlate(struct irq_host *h, struct device_node *ct,
> +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)
>  
> diff --git a/arch/powerpc/sysdev/ipic.h b/arch/powerpc/sysdev/ipic.h
> index 9391c57..fe31a00 100644
> --- a/arch/powerpc/sysdev/ipic.h
> +++ b/arch/powerpc/sysdev/ipic.h
> @@ -43,7 +43,7 @@ struct ipic {
>  	volatile u32 __iomem	*regs;
>  
>  	/* The remapper for this IPIC */
> -	struct irq_host		*irqhost;
> +	struct irq_domain	*irqhost;
>  };
>  
>  struct ipic_info {
> diff --git a/arch/powerpc/sysdev/mpc8xx_pic.c b/arch/powerpc/sysdev/mpc8xx_pic.c
> index 8c27d26..f4bf039 100644
> --- a/arch/powerpc/sysdev/mpc8xx_pic.c
> +++ b/arch/powerpc/sysdev/mpc8xx_pic.c
> @@ -18,7 +18,7 @@
>  
>  extern int cpm_get_irq(struct pt_regs *regs);
>  
> -static struct irq_host *mpc8xx_pic_host;
> +static struct irq_domain *mpc8xx_pic_host;
>  #define NR_MASK_WORDS   ((NR_IRQS + 31) / 32)
>  static unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
>  static sysconf8xx_t __iomem *siu_reg;
> @@ -118,7 +118,7 @@ unsigned int mpc8xx_get_irq(void)
>  
>  }
>  
> -static int mpc8xx_pic_host_map(struct irq_host *h, unsigned int virq,
> +static int mpc8xx_pic_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hw)
>  {
>  	pr_debug("mpc8xx_pic_host_map(%d, 0x%lx)\n", virq, hw);
> @@ -129,7 +129,7 @@ static int mpc8xx_pic_host_map(struct irq_host *h, unsigned int virq,
>  }
>  
>  
> -static int mpc8xx_pic_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int mpc8xx_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)
>  {
> diff --git a/arch/powerpc/sysdev/mpc8xxx_gpio.c b/arch/powerpc/sysdev/mpc8xxx_gpio.c
> index c48cd81..7fa32f1 100644
> --- a/arch/powerpc/sysdev/mpc8xxx_gpio.c
> +++ b/arch/powerpc/sysdev/mpc8xxx_gpio.c
> @@ -37,7 +37,7 @@ struct mpc8xxx_gpio_chip {
>  	 * open drain mode safely
>  	 */
>  	u32 data;
> -	struct irq_host *irq;
> +	struct irq_domain *irq;
>  	void *of_dev_id_data;
>  };
>  
> @@ -270,7 +270,7 @@ static struct irq_chip mpc8xxx_irq_chip = {
>  	.set_type	= mpc8xxx_irq_set_type,
>  };
>  
> -static int mpc8xxx_gpio_irq_map(struct irq_host *h, unsigned int virq,
> +static int mpc8xxx_gpio_irq_map(struct irq_domain *h, unsigned int virq,
>  				irq_hw_number_t hw)
>  {
>  	struct mpc8xxx_gpio_chip *mpc8xxx_gc = h->host_data;
> @@ -285,7 +285,7 @@ static int mpc8xxx_gpio_irq_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int mpc8xxx_gpio_irq_xlate(struct irq_host *h, struct device_node *ct,
> +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)
> diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> index 7c13426..a52e257 100644
> --- a/arch/powerpc/sysdev/mpic.c
> +++ b/arch/powerpc/sysdev/mpic.c
> @@ -931,13 +931,13 @@ static struct irq_chip mpic_irq_ht_chip = {
>  #endif /* CONFIG_MPIC_U3_HT_IRQS */
>  
>  
> -static int mpic_host_match(struct irq_host *h, struct device_node *node)
> +static int mpic_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	/* Exact match, unless mpic node is NULL */
>  	return h->of_node == NULL || h->of_node == node;
>  }
>  
> -static int mpic_host_map(struct irq_host *h, unsigned int virq,
> +static int mpic_host_map(struct irq_domain *h, unsigned int virq,
>  			 irq_hw_number_t hw)
>  {
>  	struct mpic *mpic = h->host_data;
> @@ -987,7 +987,7 @@ static int mpic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int mpic_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int mpic_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)
>  
> diff --git a/arch/powerpc/sysdev/mv64x60_pic.c b/arch/powerpc/sysdev/mv64x60_pic.c
> index 485b924..33fbc90 100644
> --- a/arch/powerpc/sysdev/mv64x60_pic.c
> +++ b/arch/powerpc/sysdev/mv64x60_pic.c
> @@ -70,7 +70,7 @@ static u32 mv64x60_cached_low_mask;
>  static u32 mv64x60_cached_high_mask = MV64X60_HIGH_GPP_GROUPS;
>  static u32 mv64x60_cached_gpp_mask;
>  
> -static struct irq_host *mv64x60_irq_host;
> +static struct irq_domain *mv64x60_irq_host;
>  
>  /*
>   * mv64x60_chip_low functions
> @@ -208,7 +208,7 @@ static struct irq_chip *mv64x60_chips[] = {
>  	[MV64x60_LEVEL1_GPP]  = &mv64x60_chip_gpp,
>  };
>  
> -static int mv64x60_host_map(struct irq_host *h, unsigned int virq,
> +static int mv64x60_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hwirq)
>  {
>  	int level1;
> diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c
> index 541ba98..f28fd8f 100644
> --- a/arch/powerpc/sysdev/qe_lib/qe_ic.c
> +++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c
> @@ -243,13 +243,13 @@ static struct irq_chip qe_ic_irq_chip = {
>  	.mask_ack = qe_ic_mask_irq,
>  };
>  
> -static int qe_ic_host_match(struct irq_host *h, struct device_node *node)
> +static int qe_ic_host_match(struct irq_domain *h, struct device_node *node)
>  {
>  	/* Exact match, unless qe_ic node is NULL */
>  	return h->of_node == NULL || h->of_node == node;
>  }
>  
> -static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
> +static int qe_ic_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hw)
>  {
>  	struct qe_ic *qe_ic = h->host_data;
> @@ -270,7 +270,7 @@ static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int qe_ic_host_xlate(struct irq_host *h, struct device_node *ct,
> +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)
> diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.h b/arch/powerpc/sysdev/qe_lib/qe_ic.h
> index c1361d0..c327872 100644
> --- a/arch/powerpc/sysdev/qe_lib/qe_ic.h
> +++ b/arch/powerpc/sysdev/qe_lib/qe_ic.h
> @@ -79,7 +79,7 @@ struct qe_ic {
>  	volatile u32 __iomem *regs;
>  
>  	/* The remapper for this QEIC */
> -	struct irq_host *irqhost;
> +	struct irq_domain *irqhost;
>  
>  	/* The "linux" controller struct */
>  	struct irq_chip hc_irq;
> diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
> index 0ab9281..7a9b37a 100644
> --- a/arch/powerpc/sysdev/tsi108_pci.c
> +++ b/arch/powerpc/sysdev/tsi108_pci.c
> @@ -51,7 +51,7 @@
>  u32 tsi108_pci_cfg_base;
>  static u32 tsi108_pci_cfg_phys;
>  u32 tsi108_csr_vir_base;
> -static struct irq_host *pci_irq_host;
> +static struct irq_domain *pci_irq_host;
>  
>  extern u32 get_vir_csrbase(void);
>  extern u32 tsi108_read_reg(u32 reg_offset);
> @@ -382,7 +382,7 @@ static struct irq_chip tsi108_pci_irq = {
>  	.unmask = tsi108_pci_irq_enable,
>  };
>  
> -static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
> +static int pci_irq_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)
>  {
> @@ -391,7 +391,7 @@ static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
>  	return 0;
>  }
>  
> -static int pci_irq_host_map(struct irq_host *h, unsigned int virq,
> +static int pci_irq_host_map(struct irq_domain *h, unsigned int virq,
>  			  irq_hw_number_t hw)
>  {	unsigned int irq;
>  	DBG("%s(%d, 0x%lx)\n", __func__, virq, hw);
> diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c
> index 0038fb7..3c835f5 100644
> --- a/arch/powerpc/sysdev/uic.c
> +++ b/arch/powerpc/sysdev/uic.c
> @@ -52,7 +52,7 @@ struct uic {
>  	spinlock_t lock;
>  
>  	/* The remapper for this UIC */
> -	struct irq_host	*irqhost;
> +	struct irq_domain	*irqhost;
>  };
>  
>  static void uic_unmask_irq(unsigned int virq)
> @@ -185,7 +185,7 @@ static struct irq_chip uic_irq_chip = {
>  	.set_type	= uic_set_irq_type,
>  };
>  
> -static int uic_host_map(struct irq_host *h, unsigned int virq,
> +static int uic_host_map(struct irq_domain *h, unsigned int virq,
>  			irq_hw_number_t hw)
>  {
>  	struct uic *uic = h->host_data;
> @@ -201,7 +201,7 @@ static int uic_host_map(struct irq_host *h, unsigned int virq,
>  	return 0;
>  }
>  
> -static int uic_host_xlate(struct irq_host *h, struct device_node *ct,
> +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)
>  
> diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
> index 1e0ccfa..f6d18cb 100644
> --- a/arch/powerpc/sysdev/xilinx_intc.c
> +++ b/arch/powerpc/sysdev/xilinx_intc.c
> @@ -40,7 +40,7 @@
>  #define XINTC_IVR	24	/* Interrupt Vector */
>  #define XINTC_MER	28	/* Master Enable */
>  
> -static struct irq_host *master_irqhost;
> +static struct irq_domain *master_irqhost;
>  
>  #define XILINX_INTC_MAXIRQS	(32)
>  
> @@ -147,7 +147,7 @@ static struct irq_chip xilinx_intc_edge_irqchip = {
>  /**
>   * xilinx_intc_xlate - translate virq# from device tree interrupts property
>   */
> -static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
> +static int xilinx_intc_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)
> @@ -167,7 +167,7 @@ static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
>  
>  	return 0;
>  }
> -static int xilinx_intc_map(struct irq_host *h, unsigned int virq,
> +static int xilinx_intc_map(struct irq_domain *h, unsigned int virq,
>  				  irq_hw_number_t irq)
>  {
>  	set_irq_chip_data(virq, h->host_data);
> @@ -188,10 +188,10 @@ static struct irq_host_ops xilinx_intc_ops = {
>  	.xlate = xilinx_intc_xlate,
>  };
>  
> -struct irq_host * __init
> +struct irq_domain * __init
>  xilinx_intc_init(struct device_node *np)
>  {
> -	struct irq_host * irq;
> +	struct irq_domain * irq;
>  	void * regs;
>  
>  	/* Find and map the intc registers */
> @@ -206,7 +206,7 @@ xilinx_intc_init(struct device_node *np)
>  	out_be32(regs + XINTC_IAR, ~(u32) 0); /* Acknowledge pending irqs */
>  	out_be32(regs + XINTC_MER, 0x3UL); /* Turn on the Master Enable. */
>  
> -	/* Allocate and initialize an irq_host structure. */
> +	/* Allocate and initialize an irq_domain structure. */
>  	irq = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, XILINX_INTC_MAXIRQS,
>  			     &xilinx_intc_ops, -1);
>  	if (!irq)
> -- 
> 1.7.0.4
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
Jon Loeliger Jan. 21, 2011, 5:19 p.m. UTC | #3
> 
> For this to make sense, it really needs to also rename irq_host_ops
> structure, the IRQ_HOST_MAP* #defines, and the irq_*_host functions.
> It also /should/ adjust the users of irq_domain to rename function
> local variables and structure members.  Otherwise there will be an
> even worse mismatch in naming.

Happy to do so, but last time we talked about this, we decided
not to do *that* aspect of the rename with this patch, and that
we'd get to it later with follow on patches once this step was done.

Your call; just let me know.

jdl
Grant Likely Jan. 21, 2011, 5:28 p.m. UTC | #4
On Fri, Jan 21, 2011 at 10:19 AM, Jon Loeliger <jdl@jdl.com> wrote:
>>
>> For this to make sense, it really needs to also rename irq_host_ops
>> structure, the IRQ_HOST_MAP* #defines, and the irq_*_host functions.
>> It also /should/ adjust the users of irq_domain to rename function
>> local variables and structure members.  Otherwise there will be an
>> even worse mismatch in naming.
>
> Happy to do so, but last time we talked about this, we decided
> not to do *that* aspect of the rename with this patch, and that
> we'd get to it later with follow on patches once this step was done.

I always reserve the right to change my mind.  }:->  Sorry about that,
but I actually applied the patch this morning with the thought that
I'd get Linus to pick it up late to avoid collisions in linux-next.
However, when I actually looked at the result I realized that at the
very least, the irq_host_ops, the #defines, and the irq_*_host
functions absolutely have to be renamed at the same time.  Not
necessarily in the same patch, but definitely at the same time.

g.
Jon Loeliger Jan. 21, 2011, 6:02 p.m. UTC | #5
> 
> I always reserve the right to change my mind.  }:-> 

Naturally!

> Sorry about that,

No problem.  The thought back then was that we'd hit the "global"
piece and then we'd buy the time to hit the local pieces as we could.

> but I actually applied the patch this morning with the thought that
> I'd get Linus to pick it up late to avoid collisions in linux-next.

Makes sense.

> However, when I actually looked at the result I realized that at the
> very least, the irq_host_ops, the #defines, and the irq_*_host
> functions absolutely have to be renamed at the same time.  Not
> necessarily in the same patch, but definitely at the same time.

Will do!

jdl
diff mbox

Patch

diff --git a/arch/microblaze/include/asm/irq.h b/arch/microblaze/include/asm/irq.h
index ec5583d..8ef92dd 100644
--- a/arch/microblaze/include/asm/irq.h
+++ b/arch/microblaze/include/asm/irq.h
@@ -36,7 +36,7 @@  static inline void irq_dispose_mapping(unsigned int virq)
 	return;
 }
 
-struct irq_host;
+struct irq_domain;
 
 /**
  * irq_create_mapping - Map a hardware interrupt into linux virq space
@@ -48,7 +48,7 @@  struct irq_host;
  * If the sense/trigger is to be specified, set_irq_type() should be called
  * on the number returned from that call.
  */
-extern unsigned int irq_create_mapping(struct irq_host *host,
+extern unsigned int irq_create_mapping(struct irq_domain *host,
 					irq_hw_number_t hwirq);
 
 #endif /* _ASM_MICROBLAZE_IRQ_H */
diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c
index a9345fb..059bb11 100644
--- a/arch/microblaze/kernel/irq.c
+++ b/arch/microblaze/kernel/irq.c
@@ -89,7 +89,7 @@  skip:
 
 /* MS: There is no any advance mapping mechanism. We are using simple 32bit
   intc without any cascades or any connection that's why mapping is 1:1 */
-unsigned int irq_create_mapping(struct irq_host *host, irq_hw_number_t hwirq)
+unsigned int irq_create_mapping(struct irq_domain *host, irq_hw_number_t hwirq)
 {
 	return hwirq;
 }
diff --git a/arch/powerpc/include/asm/i8259.h b/arch/powerpc/include/asm/i8259.h
index 105ade2..c3fdfbd 100644
--- a/arch/powerpc/include/asm/i8259.h
+++ b/arch/powerpc/include/asm/i8259.h
@@ -6,7 +6,7 @@ 
 
 extern void i8259_init(struct device_node *node, unsigned long intack_addr);
 extern unsigned int i8259_irq(void);
-extern struct irq_host *i8259_get_host(void);
+extern struct irq_domain *i8259_get_host(void);
 
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_I8259_H */
diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h
index 67ab5fb..3e25340 100644
--- a/arch/powerpc/include/asm/irq.h
+++ b/arch/powerpc/include/asm/irq.h
@@ -66,7 +66,7 @@  typedef unsigned long irq_hw_number_t;
  * by some sort of arch-specific void * "token" used to identify interrupt
  * controllers.
  */
-struct irq_host;
+struct irq_domain;
 struct radix_tree_root;
 
 /* Functions below are provided by the host and called whenever a new mapping
@@ -78,18 +78,18 @@  struct irq_host_ops {
 	/* Match an interrupt controller device node to a host, returns
 	 * 1 on a match
 	 */
-	int (*match)(struct irq_host *h, struct device_node *node);
+	int (*match)(struct irq_domain *h, struct device_node *node);
 
 	/* Create or update a mapping between a virtual irq number and a hw
 	 * irq number. This is called only once for a given mapping.
 	 */
-	int (*map)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw);
+	int (*map)(struct irq_domain *h, unsigned int virq, irq_hw_number_t hw);
 
 	/* Dispose of such a mapping */
-	void (*unmap)(struct irq_host *h, unsigned int virq);
+	void (*unmap)(struct irq_domain *h, unsigned int virq);
 
 	/* Update of such a mapping  */
-	void (*remap)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw);
+	void (*remap)(struct irq_domain *h, unsigned int virq, irq_hw_number_t hw);
 
 	/* Translate device-tree interrupt specifier from raw format coming
 	 * from the firmware to a irq_hw_number_t (interrupt line number) and
@@ -99,12 +99,12 @@  struct irq_host_ops {
 	 * the type (which amount to keeping whatever default value the
 	 * interrupt controller has for that line)
 	 */
-	int (*xlate)(struct irq_host *h, struct device_node *ctrler,
+	int (*xlate)(struct irq_domain *h, struct device_node *ctrler,
 		     const u32 *intspec, unsigned int intsize,
 		     irq_hw_number_t *out_hwirq, unsigned int *out_type);
 };
 
-struct irq_host {
+struct irq_domain {
 	struct list_head	link;
 
 	/* type of reverse mapping technique */
@@ -135,7 +135,7 @@  struct irq_host {
  */
 struct irq_map_entry {
 	irq_hw_number_t	hwirq;
-	struct irq_host	*host;
+	struct irq_domain	*host;
 };
 
 extern struct irq_map_entry irq_map[NR_IRQS];
@@ -143,14 +143,14 @@  extern struct irq_map_entry irq_map[NR_IRQS];
 extern irq_hw_number_t virq_to_hw(unsigned int virq);
 
 /**
- * irq_alloc_host - Allocate a new irq_host data structure
+ * irq_alloc_host - Allocate a new irq_domain data structure
  * @of_node: optional device-tree node of the interrupt controller
  * @revmap_type: type of reverse mapping to use
  * @revmap_arg: for IRQ_HOST_MAP_LINEAR linear only: size of the map
  * @ops: map/unmap host callbacks
  * @inval_irq: provide a hw number in that host space that is always invalid
  *
- * Allocates and initialize and irq_host structure. Note that in the case of
+ * Allocates and initialize and irq_domain structure. Note that in the case of
  * IRQ_HOST_MAP_LEGACY, the map() callback will be called before this returns
  * for all legacy interrupts except 0 (which is always the invalid irq for
  * a legacy controller). For a IRQ_HOST_MAP_LINEAR, the map is allocated by
@@ -158,7 +158,7 @@  extern irq_hw_number_t virq_to_hw(unsigned int virq);
  * later during boot automatically (the reverse mapping will use the slow path
  * until that happens).
  */
-extern struct irq_host *irq_alloc_host(struct device_node *of_node,
+extern struct irq_domain *irq_alloc_host(struct device_node *of_node,
 				       unsigned int revmap_type,
 				       unsigned int revmap_arg,
 				       struct irq_host_ops *ops,
@@ -169,7 +169,7 @@  extern struct irq_host *irq_alloc_host(struct device_node *of_node,
  * irq_find_host - Locates a host for a given device node
  * @node: device-tree node of the interrupt controller
  */
-extern struct irq_host *irq_find_host(struct device_node *node);
+extern struct irq_domain *irq_find_host(struct device_node *node);
 
 
 /**
@@ -181,7 +181,7 @@  extern struct irq_host *irq_find_host(struct device_node *node);
  * platforms that want to manipulate a few hard coded interrupt numbers that
  * aren't properly represented in the device-tree.
  */
-extern void irq_set_default_host(struct irq_host *host);
+extern void irq_set_default_host(struct irq_domain *host);
 
 
 /**
@@ -204,7 +204,7 @@  extern void irq_set_virq_count(unsigned int count);
  * If the sense/trigger is to be specified, set_irq_type() should be called
  * on the number returned from that call.
  */
-extern unsigned int irq_create_mapping(struct irq_host *host,
+extern unsigned int irq_create_mapping(struct irq_domain *host,
 				       irq_hw_number_t hwirq);
 
 
@@ -223,7 +223,7 @@  extern void irq_dispose_mapping(unsigned int virq);
  * irq controller implementation directly calls the appropriate low level
  * mapping function.
  */
-extern unsigned int irq_find_mapping(struct irq_host *host,
+extern unsigned int irq_find_mapping(struct irq_domain *host,
 				     irq_hw_number_t hwirq);
 
 /**
@@ -234,7 +234,7 @@  extern unsigned int irq_find_mapping(struct irq_host *host,
  * interrupt numbers they generate. In such a case it's simplest to use
  * the linux virq as the hardware interrupt number.
  */
-extern unsigned int irq_create_direct_mapping(struct irq_host *host);
+extern unsigned int irq_create_direct_mapping(struct irq_domain *host);
 
 /**
  * irq_radix_revmap_insert - Insert a hw irq to linux virq number mapping.
@@ -245,7 +245,7 @@  extern unsigned int irq_create_direct_mapping(struct irq_host *host);
  * This is for use by irq controllers that use a radix tree reverse
  * mapping for fast lookup.
  */
-extern void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
+extern void irq_radix_revmap_insert(struct irq_domain *host, unsigned int virq,
 				    irq_hw_number_t hwirq);
 
 /**
@@ -256,7 +256,7 @@  extern void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
  * This is a fast path, for use by irq controller code that uses radix tree
  * revmaps
  */
-extern unsigned int irq_radix_revmap_lookup(struct irq_host *host,
+extern unsigned int irq_radix_revmap_lookup(struct irq_domain *host,
 					    irq_hw_number_t hwirq);
 
 /**
@@ -269,7 +269,7 @@  extern unsigned int irq_radix_revmap_lookup(struct irq_host *host,
  * yet and will create the revmap entry with appropriate locking
  */
 
-extern unsigned int irq_linear_revmap(struct irq_host *host,
+extern unsigned int irq_linear_revmap(struct irq_domain *host,
 				      irq_hw_number_t hwirq);
 
 
@@ -284,7 +284,7 @@  extern unsigned int irq_linear_revmap(struct irq_host *host,
  * and that can be used by some irq controllers implementations for things
  * like allocating ranges of numbers for MSIs. The revmaps are left untouched.
  */
-extern unsigned int irq_alloc_virt(struct irq_host *host,
+extern unsigned int irq_alloc_virt(struct irq_domain *host,
 				   unsigned int count,
 				   unsigned int hint);
 
diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h
index e000cce..18d07da 100644
--- a/arch/powerpc/include/asm/mpic.h
+++ b/arch/powerpc/include/asm/mpic.h
@@ -253,7 +253,7 @@  struct mpic_irq_save {
 struct mpic
 {
 	/* The remapper for this MPIC */
-	struct irq_host		*irqhost;
+	struct irq_domain	*irqhost;
 
 	/* The "linux" controller struct */
 	struct irq_chip		hc_irq;
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index ce557f6..e890cc4 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -533,7 +533,7 @@  static unsigned int revmap_trees_allocated;
 static DEFINE_MUTEX(revmap_trees_mutex);
 struct irq_map_entry irq_map[NR_IRQS];
 static unsigned int irq_virq_count = NR_IRQS;
-static struct irq_host *irq_default_host;
+static struct irq_domain *irq_default_host;
 
 irq_hw_number_t virq_to_hw(unsigned int virq)
 {
@@ -541,19 +541,19 @@  irq_hw_number_t virq_to_hw(unsigned int virq)
 }
 EXPORT_SYMBOL_GPL(virq_to_hw);
 
-static int default_irq_host_match(struct irq_host *h, struct device_node *np)
+static int default_irq_host_match(struct irq_domain *h, struct device_node *np)
 {
 	return h->of_node != NULL && h->of_node == np;
 }
 
-struct irq_host *irq_alloc_host(struct device_node *of_node,
+struct irq_domain *irq_alloc_host(struct device_node *of_node,
 				unsigned int revmap_type,
 				unsigned int revmap_arg,
 				struct irq_host_ops *ops,
 				irq_hw_number_t inval_irq)
 {
-	struct irq_host *host;
-	unsigned int size = sizeof(struct irq_host);
+	struct irq_domain *host;
+	unsigned int size = sizeof(struct irq_domain);
 	unsigned int i;
 	unsigned int *rmap;
 	unsigned long flags;
@@ -638,9 +638,9 @@  struct irq_host *irq_alloc_host(struct device_node *of_node,
 	return host;
 }
 
-struct irq_host *irq_find_host(struct device_node *node)
+struct irq_domain *irq_find_host(struct device_node *node)
 {
-	struct irq_host *h, *found = NULL;
+	struct irq_domain *h, *found = NULL;
 	unsigned long flags;
 
 	/* We might want to match the legacy controller last since
@@ -659,7 +659,7 @@  struct irq_host *irq_find_host(struct device_node *node)
 }
 EXPORT_SYMBOL_GPL(irq_find_host);
 
-void irq_set_default_host(struct irq_host *host)
+void irq_set_default_host(struct irq_domain *host)
 {
 	pr_debug("irq: Default host set to @0x%p\n", host);
 
@@ -675,7 +675,7 @@  void irq_set_virq_count(unsigned int count)
 		irq_virq_count = count;
 }
 
-static int irq_setup_virq(struct irq_host *host, unsigned int virq,
+static int irq_setup_virq(struct irq_domain *host, unsigned int virq,
 			    irq_hw_number_t hwirq)
 {
 	struct irq_desc *desc;
@@ -706,7 +706,7 @@  error:
 	return -1;
 }
 
-unsigned int irq_create_direct_mapping(struct irq_host *host)
+unsigned int irq_create_direct_mapping(struct irq_domain *host)
 {
 	unsigned int virq;
 
@@ -730,7 +730,7 @@  unsigned int irq_create_direct_mapping(struct irq_host *host)
 	return virq;
 }
 
-unsigned int irq_create_mapping(struct irq_host *host,
+unsigned int irq_create_mapping(struct irq_domain *host,
 				irq_hw_number_t hwirq)
 {
 	unsigned int virq, hint;
@@ -789,7 +789,7 @@  EXPORT_SYMBOL_GPL(irq_create_mapping);
 unsigned int irq_create_of_mapping(struct device_node *controller,
 				   const u32 *intspec, unsigned int intsize)
 {
-	struct irq_host *host;
+	struct irq_domain *host;
 	irq_hw_number_t hwirq;
 	unsigned int type = IRQ_TYPE_NONE;
 	unsigned int virq;
@@ -828,7 +828,7 @@  EXPORT_SYMBOL_GPL(irq_create_of_mapping);
 
 void irq_dispose_mapping(unsigned int virq)
 {
-	struct irq_host *host;
+	struct irq_domain *host;
 	irq_hw_number_t hwirq;
 
 	if (virq == NO_IRQ)
@@ -887,7 +887,7 @@  void irq_dispose_mapping(unsigned int virq)
 }
 EXPORT_SYMBOL_GPL(irq_dispose_mapping);
 
-unsigned int irq_find_mapping(struct irq_host *host,
+unsigned int irq_find_mapping(struct irq_domain *host,
 			      irq_hw_number_t hwirq)
 {
 	unsigned int i;
@@ -920,7 +920,7 @@  unsigned int irq_find_mapping(struct irq_host *host,
 EXPORT_SYMBOL_GPL(irq_find_mapping);
 
 
-unsigned int irq_radix_revmap_lookup(struct irq_host *host,
+unsigned int irq_radix_revmap_lookup(struct irq_domain *host,
 				     irq_hw_number_t hwirq)
 {
 	struct irq_map_entry *ptr;
@@ -955,7 +955,7 @@  unsigned int irq_radix_revmap_lookup(struct irq_host *host,
 	return virq;
 }
 
-void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
+void irq_radix_revmap_insert(struct irq_domain *host, unsigned int virq,
 			     irq_hw_number_t hwirq)
 {
 
@@ -978,7 +978,7 @@  void irq_radix_revmap_insert(struct irq_host *host, unsigned int virq,
 	}
 }
 
-unsigned int irq_linear_revmap(struct irq_host *host,
+unsigned int irq_linear_revmap(struct irq_domain *host,
 			       irq_hw_number_t hwirq)
 {
 	unsigned int *revmap;
@@ -1001,7 +1001,7 @@  unsigned int irq_linear_revmap(struct irq_host *host,
 	return revmap[hwirq];
 }
 
-unsigned int irq_alloc_virt(struct irq_host *host,
+unsigned int irq_alloc_virt(struct irq_domain *host,
 			    unsigned int count,
 			    unsigned int hint)
 {
@@ -1058,7 +1058,7 @@  void irq_free_virt(unsigned int virq, unsigned int count)
 
 	raw_spin_lock_irqsave(&irq_big_lock, flags);
 	for (i = virq; i < (virq + count); i++) {
-		struct irq_host *host;
+		struct irq_domain *host;
 
 		if (i < NUM_ISA_INTERRUPTS ||
 		    (virq + count) > irq_virq_count)
@@ -1095,7 +1095,7 @@  int arch_init_chip_data(struct irq_desc *desc, int node)
 /* We need to create the radix trees late */
 static int irq_late_init(void)
 {
-	struct irq_host *h;
+	struct irq_domain *h;
 	unsigned int i;
 
 	/*
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
index 4ecf4cf..32e784e 100644
--- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
+++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
@@ -21,7 +21,7 @@ 
 #include <asm/prom.h>
 
 static struct device_node *cpld_pic_node;
-static struct irq_host *cpld_pic_host;
+static struct irq_domain *cpld_pic_host;
 
 /*
  * Bits to ignore in the misc_status register
@@ -123,13 +123,13 @@  cpld_pic_cascade(unsigned int irq, struct irq_desc *desc)
 }
 
 static int
-cpld_pic_host_match(struct irq_host *h, struct device_node *node)
+cpld_pic_host_match(struct irq_domain *h, struct device_node *node)
 {
 	return cpld_pic_node == node;
 }
 
 static int
-cpld_pic_host_map(struct irq_host *h, unsigned int virq,
+cpld_pic_host_map(struct irq_domain *h, unsigned int virq,
 			     irq_hw_number_t hw)
 {
 	irq_to_desc(virq)->status |= IRQ_LEVEL;
diff --git a/arch/powerpc/platforms/52xx/media5200.c b/arch/powerpc/platforms/52xx/media5200.c
index 2c7780c..f10ae9d 100644
--- a/arch/powerpc/platforms/52xx/media5200.c
+++ b/arch/powerpc/platforms/52xx/media5200.c
@@ -45,7 +45,7 @@  static struct of_device_id mpc5200_gpio_ids[] __initdata = {
 struct media5200_irq {
 	void __iomem *regs;
 	spinlock_t lock;
-	struct irq_host *irqhost;
+	struct irq_domain *irqhost;
 };
 struct media5200_irq media5200_irq;
 
@@ -111,7 +111,7 @@  void media5200_irq_cascade(unsigned int virq, struct irq_desc *desc)
 	raw_spin_unlock(&desc->lock);
 }
 
-static int media5200_irq_map(struct irq_host *h, unsigned int virq,
+static int media5200_irq_map(struct irq_domain *h, unsigned int virq,
 			     irq_hw_number_t hw)
 {
 	struct irq_desc *desc = irq_to_desc(virq);
@@ -126,7 +126,7 @@  static int media5200_irq_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int media5200_irq_xlate(struct irq_host *h, struct device_node *ct,
+static int media5200_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)
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index e0d703c..fb0c795 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -80,7 +80,7 @@  MODULE_LICENSE("GPL");
  * @regs: virtual address of GPT registers
  * @lock: spinlock to coordinate between different functions.
  * @gc: gpio_chip instance structure; used when GPIO is enabled
- * @irqhost: Pointer to irq_host instance; used when IRQ mode is supported
+ * @irqhost: Pointer to irq_domain instance; used when IRQ mode is supported
  * @wdt_mode: only relevant for gpt0: bit 0 (MPC52xx_GPT_CAN_WDT) indicates
  *   if the gpt may be used as wdt, bit 1 (MPC52xx_GPT_IS_WDT) indicates
  *   if the timer is actively used as wdt which blocks gpt functions
@@ -90,7 +90,7 @@  struct mpc52xx_gpt_priv {
 	struct device *dev;
 	struct mpc52xx_gpt __iomem *regs;
 	spinlock_t lock;
-	struct irq_host *irqhost;
+	struct irq_domain *irqhost;
 	u32 ipb_freq;
 	u8 wdt_mode;
 
@@ -203,7 +203,7 @@  void mpc52xx_gpt_irq_cascade(unsigned int virq, struct irq_desc *desc)
 	}
 }
 
-static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq,
+static int mpc52xx_gpt_irq_map(struct irq_domain *h, unsigned int virq,
 			       irq_hw_number_t hw)
 {
 	struct mpc52xx_gpt_priv *gpt = h->host_data;
@@ -215,7 +215,7 @@  static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct,
+static int mpc52xx_gpt_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)
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 4bf4bf7..7d83308 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -132,7 +132,7 @@  static struct of_device_id mpc52xx_sdma_ids[] __initdata = {
 
 static struct mpc52xx_intr __iomem *intr;
 static struct mpc52xx_sdma __iomem *sdma;
-static struct irq_host *mpc52xx_irqhost = NULL;
+static struct irq_domain *mpc52xx_irqhost = NULL;
 
 static unsigned char mpc52xx_map_senses[4] = {
 	IRQ_TYPE_LEVEL_HIGH,
@@ -354,7 +354,7 @@  static int mpc52xx_is_extirq(int l1, int l2)
 /**
  * mpc52xx_irqhost_xlate - translate virq# from device tree interrupts property
  */
-static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct,
+static int mpc52xx_irqhost_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)
@@ -388,7 +388,7 @@  static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct,
 /**
  * mpc52xx_irqhost_map - Hook to map from virq to an irq_chip structure
  */
-static int mpc52xx_irqhost_map(struct irq_host *h, unsigned int virq,
+static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq,
 			       irq_hw_number_t irq)
 {
 	int l1irq;
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index 5a55d87..47b8d5d 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -29,7 +29,7 @@  static DEFINE_RAW_SPINLOCK(pci_pic_lock);
 
 struct pq2ads_pci_pic {
 	struct device_node *node;
-	struct irq_host *host;
+	struct irq_domain *host;
 
 	struct {
 		u32 stat;
@@ -104,7 +104,7 @@  static void pq2ads_pci_irq_demux(unsigned int irq, struct irq_desc *desc)
 	}
 }
 
-static int pci_pic_host_map(struct irq_host *h, unsigned int virq,
+static int pci_pic_host_map(struct irq_domain *h, unsigned int virq,
 			    irq_hw_number_t hw)
 {
 	irq_to_desc(virq)->status |= IRQ_LEVEL;
@@ -113,7 +113,7 @@  static int pci_pic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static void pci_host_unmap(struct irq_host *h, unsigned int virq)
+static void pci_host_unmap(struct irq_domain *h, unsigned int virq)
 {
 	/* remove chip and handler */
 	set_irq_chip_data(virq, NULL);
@@ -128,7 +128,7 @@  static struct irq_host_ops pci_pic_host_ops = {
 int __init pq2ads_pci_init_irq(void)
 {
 	struct pq2ads_pci_pic *priv;
-	struct irq_host *host;
+	struct irq_domain *host;
 	struct device_node *np;
 	int ret = -ENODEV;
 	int irq;
diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
index d48527f..fe51afe 100644
--- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
+++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
@@ -53,7 +53,7 @@  static struct socrates_fpga_irq_info fpga_irqs[SOCRATES_FPGA_NUM_IRQS] = {
 static DEFINE_RAW_SPINLOCK(socrates_fpga_pic_lock);
 
 static void __iomem *socrates_fpga_pic_iobase;
-static struct irq_host *socrates_fpga_pic_irq_host;
+static struct irq_domain *socrates_fpga_pic_irq_host;
 static unsigned int socrates_fpga_irqs[3];
 
 static inline uint32_t socrates_fpga_pic_read(int reg)
@@ -241,7 +241,7 @@  static struct irq_chip socrates_fpga_pic_chip = {
 	.set_type	= socrates_fpga_pic_set_type,
 };
 
-static int socrates_fpga_pic_host_map(struct irq_host *h, unsigned int virq,
+static int socrates_fpga_pic_host_map(struct irq_domain *h, unsigned int virq,
 		irq_hw_number_t hwirq)
 {
 	/* All interrupts are LEVEL sensitive */
@@ -252,7 +252,7 @@  static int socrates_fpga_pic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int socrates_fpga_pic_host_xlate(struct irq_host *h,
+static int socrates_fpga_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)
 {
@@ -293,7 +293,7 @@  void socrates_fpga_pic_init(struct device_node *pic)
 	unsigned long flags;
 	int i;
 
-	/* Setup an irq_host structure */
+	/* Setup an irq_domain structure */
 	socrates_fpga_pic_irq_host = irq_alloc_host(pic, IRQ_HOST_MAP_LINEAR,
 			SOCRATES_FPGA_NUM_IRQS,	&socrates_fpga_pic_host_ops,
 			SOCRATES_FPGA_NUM_IRQS);
diff --git a/arch/powerpc/platforms/86xx/gef_pic.c b/arch/powerpc/platforms/86xx/gef_pic.c
index 6df9e25..fed34ab 100644
--- a/arch/powerpc/platforms/86xx/gef_pic.c
+++ b/arch/powerpc/platforms/86xx/gef_pic.c
@@ -52,7 +52,7 @@ 
 static DEFINE_RAW_SPINLOCK(gef_pic_lock);
 
 static void __iomem *gef_pic_irq_reg_base;
-static struct irq_host *gef_pic_irq_host;
+static struct irq_domain *gef_pic_irq_host;
 static int gef_pic_cascade_irq;
 
 /*
@@ -159,7 +159,7 @@  static struct irq_chip gef_pic_chip = {
 /* When an interrupt is being configured, this call allows some flexibilty
  * in deciding which irq_chip structure is used
  */
-static int gef_pic_host_map(struct irq_host *h, unsigned int virq,
+static int gef_pic_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hwirq)
 {
 	/* All interrupts are LEVEL sensitive */
@@ -169,7 +169,7 @@  static int gef_pic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int gef_pic_host_xlate(struct irq_host *h, struct device_node *ct,
+static int gef_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)
 {
@@ -217,7 +217,7 @@  void __init gef_pic_init(struct device_node *np)
 		return;
 	}
 
-	/* Setup an irq_host structure */
+	/* Setup an irq_domain structure */
 	gef_pic_irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR,
 					  GEF_PIC_NUM_IRQS,
 					  &gef_pic_host_ops, NO_IRQ);
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index e3e379c..5f88607 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -66,7 +66,7 @@ 
 
 
 struct axon_msic {
-	struct irq_host *irq_host;
+	struct irq_domain *irq_host;
 	__le32 *fifo_virt;
 	dma_addr_t fifo_phys;
 	dcr_host_t dcr_host;
@@ -150,7 +150,7 @@  static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
 
 static struct axon_msic *find_msi_translator(struct pci_dev *dev)
 {
-	struct irq_host *irq_host;
+	struct irq_domain *irq_host;
 	struct device_node *dn, *tmp;
 	const phandle *ph;
 	struct axon_msic *msic = NULL;
@@ -184,7 +184,7 @@  static struct axon_msic *find_msi_translator(struct pci_dev *dev)
 
 	irq_host = irq_find_host(dn);
 	if (!irq_host) {
-		dev_dbg(&dev->dev, "axon_msi: no irq_host found for node %s\n",
+		dev_dbg(&dev->dev, "axon_msi: no irq_domain found for node %s\n",
 			dn->full_name);
 		goto out_error;
 	}
@@ -316,7 +316,7 @@  static struct irq_chip msic_irq_chip = {
 	.name		= "AXON-MSI",
 };
 
-static int msic_host_map(struct irq_host *h, unsigned int virq,
+static int msic_host_map(struct irq_domain *h, unsigned int virq,
 			 irq_hw_number_t hw)
 {
 	set_irq_chip_and_handler(virq, &msic_irq_chip, handle_simple_irq);
@@ -395,7 +395,7 @@  static int axon_msi_probe(struct platform_device *device,
 	msic->irq_host = irq_alloc_host(dn, IRQ_HOST_MAP_NOMAP,
 					NR_IRQS, &msic_host_ops, 0);
 	if (!msic->irq_host) {
-		printk(KERN_ERR "axon_msi: couldn't allocate irq_host for %s\n",
+		printk(KERN_ERR "axon_msi: couldn't allocate irq_domain for %s\n",
 		       dn->full_name);
 		goto out_free_fifo;
 	}
diff --git a/arch/powerpc/platforms/cell/beat_interrupt.c b/arch/powerpc/platforms/cell/beat_interrupt.c
index 682af97..179430d 100644
--- a/arch/powerpc/platforms/cell/beat_interrupt.c
+++ b/arch/powerpc/platforms/cell/beat_interrupt.c
@@ -34,7 +34,7 @@  static DEFINE_RAW_SPINLOCK(beatic_irq_mask_lock);
 static uint64_t	beatic_irq_mask_enable[(MAX_IRQS+255)/64];
 static uint64_t	beatic_irq_mask_ack[(MAX_IRQS+255)/64];
 
-static struct irq_host *beatic_host;
+static struct irq_domain *beatic_host;
 
 /*
  * In this implementation, "virq" == "IRQ plug number",
@@ -122,7 +122,7 @@  static struct irq_chip beatic_pic = {
  *
  * Note that the number (virq) is already assigned at upper layer.
  */
-static void beatic_pic_host_unmap(struct irq_host *h, unsigned int virq)
+static void beatic_pic_host_unmap(struct irq_domain *h, unsigned int virq)
 {
 	beat_destruct_irq_plug(virq);
 }
@@ -133,7 +133,7 @@  static void beatic_pic_host_unmap(struct irq_host *h, unsigned int virq)
  *
  * Note that the number (virq) is already assigned at upper layer.
  */
-static int beatic_pic_host_map(struct irq_host *h, unsigned int virq,
+static int beatic_pic_host_map(struct irq_domain *h, unsigned int virq,
 			       irq_hw_number_t hw)
 {
 	struct irq_desc *desc = irq_to_desc(virq);
@@ -152,7 +152,7 @@  static int beatic_pic_host_map(struct irq_host *h, unsigned int virq,
  * Update binding hardware IRQ number (hw) and Virtuql
  * IRQ number (virq). This is called only once for a given mapping.
  */
-static void beatic_pic_host_remap(struct irq_host *h, unsigned int virq,
+static void beatic_pic_host_remap(struct irq_domain *h, unsigned int virq,
 			       irq_hw_number_t hw)
 {
 	beat_construct_and_connect_irq_plug(virq, hw);
@@ -165,7 +165,7 @@  static void beatic_pic_host_remap(struct irq_host *h, unsigned int virq,
  * Called from irq_create_of_mapping() only.
  * Note: We have only 1 entry to translate.
  */
-static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct,
+static int beatic_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)
@@ -177,7 +177,7 @@  static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct,
 	return 0;
 }
 
-static int beatic_pic_host_match(struct irq_host *h, struct device_node *np)
+static int beatic_pic_host_match(struct irq_domain *h, struct device_node *np)
 {
 	/* Match all */
 	return 1;
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index 10eb1a4..2cfb3ee 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -56,7 +56,7 @@  struct iic {
 
 static DEFINE_PER_CPU(struct iic, cpu_iic);
 #define IIC_NODE_COUNT	2
-static struct irq_host *iic_host;
+static struct irq_domain *iic_host;
 
 /* Convert between "pending" bits and hw irq number */
 static irq_hw_number_t iic_pending_to_hwnum(struct cbe_iic_pending_bits bits)
@@ -184,7 +184,7 @@  void iic_cause_IPI(int cpu, int mesg)
 	out_be64(&per_cpu(cpu_iic, cpu).regs->generate, (0xf - mesg) << 4);
 }
 
-struct irq_host *iic_get_irq_host(int node)
+struct irq_domain *iic_get_irq_host(int node)
 {
 	return iic_host;
 }
@@ -227,7 +227,7 @@  void iic_request_IPIs(void)
 #endif /* CONFIG_SMP */
 
 
-static int iic_host_match(struct irq_host *h, struct device_node *node)
+static int iic_host_match(struct irq_domain *h, struct device_node *node)
 {
 	return of_device_is_compatible(node,
 				    "IBM,CBEA-Internal-Interrupt-Controller");
@@ -279,7 +279,7 @@  out_eoi:
 	raw_spin_unlock(&desc->lock);
 }
 
-static int iic_host_map(struct irq_host *h, unsigned int virq,
+static int iic_host_map(struct irq_domain *h, unsigned int virq,
 			irq_hw_number_t hw)
 {
 	switch (hw & IIC_IRQ_TYPE_MASK) {
@@ -296,7 +296,7 @@  static int iic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int iic_host_xlate(struct irq_host *h, struct device_node *ct,
+static int iic_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)
 
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
index 3f2e557..0d3dcba 100644
--- a/arch/powerpc/platforms/cell/spider-pic.c
+++ b/arch/powerpc/platforms/cell/spider-pic.c
@@ -62,7 +62,7 @@  enum {
 #define SPIDER_IRQ_INVALID	63
 
 struct spider_pic {
-	struct irq_host		*host;
+	struct irq_domain      	*host;
 	void __iomem		*regs;
 	unsigned int		node_id;
 };
@@ -175,7 +175,7 @@  static struct irq_chip spider_pic = {
 	.set_type = spider_set_irq_type,
 };
 
-static int spider_host_map(struct irq_host *h, unsigned int virq,
+static int spider_host_map(struct irq_domain *h, unsigned int virq,
 			irq_hw_number_t hw)
 {
 	set_irq_chip_and_handler(virq, &spider_pic, handle_level_irq);
@@ -186,7 +186,7 @@  static int spider_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int spider_host_xlate(struct irq_host *h, struct device_node *ct,
+static int spider_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)
 
diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
index c278bd3..80021c3 100644
--- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
@@ -96,9 +96,9 @@  static struct irq_chip flipper_pic = {
  *
  */
 
-static struct irq_host *flipper_irq_host;
+static struct irq_domain *flipper_irq_host;
 
-static int flipper_pic_map(struct irq_host *h, unsigned int virq,
+static int flipper_pic_map(struct irq_domain *h, unsigned int virq,
 			   irq_hw_number_t hwirq)
 {
 	set_irq_chip_data(virq, h->host_data);
@@ -107,13 +107,13 @@  static int flipper_pic_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static void flipper_pic_unmap(struct irq_host *h, unsigned int irq)
+static void flipper_pic_unmap(struct irq_domain *h, unsigned int irq)
 {
 	set_irq_chip_data(irq, NULL);
 	set_irq_chip(irq, NULL);
 }
 
-static int flipper_pic_match(struct irq_host *h, struct device_node *np)
+static int flipper_pic_match(struct irq_domain *h, struct device_node *np)
 {
 	return 1;
 }
@@ -137,10 +137,10 @@  static void __flipper_quiesce(void __iomem *io_base)
 	out_be32(io_base + FLIPPER_ICR, 0xffffffff);
 }
 
-struct irq_host * __init flipper_pic_init(struct device_node *np)
+struct irq_domain * __init flipper_pic_init(struct device_node *np)
 {
 	struct device_node *pi;
-	struct irq_host *irq_host = NULL;
+	struct irq_domain *irq_host = NULL;
 	struct resource res;
 	void __iomem *io_base;
 	int retval;
@@ -169,7 +169,7 @@  struct irq_host * __init flipper_pic_init(struct device_node *np)
 	irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, FLIPPER_NR_IRQS,
 				  &flipper_irq_host_ops, -1);
 	if (!irq_host) {
-		pr_err("failed to allocate irq_host\n");
+		pr_err("failed to allocate irq_domain\n");
 		return NULL;
 	}
 
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index a771f91..a41ab12 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -89,9 +89,9 @@  static struct irq_chip hlwd_pic = {
  *
  */
 
-static struct irq_host *hlwd_irq_host;
+static struct irq_domain *hlwd_irq_host;
 
-static int hlwd_pic_map(struct irq_host *h, unsigned int virq,
+static int hlwd_pic_map(struct irq_domain *h, unsigned int virq,
 			   irq_hw_number_t hwirq)
 {
 	set_irq_chip_data(virq, h->host_data);
@@ -100,7 +100,7 @@  static int hlwd_pic_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static void hlwd_pic_unmap(struct irq_host *h, unsigned int irq)
+static void hlwd_pic_unmap(struct irq_domain *h, unsigned int irq)
 {
 	set_irq_chip_data(irq, NULL);
 	set_irq_chip(irq, NULL);
@@ -111,7 +111,7 @@  static struct irq_host_ops hlwd_irq_host_ops = {
 	.unmap = hlwd_pic_unmap,
 };
 
-static unsigned int __hlwd_pic_get_irq(struct irq_host *h)
+static unsigned int __hlwd_pic_get_irq(struct irq_domain *h)
 {
 	void __iomem *io_base = h->host_data;
 	int irq;
@@ -129,7 +129,7 @@  static unsigned int __hlwd_pic_get_irq(struct irq_host *h)
 static void hlwd_pic_irq_cascade(unsigned int cascade_virq,
 				      struct irq_desc *desc)
 {
-	struct irq_host *irq_host = get_irq_data(cascade_virq);
+	struct irq_domain *irq_host = get_irq_data(cascade_virq);
 	unsigned int virq;
 
 	raw_spin_lock(&desc->lock);
@@ -161,9 +161,9 @@  static void __hlwd_quiesce(void __iomem *io_base)
 	out_be32(io_base + HW_BROADWAY_ICR, 0xffffffff);
 }
 
-struct irq_host *hlwd_pic_init(struct device_node *np)
+struct irq_domain *hlwd_pic_init(struct device_node *np)
 {
-	struct irq_host *irq_host;
+	struct irq_domain *irq_host;
 	struct resource res;
 	void __iomem *io_base;
 	int retval;
@@ -186,7 +186,7 @@  struct irq_host *hlwd_pic_init(struct device_node *np)
 	irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, HLWD_NR_IRQS,
 				  &hlwd_irq_host_ops, -1);
 	if (!irq_host) {
-		pr_err("failed to allocate irq_host\n");
+		pr_err("failed to allocate irq_domain\n");
 		return NULL;
 	}
 	irq_host->host_data = io_base;
@@ -206,7 +206,7 @@  unsigned int hlwd_pic_get_irq(void)
 
 void hlwd_pic_probe(void)
 {
-	struct irq_host *host;
+	struct irq_domain *host;
 	struct device_node *np;
 	const u32 *interrupts;
 	int cascade_virq;
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
index ba446bf..948af76 100644
--- a/arch/powerpc/platforms/iseries/irq.c
+++ b/arch/powerpc/platforms/iseries/irq.c
@@ -338,7 +338,7 @@  unsigned int iSeries_get_irq(void)
 
 #ifdef CONFIG_PCI
 
-static int iseries_irq_host_map(struct irq_host *h, unsigned int virq,
+static int iseries_irq_host_map(struct irq_domain *h, unsigned int virq,
 				irq_hw_number_t hw)
 {
 	set_irq_chip_and_handler(virq, &iseries_pic, handle_fasteoi_irq);
@@ -346,7 +346,7 @@  static int iseries_irq_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int iseries_irq_host_match(struct irq_host *h, struct device_node *np)
+static int iseries_irq_host_match(struct irq_domain *h, struct device_node *np)
 {
 	/* Match all */
 	return 1;
@@ -364,7 +364,7 @@  static struct irq_host_ops iseries_irq_host_ops = {
 void __init iSeries_init_IRQ(void)
 {
 	/* Register PCI event handler and open an event path */
-	struct irq_host *host;
+	struct irq_domain *host;
 	int ret;
 
 	/*
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 890d5f7..db69f2b 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -67,7 +67,7 @@  static DEFINE_RAW_SPINLOCK(pmac_pic_lock);
 static unsigned long ppc_lost_interrupts[NR_MASK_WORDS];
 static unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
 static int pmac_irq_cascade = -1;
-static struct irq_host *pmac_pic_host;
+static struct irq_domain *pmac_pic_host;
 
 static void __pmac_retrigger(unsigned int irq_nr)
 {
@@ -280,13 +280,13 @@  static struct irqaction gatwick_cascade_action = {
 	.name		= "cascade",
 };
 
-static int pmac_pic_host_match(struct irq_host *h, struct device_node *node)
+static int pmac_pic_host_match(struct irq_domain *h, struct device_node *node)
 {
 	/* We match all, we don't always have a node anyway */
 	return 1;
 }
 
-static int pmac_pic_host_map(struct irq_host *h, unsigned int virq,
+static int pmac_pic_host_map(struct irq_domain *h, unsigned int virq,
 			     irq_hw_number_t hw)
 {
 	struct irq_desc *desc = irq_to_desc(virq);
@@ -306,7 +306,7 @@  static int pmac_pic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int pmac_pic_host_xlate(struct irq_host *h, struct device_node *ct,
+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)
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index 59d9712..71fec2e 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -659,12 +659,12 @@  static void __maybe_unused _dump_mask(struct ps3_private *pd,
 static void dump_bmp(struct ps3_private* pd) {};
 #endif /* defined(DEBUG) */
 
-static void ps3_host_unmap(struct irq_host *h, unsigned int virq)
+static void ps3_host_unmap(struct irq_domain *h, unsigned int virq)
 {
 	set_irq_chip_data(virq, NULL);
 }
 
-static int ps3_host_map(struct irq_host *h, unsigned int virq,
+static int ps3_host_map(struct irq_domain *h, unsigned int virq,
 	irq_hw_number_t hwirq)
 {
 	pr_debug("%s:%d: hwirq %lu, virq %u\n", __func__, __LINE__, hwirq,
@@ -675,7 +675,7 @@  static int ps3_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int ps3_host_match(struct irq_host *h, struct device_node *np)
+static int ps3_host_match(struct irq_domain *h, struct device_node *np)
 {
 	/* Match all */
 	return 1;
@@ -733,7 +733,7 @@  void __init ps3_init_IRQ(void)
 {
 	int result;
 	unsigned cpu;
-	struct irq_host *host;
+	struct irq_domain *host;
 
 	host = irq_alloc_host(NULL, IRQ_HOST_MAP_NOMAP, 0, &ps3_host_ops,
 		PS3_INVALID_OUTLET);
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 7b96e5a..d9006d7 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -33,7 +33,7 @@ 
 #include "xics.h"
 #include "plpar_wrappers.h"
 
-static struct irq_host *xics_host;
+static struct irq_domain *xics_host;
 
 #define XICS_IPI		2
 #define XICS_IRQ_SPURIOUS	0
@@ -452,7 +452,7 @@  static struct irq_chip xics_pic_lpar = {
 /* Points to the irq_chip we're actually using */
 static struct irq_chip *xics_irq_chip;
 
-static int xics_host_match(struct irq_host *h, struct device_node *node)
+static int xics_host_match(struct irq_domain *h, struct device_node *node)
 {
 	/* IBM machines have interrupt parents of various funky types for things
 	 * like vdevices, events, etc... The trick we use here is to match
@@ -461,7 +461,7 @@  static int xics_host_match(struct irq_host *h, struct device_node *node)
 	return !of_device_is_compatible(node, "chrp,iic");
 }
 
-static int xics_host_map(struct irq_host *h, unsigned int virq,
+static int xics_host_map(struct irq_domain *h, unsigned int virq,
 			 irq_hw_number_t hw)
 {
 	pr_devel("xics: map virq %d, hwirq 0x%lx\n", virq, hw);
@@ -474,7 +474,7 @@  static int xics_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int xics_host_xlate(struct irq_host *h, struct device_node *ct,
+static int xics_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)
 
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
index 0085212..2f78da2 100644
--- a/arch/powerpc/sysdev/cpm1.c
+++ b/arch/powerpc/sysdev/cpm1.c
@@ -54,7 +54,7 @@  cpm8xx_t __iomem *cpmp;  /* Pointer to comm processor space */
 immap_t __iomem *mpc8xx_immr;
 static cpic8xx_t __iomem *cpic_reg;
 
-static struct irq_host *cpm_pic_host;
+static struct irq_domain *cpm_pic_host;
 
 static void cpm_mask_irq(unsigned int irq)
 {
@@ -98,7 +98,7 @@  int cpm_get_irq(void)
 	return irq_linear_revmap(cpm_pic_host, cpm_vec);
 }
 
-static int cpm_pic_host_map(struct irq_host *h, unsigned int virq,
+static int cpm_pic_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hw)
 {
 	pr_debug("cpm_pic_host_map(%d, 0x%lx)\n", virq, hw);
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index fcea4ff..4e18a8b 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -50,7 +50,7 @@ 
 
 static intctl_cpm2_t __iomem *cpm2_intctl;
 
-static struct irq_host *cpm2_pic_host;
+static struct irq_domain *cpm2_pic_host;
 #define NR_MASK_WORDS   ((NR_IRQS + 31) / 32)
 static unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
 
@@ -221,7 +221,7 @@  unsigned int cpm2_get_irq(void)
 	return irq_linear_revmap(cpm2_pic_host, irq);
 }
 
-static int cpm2_pic_host_map(struct irq_host *h, unsigned int virq,
+static int cpm2_pic_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hw)
 {
 	pr_debug("cpm2_pic_host_map(%d, 0x%lx)\n", virq, hw);
@@ -231,7 +231,7 @@  static int cpm2_pic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int cpm2_pic_host_xlate(struct irq_host *h, struct device_node *ct,
+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)
 {
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 108d76f..977c5e9 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -58,7 +58,7 @@  static struct irq_chip fsl_msi_chip = {
 	.name		= "FSL-MSI",
 };
 
-static int fsl_msi_host_map(struct irq_host *h, unsigned int virq,
+static int fsl_msi_host_map(struct irq_domain *h, unsigned int virq,
 				irq_hw_number_t hw)
 {
 	struct fsl_msi *msi_data = h->host_data;
diff --git a/arch/powerpc/sysdev/fsl_msi.h b/arch/powerpc/sysdev/fsl_msi.h
index 624580c..3852988 100644
--- a/arch/powerpc/sysdev/fsl_msi.h
+++ b/arch/powerpc/sysdev/fsl_msi.h
@@ -24,7 +24,7 @@ 
 #define FSL_PIC_IP_IPIC	0x00000002
 
 struct fsl_msi {
-	struct irq_host *irqhost;
+	struct irq_domain *irqhost;
 
 	unsigned long cascade_irq;
 
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
index 6323e70..ccb2892 100644
--- a/arch/powerpc/sysdev/i8259.c
+++ b/arch/powerpc/sysdev/i8259.c
@@ -25,7 +25,7 @@  static unsigned char cached_8259[2] = { 0xff, 0xff };
 
 static DEFINE_RAW_SPINLOCK(i8259_lock);
 
-static struct irq_host *i8259_host;
+static struct irq_domain *i8259_host;
 
 /*
  * Acknowledge the IRQ using either the PCI host bridge's interrupt
@@ -163,12 +163,12 @@  static struct resource pic_edgectrl_iores = {
 	.flags = IORESOURCE_BUSY,
 };
 
-static int i8259_host_match(struct irq_host *h, struct device_node *node)
+static int i8259_host_match(struct irq_domain *h, struct device_node *node)
 {
 	return h->of_node == NULL || h->of_node == node;
 }
 
-static int i8259_host_map(struct irq_host *h, unsigned int virq,
+static int i8259_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hw)
 {
 	pr_debug("i8259_host_map(%d, 0x%lx)\n", virq, hw);
@@ -185,7 +185,7 @@  static int i8259_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static void i8259_host_unmap(struct irq_host *h, unsigned int virq)
+static void i8259_host_unmap(struct irq_domain *h, unsigned int virq)
 {
 	/* Make sure irq is masked in hardware */
 	i8259_mask_irq(virq);
@@ -197,7 +197,7 @@  static void i8259_host_unmap(struct irq_host *h, unsigned int virq)
 	synchronize_irq(virq);
 }
 
-static int i8259_host_xlate(struct irq_host *h, struct device_node *ct,
+static int i8259_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)
 {
@@ -224,7 +224,7 @@  static struct irq_host_ops i8259_host_ops = {
 	.xlate = i8259_host_xlate,
 };
 
-struct irq_host *i8259_get_host(void)
+struct irq_domain *i8259_get_host(void)
 {
 	return i8259_host;
 }
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index d7b9b9c..ac0bd54 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -676,13 +676,13 @@  static struct irq_chip ipic_edge_irq_chip = {
 	.set_type	= ipic_set_irq_type,
 };
 
-static int ipic_host_match(struct irq_host *h, struct device_node *node)
+static int ipic_host_match(struct irq_domain *h, struct device_node *node)
 {
 	/* Exact match, unless ipic node is NULL */
 	return h->of_node == NULL || h->of_node == node;
 }
 
-static int ipic_host_map(struct irq_host *h, unsigned int virq,
+static int ipic_host_map(struct irq_domain *h, unsigned int virq,
 			 irq_hw_number_t hw)
 {
 	struct ipic *ipic = h->host_data;
@@ -696,7 +696,7 @@  static int ipic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int ipic_host_xlate(struct irq_host *h, struct device_node *ct,
+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)
 
diff --git a/arch/powerpc/sysdev/ipic.h b/arch/powerpc/sysdev/ipic.h
index 9391c57..fe31a00 100644
--- a/arch/powerpc/sysdev/ipic.h
+++ b/arch/powerpc/sysdev/ipic.h
@@ -43,7 +43,7 @@  struct ipic {
 	volatile u32 __iomem	*regs;
 
 	/* The remapper for this IPIC */
-	struct irq_host		*irqhost;
+	struct irq_domain	*irqhost;
 };
 
 struct ipic_info {
diff --git a/arch/powerpc/sysdev/mpc8xx_pic.c b/arch/powerpc/sysdev/mpc8xx_pic.c
index 8c27d26..f4bf039 100644
--- a/arch/powerpc/sysdev/mpc8xx_pic.c
+++ b/arch/powerpc/sysdev/mpc8xx_pic.c
@@ -18,7 +18,7 @@ 
 
 extern int cpm_get_irq(struct pt_regs *regs);
 
-static struct irq_host *mpc8xx_pic_host;
+static struct irq_domain *mpc8xx_pic_host;
 #define NR_MASK_WORDS   ((NR_IRQS + 31) / 32)
 static unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
 static sysconf8xx_t __iomem *siu_reg;
@@ -118,7 +118,7 @@  unsigned int mpc8xx_get_irq(void)
 
 }
 
-static int mpc8xx_pic_host_map(struct irq_host *h, unsigned int virq,
+static int mpc8xx_pic_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hw)
 {
 	pr_debug("mpc8xx_pic_host_map(%d, 0x%lx)\n", virq, hw);
@@ -129,7 +129,7 @@  static int mpc8xx_pic_host_map(struct irq_host *h, unsigned int virq,
 }
 
 
-static int mpc8xx_pic_host_xlate(struct irq_host *h, struct device_node *ct,
+static int mpc8xx_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)
 {
diff --git a/arch/powerpc/sysdev/mpc8xxx_gpio.c b/arch/powerpc/sysdev/mpc8xxx_gpio.c
index c48cd81..7fa32f1 100644
--- a/arch/powerpc/sysdev/mpc8xxx_gpio.c
+++ b/arch/powerpc/sysdev/mpc8xxx_gpio.c
@@ -37,7 +37,7 @@  struct mpc8xxx_gpio_chip {
 	 * open drain mode safely
 	 */
 	u32 data;
-	struct irq_host *irq;
+	struct irq_domain *irq;
 	void *of_dev_id_data;
 };
 
@@ -270,7 +270,7 @@  static struct irq_chip mpc8xxx_irq_chip = {
 	.set_type	= mpc8xxx_irq_set_type,
 };
 
-static int mpc8xxx_gpio_irq_map(struct irq_host *h, unsigned int virq,
+static int mpc8xxx_gpio_irq_map(struct irq_domain *h, unsigned int virq,
 				irq_hw_number_t hw)
 {
 	struct mpc8xxx_gpio_chip *mpc8xxx_gc = h->host_data;
@@ -285,7 +285,7 @@  static int mpc8xxx_gpio_irq_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int mpc8xxx_gpio_irq_xlate(struct irq_host *h, struct device_node *ct,
+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)
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 7c13426..a52e257 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -931,13 +931,13 @@  static struct irq_chip mpic_irq_ht_chip = {
 #endif /* CONFIG_MPIC_U3_HT_IRQS */
 
 
-static int mpic_host_match(struct irq_host *h, struct device_node *node)
+static int mpic_host_match(struct irq_domain *h, struct device_node *node)
 {
 	/* Exact match, unless mpic node is NULL */
 	return h->of_node == NULL || h->of_node == node;
 }
 
-static int mpic_host_map(struct irq_host *h, unsigned int virq,
+static int mpic_host_map(struct irq_domain *h, unsigned int virq,
 			 irq_hw_number_t hw)
 {
 	struct mpic *mpic = h->host_data;
@@ -987,7 +987,7 @@  static int mpic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int mpic_host_xlate(struct irq_host *h, struct device_node *ct,
+static int mpic_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)
 
diff --git a/arch/powerpc/sysdev/mv64x60_pic.c b/arch/powerpc/sysdev/mv64x60_pic.c
index 485b924..33fbc90 100644
--- a/arch/powerpc/sysdev/mv64x60_pic.c
+++ b/arch/powerpc/sysdev/mv64x60_pic.c
@@ -70,7 +70,7 @@  static u32 mv64x60_cached_low_mask;
 static u32 mv64x60_cached_high_mask = MV64X60_HIGH_GPP_GROUPS;
 static u32 mv64x60_cached_gpp_mask;
 
-static struct irq_host *mv64x60_irq_host;
+static struct irq_domain *mv64x60_irq_host;
 
 /*
  * mv64x60_chip_low functions
@@ -208,7 +208,7 @@  static struct irq_chip *mv64x60_chips[] = {
 	[MV64x60_LEVEL1_GPP]  = &mv64x60_chip_gpp,
 };
 
-static int mv64x60_host_map(struct irq_host *h, unsigned int virq,
+static int mv64x60_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hwirq)
 {
 	int level1;
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c
index 541ba98..f28fd8f 100644
--- a/arch/powerpc/sysdev/qe_lib/qe_ic.c
+++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c
@@ -243,13 +243,13 @@  static struct irq_chip qe_ic_irq_chip = {
 	.mask_ack = qe_ic_mask_irq,
 };
 
-static int qe_ic_host_match(struct irq_host *h, struct device_node *node)
+static int qe_ic_host_match(struct irq_domain *h, struct device_node *node)
 {
 	/* Exact match, unless qe_ic node is NULL */
 	return h->of_node == NULL || h->of_node == node;
 }
 
-static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
+static int qe_ic_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hw)
 {
 	struct qe_ic *qe_ic = h->host_data;
@@ -270,7 +270,7 @@  static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int qe_ic_host_xlate(struct irq_host *h, struct device_node *ct,
+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)
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.h b/arch/powerpc/sysdev/qe_lib/qe_ic.h
index c1361d0..c327872 100644
--- a/arch/powerpc/sysdev/qe_lib/qe_ic.h
+++ b/arch/powerpc/sysdev/qe_lib/qe_ic.h
@@ -79,7 +79,7 @@  struct qe_ic {
 	volatile u32 __iomem *regs;
 
 	/* The remapper for this QEIC */
-	struct irq_host *irqhost;
+	struct irq_domain *irqhost;
 
 	/* The "linux" controller struct */
 	struct irq_chip hc_irq;
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 0ab9281..7a9b37a 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -51,7 +51,7 @@ 
 u32 tsi108_pci_cfg_base;
 static u32 tsi108_pci_cfg_phys;
 u32 tsi108_csr_vir_base;
-static struct irq_host *pci_irq_host;
+static struct irq_domain *pci_irq_host;
 
 extern u32 get_vir_csrbase(void);
 extern u32 tsi108_read_reg(u32 reg_offset);
@@ -382,7 +382,7 @@  static struct irq_chip tsi108_pci_irq = {
 	.unmask = tsi108_pci_irq_enable,
 };
 
-static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
+static int pci_irq_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)
 {
@@ -391,7 +391,7 @@  static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
 	return 0;
 }
 
-static int pci_irq_host_map(struct irq_host *h, unsigned int virq,
+static int pci_irq_host_map(struct irq_domain *h, unsigned int virq,
 			  irq_hw_number_t hw)
 {	unsigned int irq;
 	DBG("%s(%d, 0x%lx)\n", __func__, virq, hw);
diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c
index 0038fb7..3c835f5 100644
--- a/arch/powerpc/sysdev/uic.c
+++ b/arch/powerpc/sysdev/uic.c
@@ -52,7 +52,7 @@  struct uic {
 	spinlock_t lock;
 
 	/* The remapper for this UIC */
-	struct irq_host	*irqhost;
+	struct irq_domain	*irqhost;
 };
 
 static void uic_unmask_irq(unsigned int virq)
@@ -185,7 +185,7 @@  static struct irq_chip uic_irq_chip = {
 	.set_type	= uic_set_irq_type,
 };
 
-static int uic_host_map(struct irq_host *h, unsigned int virq,
+static int uic_host_map(struct irq_domain *h, unsigned int virq,
 			irq_hw_number_t hw)
 {
 	struct uic *uic = h->host_data;
@@ -201,7 +201,7 @@  static int uic_host_map(struct irq_host *h, unsigned int virq,
 	return 0;
 }
 
-static int uic_host_xlate(struct irq_host *h, struct device_node *ct,
+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)
 
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index 1e0ccfa..f6d18cb 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -40,7 +40,7 @@ 
 #define XINTC_IVR	24	/* Interrupt Vector */
 #define XINTC_MER	28	/* Master Enable */
 
-static struct irq_host *master_irqhost;
+static struct irq_domain *master_irqhost;
 
 #define XILINX_INTC_MAXIRQS	(32)
 
@@ -147,7 +147,7 @@  static struct irq_chip xilinx_intc_edge_irqchip = {
 /**
  * xilinx_intc_xlate - translate virq# from device tree interrupts property
  */
-static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
+static int xilinx_intc_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)
@@ -167,7 +167,7 @@  static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
 
 	return 0;
 }
-static int xilinx_intc_map(struct irq_host *h, unsigned int virq,
+static int xilinx_intc_map(struct irq_domain *h, unsigned int virq,
 				  irq_hw_number_t irq)
 {
 	set_irq_chip_data(virq, h->host_data);
@@ -188,10 +188,10 @@  static struct irq_host_ops xilinx_intc_ops = {
 	.xlate = xilinx_intc_xlate,
 };
 
-struct irq_host * __init
+struct irq_domain * __init
 xilinx_intc_init(struct device_node *np)
 {
-	struct irq_host * irq;
+	struct irq_domain * irq;
 	void * regs;
 
 	/* Find and map the intc registers */
@@ -206,7 +206,7 @@  xilinx_intc_init(struct device_node *np)
 	out_be32(regs + XINTC_IAR, ~(u32) 0); /* Acknowledge pending irqs */
 	out_be32(regs + XINTC_MER, 0x3UL); /* Turn on the Master Enable. */
 
-	/* Allocate and initialize an irq_host structure. */
+	/* Allocate and initialize an irq_domain structure. */
 	irq = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, XILINX_INTC_MAXIRQS,
 			     &xilinx_intc_ops, -1);
 	if (!irq)