Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'irqchip/stacked-irq_set_wake' into irqchip/core

Conflicts:
drivers/irqchip/irq-gic.c

+10 -14
+1 -6
arch/arm/mach-shmobile/intc-sh73a0.c
··· 252 252 return IRQ_HANDLED; 253 253 } 254 254 255 - static int sh73a0_set_wake(struct irq_data *data, unsigned int on) 256 - { 257 - return 0; /* always allow wakeup */ 258 - } 259 - 260 255 #define PINTER0_PHYS 0xe69000a0 261 256 #define PINTER1_PHYS 0xe69000a4 262 257 #define PINTER0_VIRT IOMEM(0xe69000a0) ··· 313 318 void __iomem *gic_cpu_base = IOMEM(0xf0000100); 314 319 void __iomem *intevtsa = ioremap_nocache(0xffd20100, PAGE_SIZE); 315 320 321 + gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE); 316 322 gic_init(0, 29, gic_dist_base, gic_cpu_base); 317 - gic_arch_extn.irq_set_wake = sh73a0_set_wake; 318 323 319 324 register_intc_controller(&intcs_desc); 320 325 register_intc_controller(&intc_pint0_desc);
+1 -6
arch/arm/mach-shmobile/setup-r8a7779.c
··· 713 713 } 714 714 715 715 #ifdef CONFIG_USE_OF 716 - static int r8a7779_set_wake(struct irq_data *data, unsigned int on) 717 - { 718 - return 0; /* always allow wakeup */ 719 - } 720 - 721 716 void __init r8a7779_init_irq_dt(void) 722 717 { 723 718 #ifdef CONFIG_ARCH_SHMOBILE_LEGACY 724 719 void __iomem *gic_dist_base = ioremap_nocache(0xf0001000, 0x1000); 725 720 void __iomem *gic_cpu_base = ioremap_nocache(0xf0000100, 0x1000); 726 721 #endif 727 - gic_arch_extn.irq_set_wake = r8a7779_set_wake; 722 + gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE); 728 723 729 724 #ifdef CONFIG_ARCH_SHMOBILE_LEGACY 730 725 gic_init(0, 29, gic_dist_base, gic_cpu_base);
+1 -1
arch/arm/mach-ux500/cpu.c
··· 52 52 */ 53 53 void __init ux500_init_irq(void) 54 54 { 55 - gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND; 55 + gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND); 56 56 irqchip_init(); 57 57 58 58 /*
+1 -1
arch/arm/mach-zynq/common.c
··· 186 186 187 187 static void __init zynq_irq_init(void) 188 188 { 189 - gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND; 189 + gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND); 190 190 irqchip_init(); 191 191 } 192 192
+5
drivers/irqchip/irq-gic.c
··· 880 880 .xlate = gic_irq_domain_xlate, 881 881 }; 882 882 883 + void gic_set_irqchip_flags(unsigned long flags) 884 + { 885 + gic_chip.flags |= flags; 886 + } 887 + 883 888 void __init gic_init_bases(unsigned int gic_nr, int irq_start, 884 889 void __iomem *dist_base, void __iomem *cpu_base, 885 890 u32 percpu_offset, struct device_node *node)
+1
include/linux/irqchip/arm-gic.h
··· 97 97 98 98 extern struct irq_chip gic_arch_extn; 99 99 100 + void gic_set_irqchip_flags(unsigned long flags); 100 101 void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, 101 102 u32 offset, struct device_node *); 102 103 void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);