Commit 3cb66535 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq updates from Thomas Gleixner:
 "Nothing exciting from the irq side for this merge window:

   - a new driver for a Mediatek SoC

   - ACPI support for ARM GICV3

   - support for shared nested interrupts

   - the usual pile of fixes and updates all over te place"

* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (28 commits)
  irqchip/mbigen: Fix return value check in mbigen_device_probe()
  irqchip/mips-gic: Replace static map with dynamic
  irqchip/mips-gic: Remove device IRQ domain
  irqchip/mips-gic: Separate IPI reservation & usage tracking
  genirq: Use irqd_get_trigger_type to compare the trigger type for shared IRQs
  genirq: Use cpumask_available() for check of cpumask variable
  cpumask: Add helper cpumask_available()
  irqchip/irq-imx-gpcv2: Clear OF_POPULATED flag
  irqchip/atmel-aic5: Handle suspend to RAM
  irqchip: Add Mediatek mtk-cirq driver
  dt-bindings: mtk-cirq: Add binding document
  irqchip/gic-v3-its: Add IORT hook for platform MSI support
  irqchip/mbigen: Add ACPI support
  irqchip/mbigen: Introduce mbigen_of_create_domain()
  irqchip/mbigen: Drop module owner
  platform-msi: Make platform_msi_create_device_domain() ACPI aware
  irqchip/gicv3-its: platform-msi: Scan MADT to create platform msi domain
  irqchip/gicv3-its: platform-msi: Refactor its_pmsi_init() to prepare for ACPI
  irqchip/gicv3-its: platform-msi: Refactor its_pmsi_prepare()
  irqchip/gic-v3-its: Keep the include header files in alphabetic order
  ...
parents 2dbf3d5c 216646e4
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
* Cortina Systems Gemini interrupt controller
* Faraday Technologt FTINTC010 interrupt controller

This interrupt controller is found on the Gemini SoCs.
This interrupt controller is a stock IP block from Faraday Technology found
in the Gemini SoCs and other designs.

Required properties:
- compatible: must be "cortina,gemini-interrupt-controller"
- compatible: must be one of
  "faraday,ftintc010"
  "cortina,gemini-interrupt-controller" (deprecated)
- reg: The register bank for the interrupt controller.
- interrupt-controller: Identifies the node as an interrupt controller
- #interrupt-cells: The number of cells to define the interrupts.
@@ -15,7 +18,7 @@ Required properties:
Example:

interrupt-controller@48000000 {
	compatible = "cortina,gemini-interrupt-controller";
	compatible = "faraday,ftintc010"
	reg = <0x48000000 0x1000>;
	interrupt-controller;
	#interrupt-cells = <2>;
+35 −0
Original line number Diff line number Diff line
* Mediatek 27xx cirq

In Mediatek SOCs, the CIRQ is a low power interrupt controller designed to
work outside MCUSYS which comprises with Cortex-Ax cores,CCI and GIC.
The external interrupts (outside MCUSYS) will feed through CIRQ and connect
to GIC in MCUSYS. When CIRQ is enabled, it will record the edge-sensitive
interrupts and generate a pulse signal to parent interrupt controller when
flush command is executed. With CIRQ, MCUSYS can be completely turned off
to improve the system power consumption without losing interrupts.

Required properties:
- compatible: should be one of
  - "mediatek,mt2701-cirq" for mt2701 CIRQ
  - "mediatek,mt8135-cirq" for mt8135 CIRQ
  - "mediatek,mt8173-cirq" for mt8173 CIRQ
  and "mediatek,cirq" as a fallback.
- interrupt-controller : Identifies the node as an interrupt controller.
- #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt.
- interrupt-parent: phandle of irq parent for cirq. The parent must
  use the same interrupt-cells format as GIC.
- reg: Physical base address of the cirq registers and length of memory
  mapped region.
- mediatek,ext-irq-range: Identifies external irq number range in different
  SOCs.

Example:
	cirq: interrupt-controller@10204000 {
		compatible = "mediatek,mt2701-cirq",
			     "mediatek,mtk-cirq";
		interrupt-controller;
		#interrupt-cells = <3>;
		interrupt-parent = <&sysirq>;
		reg = <0 0x10204000 0 0x400>;
		mediatek,ext-irq-start = <32 200>;
	};
+7 −4
Original line number Diff line number Diff line
@@ -21,13 +21,16 @@ Required properties:
- interrupt-parent: phandle of irq parent for sysirq. The parent must
  use the same interrupt-cells format as GIC.
- reg: Physical base address of the intpol registers and length of memory
  mapped region.
  mapped region. Could be multiple bases here. Ex: mt6797 needs 2 reg, others
  need 1.

Example:
	sysirq: interrupt-controller@10200100 {
		compatible = "mediatek,mt6589-sysirq", "mediatek,mt6577-sysirq";
	sysirq: intpol-controller@10200620 {
		compatible = "mediatek,mt6797-sysirq",
			     "mediatek,mt6577-sysirq";
		interrupt-controller;
		#interrupt-cells = <3>;
		interrupt-parent = <&gic>;
		reg = <0 0x10200100 0 0x1c>;
		reg = <0 0x10220620 0 0x20>,
		      <0 0x10220690 0 0x10>;
	};
+1 −1
Original line number Diff line number Diff line
@@ -3,8 +3,8 @@ menuconfig ARCH_MOXART
	depends on ARCH_MULTI_V4
	select CPU_FA526
	select ARM_DMA_MEM_BUFFERABLE
	select FARADAY_FTINTC010
	select MOXART_TIMER
	select GENERIC_IRQ_CHIP
	select GPIOLIB
	select PHYLIB if NETDEVICES
	help
+1 −2
Original line number Diff line number Diff line
@@ -345,8 +345,7 @@ platform_msi_create_device_domain(struct device *dev,

	data->host_data = host_data;
	domain = irq_domain_create_hierarchy(dev->msi_domain, 0, nvec,
					     of_node_to_fwnode(dev->of_node),
					     ops, data);
					     dev->fwnode, ops, data);
	if (!domain)
		goto free_priv;

Loading