mbox

[GIT,PULL] ARM irqchip consolidation

Message ID 4EC39D44.8000706@arm.com
State New
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irqchip-consolidation

Message

Marc Zyngier Nov. 16, 2011, 11:23 a.m. UTC
Russell,

I've collected patches converting GIC and VIC based platforms to use the
MULTI_IRQ_HANDLER configuration option in a single branch (as they depend
on a common patch).

It also include the patch adding non-banked support to the GIC, which is
required to convert EXYNOS to MULTI_IRQ_HANDLER in a sane way (not to
mention fixing obvious bugs).

If you're happy with this, feel free to pull this branch.

Thanks,

	M.

The following changes since commit cfcfc9eca2bcbd26a8e206baeb005b055dbf8e37:
  Linus Torvalds (1):
        Linux 3.2-rc2

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irqchip-consolidation

Jamie Iles (12):
      ARM: vic: device tree binding
      ARM: vic: MULTI_IRQ_HANDLER handler
      ARM: ep93xx: convert to MULTI_IRQ_HANDLER
      ARM: netx: convert to MULTI_IRQ_HANDLER
      ARM: nomadik: convert to MULTI_IRQ_HANDLER
      ARM: s3c64xx: convert to MULTI_IRQ_HANDLER
      ARM: spear: convert to MULTI_IRQ_HANDLER
      ARM: u300: convert to MULTI_IRQ_HANDLER
      ARM: versatile: convert to MULTI_IRQ_HANDLER
      ARM: samsung: convert to MULTI_IRQ_HANDLER
      ARM: picoxcell: convert to MULTI_IRQ_HANDLER
      ARM: VIC: remove non MULTI_IRQ_HANDLER support

Marc Zyngier (19):
      ARM: gic: allow GIC to support non-banked setups
      ARM: Make global handler and CONFIG_MULTI_IRQ_HANDLER mutually exclusive
      ARM: mxc: rename gic_handle_irq to avoid name clash
      ARM: GIC: Add global gic_handle_irq() function
      ARM: imx: convert smp platforms to global gic_handle_irq()
      ARM: highbank: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: RealView: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: VExpress: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: msm: convert SMP platforms to CONFIG_MULTI_IRQ_HANDLER
      ARM: exynos4: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: tegra2: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: ux500: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: shmobile: convert smp platforms to gic_handle_irq()
      ARM: cns3xxx: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: zynq: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: omap2/3: Add global omap2/3_intc_handle_irq() functions
      ARM: omap2plus: convert to CONFIG_MULTI_IRQ_HANDLER
      ARM: omap2plus: remove irq-related global base addresses
      ARM: GIC: Make MULTI_IRQ_HANDLER mandatory

 Documentation/devicetree/bindings/arm/gic.txt      |    4 +
 Documentation/devicetree/bindings/arm/vic.txt      |   29 ++++
 arch/arm/common/Kconfig                            |    6 +
 arch/arm/common/gic.c                              |  164 +++++++++++++++++---
 arch/arm/common/vic.c                              |  143 ++++++++++++++----
 arch/arm/include/asm/entry-macro-vic2.S            |   57 -------
 arch/arm/include/asm/hardware/entry-macro-gic.S    |   60 -------
 arch/arm/include/asm/hardware/gic.h                |   26 +--
 arch/arm/include/asm/hardware/vic.h                |   10 +-
 arch/arm/kernel/entry-armv.S                       |    7 +-
 arch/arm/mach-cns3xxx/cns3420vb.c                  |    2 +
 arch/arm/mach-cns3xxx/include/mach/entry-macro.S   |    2 -
 arch/arm/mach-ep93xx/adssphere.c                   |    2 +
 arch/arm/mach-ep93xx/edb93xx.c                     |    9 +
 arch/arm/mach-ep93xx/gesbc9312.c                   |    2 +
 arch/arm/mach-ep93xx/include/mach/entry-macro.S    |   42 -----
 arch/arm/mach-ep93xx/micro9.c                      |    5 +
 arch/arm/mach-ep93xx/simone.c                      |    2 +
 arch/arm/mach-ep93xx/snappercl15.c                 |    2 +
 arch/arm/mach-ep93xx/ts72xx.c                      |    2 +
 arch/arm/mach-exynos/cpu.c                         |   20 +--
 arch/arm/mach-exynos/include/mach/entry-macro.S    |   75 ---------
 arch/arm/mach-exynos/mach-armlex4210.c             |    2 +
 arch/arm/mach-exynos/mach-nuri.c                   |    2 +
 arch/arm/mach-exynos/mach-origen.c                 |    2 +
 arch/arm/mach-exynos/mach-smdk4x12.c               |    3 +
 arch/arm/mach-exynos/mach-smdkv310.c               |    3 +
 arch/arm/mach-exynos/mach-universal_c210.c         |    4 +-
 arch/arm/mach-exynos/platsmp.c                     |   28 +----
 arch/arm/mach-highbank/highbank.c                  |    1 +
 arch/arm/mach-highbank/include/mach/entry-macro.S  |    2 -
 arch/arm/mach-msm/board-msm8960.c                  |    2 +
 arch/arm/mach-msm/board-msm8x60.c                  |    4 +
 arch/arm/mach-msm/include/mach/entry-macro-qgic.S  |   17 --
 arch/arm/mach-msm/include/mach/entry-macro-vic.S   |   37 -----
 arch/arm/mach-msm/include/mach/entry-macro.S       |   27 +++-
 arch/arm/mach-netx/include/mach/entry-macro.S      |   13 --
 arch/arm/mach-netx/nxdb500.c                       |    2 +
 arch/arm/mach-netx/nxdkn.c                         |    2 +
 arch/arm/mach-netx/nxeb500hmi.c                    |    2 +
 arch/arm/mach-nomadik/board-nhk8815.c              |    2 +
 arch/arm/mach-nomadik/include/mach/entry-macro.S   |   30 ----
 arch/arm/mach-omap2/Kconfig                        |    2 +
 arch/arm/mach-omap2/board-2430sdp.c                |    1 +
 arch/arm/mach-omap2/board-3430sdp.c                |    1 +
 arch/arm/mach-omap2/board-3630sdp.c                |    1 +
 arch/arm/mach-omap2/board-4430sdp.c                |    2 +
 arch/arm/mach-omap2/board-am3517crane.c            |    1 +
 arch/arm/mach-omap2/board-am3517evm.c              |    1 +
 arch/arm/mach-omap2/board-apollon.c                |    1 +
 arch/arm/mach-omap2/board-cm-t35.c                 |    2 +
 arch/arm/mach-omap2/board-cm-t3517.c               |    1 +
 arch/arm/mach-omap2/board-devkit8000.c             |    1 +
 arch/arm/mach-omap2/board-generic.c                |    1 +
 arch/arm/mach-omap2/board-h4.c                     |    1 +
 arch/arm/mach-omap2/board-igep0020.c               |    2 +
 arch/arm/mach-omap2/board-ldp.c                    |    1 +
 arch/arm/mach-omap2/board-n8x0.c                   |    3 +
 arch/arm/mach-omap2/board-omap3beagle.c            |    1 +
 arch/arm/mach-omap2/board-omap3evm.c               |    1 +
 arch/arm/mach-omap2/board-omap3logic.c             |    2 +
 arch/arm/mach-omap2/board-omap3pandora.c           |    1 +
 arch/arm/mach-omap2/board-omap3stalker.c           |    1 +
 arch/arm/mach-omap2/board-omap3touchbook.c         |    1 +
 arch/arm/mach-omap2/board-omap4panda.c             |    2 +
 arch/arm/mach-omap2/board-overo.c                  |    1 +
 arch/arm/mach-omap2/board-rm680.c                  |    1 +
 arch/arm/mach-omap2/board-rx51.c                   |    1 +
 arch/arm/mach-omap2/board-zoom.c                   |    2 +
 arch/arm/mach-omap2/include/mach/entry-macro.S     |  137 ----------------
 arch/arm/mach-omap2/include/mach/omap4-common.h    |    2 -
 arch/arm/mach-omap2/io.c                           |    3 -
 arch/arm/mach-omap2/irq.c                          |   51 ++++++
 arch/arm/mach-omap2/omap4-common.c                 |    6 +-
 arch/arm/mach-picoxcell/common.c                   |    9 +-
 arch/arm/mach-picoxcell/include/mach/entry-macro.S |   11 +-
 arch/arm/mach-pxa/include/mach/entry-macro.S       |   36 -----
 arch/arm/mach-realview/include/mach/entry-macro.S  |    2 -
 arch/arm/mach-realview/realview_eb.c               |    1 +
 arch/arm/mach-realview/realview_pb1176.c           |    1 +
 arch/arm/mach-realview/realview_pb11mp.c           |    1 +
 arch/arm/mach-realview/realview_pba8.c             |    1 +
 arch/arm/mach-realview/realview_pbx.c              |    1 +
 arch/arm/mach-s3c64xx/include/mach/entry-macro.S   |    7 +-
 arch/arm/mach-s3c64xx/mach-anw6410.c               |    2 +
 arch/arm/mach-s3c64xx/mach-crag6410.c              |    2 +
 arch/arm/mach-s3c64xx/mach-hmt.c                   |    2 +
 arch/arm/mach-s3c64xx/mach-mini6410.c              |    2 +
 arch/arm/mach-s3c64xx/mach-ncp.c                   |    2 +
 arch/arm/mach-s3c64xx/mach-real6410.c              |    2 +
 arch/arm/mach-s3c64xx/mach-smartq5.c               |    2 +
 arch/arm/mach-s3c64xx/mach-smartq7.c               |    2 +
 arch/arm/mach-s3c64xx/mach-smdk6400.c              |    2 +
 arch/arm/mach-s3c64xx/mach-smdk6410.c              |    2 +
 arch/arm/mach-s5p64x0/include/mach/entry-macro.S   |    7 +-
 arch/arm/mach-s5p64x0/mach-smdk6440.c              |    2 +
 arch/arm/mach-s5p64x0/mach-smdk6450.c              |    2 +
 arch/arm/mach-s5pc100/include/mach/entry-macro.S   |   25 ---
 arch/arm/mach-s5pc100/mach-smdkc100.c              |    2 +
 arch/arm/mach-s5pv210/include/mach/entry-macro.S   |   37 -----
 arch/arm/mach-s5pv210/mach-aquila.c                |    2 +
 arch/arm/mach-s5pv210/mach-goni.c                  |    2 +
 arch/arm/mach-s5pv210/mach-smdkc110.c              |    2 +
 arch/arm/mach-s5pv210/mach-smdkv210.c              |    2 +
 arch/arm/mach-s5pv210/mach-torbreck.c              |    2 +
 arch/arm/mach-shmobile/Makefile                    |    1 -
 arch/arm/mach-shmobile/board-ag5evm.c              |    2 +-
 arch/arm/mach-shmobile/board-kota2.c               |    2 +-
 arch/arm/mach-shmobile/entry-gic.S                 |   18 --
 arch/arm/mach-shmobile/include/mach/common.h       |    1 -
 arch/arm/mach-shmobile/include/mach/entry-macro.S  |    9 -
 arch/arm/mach-spear3xx/include/mach/entry-macro.S  |   27 ----
 arch/arm/mach-spear3xx/spear300_evb.c              |    2 +
 arch/arm/mach-spear3xx/spear310_evb.c              |    2 +
 arch/arm/mach-spear3xx/spear320_evb.c              |    2 +
 arch/arm/mach-spear6xx/include/mach/entry-macro.S  |   36 -----
 arch/arm/mach-spear6xx/spear600_evb.c              |    2 +
 arch/arm/mach-tegra/board-dt.c                     |    2 +
 arch/arm/mach-tegra/board-harmony.c                |    2 +
 arch/arm/mach-tegra/board-paz00.c                  |    2 +
 arch/arm/mach-tegra/board-seaboard.c               |    4 +
 arch/arm/mach-tegra/board-trimslice.c              |    2 +
 arch/arm/mach-tegra/include/mach/entry-macro.S     |   22 +---
 arch/arm/mach-u300/include/mach/entry-macro.S      |   24 ---
 arch/arm/mach-u300/u300.c                          |    2 +
 arch/arm/mach-ux500/board-mop500.c                 |    4 +
 arch/arm/mach-ux500/board-u5500.c                  |    2 +
 arch/arm/mach-ux500/include/mach/entry-macro.S     |    2 -
 arch/arm/mach-versatile/include/mach/entry-macro.S |   30 ----
 arch/arm/mach-versatile/versatile_ab.c             |    2 +
 arch/arm/mach-versatile/versatile_dt.c             |    2 +
 arch/arm/mach-versatile/versatile_pb.c             |    2 +
 arch/arm/mach-vexpress/include/mach/entry-macro.S  |    2 -
 arch/arm/mach-vexpress/v2m.c                       |    2 +
 arch/arm/mach-zynq/common.c                        |    1 +
 arch/arm/mach-zynq/include/mach/entry-macro.S      |    3 -
 arch/arm/plat-mxc/Makefile                         |    1 -
 arch/arm/plat-mxc/gic.c                            |   41 -----
 arch/arm/plat-mxc/include/mach/common.h            |    1 -
 arch/arm/plat-mxc/include/mach/entry-macro.S       |   11 --
 arch/arm/plat-omap/include/plat/irqs.h             |    3 +-
 arch/arm/plat-s5p/Kconfig                          |    1 +
 142 files changed, 590 insertions(+), 950 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/vic.txt
 delete mode 100644 arch/arm/include/asm/entry-macro-vic2.S
 delete mode 100644 arch/arm/include/asm/hardware/entry-macro-gic.S
 delete mode 100644 arch/arm/mach-msm/include/mach/entry-macro-qgic.S
 delete mode 100644 arch/arm/mach-msm/include/mach/entry-macro-vic.S
 delete mode 100644 arch/arm/mach-shmobile/entry-gic.S
 delete mode 100644 arch/arm/plat-mxc/gic.c

Comments

Russell King - ARM Linux Nov. 17, 2011, 5:23 p.m. UTC | #1
On Wed, Nov 16, 2011 at 11:23:48AM +0000, Marc Zyngier wrote:
> I've collected patches converting GIC and VIC based platforms to use the
> MULTI_IRQ_HANDLER configuration option in a single branch (as they depend
> on a common patch).
> 
> It also include the patch adding non-banked support to the GIC, which is
> required to convert EXYNOS to MULTI_IRQ_HANDLER in a sane way (not to
> mention fixing obvious bugs).
> 
> If you're happy with this, feel free to pull this branch.

We need to sort out the conflicts between this and the arch_reset stuff
I'm carrying, because I'm not going to fight git from this early in the
cycle, dealing with stuff like this:

CONFLICT (delete/modify): arch/arm/mach-omap2/include/mach/omap4-common.h deleted in HEAD and modified in devel-stable. Version devel-stable of arch/arm/mach-omap2/include/mach/omap4-common.h left in tree.

which is immune to git rerere, and I'm sure as hell not going to keep on
merging this with my for-next branch.

Even though I've split out the conflicting cleanup commits from the
arch_reset() stuff, many of them still don't have acked-bys from the
maintainers of the affected code, so I don't feel like I can commit
them to being stable.

What we need are more responsive platform maintainers!
Marc Zyngier Nov. 17, 2011, 6:08 p.m. UTC | #2
On 17/11/11 17:23, Russell King - ARM Linux wrote:
> On Wed, Nov 16, 2011 at 11:23:48AM +0000, Marc Zyngier wrote:
>> I've collected patches converting GIC and VIC based platforms to use the
>> MULTI_IRQ_HANDLER configuration option in a single branch (as they depend
>> on a common patch).
>>
>> It also include the patch adding non-banked support to the GIC, which is
>> required to convert EXYNOS to MULTI_IRQ_HANDLER in a sane way (not to
>> mention fixing obvious bugs).
>>
>> If you're happy with this, feel free to pull this branch.
> 
> We need to sort out the conflicts between this and the arch_reset stuff
> I'm carrying, because I'm not going to fight git from this early in the
> cycle, dealing with stuff like this:
> 
> CONFLICT (delete/modify): arch/arm/mach-omap2/include/mach/omap4-common.h deleted in HEAD and modified in devel-stable. Version devel-stable of arch/arm/mach-omap2/include/mach/omap4-common.h left in tree.
> 
> which is immune to git rerere, and I'm sure as hell not going to keep on
> merging this with my for-next branch.

If you have a stable branch on which I can rebase, I'm happy to do it
(I've just resolved these conflicts on -next). If it's more convenient
to do it later in the cycle, I can wait. Just let me know what is the
most convenient route for you.

> Even though I've split out the conflicting cleanup commits from the
> arch_reset() stuff, many of them still don't have acked-bys from the
> maintainers of the affected code, so I don't feel like I can commit
> them to being stable.

While I perfectly understand how important it is to wait for maintainers
to ack the patches, these patches have been posted multiple times over
the past weeks/months, directly Cc-ing the relevant maintainers. Most of
them have contributed Acked-by/Tested-by. In a few cases, the patches
have fallen on deaf ears.

Are these platforms now unmaintained? At that point, I'd be quite
tempted to simply apply the patches and wait until someone screams back
at me.

> What we need are more responsive platform maintainers!

Amen.

	M.
Uwe Kleine-König Nov. 17, 2011, 7:07 p.m. UTC | #3
On Thu, Nov 17, 2011 at 05:23:19PM +0000, Russell King - ARM Linux wrote:
> On Wed, Nov 16, 2011 at 11:23:48AM +0000, Marc Zyngier wrote:
> > I've collected patches converting GIC and VIC based platforms to use the
> > MULTI_IRQ_HANDLER configuration option in a single branch (as they depend
> > on a common patch).
> > 
> > It also include the patch adding non-banked support to the GIC, which is
> > required to convert EXYNOS to MULTI_IRQ_HANDLER in a sane way (not to
> > mention fixing obvious bugs).
> > 
> > If you're happy with this, feel free to pull this branch.
> 
> We need to sort out the conflicts between this and the arch_reset stuff
> I'm carrying, because I'm not going to fight git from this early in the
> cycle, dealing with stuff like this:
> 
> CONFLICT (delete/modify): arch/arm/mach-omap2/include/mach/omap4-common.h deleted in HEAD and modified in devel-stable. Version devel-stable of arch/arm/mach-omap2/include/mach/omap4-common.h left in tree.
> 
> which is immune to git rerere, and I'm sure as hell not going to keep on
> merging this with my for-next branch.
> 
> Even though I've split out the conflicting cleanup commits from the
> arch_reset() stuff, many of them still don't have acked-bys from the
> maintainers of the affected code, so I don't feel like I can commit
> them to being stable.
> 
> What we need are more responsive platform maintainers!
and git rerere handling delete/modify conflicts. I don't know how it
works internally, but I guess it's not trivial? Just in case it is and
the only thing that stops you implementing it is that you don't know
there is a need for it: voilà.

Thanks
Uwe
Russell King - ARM Linux Nov. 21, 2011, 10 p.m. UTC | #4
On Thu, Nov 17, 2011 at 06:08:59PM +0000, Marc Zyngier wrote:
> If you have a stable branch on which I can rebase, I'm happy to do it
> (I've just resolved these conflicts on -next). If it's more convenient
> to do it later in the cycle, I can wait. Just let me know what is the
> most convenient route for you.

I've now merged the restart changes into the 'devel' branch, and then
followed on with your changes on top of that - fixing the conflicts
along the way.

I decided not to push it out in the devel-stable branch until you've
had a chance to verify that the conflict resolution is correct - I've
added some limited explanations in the merge commit for the two things
which weren't a trivial resolution.  Once you've confirmed it's fine,
I'll push the stuff over to the devel-stable branch.

The devel branch also has nico's vmalloc stuff in too, and the whole
lot should end up in linux-next later this week (maybe even tomorrow
if sfr hasn't already picked up my tree.)
Marc Zyngier Nov. 22, 2011, 11:47 a.m. UTC | #5
Hi Russell,

On 21/11/11 22:00, Russell King - ARM Linux wrote:
> On Thu, Nov 17, 2011 at 06:08:59PM +0000, Marc Zyngier wrote:
>> If you have a stable branch on which I can rebase, I'm happy to do it
>> (I've just resolved these conflicts on -next). If it's more convenient
>> to do it later in the cycle, I can wait. Just let me know what is the
>> most convenient route for you.
> 
> I've now merged the restart changes into the 'devel' branch, and then
> followed on with your changes on top of that - fixing the conflicts
> along the way.
> 
> I decided not to push it out in the devel-stable branch until you've
> had a chance to verify that the conflict resolution is correct - I've
> added some limited explanations in the merge commit for the two things
> which weren't a trivial resolution.  Once you've confirmed it's fine,
> I'll push the stuff over to the devel-stable branch.

I had a quick look at linux-next, and the conflict resolution seem
perfectly sound.

Thanks a lot for going through this, very much appreciated.

	M.