Skip to content

Commit

Permalink
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/l…
Browse files Browse the repository at this point in the history
…inux/kernel/git/tip/tip

Pull irq updates from Thomas Gleixner:
 "This is a rather large update post rc1 due to the final steps of
  cleanups and API changes which had to wait for the preparatory patches
  to hit your tree.

   - Regression fixes for ARM GIC irqchips

   - Regression fixes and lockdep anotations for renesas irq chips

   - The leftovers of the cleanup and preparatory patches which have
     been ignored by maintainers

   - Final conversions of the newly merged users of obsolete APIs

   - Final removal of obsolete APIs

   - Final removal of ARM artifacts which had been introduced during the
     conversion of ARM to the generic interrupt code.

   - Final split of the irq_data into chip specific and common data to
     reflect the needs of hierarchical irq domains.

   - Treewide removal of the first argument of interrupt flow handlers,
     i.e. the irq number, which is not used by the majority of handlers
     and simple to retrieve from the other argument the irq descriptor.

   - A few comment updates and build warning fixes"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
  arm64: Remove ununsed set_irq_flags
  ARM: Remove ununsed set_irq_flags
  sh: Kill off set_irq_flags usage
  irqchip: Kill off set_irq_flags usage
  gpu/drm: Kill off set_irq_flags usage
  genirq: Remove irq argument from irq flow handlers
  genirq: Move field 'msi_desc' from irq_data into irq_common_data
  genirq: Move field 'affinity' from irq_data into irq_common_data
  genirq: Move field 'handler_data' from irq_data into irq_common_data
  genirq: Move field 'node' from irq_data into irq_common_data
  irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag
  irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag
  genirq: Provide IRQD_FORWARDED_TO_VCPU status flag
  genirq: Simplify irq_data_to_desc()
  genirq: Remove __irq_set_handler_locked()
  pinctrl/pistachio: Use irq_set_handler_locked
  gpio: vf610: Use irq_set_handler_locked
  powerpc/mpc8xx: Use irq_set_handler_locked()
  powerpc/ipic: Use irq_set_handler_locked()
  powerpc/cpm2: Use irq_set_handler_locked()
  ...
  • Loading branch information
torvalds committed Sep 18, 2015
2 parents 09784fb + ae80a2f commit fadb97b
Show file tree
Hide file tree
Showing 217 changed files with 482 additions and 573 deletions.
2 changes: 1 addition & 1 deletion arch/alpha/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,6 @@ handle_irq(int irq)
}

irq_enter();
generic_handle_irq_desc(irq, desc);
generic_handle_irq_desc(desc);
irq_exit();
}
2 changes: 1 addition & 1 deletion arch/arc/kernel/mcip.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ static struct irq_chip idu_irq_chip = {

static int idu_first_irq;

static void idu_cascade_isr(unsigned int __core_irq, struct irq_desc *desc)
static void idu_cascade_isr(struct irq_desc *desc)
{
struct irq_domain *domain = irq_desc_get_handler_data(desc);
unsigned int core_irq = irq_desc_get_irq(desc);
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/common/it8152.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ void it8152_init_irq(void)
}
}

void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
void it8152_irq_demux(struct irq_desc *desc)
{
int bits_pd, bits_lp, bits_ld;
int i;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/common/locomo.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ static struct locomo_dev_info locomo_devices[] = {
},
};

static void locomo_handler(unsigned int __irq, struct irq_desc *desc)
static void locomo_handler(struct irq_desc *desc)
{
struct locomo *lchip = irq_desc_get_chip_data(desc);
int req, i;
Expand Down
6 changes: 2 additions & 4 deletions arch/arm/common/sa1111.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,8 @@ static struct sa1111_dev_info sa1111_devices[] = {
* active IRQs causes the interrupt output to pulse, the upper levels
* will call us again if there are more interrupts to process.
*/
static void
sa1111_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void sa1111_irq_handler(struct irq_desc *desc)
{
unsigned int irq = irq_desc_get_irq(desc);
unsigned int stat0, stat1, i;
struct sa1111 *sachip = irq_desc_get_handler_data(desc);
void __iomem *mapbase = sachip->base + SA1111_INTC;
Expand All @@ -214,7 +212,7 @@ sa1111_irq_handler(unsigned int __irq, struct irq_desc *desc)
sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);

if (stat0 == 0 && stat1 == 0) {
do_bad_IRQ(irq, desc);
do_bad_IRQ(desc);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/include/asm/hardware/it8152.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ extern void __iomem *it8152_base_address;
struct pci_dev;
struct pci_sys_data;

extern void it8152_irq_demux(unsigned int irq, struct irq_desc *desc);
extern void it8152_irq_demux(struct irq_desc *desc);
extern void it8152_init_irq(void);
extern int it8152_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
extern int it8152_pci_setup(int nr, struct pci_sys_data *sys);
Expand Down
6 changes: 0 additions & 6 deletions arch/arm/include/asm/hw_irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,6 @@ static inline void ack_bad_irq(int irq)
pr_crit("unexpected IRQ trap at vector %02x\n", irq);
}

void set_irq_flags(unsigned int irq, unsigned int flags);

#define IRQF_VALID (1 << 0)
#define IRQF_PROBE (1 << 1)
#define IRQF_NOAUTOEN (1 << 2)

#define ARCH_IRQ_INIT_FLAGS (IRQ_NOREQUEST | IRQ_NOPROBE)

#endif
4 changes: 2 additions & 2 deletions arch/arm/include/asm/mach/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ extern int show_fiq_list(struct seq_file *, int);
/*
* This is for easy migration, but should be changed in the source
*/
#define do_bad_IRQ(irq,desc) \
#define do_bad_IRQ(desc) \
do { \
raw_spin_lock(&desc->lock); \
handle_bad_irq(irq, desc); \
handle_bad_irq(desc); \
raw_spin_unlock(&desc->lock); \
} while(0)

Expand Down
20 changes: 0 additions & 20 deletions arch/arm/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,26 +79,6 @@ asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
handle_IRQ(irq, regs);
}

void set_irq_flags(unsigned int irq, unsigned int iflags)
{
unsigned long clr = 0, set = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;

if (irq >= nr_irqs) {
pr_err("Trying to set irq flags for IRQ%d\n", irq);
return;
}

if (iflags & IRQF_VALID)
clr |= IRQ_NOREQUEST;
if (iflags & IRQF_PROBE)
clr |= IRQ_NOPROBE;
if (!(iflags & IRQF_NOAUTOEN))
clr |= IRQ_NOAUTOEN;
/* Order is clear bits in "clr" then set bits in "set" */
irq_modify_status(irq, clr, set & ~clr);
}
EXPORT_SYMBOL_GPL(set_irq_flags);

void __init init_IRQ(void)
{
int ret;
Expand Down
6 changes: 3 additions & 3 deletions arch/arm/mach-dove/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ static struct irq_chip pmu_irq_chip = {
.irq_ack = pmu_irq_ack,
};

static void pmu_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void pmu_irq_handler(struct irq_desc *desc)
{
unsigned int irq = irq_desc_get_irq(desc);
unsigned long cause = readl(PMU_INTERRUPT_CAUSE);
unsigned int irq;

cause &= readl(PMU_INTERRUPT_MASK);
if (cause == 0) {
do_bad_IRQ(irq, desc);
do_bad_IRQ(desc);
return;
}

Expand Down
5 changes: 2 additions & 3 deletions arch/arm/mach-footbridge/isa-irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,12 @@ static struct irq_chip isa_hi_chip = {
.irq_unmask = isa_unmask_pic_hi_irq,
};

static void
isa_irq_handler(unsigned int irq, struct irq_desc *desc)
static void isa_irq_handler(struct irq_desc *desc)
{
unsigned int isa_irq = *(unsigned char *)PCIIACK_BASE;

if (isa_irq < _ISA_IRQ(0) || isa_irq >= _ISA_IRQ(16)) {
do_bad_IRQ(isa_irq, desc);
do_bad_IRQ(desc);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-gemini/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
return 0;
}

static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
static void gpio_irq_handler(struct irq_desc *desc)
{
unsigned int port = (unsigned int)irq_desc_get_handler_data(desc);
unsigned int gpio_irq_no, irq_stat;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-imx/3ds_debugboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ static struct platform_device smsc_lan9217_device = {
.resource = smsc911x_resources,
};

static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc)
static void mxc_expio_irq_handler(struct irq_desc *desc)
{
u32 imr_val;
u32 int_valid;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-imx/mach-mx31ads.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ static inline void mxc_init_imx_uart(void)
imx31_add_imx_uart0(&uart_pdata);
}

static void mx31ads_expio_irq_handler(u32 irq, struct irq_desc *desc)
static void mx31ads_expio_irq_handler(struct irq_desc *desc)
{
u32 imr_val;
u32 int_valid;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-iop13xx/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ static void (*write_imipr[])(u32) = {
write_imipr_3,
};

static void iop13xx_msi_handler(unsigned int irq, struct irq_desc *desc)
static void iop13xx_msi_handler(struct irq_desc *desc)
{
int i, j;
unsigned long status;
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-lpc32xx/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ static struct irq_chip lpc32xx_irq_chip = {
.irq_set_wake = lpc32xx_irq_wake
};

static void lpc32xx_sic1_handler(unsigned int irq, struct irq_desc *desc)
static void lpc32xx_sic1_handler(struct irq_desc *desc)
{
unsigned long ints = __raw_readl(LPC32XX_INTC_STAT(LPC32XX_SIC1_BASE));

Expand All @@ -383,7 +383,7 @@ static void lpc32xx_sic1_handler(unsigned int irq, struct irq_desc *desc)
}
}

static void lpc32xx_sic2_handler(unsigned int irq, struct irq_desc *desc)
static void lpc32xx_sic2_handler(struct irq_desc *desc)
{
unsigned long ints = __raw_readl(LPC32XX_INTC_STAT(LPC32XX_SIC2_BASE));

Expand Down
3 changes: 1 addition & 2 deletions arch/arm/mach-netx/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ static struct platform_device *devices[] __initdata = {
#define DEBUG_IRQ(fmt...) while (0) {}
#endif

static void
netx_hif_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
static void netx_hif_demux_handler(struct irq_desc *desc)
{
unsigned int irq = NETX_IRQ_HIF_CHAINED(0);
unsigned int stat;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-omap1/fpga.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static void fpga_mask_ack_irq(struct irq_data *d)
fpga_ack_irq(d);
}

static void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
static void innovator_fpga_IRQ_demux(struct irq_desc *desc)
{
u32 stat;
int fpga_irq;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-omap2/prm_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ static void omap_prcm_events_filter_priority(unsigned long *events,
* dispatched accordingly. Clearing of the wakeup events should be
* done by the SoC specific individual handlers.
*/
static void omap_prcm_irq_handler(unsigned int irq, struct irq_desc *desc)
static void omap_prcm_irq_handler(struct irq_desc *desc)
{
unsigned long pending[OMAP_PRCM_MAX_NR_PENDING_REG];
unsigned long priority_pending[OMAP_PRCM_MAX_NR_PENDING_REG];
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-pxa/balloon3.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ static struct irq_chip balloon3_irq_chip = {
.irq_unmask = balloon3_unmask_irq,
};

static void balloon3_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void balloon3_irq_handler(struct irq_desc *desc)
{
unsigned long pending = __raw_readl(BALLOON3_INT_CONTROL_REG) &
balloon3_irq_enabled;
Expand Down
5 changes: 2 additions & 3 deletions arch/arm/mach-pxa/cm-x2xx-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,12 @@
void __iomem *it8152_base_address;
static int cmx2xx_it8152_irq_gpio;

static void cmx2xx_it8152_irq_demux(unsigned int __irq, struct irq_desc *desc)
static void cmx2xx_it8152_irq_demux(struct irq_desc *desc)
{
unsigned int irq = irq_desc_get_irq(desc);
/* clear our parent irq */
desc->irq_data.chip->irq_ack(&desc->irq_data);

it8152_irq_demux(irq, desc);
it8152_irq_demux(desc);
}

void __cmx2xx_pci_init_irq(int irq_gpio)
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-pxa/lpd270.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ static struct irq_chip lpd270_irq_chip = {
.irq_unmask = lpd270_unmask_irq,
};

static void lpd270_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void lpd270_irq_handler(struct irq_desc *desc)
{
unsigned int irq;
unsigned long pending;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-pxa/pcm990-baseboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ static struct irq_chip pcm990_irq_chip = {
.irq_unmask = pcm990_unmask_irq,
};

static void pcm990_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void pcm990_irq_handler(struct irq_desc *desc)
{
unsigned int irq;
unsigned long pending;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-pxa/viper.c
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ static inline unsigned long viper_irq_pending(void)
viper_irq_enabled_mask;
}

static void viper_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void viper_irq_handler(struct irq_desc *desc)
{
unsigned int irq;
unsigned long pending;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-pxa/zeus.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ static inline unsigned long zeus_irq_pending(void)
return __raw_readw(ZEUS_CPLD_ISA_IRQ) & zeus_irq_enabled_mask;
}

static void zeus_irq_handler(unsigned int __irq, struct irq_desc *desc)
static void zeus_irq_handler(struct irq_desc *desc)
{
unsigned int irq;
unsigned long pending;
Expand Down
3 changes: 1 addition & 2 deletions arch/arm/mach-rpc/ecard.c
Original file line number Diff line number Diff line change
Expand Up @@ -551,8 +551,7 @@ static void ecard_check_lockup(struct irq_desc *desc)
}
}

static void
ecard_irq_handler(unsigned int irq, struct irq_desc *desc)
static void ecard_irq_handler(struct irq_desc *desc)
{
ecard_t *ec;
int called = 0;
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mach-s3c24xx/bast-irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,7 @@ static struct irq_chip bast_pc104_chip = {
.irq_ack = bast_pc104_maskack
};

static void
bast_irq_pc104_demux(unsigned int irq,
struct irq_desc *desc)
static void bast_irq_pc104_demux(struct irq_desc *desc)
{
unsigned int stat;
unsigned int irqno;
Expand Down
8 changes: 4 additions & 4 deletions arch/arm/mach-s3c64xx/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -388,22 +388,22 @@ static inline void s3c_irq_demux_eint(unsigned int start, unsigned int end)
}
}

static void s3c_irq_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
static void s3c_irq_demux_eint0_3(struct irq_desc *desc)
{
s3c_irq_demux_eint(0, 3);
}

static void s3c_irq_demux_eint4_11(unsigned int irq, struct irq_desc *desc)
static void s3c_irq_demux_eint4_11(struct irq_desc *desc)
{
s3c_irq_demux_eint(4, 11);
}

static void s3c_irq_demux_eint12_19(unsigned int irq, struct irq_desc *desc)
static void s3c_irq_demux_eint12_19(struct irq_desc *desc)
{
s3c_irq_demux_eint(12, 19);
}

static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
static void s3c_irq_demux_eint20_27(struct irq_desc *desc)
{
s3c_irq_demux_eint(20, 27);
}
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-sa1100/neponset.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ static struct sa1100_port_fns neponset_port_fns = {
* ensure that the IRQ signal is deasserted before returning. This
* is rather unfortunate.
*/
static void neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
static void neponset_irq_handler(struct irq_desc *desc)
{
struct neponset_drvdata *d = irq_desc_get_handler_data(desc);
unsigned int irr;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/plat-orion/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ static int gpio_irq_set_type(struct irq_data *d, u32 type)
return 0;
}

static void gpio_irq_handler(unsigned __irq, struct irq_desc *desc)
static void gpio_irq_handler(struct irq_desc *desc)
{
struct orion_gpio_chip *ochip = irq_desc_get_handler_data(desc);
u32 cause, type;
Expand Down
5 changes: 0 additions & 5 deletions arch/arm64/include/asm/hardirq.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,4 @@ static inline void ack_bad_irq(unsigned int irq)
irq_err_count++;
}

/*
* No arch-specific IRQ flags.
*/
#define set_irq_flags(irq, flags)

#endif /* __ASM_HARDIRQ_H */
2 changes: 1 addition & 1 deletion arch/avr32/mach-at32ap/extint.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ static struct irq_chip eic_chip = {
.irq_set_type = eic_set_irq_type,
};

static void demux_eic_irq(unsigned int irq, struct irq_desc *desc)
static void demux_eic_irq(struct irq_desc *desc)
{
struct eic *eic = irq_desc_get_handler_data(desc);
unsigned long status, pending;
Expand Down
2 changes: 1 addition & 1 deletion arch/avr32/mach-at32ap/pio.c
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ static struct irq_chip gpio_irqchip = {
.irq_set_type = gpio_irq_type,
};

static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
static void gpio_irq_handler(struct irq_desc *desc)
{
struct pio_device *pio = irq_desc_get_chip_data(desc);
unsigned gpio_irq;
Expand Down
4 changes: 2 additions & 2 deletions arch/blackfin/include/asm/irq_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ extern void bfin_internal_mask_irq(unsigned int irq);
extern void bfin_internal_unmask_irq(unsigned int irq);

struct irq_desc;
extern void bfin_demux_mac_status_irq(unsigned int, struct irq_desc *);
extern void bfin_demux_gpio_irq(unsigned int, struct irq_desc *);
extern void bfin_demux_mac_status_irq(struct irq_desc *);
extern void bfin_demux_gpio_irq(struct irq_desc *);

#endif
Loading

0 comments on commit fadb97b

Please sign in to comment.