Subject: Re: [PATCH] Globally s/struct irq_host/struct irq_domain/

From: Grant Likely <[email-masked]>
Date: Fri, 21 Jan 2011 10:13:14 -0700

On Wed, Jan 12, 2011 at 07:53:11AM -0600, Jon Loeliger wrote:
> From: Jon Loeliger <[email-masked]>
> 
> 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 <[email-masked]>

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
> [email-masked]
> https://lists.ozlabs.org/listinfo/linuxppc-dev