Commit 2258a6fc authored by Borislav Petkov's avatar Borislav Petkov
Browse files

Merge tag 'irqchip-5.16' into irq/core



Merge irqchip updates for Linux 5.16 from Marc Zyngier:

- A large cross-arch rework to move irq_enter()/irq_exit() into
  the arch code, and removing it from the generic irq code.
  Thanks to Mark Rutland for the huge effort!

- A few irqchip drivers are made modular (broadcom, meson), because
  that's apparently a thing...

- A new driver for the Microchip External Interrupt Controller

- The irq_cpu_offline()/irq_cpu_online() API is now deprecated and
  can only be selected on the Cavium Octeon platform. Once this
  platform is removed, the API will be removed at the same time.

- A sprinkle of devm_* helper, as people seem to love that.

- The usual spattering of small fixes and minor improvements.

* tag 'irqchip-5.16': (912 commits)
  h8300: Fix linux/irqchip.h include mess
  dt-bindings: irqchip: renesas-irqc: Document r8a774e1 bindings
  MIPS: irq: Avoid an unused-variable error
  genirq: Hide irq_cpu_{on,off}line() behind a deprecated option
  irqchip/mips-gic: Get rid of the reliance on irq_cpu_online()
  MIPS: loongson64: Drop call to irq_cpu_offline()
  irq: remove handle_domain_{irq,nmi}()
  irq: remove CONFIG_HANDLE_DOMAIN_IRQ_IRQENTRY
  irq: riscv: perform irqentry in entry code
  irq: openrisc: perform irqentry in entry code
  irq: csky: perform irqentry in entry code
  irq: arm64: perform irqentry in entry code
  irq: arm: perform irqentry in entry code
  irq: add a (temporary) CONFIG_HANDLE_DOMAIN_IRQ_IRQENTRY
  irq: nds32: avoid CONFIG_HANDLE_DOMAIN_IRQ
  irq: arc: avoid CONFIG_HANDLE_DOMAIN_IRQ
  irq: add generic_handle_arch_irq()
  irq: unexport handle_irq_desc()
  irq: simplify handle_domain_{irq,nmi}()
  irq: mips: simplify do_domain_IRQ()
  ...

Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20211029083332.3680101-1-maz@kernel.org
parents 441e9036 11e45471
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -259,7 +259,7 @@ Configuring the kernel
Compiling the kernel
--------------------

 - Make sure you have at least gcc 4.9 available.
 - Make sure you have at least gcc 5.1 available.
   For more information, refer to :ref:`Documentation/process/changes.rst <changes>`.

   Please note that you can still run a.out user programs with this kernel.
+3 −5
Original line number Diff line number Diff line
@@ -67,9 +67,6 @@ variety of methods:
  deprecated
- generic_handle_domain_irq() handles an interrupt described by a
  domain and a hwirq number
- handle_domain_irq() does the same thing for root interrupt
  controllers and deals with the set_irq_reg()/irq_enter() sequences
  that most architecture requires

Note that irq domain lookups must happen in contexts that are
compatible with a RCU read-side critical section.
@@ -175,9 +172,10 @@ for IRQ numbers that are passed to struct device registrations. In that
case the Linux IRQ numbers cannot be dynamically assigned and the legacy
mapping should be used.

As the name implies, the *_legacy() functions are deprecated and only
As the name implies, the \*_legacy() functions are deprecated and only
exist to ease the support of ancient platforms. No new users should be
added.
added. Same goes for the \*_simple() functions when their use results
in the legacy behaviour.

The legacy map assumes a contiguous range of IRQ numbers has already
been allocated for the controller and that the IRQ number can be
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ properties:
          - const: toradex,apalis_t30
          - const: nvidia,tegra30
      - items:
          - const: toradex,apalis_t30-eval-v1.1
          - const: toradex,apalis_t30-v1.1-eval
          - const: toradex,apalis_t30-eval
          - const: toradex,apalis_t30-v1.1
          - const: toradex,apalis_t30
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ function block.

All DISP device tree nodes must be siblings to the central MMSYS_CONFIG node.
For a description of the MMSYS_CONFIG binding, see
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt.
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml.

DISP function blocks
====================
+42 −4
Original line number Diff line number Diff line
@@ -31,11 +31,11 @@ properties:

  clocks:
    minItems: 1
    maxItems: 3
    maxItems: 7

  clock-names:
    minItems: 1
    maxItems: 3
    maxItems: 7

required:
  - compatible
@@ -72,6 +72,32 @@ allOf:
          contains:
            enum:
              - qcom,sdm660-a2noc
    then:
      properties:
        clocks:
          items:
            - description: Bus Clock.
            - description: Bus A Clock.
            - description: IPA Clock.
            - description: UFS AXI Clock.
            - description: Aggregate2 UFS AXI Clock.
            - description: Aggregate2 USB3 AXI Clock.
            - description: Config NoC USB2 AXI Clock.
        clock-names:
          items:
            - const: bus
            - const: bus_a
            - const: ipa
            - const: ufs_axi
            - const: aggre2_ufs_axi
            - const: aggre2_usb3_axi
            - const: cfg_noc_usb2_axi

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sdm660-bimc
              - qcom,sdm660-cnoc
              - qcom,sdm660-gnoc
@@ -91,6 +117,7 @@ examples:
  - |
      #include <dt-bindings/clock/qcom,rpmcc.h>
      #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
      #include <dt-bindings/clock/qcom,gcc-sdm660.h>

      bimc: interconnect@1008000 {
              compatible = "qcom,sdm660-bimc";
@@ -123,9 +150,20 @@ examples:
              compatible = "qcom,sdm660-a2noc";
              reg = <0x01704000 0xc100>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a";
              clock-names = "bus",
                            "bus_a",
                            "ipa",
                            "ufs_axi",
                            "aggre2_ufs_axi",
                            "aggre2_usb3_axi",
                            "cfg_noc_usb2_axi";
              clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
                       <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>;
                       <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>,
                       <&rpmcc RPM_SMD_IPA_CLK>,
                       <&gcc GCC_UFS_AXI_CLK>,
                       <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
                       <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
                       <&gcc GCC_CFG_NOC_USB2_AXI_CLK>;
      };

      mnoc: interconnect@1745000 {
Loading