2015-04-10 23:45:52

by Jason Cooper

[permalink] [raw]
Subject: [GIT PULL] irqchip: Core changes for v4.1 (round 3)

Thomas,

This is the big one. With this pull request, we remove the legacy hack
gic_arch_extn, and all users of it. Replacing it with proper
representations via stacked domains. Due to the potentially disruptive
nature of this series, I've taken several precautions to make sure all
interested folks are informed and had plenty of chance to object or
recommend other courses of action. You're receiving this because there
have been no objections. ;-)

The nature of each series required that the patches be kept together, so
we're touching a lot of arch/arm/ code here, as well as the
corresponding dts files. To soften the impact of this, I created a
topic branch per-subarch that they could test, base other work off of,
etc.

These commits have all been in linux-next for either 14 (exynos) or 17
tags. iow, at _least_ two weeks, probably three. No issues reported.

On the practical side, the DT compatibility break will only be noticed if
a user boots a newer kernel with an old DT. They'll have a usable
system, minus suspend/resume. There will be a large warning to upgrade
the dtb in order to get suspend/resume working.

We feel the impact of this change will be minimal as most distributions
have responded to DT instability by tying the dtb to the kernel version
it came from. I don't mention this as justification, rather as a fact
that's useful for measuring the potential impact of these necessary
changes.

A tremendous "Thank you!" to Marc for putting forth all the effort to
create this series and his gentle 'prodding' to move it along. :)

This is an incremental pull request from tags/irqchip-core-4.1-2 up to
tags/irqchip-core-4.1-3 on the irqchip/core branch.

Please pull.

thx,

Jason.

The following changes since commit 78223354a64284fe1ef74c5a7900435776fcf2a0:

Merge branch 'irqchip/renesas' into irqchip/core (2015-04-02 23:27:23 +0000)

are available in the git repository at:

git://git.infradead.org/users/jcooper/linux.git tags/irqchip-core-4.1-3

for you to fetch changes up to a01e7b3258bea93fbf1f028fab1c739d80c61823:

Merge branch 'irqchip/stacked-irq_set_wake' into irqchip/core (2015-04-10 22:58:19 +0000)

----------------------------------------------------------------
irqchip core change for v4.1 (round 3)

- Purge the gic_arch_extn hacks and abuse by using the new stacked domains

NOTE: Due to the nature of these changes, patches crossing subsystems have
been kept together in their own branches.

- tegra

- Handle the LIC properly

- omap

- Convert crossbar to stacked domains
- kill arm,routable-irqs in GIC binding

- exynos

- Convert PMU wakeup to stacked domains

- shmobile, ux500, zynq (irq_set_wake branch)

- Switch from abusing gic_arch_extn to using gic_set_irqchip_flags

----------------------------------------------------------------
Jason Cooper (4):
Merge branch 'irqchip/stacked-tegra' into irqchip/core
Merge branch 'irqchip/stacked-omap' into irqchip/core
Merge branch 'irqchip/stacked-exynos' into irqchip/core
Merge branch 'irqchip/stacked-irq_set_wake' into irqchip/core

Marc Zyngier (19):
ARM: tegra: irq: nuke leftovers from non-DT support
irqchip: tegra: Add DT-based support for legacy interrupt controller
ARM: tegra: skip gic_arch_extn setup if DT has a LIC node
ARM: tegra: update DTs to expose legacy interrupt controller
DT: tegra: add binding for the legacy interrupt controller
ARM: tegra: remove old LIC support
genirq: Add irqchip_set_wake_parent
irqchip: crossbar: Convert dra7 crossbar to stacked domains
DT: update ti,irq-crossbar binding
irqchip: gic: Get rid of routable domain
DT: arm,gic: kill arm,routable-irqs
DT: omap4/5: add binding for the wake-up generator
ARM: omap: convert wakeupgen to stacked domains
irqchip: gic: Add an entry point to set up irqchip flags
ARM: shmobile: remove use of gic_arch_extn.irq_set_wake
ARM: ux500: switch from gic_arch_extn to gic_set_irqchip_flags
ARM: zynq: switch from gic_arch_extn to gic_set_irqchip_flags
ARM: exynos4/5: convert pmu wakeup to stacked domains
DT: exynos: update PMU binding

Thierry Reding (1):
irqchip: tegra: Add Tegra210 support

Documentation/devicetree/bindings/arm/gic.txt | 6 -
.../devicetree/bindings/arm/omap/crossbar.txt | 18 +-
.../devicetree/bindings/arm/samsung/pmu.txt | 17 +
.../interrupt-controller/nvidia,tegra-ictlr.txt | 43 +++
.../interrupt-controller/ti,omap4-wugen-mpu | 33 ++
arch/arm/boot/dts/am4372.dtsi | 11 +-
arch/arm/boot/dts/am437x-gp-evm.dts | 1 -
arch/arm/boot/dts/am437x-sk-evm.dts | 1 -
arch/arm/boot/dts/am43x-epos-evm.dts | 1 -
arch/arm/boot/dts/am57xx-beagle-x15.dts | 3 +-
arch/arm/boot/dts/dra7-evm.dts | 2 +-
arch/arm/boot/dts/dra7.dtsi | 43 ++-
arch/arm/boot/dts/dra72-evm.dts | 1 -
arch/arm/boot/dts/dra72x.dtsi | 3 +-
arch/arm/boot/dts/dra74x.dtsi | 5 +-
arch/arm/boot/dts/exynos3250.dtsi | 4 +
arch/arm/boot/dts/exynos4.dtsi | 4 +
arch/arm/boot/dts/exynos5250.dtsi | 4 +
arch/arm/boot/dts/exynos5420.dtsi | 4 +
arch/arm/boot/dts/omap4-duovero.dtsi | 2 -
arch/arm/boot/dts/omap4-panda-common.dtsi | 8 +-
arch/arm/boot/dts/omap4-sdp.dts | 8 +-
arch/arm/boot/dts/omap4-var-som-om44.dtsi | 2 -
arch/arm/boot/dts/omap4.dtsi | 18 +-
arch/arm/boot/dts/omap5-cm-t54.dts | 1 -
arch/arm/boot/dts/omap5-uevm.dts | 2 -
arch/arm/boot/dts/omap5.dtsi | 26 +-
arch/arm/boot/dts/tegra114.dtsi | 16 +-
arch/arm/boot/dts/tegra124.dtsi | 16 +-
arch/arm/boot/dts/tegra20.dtsi | 15 +-
arch/arm/boot/dts/tegra30.dtsi | 16 +-
arch/arm/mach-exynos/exynos.c | 15 +-
arch/arm/mach-exynos/suspend.c | 135 +++++++-
arch/arm/mach-omap2/omap-wakeupgen.c | 128 +++++--
arch/arm/mach-omap2/omap-wakeupgen.h | 1 -
arch/arm/mach-omap2/omap4-common.c | 27 +-
arch/arm/mach-shmobile/intc-sh73a0.c | 7 +-
arch/arm/mach-shmobile/setup-r8a7779.c | 7 +-
arch/arm/mach-tegra/iomap.h | 15 -
arch/arm/mach-tegra/irq.c | 209 +-----------
arch/arm/mach-tegra/irq.h | 6 -
arch/arm/mach-tegra/tegra.c | 1 -
arch/arm/mach-ux500/cpu.c | 2 +-
arch/arm/mach-zynq/common.c | 2 +-
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-crossbar.c | 210 +++++++-----
drivers/irqchip/irq-gic.c | 58 +---
drivers/irqchip/irq-tegra.c | 377 +++++++++++++++++++++
include/linux/irq.h | 1 +
include/linux/irqchip/arm-gic.h | 7 +-
include/linux/irqchip/irq-crossbar.h | 11 -
kernel/irq/chip.c | 16 +
52 files changed, 1032 insertions(+), 538 deletions(-)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra-ictlr.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,omap4-wugen-mpu
create mode 100644 drivers/irqchip/irq-tegra.c
delete mode 100644 include/linux/irqchip/irq-crossbar.h


2015-04-11 09:23:24

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [GIT PULL] irqchip: Core changes for v4.1 (round 3)

Jason,

On Fri, 10 Apr 2015, Jason Cooper wrote:
> A tremendous "Thank you!" to Marc for putting forth all the effort to
> create this series and his gentle 'prodding' to move it along. :)

Thanks Marc for cleaning this up!

> This is an incremental pull request from tags/irqchip-core-4.1-2 up to
> tags/irqchip-core-4.1-3 on the irqchip/core branch.
>
> Please pull.

Pulled and pushed out. Thanks for herding this lot!

Thanks,

tglx

2015-04-11 10:02:21

by Marc Zyngier

[permalink] [raw]
Subject: Re: [GIT PULL] irqchip: Core changes for v4.1 (round 3)

Hi Jason,

On 2015-04-11 00:45, Jason Cooper wrote:
> Thomas,
>
> This is the big one. With this pull request, we remove the legacy
> hack
> gic_arch_extn, and all users of it. Replacing it with proper
> representations via stacked domains. Due to the potentially
> disruptive
> nature of this series, I've taken several precautions to make sure
> all
> interested folks are informed and had plenty of chance to object or
> recommend other courses of action. You're receiving this because
> there
> have been no objections. ;-)

Note that I have held onto the patch[1] that actually *removes*
gic-arch_extn
from the GIC code, just in case we need to perform a last minute
revert.
We can merge that one patch later, once the dust has settled (I don't
expect much noise, but who knows...).

[...]

> A tremendous "Thank you!" to Marc for putting forth all the effort to
> create this series and his gentle 'prodding' to move it along. :)

Well, I'll be thanking you for getting this merged, as well as the
various
maintainers who have contributed reviews, fixes and improvements to
this
most disruptive series. This is teamwork! ;-)

Cheers,

M.

[1]:
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/315405.html
--
Fast, cheap, reliable. Pick two.

2015-04-11 14:32:58

by Jason Cooper

[permalink] [raw]
Subject: Re: [GIT PULL] irqchip: Core changes for v4.1 (round 3)

Hey Marc,

On Sat, Apr 11, 2015 at 11:02:14AM +0100, Marc Zyngier wrote:
> On 2015-04-11 00:45, Jason Cooper wrote:
> >This is the big one. With this pull request, we remove the legacy hack
> >gic_arch_extn, and all users of it. Replacing it with proper
> >representations via stacked domains. Due to the potentially disruptive
> >nature of this series, I've taken several precautions to make sure all
> >interested folks are informed and had plenty of chance to object or
> >recommend other courses of action. You're receiving this because there have
> >been no objections. ;-)
>
> Note that I have held onto the patch[1] that actually *removes* gic-arch_extn
> from the GIC code, just in case we need to perform a last minute revert. We
> can merge that one patch later, once the dust has settled (I don't expect
> much noise, but who knows...).

Ok, please resend (or ping me) once v4.1-rc1 lands and we'll queue it up as a
fix for v4.1.

thx,

Jason.