Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp2018555imn; Mon, 1 Aug 2022 08:17:25 -0700 (PDT) X-Google-Smtp-Source: AA6agR65soZv7mMbsML4KHPYEEb1L8NRS5n3DfxPN1AK9w4DqMke3raJluonNY/xrZuSHL1Z5Vo7 X-Received: by 2002:a17:902:8343:b0:16d:d2ff:c91d with SMTP id z3-20020a170902834300b0016dd2ffc91dmr15477890pln.142.1659367045004; Mon, 01 Aug 2022 08:17:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659367044; cv=none; d=google.com; s=arc-20160816; b=DNYuVnt69QaU+a6xGmVaVj0SzuSJGri4FM0i80IFmH25rF+A993L9qIjzqI1g+XK0w TD/Nf0AAbgkC22CAgV2ymxviqm1aL9G8Whexvh7tmsla3jbSUjmgo/sIaNSih4JuWjYe bs12P2+V5x21mj5qav5JLBhJXfNxJHjLbTThLoBGEMIuTQx0CmPlIZ/Ur8L5JfiOTyjO E+A8uSgVjZy19YMrWApCCTkj5q3upYhwQ2r2ehfc9hcX99I7XWUptBfldH31XHEUPcdd xcT5+j9Og4pXsEG7doeAU9QG80WTCBsxcaw+nVOA2zZM3ZHrTm/fBdodOl0IM6uFVuHZ sZ5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:mime-version:content-transfer-encoding :message-id:subject:cc:to:dkim-signature:dkim-signature:from; bh=s1arFACTzg54mgXd6bZUkPdmQPTM7u7EX6RxeCwhYQw=; b=bHyX2kw4Ni2j8vo+2gDwLKXrZuJqRjNmX/VB6Kp1Qo6PH7H9/MiPmWhlD/zl/yN8EO +X/Lofts3Bmqz2CWPbiSFpO6P5eYRN+HtA+0ChxEsfgCbCxvZsFJeCQAHmHzCI53FQkH l5L/W2MF8PBBo+v8qgH/ScVNMRhJNqLe9SsptHxvhZmxsM2b44Epf0215zltKP4d4XrZ mNFwGiyhSy6OsibgbIzzMykrACQMiEU6NyowCWJfPqTyffEJEJmSDs78ykZRQJd0gwl7 pZF9zRSVD6BfhsfCgZaaQCPPNTlJ+Pf8FuowdI5sd/fZzQ8iQeusQtxCdlaYxh2pgfRf icCw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=l8vEI6XE; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a24-20020a1709027d9800b0016ca4b6f18fsi12725526plm.63.2022.08.01.08.17.05; Mon, 01 Aug 2022 08:17:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=l8vEI6XE; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233014AbiHAOsQ (ORCPT + 99 others); Mon, 1 Aug 2022 10:48:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231953AbiHAOsK (ORCPT ); Mon, 1 Aug 2022 10:48:10 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8875A3C14B for ; Mon, 1 Aug 2022 07:48:05 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1659365283; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s1arFACTzg54mgXd6bZUkPdmQPTM7u7EX6RxeCwhYQw=; b=l8vEI6XEtnxhM6J4ox6o7z9Fka3rVhdq4csrL1GPByDSjVnHeAJ/mUQBJpIiuSln8LA0xp 3vL/1f4AXMtOxawPzFKuPUrkQTJqGfNVYFjdkyN3SBjlBg2zjcfkk7od97nm7sW3Q8lSlA LG6Bq5hKNxeawcIpU5IPwDJ60H6mELsa1ttNmK80mn24+5B9nee2bh096uju2ool8tUrSZ xfKdK6EGfLPQLimfOmp7uQhpDaYelLqKkkJxORJ3tLjQO3x8lPnbUUxV4sdTtisF7jT1Mg WFQeAPypINcKhQpoAVCYOppF5bEZPyAXdrhholVwtd6tGNK9Z04zVgaBeP24WQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1659365283; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s1arFACTzg54mgXd6bZUkPdmQPTM7u7EX6RxeCwhYQw=; b=ZzDBk0Ik0Bjep3Wxvgo1VrPh8tXqtK3IW2rNi2FY7cM8vOxBSRIXJ1kWpSNYw6xa1ycO2J y44SwCR7mK5RbxBA== To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, x86@kernel.org Subject: [GIT pull] irq/core for v6.0-rc1 Message-ID: <165936521992.1709539.10227752058452220355.tglx@xen13.tec.linutronix.de> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Date: Mon, 1 Aug 2022 16:48:03 +0200 (CEST) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linus, please pull the latest irq/core branch from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-core-2022-08= -01 up to: 779fda86bdeb: Merge tag 'irqchip-5.20' of git://git.kernel.org/pub/sc= m/linux/kernel/git/maz/arm-platforms into irq/core Updates for interrupt core and drivers: core: - Fix a few inconsistencies between UP and SMP vs. interrupt affinities - Small updates and cleanups all over the place drivers: - New driver for the LoongArch interrupt controller - New driver for the Renesas RZ/G2L interrupt controller - Hotpath optimization for SiFive PLIC - Workaround for broken PLIC edge triggered interrupts - Small cleanups and improvements as usual Thanks, tglx ------------------> Alexandre Torgue (1): irqchip/stm32-exti: Tag emr register as undefined for stm32mp15 Antonio Borneo (4): genirq: Don't return error on missing optional irq_request_resources() irqchip/stm32-exti: Prevent illegal read due to unbounded DT value irqchip/stm32-exti: Read event trigger type from event_trg register irqchip/stm32-exti: Simplify irq description table Ben Dooks (1): irqchip/mmp: Declare init functions in common header file Huacai Chen (6): irqchip: Add Loongson PCH LPC controller support irqchip/loongson-pch-pic: Add ACPI init support irqchip/loongson-pch-msi: Add ACPI init support irqchip/loongson-liointc: Add ACPI init support irqchip: Add Loongson Extended I/O interrupt controller support irqchip: Add LoongArch CPU interrupt controller support Jason Wang (1): irqchip/gic-v3: Fix comment typo Jianmin Lv (4): genirq/generic_chip: Export irq_unmap_generic_chip LoongArch: Use ACPI_GENERIC_GSI for gsi handling LoongArch: Prepare to support multiple pch-pic and pch-msi irqdomain irqchip / ACPI: Introduce ACPI_IRQ_MODEL_LPIC for LoongArch Lad Prabhakar (8): dt-bindings: interrupt-controller: sifive,plic: Document Renesas RZ/Fiv= e SoC irqchip/sifive-plic: Add support for Renesas RZ/Five SoC dt-bindings: interrupt-controller: Add Renesas RZ/G2L Interrupt Control= ler irqchip: Add RZ/G2L IA55 Interrupt Controller driver gpio: gpiolib: Allow free() callback to be overridden dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Document the properties to= handle GPIO IRQ pinctrl: renesas: pinctrl-rzg2l: Add IRQ domain to handle GPIO interrupt dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/V2L = SoC Loic Pallardy (1): irqchip/stm32-exti: Fix irq_mask/irq_unmask for direct events Ludovic Barre (1): irqchip/stm32-exti: Fix irq_set_affinity return value Lukas Wunner (1): genirq/PM: Unexport {suspend,resume}_device_irqs() Marc Zyngier (5): gpio: Remove dynamic allocation from populate_parent_alloc_arg() gpio: thunderx: Don't directly include asm-generic/msi.h LoongArch: Provisionally add ACPICA data structures APCI: irq: Add support for multiple GSI domains ACPI: irq: Allow acpi_gsi_to_irq() to have an arch-specific fallback Michael Walle (2): genirq: Allow irq_set_chip_handler_name_locked() to take a const irq_ch= ip pinctrl: ocelot: Make irq_chip immutable Paran Lee (1): genirq: Use for_each_action_of_desc in actions_show() Samuel Holland (13): dt-bindings: interrupt-controller: Require trigger type for T-HEAD PLIC irqchip/sifive-plic: Fix T-HEAD PLIC edge trigger handling irqchip/mips-gic: Only register IPI domain when SMP is enabled genirq: GENERIC_IRQ_IPI depends on SMP genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK depends on SMP genirq: Drop redundant irq_init_effective_affinity genirq: Refactor accessors to use irq_data_get_affinity_mask genirq: Add and use an irq_data_update_affinity helper genirq: Return a const cpumask from irq_data_get_affinity_mask genirq: Provide an IRQ affinity mask in non-SMP configs PCI: hv: Take a const cpumask in hv_compose_msi_req_get_cpu() irqchip/sifive-plic: Make better use of the effective affinity mask irqchip/sifive-plic: Separate the enable and mask operations William Dean (1): irqchip/mips-gic: Check the return value of ioremap() in gic_of_init() Xu Qiang (2): irqdomain: Report irq number for NOMAP domains irqdomain: Use hwirq_max instead of revmap_size for NOMAP domains .../interrupt-controller/renesas,rzg2l-irqc.yaml | 134 +++++++ .../interrupt-controller/sifive,plic-1.0.0.yaml | 65 +++- .../bindings/pinctrl/renesas,rzg2l-pinctrl.yaml | 15 + arch/alpha/kernel/irq.c | 2 +- arch/arm/mach-hisi/Kconfig | 2 +- arch/arm/mach-mmp/mmp2.h | 2 +- arch/arm/mach-mmp/pxa168.h | 2 +- arch/arm/mach-mmp/pxa910.h | 2 +- arch/ia64/kernel/iosapic.c | 2 +- arch/ia64/kernel/irq.c | 4 +- arch/ia64/kernel/msi_ia64.c | 4 +- arch/loongarch/Kconfig | 1 + arch/loongarch/include/asm/acpi.h | 142 ++++++++ arch/loongarch/include/asm/irq.h | 51 +-- arch/loongarch/kernel/acpi.c | 65 ---- arch/loongarch/kernel/irq.c | 58 ++- arch/loongarch/kernel/time.c | 14 +- arch/mips/cavium-octeon/octeon-irq.c | 4 +- arch/mips/include/asm/mach-loongson64/irq.h | 3 +- arch/parisc/kernel/irq.c | 2 +- arch/sh/kernel/irq.c | 7 +- arch/x86/hyperv/irqdomain.c | 2 +- arch/xtensa/kernel/irq.c | 7 +- drivers/acpi/bus.c | 3 + drivers/acpi/irq.c | 58 ++- drivers/gpio/gpio-msc313.c | 15 +- drivers/gpio/gpio-tegra.c | 15 +- drivers/gpio/gpio-tegra186.c | 15 +- drivers/gpio/gpio-thunderx.c | 17 +- drivers/gpio/gpio-visconti.c | 15 +- drivers/gpio/gpiolib.c | 51 ++- drivers/iommu/hyperv-iommu.c | 2 +- drivers/irqchip/Kconfig | 60 +++- drivers/irqchip/Makefile | 4 + drivers/irqchip/irq-bcm6345-l1.c | 4 +- drivers/irqchip/irq-gic-v3.c | 20 +- drivers/irqchip/irq-gic.c | 18 +- drivers/irqchip/irq-loongarch-cpu.c | 148 ++++++++ drivers/irqchip/irq-loongson-eiointc.c | 395 +++++++++++++++++++= ++ drivers/irqchip/irq-loongson-liointc.c | 203 +++++++---- drivers/irqchip/irq-loongson-pch-lpc.c | 205 +++++++++++ drivers/irqchip/irq-loongson-pch-msi.c | 127 ++++--- drivers/irqchip/irq-loongson-pch-pic.c | 177 +++++++-- drivers/irqchip/irq-mips-gic.c | 84 +++-- drivers/irqchip/irq-renesas-rzg2l.c | 393 ++++++++++++++++++++ drivers/irqchip/irq-sifive-plic.c | 142 ++++++-- drivers/irqchip/irq-stm32-exti.c | 250 +++++++------ drivers/parisc/iosapic.c | 2 +- drivers/pci/controller/pci-hyperv.c | 12 +- drivers/pinctrl/pinctrl-ocelot.c | 10 +- drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 15 +- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 233 ++++++++++++ drivers/sh/intc/chip.c | 2 +- drivers/xen/events/events_base.c | 7 +- include/linux/acpi.h | 4 +- include/linux/cpuhotplug.h | 1 + include/linux/gpio/driver.h | 42 +-- include/linux/irq.h | 35 +- include/linux/irqchip/mmp.h | 3 + include/linux/irqdesc.h | 5 +- kernel/irq/Kconfig | 2 + kernel/irq/chip.c | 11 +- kernel/irq/debugfs.c | 2 +- kernel/irq/generic-chip.c | 2 +- kernel/irq/ipi.c | 16 +- kernel/irq/irqdesc.c | 2 +- kernel/irq/irqdomain.c | 14 +- kernel/irq/manage.c | 10 +- kernel/irq/pm.c | 2 - 69 files changed, 2780 insertions(+), 663 deletions(-) create mode 100644 Documentation/devicetree/bindings/interrupt-controller/re= nesas,rzg2l-irqc.yaml create mode 100644 drivers/irqchip/irq-loongarch-cpu.c create mode 100644 drivers/irqchip/irq-loongson-eiointc.c create mode 100644 drivers/irqchip/irq-loongson-pch-lpc.c create mode 100644 drivers/irqchip/irq-renesas-rzg2l.c diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,r= zg2l-irqc.yaml b/Documentation/devicetree/bindings/interrupt-controller/renes= as,rzg2l-irqc.yaml new file mode 100644 index 000000000000..33b90e975e33 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-ir= qc.yaml @@ -0,0 +1,134 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/interrupt-controller/renesas,rzg2l-irqc.y= aml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Renesas RZ/G2L (and alike SoC's) Interrupt Controller (IA55) + +maintainers: + - Lad Prabhakar + - Geert Uytterhoeven + +description: | + IA55 performs various interrupt controls including synchronization for the= external + interrupts of NMI, IRQ, and GPIOINT and the interrupts of the built-in per= ipheral + interrupts output by each IP. And it notifies the interrupt to the GIC + - IRQ sense select for 8 external interrupts, mapped to 8 GIC SPI interr= upts + - GPIO pins used as external interrupt input pins, mapped to 32 GIC SPI = interrupts + - NMI edge select (NMI is not treated as NMI exception and supports fall= edge and + stand-up edge detection interrupts) + +allOf: + - $ref: /schemas/interrupt-controller.yaml# + +properties: + compatible: + items: + - enum: + - renesas,r9a07g044-irqc # RZ/G2{L,LC} + - renesas,r9a07g054-irqc # RZ/V2L + - const: renesas,rzg2l-irqc + + '#interrupt-cells': + description: The first cell should contain external interrupt number (IR= Q0-7) and the + second cell is used to specify the flag. + const: 2 + + '#address-cells': + const: 0 + + interrupt-controller: true + + reg: + maxItems: 1 + + interrupts: + maxItems: 41 + + clocks: + maxItems: 2 + + clock-names: + items: + - const: clk + - const: pclk + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + +required: + - compatible + - '#interrupt-cells' + - '#address-cells' + - interrupt-controller + - reg + - interrupts + - clocks + - clock-names + - power-domains + - resets + +unevaluatedProperties: false + +examples: + - | + #include + #include + + irqc: interrupt-controller@110a0000 { + compatible =3D "renesas,r9a07g044-irqc", "renesas,rzg2l-irqc"; + reg =3D <0x110a0000 0x10000>; + #interrupt-cells =3D <2>; + #address-cells =3D <0>; + interrupt-controller; + interrupts =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + clocks =3D <&cpg CPG_MOD R9A07G044_IA55_CLK>, + <&cpg CPG_MOD R9A07G044_IA55_PCLK>; + clock-names =3D "clk", "pclk"; + power-domains =3D <&cpg>; + resets =3D <&cpg R9A07G044_IA55_RESETN>; + }; diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,pl= ic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive= ,plic-1.0.0.yaml index 27092c6a86c4..92e0f8c3eff2 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.= 0.yaml +++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.= 0.yaml @@ -26,9 +26,14 @@ description: with priority below this threshold will not cause the PLIC to raise its interrupt line leading to the context. =20 - While the PLIC supports both edge-triggered and level-triggered interrupts, - interrupt handlers are oblivious to this distinction and therefore it is n= ot - specified in the PLIC device-tree binding. + The PLIC supports both edge-triggered and level-triggered interrupts. For + edge-triggered interrupts, the RISC-V PLIC spec allows two responses to ed= ges + seen while an interrupt handler is active; the PLIC may either queue them = or + ignore them. In the first case, handlers are oblivious to the trigger type= , so + it is not included in the interrupt specifier. In the second case, software + needs to know the trigger type, so it can reorder the interrupt flow to av= oid + missing interrupts. This special handling is needed by at least the Renesas + RZ/Five SoC (AX45MP AndesCore with a NCEPLIC100) and the T-HEAD C900 PLIC. =20 While the RISC-V ISA doesn't specify a memory layout for the PLIC, the "sifive,plic-1.0.0" device is a concrete implementation of the PLIC that @@ -47,6 +52,10 @@ maintainers: properties: compatible: oneOf: + - items: + - enum: + - renesas,r9a07g043-plic + - const: andestech,nceplic100 - items: - enum: - sifive,fu540-c000-plic @@ -64,8 +73,7 @@ properties: '#address-cells': const: 0 =20 - '#interrupt-cells': - const: 1 + '#interrupt-cells': true =20 interrupt-controller: true =20 @@ -82,6 +90,12 @@ properties: description: Specifies how many external interrupts are supported by this controlle= r. =20 + clocks: true + + power-domains: true + + resets: true + required: - compatible - '#address-cells' @@ -91,6 +105,47 @@ required: - interrupts-extended - riscv,ndev =20 +allOf: + - if: + properties: + compatible: + contains: + enum: + - andestech,nceplic100 + - thead,c900-plic + + then: + properties: + '#interrupt-cells': + const: 2 + + else: + properties: + '#interrupt-cells': + const: 1 + + - if: + properties: + compatible: + contains: + const: renesas,r9a07g043-plic + + then: + properties: + clocks: + maxItems: 1 + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + + required: + - clocks + - power-domains + - resets + additionalProperties: false =20 examples: diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.= yaml b/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml index 52df1b146174..997b74639112 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml @@ -47,6 +47,17 @@ properties: gpio-ranges: maxItems: 1 =20 + interrupt-controller: true + + '#interrupt-cells': + const: 2 + description: + The first cell contains the global GPIO port index, constructed using = the + RZG2L_GPIO() helper macro in and= the + second cell is used to specify the flag. + E.g. "interrupts =3D ;" if P4= 3_0 is + being used as an interrupt. + clocks: maxItems: 1 =20 @@ -110,6 +121,8 @@ required: - gpio-controller - '#gpio-cells' - gpio-ranges + - interrupt-controller + - '#interrupt-cells' - clocks - power-domains - resets @@ -126,6 +139,8 @@ examples: gpio-controller; #gpio-cells =3D <2>; gpio-ranges =3D <&pinctrl 0 0 392>; + interrupt-controller; + #interrupt-cells =3D <2>; clocks =3D <&cpg CPG_MOD R9A07G044_GPIO_HCLK>; resets =3D <&cpg R9A07G044_GPIO_RSTN>, <&cpg R9A07G044_GPIO_PORT_RESETN>, diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index f6d2946edbd2..15f2effd6baf 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c @@ -60,7 +60,7 @@ int irq_select_affinity(unsigned int irq) cpu =3D (cpu < (NR_CPUS-1) ? cpu + 1 : 0); last_cpu =3D cpu; =20 - cpumask_copy(irq_data_get_affinity_mask(data), cpumask_of(cpu)); + irq_data_update_affinity(data, cpumask_of(cpu)); chip->irq_set_affinity(data, cpumask_of(cpu), false); return 0; } diff --git a/arch/arm/mach-hisi/Kconfig b/arch/arm/mach-hisi/Kconfig index 75cccbd3f05f..7b3440687176 100644 --- a/arch/arm/mach-hisi/Kconfig +++ b/arch/arm/mach-hisi/Kconfig @@ -40,7 +40,7 @@ config ARCH_HIP04 select HAVE_ARM_ARCH_TIMER select MCPM if SMP select MCPM_QUAD_CLUSTER if SMP - select GENERIC_IRQ_EFFECTIVE_AFF_MASK + select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP help Support for Hisilicon HiP04 SoC family =20 diff --git a/arch/arm/mach-mmp/mmp2.h b/arch/arm/mach-mmp/mmp2.h index 3ebc1bb13f71..7f80b90248fb 100644 --- a/arch/arm/mach-mmp/mmp2.h +++ b/arch/arm/mach-mmp/mmp2.h @@ -5,13 +5,13 @@ #include =20 extern void mmp2_timer_init(void); -extern void __init mmp2_init_icu(void); extern void __init mmp2_init_irq(void); extern void mmp2_clear_pmic_int(void); =20 #include #include #include +#include =20 #include "devices.h" =20 diff --git a/arch/arm/mach-mmp/pxa168.h b/arch/arm/mach-mmp/pxa168.h index 34f907cd165a..c1547e098f09 100644 --- a/arch/arm/mach-mmp/pxa168.h +++ b/arch/arm/mach-mmp/pxa168.h @@ -5,7 +5,6 @@ #include =20 extern void pxa168_timer_init(void); -extern void __init icu_init_irq(void); extern void __init pxa168_init_irq(void); extern void pxa168_restart(enum reboot_mode, const char *); extern void pxa168_clear_keypad_wakeup(void); @@ -18,6 +17,7 @@ extern void pxa168_clear_keypad_wakeup(void); #include #include #include +#include =20 #include "devices.h" =20 diff --git a/arch/arm/mach-mmp/pxa910.h b/arch/arm/mach-mmp/pxa910.h index 6ace5a8aa15b..7d229214065a 100644 --- a/arch/arm/mach-mmp/pxa910.h +++ b/arch/arm/mach-mmp/pxa910.h @@ -3,13 +3,13 @@ #define __ASM_MACH_PXA910_H =20 extern void pxa910_timer_init(void); -extern void __init icu_init_irq(void); extern void __init pxa910_init_irq(void); =20 #include #include #include #include