Commit fadb97b0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/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()
  ...
parents 09784fb8 ae80a2f2
...@@ -64,8 +64,7 @@ extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int, ...@@ -64,8 +64,7 @@ extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int,
struct pt_regs *)); struct pt_regs *));
extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt); extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt);
extern void m68k_setup_irq_controller(struct irq_chip *, extern void m68k_setup_irq_controller(struct irq_chip *,
void (*handle)(unsigned int irq, void (*handle)(struct irq_desc *desc),
struct irq_desc *desc),
unsigned int irq, unsigned int cnt); unsigned int irq, unsigned int cnt);
extern unsigned int irq_canonicalize(unsigned int irq); extern unsigned int irq_canonicalize(unsigned int irq);
......
...@@ -261,7 +261,7 @@ extern void via_irq_enable(int); ...@@ -261,7 +261,7 @@ extern void via_irq_enable(int);
extern void via_irq_disable(int); extern void via_irq_disable(int);
extern void via_nubus_irq_startup(int irq); extern void via_nubus_irq_startup(int irq);
extern void via_nubus_irq_shutdown(int irq); extern void via_nubus_irq_shutdown(int irq);
extern void via1_irq(unsigned int irq, struct irq_desc *desc); extern void via1_irq(struct irq_desc *desc);
extern void via1_set_head(int); extern void via1_set_head(int);
extern int via2_scsi_drq_pending(void); extern int via2_scsi_drq_pending(void);
......
...@@ -45,7 +45,7 @@ void __init baboon_init(void) ...@@ -45,7 +45,7 @@ void __init baboon_init(void)
* Baboon interrupt handler. This works a lot like a VIA. * Baboon interrupt handler. This works a lot like a VIA.
*/ */
static void baboon_irq(unsigned int irq, struct irq_desc *desc) static void baboon_irq(struct irq_desc *desc)
{ {
int irq_bit, irq_num; int irq_bit, irq_num;
unsigned char events; unsigned char events;
......
...@@ -63,7 +63,7 @@ void __init oss_nubus_init(void) ...@@ -63,7 +63,7 @@ void __init oss_nubus_init(void)
* Handle miscellaneous OSS interrupts. * Handle miscellaneous OSS interrupts.
*/ */
static void oss_irq(unsigned int __irq, struct irq_desc *desc) static void oss_irq(struct irq_desc *desc)
{ {
int events = oss->irq_pending & int events = oss->irq_pending &
(OSS_IP_IOPSCC | OSS_IP_SCSI | OSS_IP_IOPISM); (OSS_IP_IOPSCC | OSS_IP_SCSI | OSS_IP_IOPISM);
...@@ -99,7 +99,7 @@ static void oss_irq(unsigned int __irq, struct irq_desc *desc) ...@@ -99,7 +99,7 @@ static void oss_irq(unsigned int __irq, struct irq_desc *desc)
* Unlike the VIA/RBV this is on its own autovector interrupt level. * Unlike the VIA/RBV this is on its own autovector interrupt level.
*/ */
static void oss_nubus_irq(unsigned int irq, struct irq_desc *desc) static void oss_nubus_irq(struct irq_desc *desc)
{ {
int events, irq_bit, i; int events, irq_bit, i;
......
...@@ -113,7 +113,7 @@ void __init psc_init(void) ...@@ -113,7 +113,7 @@ void __init psc_init(void)
* PSC interrupt handler. It's a lot like the VIA interrupt handler. * PSC interrupt handler. It's a lot like the VIA interrupt handler.
*/ */
static void psc_irq(unsigned int __irq, struct irq_desc *desc) static void psc_irq(struct irq_desc *desc)
{ {
unsigned int offset = (unsigned int)irq_desc_get_handler_data(desc); unsigned int offset = (unsigned int)irq_desc_get_handler_data(desc);
unsigned int irq = irq_desc_get_irq(desc); unsigned int irq = irq_desc_get_irq(desc);
......
...@@ -446,7 +446,7 @@ void via_nubus_irq_shutdown(int irq) ...@@ -446,7 +446,7 @@ void via_nubus_irq_shutdown(int irq)
* via6522.c :-), disable/pending masks added. * via6522.c :-), disable/pending masks added.
*/ */
void via1_irq(unsigned int irq, struct irq_desc *desc) void via1_irq(struct irq_desc *desc)
{ {
int irq_num; int irq_num;
unsigned char irq_bit, events; unsigned char irq_bit, events;
...@@ -467,7 +467,7 @@ void via1_irq(unsigned int irq, struct irq_desc *desc) ...@@ -467,7 +467,7 @@ void via1_irq(unsigned int irq, struct irq_desc *desc)
} while (events >= irq_bit); } while (events >= irq_bit);
} }
static void via2_irq(unsigned int irq, struct irq_desc *desc) static void via2_irq(struct irq_desc *desc)
{ {
int irq_num; int irq_num;
unsigned char irq_bit, events; unsigned char irq_bit, events;
...@@ -493,7 +493,7 @@ static void via2_irq(unsigned int irq, struct irq_desc *desc) ...@@ -493,7 +493,7 @@ static void via2_irq(unsigned int irq, struct irq_desc *desc)
* VIA2 dispatcher as a fast interrupt handler. * VIA2 dispatcher as a fast interrupt handler.
*/ */
void via_nubus_irq(unsigned int irq, struct irq_desc *desc) static void via_nubus_irq(struct irq_desc *desc)
{ {
int slot_irq; int slot_irq;
unsigned char slot_bit, events; unsigned char slot_bit, events;
......
...@@ -94,13 +94,11 @@ void do_IRQ(int irq, struct pt_regs *regs) ...@@ -94,13 +94,11 @@ void do_IRQ(int irq, struct pt_regs *regs)
"MOV D0.5,%0\n" "MOV D0.5,%0\n"
"MOV D1Ar1,%1\n" "MOV D1Ar1,%1\n"
"MOV D1RtP,%2\n" "MOV D1RtP,%2\n"
"MOV D0Ar2,%3\n"
"SWAP A0StP,D0.5\n" "SWAP A0StP,D0.5\n"
"SWAP PC,D1RtP\n" "SWAP PC,D1RtP\n"
"MOV A0StP,D0.5\n" "MOV A0StP,D0.5\n"
: :
: "r" (isp), "r" (irq), "r" (desc->handle_irq), : "r" (isp), "r" (desc), "r" (desc->handle_irq)
"r" (desc)
: "memory", "cc", "D1Ar1", "D0Ar2", "D1Ar3", "D0Ar4", : "memory", "cc", "D1Ar1", "D0Ar2", "D1Ar3", "D0Ar4",
"D1Ar5", "D0Ar6", "D0Re0", "D1Re0", "D0.4", "D1RtP", "D1Ar5", "D0Ar6", "D0Re0", "D1Re0", "D0.4", "D1RtP",
"D0.5" "D0.5"
......
...@@ -851,7 +851,7 @@ static struct syscore_ops alchemy_gpic_pmops = { ...@@ -851,7 +851,7 @@ static struct syscore_ops alchemy_gpic_pmops = {
/* create chained handlers for the 4 IC requests to the MIPS IRQ ctrl */ /* create chained handlers for the 4 IC requests to the MIPS IRQ ctrl */
#define DISP(name, base, addr) \ #define DISP(name, base, addr) \
static void au1000_##name##_dispatch(unsigned int irq, struct irq_desc *d) \ static void au1000_##name##_dispatch(struct irq_desc *d) \
{ \ { \
unsigned long r = __raw_readl((void __iomem *)KSEG1ADDR(addr)); \ unsigned long r = __raw_readl((void __iomem *)KSEG1ADDR(addr)); \
if (likely(r)) \ if (likely(r)) \
...@@ -865,7 +865,7 @@ DISP(ic0r1, AU1000_INTC0_INT_BASE, AU1000_IC0_PHYS_ADDR + IC_REQ1INT) ...@@ -865,7 +865,7 @@ DISP(ic0r1, AU1000_INTC0_INT_BASE, AU1000_IC0_PHYS_ADDR + IC_REQ1INT)
DISP(ic1r0, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ0INT) DISP(ic1r0, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ0INT)
DISP(ic1r1, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ1INT) DISP(ic1r1, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ1INT)
static void alchemy_gpic_dispatch(unsigned int irq, struct irq_desc *d) static void alchemy_gpic_dispatch(struct irq_desc *d)
{ {
int i = __raw_readl(AU1300_GPIC_ADDR + AU1300_GPIC_PRIENC); int i = __raw_readl(AU1300_GPIC_ADDR + AU1300_GPIC_PRIENC);
generic_handle_irq(ALCHEMY_GPIC_INT_BASE + i); generic_handle_irq(ALCHEMY_GPIC_INT_BASE + i);
......
...@@ -86,7 +86,7 @@ EXPORT_SYMBOL_GPL(bcsr_mod); ...@@ -86,7 +86,7 @@ EXPORT_SYMBOL_GPL(bcsr_mod);
/* /*
* DB1200/PB1200 CPLD IRQ muxer * DB1200/PB1200 CPLD IRQ muxer
*/ */
static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d) static void bcsr_csc_handler(struct irq_desc *d)
{ {
unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT); unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
struct irq_chip *chip = irq_desc_get_chip(d); struct irq_chip *chip = irq_desc_get_chip(d);
......
...@@ -69,7 +69,7 @@ static struct irqaction ar2315_ahb_err_interrupt = { ...@@ -69,7 +69,7 @@ static struct irqaction ar2315_ahb_err_interrupt = {
.name = "ar2315-ahb-error", .name = "ar2315-ahb-error",
}; };
static void ar2315_misc_irq_handler(unsigned irq, struct irq_desc *desc) static void ar2315_misc_irq_handler(struct irq_desc *desc)
{ {
u32 pending = ar2315_rst_reg_read(AR2315_ISR) & u32 pending = ar2315_rst_reg_read(AR2315_ISR) &
ar2315_rst_reg_read(AR2315_IMR); ar2315_rst_reg_read(AR2315_IMR);
......
...@@ -73,7 +73,7 @@ static struct irqaction ar5312_ahb_err_interrupt = { ...@@ -73,7 +73,7 @@ static struct irqaction ar5312_ahb_err_interrupt = {
.name = "ar5312-ahb-error", .name = "ar5312-ahb-error",
}; };
static void ar5312_misc_irq_handler(unsigned irq, struct irq_desc *desc) static void ar5312_misc_irq_handler(struct irq_desc *desc)
{ {
u32 pending = ar5312_rst_reg_read(AR5312_ISR) & u32 pending = ar5312_rst_reg_read(AR5312_ISR) &
ar5312_rst_reg_read(AR5312_IMR); ar5312_rst_reg_read(AR5312_IMR);
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include "common.h" #include "common.h"
#include "machtypes.h" #include "machtypes.h"
static void ath79_misc_irq_handler(unsigned int irq, struct irq_desc *desc) static void ath79_misc_irq_handler(struct irq_desc *desc)
{ {
void __iomem *base = ath79_reset_base; void __iomem *base = ath79_reset_base;
u32 pending; u32 pending;
...@@ -119,7 +119,7 @@ static void __init ath79_misc_irq_init(void) ...@@ -119,7 +119,7 @@ static void __init ath79_misc_irq_init(void)
irq_set_chained_handler(ATH79_CPU_IRQ(6), ath79_misc_irq_handler); irq_set_chained_handler(ATH79_CPU_IRQ(6), ath79_misc_irq_handler);
} }
static void ar934x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc) static void ar934x_ip2_irq_dispatch(struct irq_desc *desc)
{ {
u32 status; u32 status;
...@@ -148,7 +148,7 @@ static void ar934x_ip2_irq_init(void) ...@@ -148,7 +148,7 @@ static void ar934x_ip2_irq_init(void)
irq_set_chained_handler(ATH79_CPU_IRQ(2), ar934x_ip2_irq_dispatch); irq_set_chained_handler(ATH79_CPU_IRQ(2), ar934x_ip2_irq_dispatch);
} }
static void qca955x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc) static void qca955x_ip2_irq_dispatch(struct irq_desc *desc)
{ {
u32 status; u32 status;
...@@ -171,7 +171,7 @@ static void qca955x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc) ...@@ -171,7 +171,7 @@ static void qca955x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc)
} }
} }
static void qca955x_ip3_irq_dispatch(unsigned int irq, struct irq_desc *desc) static void qca955x_ip3_irq_dispatch(struct irq_desc *desc)
{ {
u32 status; u32 status;
......
...@@ -2221,7 +2221,7 @@ static irqreturn_t octeon_irq_cib_handler(int my_irq, void *data) ...@@ -2221,7 +2221,7 @@ static irqreturn_t octeon_irq_cib_handler(int my_irq, void *data)
if (irqd_get_trigger_type(irq_data) & if (irqd_get_trigger_type(irq_data) &
IRQ_TYPE_EDGE_BOTH) IRQ_TYPE_EDGE_BOTH)
cvmx_write_csr(host_data->raw_reg, 1ull << i); cvmx_write_csr(host_data->raw_reg, 1ull << i);
generic_handle_irq_desc(irq, desc); generic_handle_irq_desc(desc);
} }
} }
......
...@@ -57,8 +57,8 @@ ...@@ -57,8 +57,8 @@
#include <asm/mach-netlogic/multi-node.h> #include <asm/mach-netlogic/multi-node.h>
struct irq_desc; struct irq_desc;
void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc); void nlm_smp_function_ipi_handler(struct irq_desc *desc);
void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc); void nlm_smp_resched_ipi_handler(struct irq_desc *desc);
void nlm_smp_irq_init(int hwcpuid); void nlm_smp_irq_init(int hwcpuid);
void nlm_boot_secondary_cpus(void); void nlm_boot_secondary_cpus(void);
int nlm_wakeup_secondary_cpus(void); int nlm_wakeup_secondary_cpus(void);
......
...@@ -291,7 +291,7 @@ static void jz_gpio_check_trigger_both(struct jz_gpio_chip *chip, unsigned int i ...@@ -291,7 +291,7 @@ static void jz_gpio_check_trigger_both(struct jz_gpio_chip *chip, unsigned int i
writel(mask, reg); writel(mask, reg);
} }
static void jz_gpio_irq_demux_handler(unsigned int irq, struct irq_desc *desc) static void jz_gpio_irq_demux_handler(struct irq_desc *desc)
{ {
uint32_t flag; uint32_t flag;
unsigned int gpio_irq; unsigned int gpio_irq;
......
...@@ -82,7 +82,7 @@ void nlm_send_ipi_mask(const struct cpumask *mask, unsigned int action) ...@@ -82,7 +82,7 @@ void nlm_send_ipi_mask(const struct cpumask *mask, unsigned int action)
} }
/* IRQ_IPI_SMP_FUNCTION Handler */ /* IRQ_IPI_SMP_FUNCTION Handler */
void nlm_smp_function_ipi_handler(unsigned int __irq, struct irq_desc *desc) void nlm_smp_function_ipi_handler(struct irq_desc *desc)
{ {
unsigned int irq = irq_desc_get_irq(desc); unsigned int irq = irq_desc_get_irq(desc);
clear_c0_eimr(irq); clear_c0_eimr(irq);
...@@ -92,7 +92,7 @@ void nlm_smp_function_ipi_handler(unsigned int __irq, struct irq_desc *desc) ...@@ -92,7 +92,7 @@ void nlm_smp_function_ipi_handler(unsigned int __irq, struct irq_desc *desc)
} }
/* IRQ_IPI_SMP_RESCHEDULE handler */ /* IRQ_IPI_SMP_RESCHEDULE handler */
void nlm_smp_resched_ipi_handler(unsigned int __irq, struct irq_desc *desc) void nlm_smp_resched_ipi_handler(struct irq_desc *desc)
{ {
unsigned int irq = irq_desc_get_irq(desc); unsigned int irq = irq_desc_get_irq(desc);
clear_c0_eimr(irq); clear_c0_eimr(irq);
......
...@@ -318,7 +318,7 @@ static int ar2315_pci_host_setup(struct ar2315_pci_ctrl *apc) ...@@ -318,7 +318,7 @@ static int ar2315_pci_host_setup(struct ar2315_pci_ctrl *apc)
return 0; return 0;
} }
static void ar2315_pci_irq_handler(unsigned irq, struct irq_desc *desc) static void ar2315_pci_irq_handler(struct irq_desc *desc)
{ {
struct ar2315_pci_ctrl *apc = irq_desc_get_handler_data(desc); struct ar2315_pci_ctrl *apc = irq_desc_get_handler_data(desc);
u32 pending = ar2315_pci_reg_read(apc, AR2315_PCI_ISR) & u32 pending = ar2315_pci_reg_read(apc, AR2315_PCI_ISR) &
......
...@@ -226,7 +226,7 @@ static struct pci_ops ar71xx_pci_ops = { ...@@ -226,7 +226,7 @@ static struct pci_ops ar71xx_pci_ops = {
.write = ar71xx_pci_write_config, .write = ar71xx_pci_write_config,
}; };
static void ar71xx_pci_irq_handler(unsigned int irq, struct irq_desc *desc) static void ar71xx_pci_irq_handler(struct irq_desc *desc)
{ {
struct ar71xx_pci_controller *apc; struct ar71xx_pci_controller *apc;
void __iomem *base = ath79_reset_base; void __iomem *base = ath79_reset_base;
......
...@@ -225,7 +225,7 @@ static struct pci_ops ar724x_pci_ops = { ...@@ -225,7 +225,7 @@ static struct pci_ops ar724x_pci_ops = {
.write = ar724x_pci_write, .write = ar724x_pci_write,
}; };
static void ar724x_pci_irq_handler(unsigned int irq, struct irq_desc *desc) static void ar724x_pci_irq_handler(struct irq_desc *desc)
{ {
struct ar724x_pci_controller *apc; struct ar724x_pci_controller *apc;
void __iomem *base; void __iomem *base;
......
...@@ -129,7 +129,7 @@ static void rt3883_pci_write_cfg32(struct rt3883_pci_controller *rpc, ...@@ -129,7 +129,7 @@ static void rt3883_pci_write_cfg32(struct rt3883_pci_controller *rpc,
rt3883_pci_w32(rpc, val, RT3883_PCI_REG_CFGDATA); rt3883_pci_w32(rpc, val, RT3883_PCI_REG_CFGDATA);
} }
static void rt3883_pci_irq_handler(unsigned int __irq, struct irq_desc *desc) static void rt3883_pci_irq_handler(struct irq_desc *desc)
{ {
struct rt3883_pci_controller *rpc; struct rt3883_pci_controller *rpc;
u32 pending; u32 pending;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment