diff options
Diffstat (limited to 'arch/powerpc/platforms')
| -rw-r--r-- | arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 4 | ||||
| -rw-r--r-- | arch/powerpc/platforms/52xx/media5200.c | 4 | ||||
| -rw-r--r-- | arch/powerpc/platforms/52xx/mpc52xx_pic.c | 79 | ||||
| -rw-r--r-- | arch/powerpc/platforms/82xx/pq2ads-pci-pic.c | 4 | ||||
| -rw-r--r-- | arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 26 | ||||
| -rw-r--r-- | arch/powerpc/platforms/86xx/gef_pic.c | 10 | ||||
| -rw-r--r-- | arch/powerpc/platforms/8xx/m8xx_setup.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/platforms/cell/axon_msi.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/platforms/cell/spider-pic.c | 10 | ||||
| -rw-r--r-- | arch/powerpc/platforms/embedded6xx/flipper-pic.c | 8 | ||||
| -rw-r--r-- | arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 8 | ||||
| -rw-r--r-- | arch/powerpc/platforms/iseries/irq.c | 10 | ||||
| -rw-r--r-- | arch/powerpc/platforms/powermac/pic.c | 12 | ||||
| -rw-r--r-- | arch/powerpc/platforms/pseries/ras.c | 4 | 
14 files changed, 55 insertions, 128 deletions
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c index cfc4b200998..a8bc0d44393 100644 --- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c +++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c @@ -61,7 +61,7 @@ irq_to_pic_bit(unsigned int irq)  static void  cpld_mask_irq(struct irq_data *d)  { -	unsigned int cpld_irq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int cpld_irq = (unsigned int)irqd_to_hwirq(d);  	void __iomem *pic_mask = irq_to_pic_mask(cpld_irq);  	out_8(pic_mask, @@ -71,7 +71,7 @@ cpld_mask_irq(struct irq_data *d)  static void  cpld_unmask_irq(struct irq_data *d)  { -	unsigned int cpld_irq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int cpld_irq = (unsigned int)irqd_to_hwirq(d);  	void __iomem *pic_mask = irq_to_pic_mask(cpld_irq);  	out_8(pic_mask, diff --git a/arch/powerpc/platforms/52xx/media5200.c b/arch/powerpc/platforms/52xx/media5200.c index 57a6a349e93..96f85e5e0cd 100644 --- a/arch/powerpc/platforms/52xx/media5200.c +++ b/arch/powerpc/platforms/52xx/media5200.c @@ -56,7 +56,7 @@ static void media5200_irq_unmask(struct irq_data *d)  	spin_lock_irqsave(&media5200_irq.lock, flags);  	val = in_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE); -	val |= 1 << (MEDIA5200_IRQ_SHIFT + irq_map[d->irq].hwirq); +	val |= 1 << (MEDIA5200_IRQ_SHIFT + irqd_to_hwirq(d));  	out_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE, val);  	spin_unlock_irqrestore(&media5200_irq.lock, flags);  } @@ -68,7 +68,7 @@ static void media5200_irq_mask(struct irq_data *d)  	spin_lock_irqsave(&media5200_irq.lock, flags);  	val = in_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE); -	val &= ~(1 << (MEDIA5200_IRQ_SHIFT + irq_map[d->irq].hwirq)); +	val &= ~(1 << (MEDIA5200_IRQ_SHIFT + irqd_to_hwirq(d)));  	out_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE, val);  	spin_unlock_irqrestore(&media5200_irq.lock, flags);  } diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c index 1dd15400f6f..bb611819b83 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c @@ -157,48 +157,30 @@ static inline void io_be_clrbit(u32 __iomem *addr, int bitno)   */  static void mpc52xx_extirq_mask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_clrbit(&intr->ctrl, 11 - l2irq);  }  static void mpc52xx_extirq_unmask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_setbit(&intr->ctrl, 11 - l2irq);  }  static void mpc52xx_extirq_ack(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_setbit(&intr->ctrl, 27-l2irq);  }  static int mpc52xx_extirq_set_type(struct irq_data *d, unsigned int flow_type)  {  	u32 ctrl_reg, type; -	int irq; -	int l2irq; +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	void *handler = handle_level_irq; -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - -	pr_debug("%s: irq=%x. l2=%d flow_type=%d\n", __func__, irq, l2irq, flow_type); +	pr_debug("%s: irq=%x. l2=%d flow_type=%d\n", __func__, +		(int) irqd_to_hwirq(d), l2irq, flow_type);  	switch (flow_type) {  	case IRQF_TRIGGER_HIGH: type = 0; break; @@ -237,23 +219,13 @@ static int mpc52xx_null_set_type(struct irq_data *d, unsigned int flow_type)  static void mpc52xx_main_mask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_setbit(&intr->main_mask, 16 - l2irq);  }  static void mpc52xx_main_unmask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_clrbit(&intr->main_mask, 16 - l2irq);  } @@ -270,23 +242,13 @@ static struct irq_chip mpc52xx_main_irqchip = {   */  static void mpc52xx_periph_mask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_setbit(&intr->per_mask, 31 - l2irq);  }  static void mpc52xx_periph_unmask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_clrbit(&intr->per_mask, 31 - l2irq);  } @@ -303,34 +265,19 @@ static struct irq_chip mpc52xx_periph_irqchip = {   */  static void mpc52xx_sdma_mask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_setbit(&sdma->IntMask, l2irq);  }  static void mpc52xx_sdma_unmask(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	io_be_clrbit(&sdma->IntMask, l2irq);  }  static void mpc52xx_sdma_ack(struct irq_data *d)  { -	int irq; -	int l2irq; - -	irq = irq_map[d->irq].hwirq; -	l2irq = irq & MPC52xx_IRQ_L2_MASK; - +	int l2irq = irqd_to_hwirq(d) & MPC52xx_IRQ_L2_MASK;  	out_be32(&sdma->IntPend, 1 << l2irq);  } diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c index 4a4eb6ffa12..5d6c34ce0cb 100644 --- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c +++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c @@ -42,7 +42,7 @@ struct pq2ads_pci_pic {  static void pq2ads_pci_mask_irq(struct irq_data *d)  {  	struct pq2ads_pci_pic *priv = irq_data_get_irq_chip_data(d); -	int irq = NUM_IRQS - virq_to_hw(d->irq) - 1; +	int irq = NUM_IRQS - irqd_to_hwirq(d) - 1;  	if (irq != -1) {  		unsigned long flags; @@ -58,7 +58,7 @@ static void pq2ads_pci_mask_irq(struct irq_data *d)  static void pq2ads_pci_unmask_irq(struct irq_data *d)  {  	struct pq2ads_pci_pic *priv = irq_data_get_irq_chip_data(d); -	int irq = NUM_IRQS - virq_to_hw(d->irq) - 1; +	int irq = NUM_IRQS - irqd_to_hwirq(d) - 1;  	if (irq != -1) {  		unsigned long flags; diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c index db864623b4a..12cb9bb2cc6 100644 --- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c +++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c @@ -48,8 +48,6 @@ static struct socrates_fpga_irq_info fpga_irqs[SOCRATES_FPGA_NUM_IRQS] = {  	[8] = {0, IRQ_TYPE_LEVEL_HIGH},  }; -#define socrates_fpga_irq_to_hw(virq)    ((unsigned int)irq_map[virq].hwirq) -  static DEFINE_RAW_SPINLOCK(socrates_fpga_pic_lock);  static void __iomem *socrates_fpga_pic_iobase; @@ -110,11 +108,9 @@ void socrates_fpga_pic_cascade(unsigned int irq, struct irq_desc *desc)  static void socrates_fpga_pic_ack(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq, irq_line; +	unsigned int irq_line, hwirq = irqd_to_hwirq(d);  	uint32_t mask; -	hwirq = socrates_fpga_irq_to_hw(d->irq); -  	irq_line = fpga_irqs[hwirq].irq_line;  	raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags);  	mask = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(irq_line)) @@ -127,12 +123,10 @@ static void socrates_fpga_pic_ack(struct irq_data *d)  static void socrates_fpga_pic_mask(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	int irq_line;  	u32 mask; -	hwirq = socrates_fpga_irq_to_hw(d->irq); -  	irq_line = fpga_irqs[hwirq].irq_line;  	raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags);  	mask = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(irq_line)) @@ -145,12 +139,10 @@ static void socrates_fpga_pic_mask(struct irq_data *d)  static void socrates_fpga_pic_mask_ack(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	int irq_line;  	u32 mask; -	hwirq = socrates_fpga_irq_to_hw(d->irq); -  	irq_line = fpga_irqs[hwirq].irq_line;  	raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags);  	mask = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(irq_line)) @@ -164,12 +156,10 @@ static void socrates_fpga_pic_mask_ack(struct irq_data *d)  static void socrates_fpga_pic_unmask(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	int irq_line;  	u32 mask; -	hwirq = socrates_fpga_irq_to_hw(d->irq); -  	irq_line = fpga_irqs[hwirq].irq_line;  	raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags);  	mask = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(irq_line)) @@ -182,12 +172,10 @@ static void socrates_fpga_pic_unmask(struct irq_data *d)  static void socrates_fpga_pic_eoi(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	int irq_line;  	u32 mask; -	hwirq = socrates_fpga_irq_to_hw(d->irq); -  	irq_line = fpga_irqs[hwirq].irq_line;  	raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags);  	mask = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(irq_line)) @@ -201,12 +189,10 @@ static int socrates_fpga_pic_set_type(struct irq_data *d,  		unsigned int flow_type)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	int polarity;  	u32 mask; -	hwirq = socrates_fpga_irq_to_hw(d->irq); -  	if (fpga_irqs[hwirq].type != IRQ_TYPE_NONE)  		return -EINVAL; diff --git a/arch/powerpc/platforms/86xx/gef_pic.c b/arch/powerpc/platforms/86xx/gef_pic.c index 0beec7d5566..94594e58594 100644 --- a/arch/powerpc/platforms/86xx/gef_pic.c +++ b/arch/powerpc/platforms/86xx/gef_pic.c @@ -46,8 +46,6 @@  #define GEF_PIC_CPU0_MCP_MASK	GEF_PIC_MCP_MASK(0)  #define GEF_PIC_CPU1_MCP_MASK	GEF_PIC_MCP_MASK(1) -#define gef_irq_to_hw(virq)    ((unsigned int)irq_map[virq].hwirq) -  static DEFINE_RAW_SPINLOCK(gef_pic_lock); @@ -113,11 +111,9 @@ void gef_pic_cascade(unsigned int irq, struct irq_desc *desc)  static void gef_pic_mask(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	u32 mask; -	hwirq = gef_irq_to_hw(d->irq); -  	raw_spin_lock_irqsave(&gef_pic_lock, flags);  	mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0));  	mask &= ~(1 << hwirq); @@ -136,11 +132,9 @@ static void gef_pic_mask_ack(struct irq_data *d)  static void gef_pic_unmask(struct irq_data *d)  {  	unsigned long flags; -	unsigned int hwirq; +	unsigned int hwirq = irqd_to_hwirq(d);  	u32 mask; -	hwirq = gef_irq_to_hw(d->irq); -  	raw_spin_lock_irqsave(&gef_pic_lock, flags);  	mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0));  	mask |= (1 << hwirq); diff --git a/arch/powerpc/platforms/8xx/m8xx_setup.c b/arch/powerpc/platforms/8xx/m8xx_setup.c index 9ecce995dd4..1e121088826 100644 --- a/arch/powerpc/platforms/8xx/m8xx_setup.c +++ b/arch/powerpc/platforms/8xx/m8xx_setup.c @@ -150,7 +150,7 @@ void __init mpc8xx_calibrate_decr(void)  	 */  	cpu = of_find_node_by_type(NULL, "cpu");  	virq= irq_of_parse_and_map(cpu, 0); -	irq = irq_map[virq].hwirq; +	irq = virq_to_hw(virq);  	sys_tmr2 = immr_map(im_sit);  	out_be16(&sys_tmr2->sit_tbscr, ((1 << (7 - (irq/2))) << 8) | diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c index bb5ebf8fa80..1e3329e8578 100644 --- a/arch/powerpc/platforms/cell/axon_msi.c +++ b/arch/powerpc/platforms/cell/axon_msi.c @@ -113,7 +113,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)  		pr_devel("axon_msi: woff %x roff %x msi %x\n",  			  write_offset, msic->read_offset, msi); -		if (msi < NR_IRQS && irq_map[msi].host == msic->irq_host) { +		if (msi < NR_IRQS && virq_to_host(msi) == msic->irq_host) {  			generic_handle_irq(msi);  			msic->fifo_virt[idx] = cpu_to_le32(0xffffffff);  		} else { diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c index c5cf50e6b45..34d2b99d10c 100644 --- a/arch/powerpc/platforms/cell/spider-pic.c +++ b/arch/powerpc/platforms/cell/spider-pic.c @@ -70,7 +70,7 @@ static struct spider_pic spider_pics[SPIDER_CHIP_COUNT];  static struct spider_pic *spider_virq_to_pic(unsigned int virq)  { -	return irq_map[virq].host->host_data; +	return virq_to_host(virq)->host_data;  }  static void __iomem *spider_get_irq_config(struct spider_pic *pic, @@ -82,7 +82,7 @@ static void __iomem *spider_get_irq_config(struct spider_pic *pic,  static void spider_unmask_irq(struct irq_data *d)  {  	struct spider_pic *pic = spider_virq_to_pic(d->irq); -	void __iomem *cfg = spider_get_irq_config(pic, irq_map[d->irq].hwirq); +	void __iomem *cfg = spider_get_irq_config(pic, irqd_to_hwirq(d));  	out_be32(cfg, in_be32(cfg) | 0x30000000u);  } @@ -90,7 +90,7 @@ static void spider_unmask_irq(struct irq_data *d)  static void spider_mask_irq(struct irq_data *d)  {  	struct spider_pic *pic = spider_virq_to_pic(d->irq); -	void __iomem *cfg = spider_get_irq_config(pic, irq_map[d->irq].hwirq); +	void __iomem *cfg = spider_get_irq_config(pic, irqd_to_hwirq(d));  	out_be32(cfg, in_be32(cfg) & ~0x30000000u);  } @@ -98,7 +98,7 @@ static void spider_mask_irq(struct irq_data *d)  static void spider_ack_irq(struct irq_data *d)  {  	struct spider_pic *pic = spider_virq_to_pic(d->irq); -	unsigned int src = irq_map[d->irq].hwirq; +	unsigned int src = irqd_to_hwirq(d);  	/* Reset edge detection logic if necessary  	 */ @@ -117,7 +117,7 @@ static int spider_set_irq_type(struct irq_data *d, unsigned int type)  {  	unsigned int sense = type & IRQ_TYPE_SENSE_MASK;  	struct spider_pic *pic = spider_virq_to_pic(d->irq); -	unsigned int hw = irq_map[d->irq].hwirq; +	unsigned int hw = irqd_to_hwirq(d);  	void __iomem *cfg = spider_get_irq_config(pic, hw);  	u32 old_mask;  	u32 ic; diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c index 12aa62b6f22..77cbe4c8f95 100644 --- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c +++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c @@ -48,7 +48,7 @@  static void flipper_pic_mask_and_ack(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	u32 mask = 1 << irq; @@ -59,7 +59,7 @@ static void flipper_pic_mask_and_ack(struct irq_data *d)  static void flipper_pic_ack(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	/* this is at least needed for RSW */ @@ -68,7 +68,7 @@ static void flipper_pic_ack(struct irq_data *d)  static void flipper_pic_mask(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	clrbits32(io_base + FLIPPER_IMR, 1 << irq); @@ -76,7 +76,7 @@ static void flipper_pic_mask(struct irq_data *d)  static void flipper_pic_unmask(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	setbits32(io_base + FLIPPER_IMR, 1 << irq); diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c index 2bdddfc9d52..44b398b0a2f 100644 --- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c +++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c @@ -43,7 +43,7 @@  static void hlwd_pic_mask_and_ack(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	u32 mask = 1 << irq; @@ -53,7 +53,7 @@ static void hlwd_pic_mask_and_ack(struct irq_data *d)  static void hlwd_pic_ack(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	out_be32(io_base + HW_BROADWAY_ICR, 1 << irq); @@ -61,7 +61,7 @@ static void hlwd_pic_ack(struct irq_data *d)  static void hlwd_pic_mask(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	clrbits32(io_base + HW_BROADWAY_IMR, 1 << irq); @@ -69,7 +69,7 @@ static void hlwd_pic_mask(struct irq_data *d)  static void hlwd_pic_unmask(struct irq_data *d)  { -	int irq = virq_to_hw(d->irq); +	int irq = irqd_to_hwirq(d);  	void __iomem *io_base = irq_data_get_irq_chip_data(d);  	setbits32(io_base + HW_BROADWAY_IMR, 1 << irq); diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c index 52a6889832c..375c21ca660 100644 --- a/arch/powerpc/platforms/iseries/irq.c +++ b/arch/powerpc/platforms/iseries/irq.c @@ -171,7 +171,7 @@ static void iseries_enable_IRQ(struct irq_data *d)  {  	u32 bus, dev_id, function, mask;  	const u32 sub_bus = 0; -	unsigned int rirq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int rirq = (unsigned int)irqd_to_hwirq(d);  	/* The IRQ has already been locked by the caller */  	bus = REAL_IRQ_TO_BUS(rirq); @@ -188,7 +188,7 @@ static unsigned int iseries_startup_IRQ(struct irq_data *d)  {  	u32 bus, dev_id, function, mask;  	const u32 sub_bus = 0; -	unsigned int rirq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int rirq = (unsigned int)irqd_to_hwirq(d);  	bus = REAL_IRQ_TO_BUS(rirq);  	function = REAL_IRQ_TO_FUNC(rirq); @@ -234,7 +234,7 @@ static void iseries_shutdown_IRQ(struct irq_data *d)  {  	u32 bus, dev_id, function, mask;  	const u32 sub_bus = 0; -	unsigned int rirq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int rirq = (unsigned int)irqd_to_hwirq(d);  	/* irq should be locked by the caller */  	bus = REAL_IRQ_TO_BUS(rirq); @@ -257,7 +257,7 @@ static void iseries_disable_IRQ(struct irq_data *d)  {  	u32 bus, dev_id, function, mask;  	const u32 sub_bus = 0; -	unsigned int rirq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int rirq = (unsigned int)irqd_to_hwirq(d);  	/* The IRQ has already been locked by the caller */  	bus = REAL_IRQ_TO_BUS(rirq); @@ -271,7 +271,7 @@ static void iseries_disable_IRQ(struct irq_data *d)  static void iseries_end_IRQ(struct irq_data *d)  { -	unsigned int rirq = (unsigned int)irq_map[d->irq].hwirq; +	unsigned int rirq = (unsigned int)irqd_to_hwirq(d);  	HvCallPci_eoi(REAL_IRQ_TO_BUS(rirq), REAL_IRQ_TO_SUBBUS(rirq),  		(REAL_IRQ_TO_IDSEL(rirq) << 4) + REAL_IRQ_TO_FUNC(rirq)); diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 023f24086a0..2f34ad04029 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c @@ -84,7 +84,7 @@ static void __pmac_retrigger(unsigned int irq_nr)  static void pmac_mask_and_ack_irq(struct irq_data *d)  { -	unsigned int src = irq_map[d->irq].hwirq; +	unsigned int src = irqd_to_hwirq(d);          unsigned long bit = 1UL << (src & 0x1f);          int i = src >> 5;          unsigned long flags; @@ -106,7 +106,7 @@ static void pmac_mask_and_ack_irq(struct irq_data *d)  static void pmac_ack_irq(struct irq_data *d)  { -	unsigned int src = irq_map[d->irq].hwirq; +	unsigned int src = irqd_to_hwirq(d);          unsigned long bit = 1UL << (src & 0x1f);          int i = src >> 5;          unsigned long flags; @@ -152,7 +152,7 @@ static void __pmac_set_irq_mask(unsigned int irq_nr, int nokicklost)  static unsigned int pmac_startup_irq(struct irq_data *d)  {  	unsigned long flags; -	unsigned int src = irq_map[d->irq].hwirq; +	unsigned int src = irqd_to_hwirq(d);          unsigned long bit = 1UL << (src & 0x1f);          int i = src >> 5; @@ -169,7 +169,7 @@ static unsigned int pmac_startup_irq(struct irq_data *d)  static void pmac_mask_irq(struct irq_data *d)  {  	unsigned long flags; -	unsigned int src = irq_map[d->irq].hwirq; +	unsigned int src = irqd_to_hwirq(d);  	raw_spin_lock_irqsave(&pmac_pic_lock, flags);          __clear_bit(src, ppc_cached_irq_mask); @@ -180,7 +180,7 @@ static void pmac_mask_irq(struct irq_data *d)  static void pmac_unmask_irq(struct irq_data *d)  {  	unsigned long flags; -	unsigned int src = irq_map[d->irq].hwirq; +	unsigned int src = irqd_to_hwirq(d);  	raw_spin_lock_irqsave(&pmac_pic_lock, flags);  	__set_bit(src, ppc_cached_irq_mask); @@ -193,7 +193,7 @@ static int pmac_retrigger(struct irq_data *d)  	unsigned long flags;  	raw_spin_lock_irqsave(&pmac_pic_lock, flags); -	__pmac_retrigger(irq_map[d->irq].hwirq); +	__pmac_retrigger(irqd_to_hwirq(d));  	raw_spin_unlock_irqrestore(&pmac_pic_lock, flags);  	return 1;  } diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c index c55d7ad9c64..164a8eb4592 100644 --- a/arch/powerpc/platforms/pseries/ras.c +++ b/arch/powerpc/platforms/pseries/ras.c @@ -122,7 +122,7 @@ static irqreturn_t ras_epow_interrupt(int irq, void *dev_id)  	status = rtas_call(ras_check_exception_token, 6, 1, NULL,  			   RTAS_VECTOR_EXTERNAL_INTERRUPT, -			   irq_map[irq].hwirq, +			   virq_to_hw(irq),  			   RTAS_EPOW_WARNING | RTAS_POWERMGM_EVENTS,  			   critical, __pa(&ras_log_buf),  				rtas_get_error_log_max()); @@ -157,7 +157,7 @@ static irqreturn_t ras_error_interrupt(int irq, void *dev_id)  	status = rtas_call(ras_check_exception_token, 6, 1, NULL,  			   RTAS_VECTOR_EXTERNAL_INTERRUPT, -			   irq_map[irq].hwirq, +			   virq_to_hw(irq),  			   RTAS_INTERNAL_ERROR, 1 /*Time Critical */,  			   __pa(&ras_log_buf),  				rtas_get_error_log_max());  |