2015-07-02 01:06:52

by Joel Porquet

[permalink] [raw]
Subject: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

At the moment the IRQCHIP_DECLARE macro is only declared locally in
'drivers/irqchip/irqchip.h'. That prevents from using it directly in arch/*
directories whenever irqchip drivers only exist there, which happens in a few
cases (e.g. arc, arm, microblaze and mips).

This patch makes the macro to be globally defined, in include/linux/irqchip.h,
and thus usable for arch-specific declarations of irqchip drivers. In this way,
it is very similar to what clocksource does (ie CLOCKSOURCE_OF_DECLARE is
defined in include/linux/clocksource.h).

I split up everything into patches to make the integration easier. Please let me
know if it's not, and in such case how to make it better.

For now, patch 01 of this series transfers the declaration of the macro
IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h'. The following
patches, from 02 to 47, modify all the irqchip drivers that use IRQCHIP_DECLARE,
one by one. And finally, the last patch 48 removes the private and now useless
header 'drivers/irqchip/irqchip.h'.

Joel

Joel Porquet (48):
irqchip: move IRQCHIP_DECLARE macro to include/linux/irqchip.h
irqchip:exynos-combiner: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:armada-370-xp: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:atmel-aic5: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:atmel-aic: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:bcm2835: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:bcm7038-l1: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:bcm7120-l2: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:brcmstb-l2: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:clps711x: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:crossbar: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:digicolor: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:dw-apb-ictl: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:gic: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:gic-v3: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:gic-v3-its: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:hip04: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:keystone: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:mips-gic: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:mmp: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:moxart: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:mtk-sysirq: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:mxs: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:nvic: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:omap-intc: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:or1k-pic: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:orion: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:s3c24xx: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:sirfsoc: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:sun4i: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:sunxi-nmi: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:tb10x: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:tegra: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:versatile-fpga: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:vf610-mscm-ir: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:vic: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:vt8500: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:xtensa-mx: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:xtensa-pic: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
irqchip:zevio: IRQCHIP_DECLARE macro moved to include/linux/irqchip.h
irqchip:spear-shirq: IRQCHIP_DECLARE macro moved to
include/linux/irqchip.h
arc:irqchip: IRQCHIP_DECLARE macro is now accessible
microblaze:irqchip: IRQCHIP_DECLARE macro is now accessible
mips:irqchip: IRQCHIP_DECLARE macro is now accessible
arm:exynos:irqchip: IRQCHIP_DECLARE macro is now accessible
arm:imx:irqchip: IRQCHIP_DECLARE macro is now accessible
arm:omap2:irqchip: IRQCHIP_DECLARE macro is now accessible
irqchip: remove header drivers/irqchip/irqchip.h

arch/arc/kernel/irq.c | 1 -
arch/arm/mach-exynos/suspend.c | 3 ++-
arch/arm/mach-imx/gpc.c | 7 ++-----
arch/arm/mach-omap2/omap-wakeupgen.c | 6 +-----
arch/microblaze/kernel/intc.c | 3 +--
arch/mips/bmips/irq.c | 2 +-
drivers/irqchip/exynos-combiner.c | 3 +--
drivers/irqchip/irq-armada-370-xp.c | 3 +--
drivers/irqchip/irq-atmel-aic.c | 2 +-
drivers/irqchip/irq-atmel-aic5.c | 2 +-
drivers/irqchip/irq-bcm2835.c | 3 +--
drivers/irqchip/irq-bcm7038-l1.c | 3 +--
drivers/irqchip/irq-bcm7120-l2.c | 3 +--
drivers/irqchip/irq-brcmstb-l2.c | 2 --
drivers/irqchip/irq-clps711x.c | 3 +--
drivers/irqchip/irq-crossbar.c | 3 +--
drivers/irqchip/irq-digicolor.c | 3 +--
drivers/irqchip/irq-dw-apb-ictl.c | 3 +--
drivers/irqchip/irq-gic-v3-its.c | 3 +--
drivers/irqchip/irq-gic-v3.c | 2 +-
drivers/irqchip/irq-gic.c | 2 +-
drivers/irqchip/irq-hip04.c | 2 +-
drivers/irqchip/irq-keystone.c | 3 +--
drivers/irqchip/irq-mips-gic.c | 3 +--
drivers/irqchip/irq-mmp.c | 3 +--
drivers/irqchip/irq-moxart.c | 3 +--
drivers/irqchip/irq-mtk-sysirq.c | 3 +--
drivers/irqchip/irq-mxs.c | 3 +--
drivers/irqchip/irq-nvic.c | 3 +--
drivers/irqchip/irq-omap-intc.c | 3 +--
drivers/irqchip/irq-or1k-pic.c | 3 +--
drivers/irqchip/irq-orion.c | 3 +--
drivers/irqchip/irq-s3c24xx.c | 3 +--
drivers/irqchip/irq-sirfsoc.c | 2 +-
drivers/irqchip/irq-sun4i.c | 3 +--
drivers/irqchip/irq-sunxi-nmi.c | 2 +-
drivers/irqchip/irq-tb10x.c | 2 +-
drivers/irqchip/irq-tegra.c | 3 +--
drivers/irqchip/irq-versatile-fpga.c | 3 +--
drivers/irqchip/irq-vf610-mscm-ir.c | 3 +--
drivers/irqchip/irq-vic.c | 3 +--
drivers/irqchip/irq-vt8500.c | 3 +--
drivers/irqchip/irq-xtensa-mx.c | 3 +--
drivers/irqchip/irq-xtensa-pic.c | 3 +--
drivers/irqchip/irq-zevio.c | 3 +--
drivers/irqchip/irqchip.h | 28 ----------------------------
drivers/irqchip/spear-shirq.c | 3 +--
include/linux/irqchip.h | 14 ++++++++++++++
48 files changed, 60 insertions(+), 115 deletions(-)
delete mode 100644 drivers/irqchip/irqchip.h

--
2.4.5


2015-07-02 07:05:56

by Vineet Gupta

[permalink] [raw]
Subject: Re: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

On Thursday 02 July 2015 04:02 AM, Joel Porquet wrote:
> At the moment the IRQCHIP_DECLARE macro is only declared locally in
> 'drivers/irqchip/irqchip.h'. That prevents from using it directly in arch/*
> directories whenever irqchip drivers only exist there, which happens in a few
> cases (e.g. arc, arm, microblaze and mips).
>
> This patch makes the macro to be globally defined, in include/linux/irqchip.h,
> and thus usable for arch-specific declarations of irqchip drivers. In this way,
> it is very similar to what clocksource does (ie CLOCKSOURCE_OF_DECLARE is
> defined in include/linux/clocksource.h).
>
> I split up everything into patches to make the integration easier. Please let me
> know if it's not, and in such case how to make it better.
>
> For now, patch 01 of this series transfers the declaration of the macro
> IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h'. The following
> patches, from 02 to 47, modify all the irqchip drivers that use IRQCHIP_DECLARE,
> one by one. And finally, the last patch 48 removes the private and now useless
> header 'drivers/irqchip/irqchip.h'.

Hi Joel,

I don't see the rest of series on lkml and/or the patch which touches arch/arc.
Also, you may wanna redo this after 4.2-rc1 anyways. For ARC atleast, there's a
new intc which would also require similar fixup. There might be others ....

Thx,
-Vineet

2015-07-02 19:45:16

by Joel Porquet

[permalink] [raw]
Subject: Re: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

On Thursday, July 02, 2015 12:33:05 PM Vineet Gupta wrote:
> On Thursday 02 July 2015 04:02 AM, Joel Porquet wrote:
> > At the moment the IRQCHIP_DECLARE macro is only declared locally in
> > 'drivers/irqchip/irqchip.h'. That prevents from using it directly in
> > arch/*
> > directories whenever irqchip drivers only exist there, which happens in a
> > few cases (e.g. arc, arm, microblaze and mips).
> >
> > This patch makes the macro to be globally defined, in
> > include/linux/irqchip.h, and thus usable for arch-specific declarations
> > of irqchip drivers. In this way, it is very similar to what clocksource
> > does (ie CLOCKSOURCE_OF_DECLARE is defined in
> > include/linux/clocksource.h).
> >
> > I split up everything into patches to make the integration easier. Please
> > let me know if it's not, and in such case how to make it better.
> >
> > For now, patch 01 of this series transfers the declaration of the macro
> > IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h'. The
> > following patches, from 02 to 47, modify all the irqchip drivers that use
> > IRQCHIP_DECLARE, one by one. And finally, the last patch 48 removes the
> > private and now useless header 'drivers/irqchip/irqchip.h'.
>
> Hi Joel,
>
> I don't see the rest of series on lkml and/or the patch which touches
> arch/arc. Also, you may wanna redo this after 4.2-rc1 anyways. For ARC
> atleast, there's a new intc which would also require similar fixup. There
> might be others ....
>
> Thx,
> -Vineet

Hi Vineet (and all),

Sorry for the mistake, I hope I didn't spam anyone (too much). I realized to
late that sending about fifty patches to 26 recipients was probably not a good
idea, and my smtp provider would have blocked me before the end anyway.

Therefore I will follow your suggestion and wait until after 4.2-rc1. Then
I'll resubmit a new patchset that takes into account the new intc(s) as well.

But since this patchset affects many files across several drivers and
architectures, what would be the best way to submit it?

Would it be OK to send the cover to all the maintainers/mailing-lists involved
in order to inform them that a patchset is affecting their respective
subsystem, but to send the patches only on the kernel mailing-list?

And/or is there someone in particular who is in charge to integrate such a
transversal patchset?

Thanks,
Joël

2015-07-02 18:34:31

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

2015-07-02 20:23 GMT+02:00 Joël Porquet <[email protected]>:
> On Thursday, July 02, 2015 12:33:05 PM Vineet Gupta wrote:
>> On Thursday 02 July 2015 04:02 AM, Joel Porquet wrote:
>> > At the moment the IRQCHIP_DECLARE macro is only declared locally in
>> > 'drivers/irqchip/irqchip.h'. That prevents from using it directly in
>> > arch/*
>> > directories whenever irqchip drivers only exist there, which happens in a
>> > few cases (e.g. arc, arm, microblaze and mips).
>> >
>> > This patch makes the macro to be globally defined, in
>> > include/linux/irqchip.h, and thus usable for arch-specific declarations
>> > of irqchip drivers. In this way, it is very similar to what clocksource
>> > does (ie CLOCKSOURCE_OF_DECLARE is defined in
>> > include/linux/clocksource.h).
>> >
>> > I split up everything into patches to make the integration easier. Please
>> > let me know if it's not, and in such case how to make it better.
>> >
>> > For now, patch 01 of this series transfers the declaration of the macro
>> > IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h'. The
>> > following patches, from 02 to 47, modify all the irqchip drivers that use
>> > IRQCHIP_DECLARE, one by one. And finally, the last patch 48 removes the
>> > private and now useless header 'drivers/irqchip/irqchip.h'.
>>
>> Hi Joel,
>>
>> I don't see the rest of series on lkml and/or the patch which touches
>> arch/arc. Also, you may wanna redo this after 4.2-rc1 anyways. For ARC
>> atleast, there's a new intc which would also require similar fixup. There
>> might be others ....
>>
>> Thx,
>> -Vineet
>
> Hi Vineet (and all),
>
> Sorry for the mistake, I hope I didn't spam anyone (too much). I realized to
> late that sending about fifty patches to 26 recipients was probably not a good
> idea, and my smtp provider would have blocked me before the end anyway.
>
> Therefore I will follow your suggestion and wait until after 4.2-rc1. Then
> I'll resubmit a new patchset that takes into account the new intc(s) as well.
>
> But since this patchset affects many files across several drivers and
> architectures, what would be the best way to submit it?
>
> Would it be OK to send the cover to all the maintainers/mailing-lists involved
> in order to inform them that a patchset is affecting their respective
> subsystem, but to send the patches only on the kernel mailing-list?

What I have seen recently is, that you send to each maintainer the
cover letter and the patch he is concerned about.
And put the kernel maling-list(s) in all patches as CC.

Please anyone correct me if I'm wrong.

Regrads,
Matthias

--
motzblog.wordpress.com

2015-07-02 19:07:07

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

On Thu, 2 Jul 2015, Joël Porquet wrote:
> On Thursday, July 02, 2015 12:33:05 PM Vineet Gupta wrote:
> > On Thursday 02 July 2015 04:02 AM, Joel Porquet wrote:
> > > At the moment the IRQCHIP_DECLARE macro is only declared locally in
> > > 'drivers/irqchip/irqchip.h'. That prevents from using it directly in
> > > arch/*
> > > directories whenever irqchip drivers only exist there, which happens in a
> > > few cases (e.g. arc, arm, microblaze and mips).
> > >
> > > This patch makes the macro to be globally defined, in
> > > include/linux/irqchip.h, and thus usable for arch-specific declarations
> > > of irqchip drivers. In this way, it is very similar to what clocksource
> > > does (ie CLOCKSOURCE_OF_DECLARE is defined in
> > > include/linux/clocksource.h).
> > >
> > > I split up everything into patches to make the integration easier. Please
> > > let me know if it's not, and in such case how to make it better.
> > >
> > > For now, patch 01 of this series transfers the declaration of the macro
> > > IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h'. The
> > > following patches, from 02 to 47, modify all the irqchip drivers that use
> > > IRQCHIP_DECLARE, one by one. And finally, the last patch 48 removes the
> > > private and now useless header 'drivers/irqchip/irqchip.h'.
> >
> > Hi Joel,
> >
> > I don't see the rest of series on lkml and/or the patch which touches
> > arch/arc. Also, you may wanna redo this after 4.2-rc1 anyways. For ARC
> > atleast, there's a new intc which would also require similar fixup. There
> > might be others ....
> >
> > Thx,
> > -Vineet
>
> Hi Vineet (and all),
>
> Sorry for the mistake, I hope I didn't spam anyone (too much). I realized to
> late that sending about fifty patches to 26 recipients was probably not a good
> idea, and my smtp provider would have blocked me before the end anyway.
>
> Therefore I will follow your suggestion and wait until after 4.2-rc1. Then
> I'll resubmit a new patchset that takes into account the new intc(s) as well.
>
> But since this patchset affects many files across several drivers and
> architectures, what would be the best way to submit it?
>
> Would it be OK to send the cover to all the maintainers/mailing-lists involved
> in order to inform them that a patchset is affecting their respective
> subsystem, but to send the patches only on the kernel mailing-list?
>
> And/or is there someone in particular who is in charge to integrate such a
> transversal patchset?

The best thing is to move the macro to include/linux/irqchip.h now and
include linux/irqchip in drivers/irqchip/irqchip.h.

That's a safe change and I can queue it right away and merge it into
rc1.

So after that I can queue the drivers/irqchip patches in my tree and
remove local header file for 4.3. The changes for stuff which is
outside of drivers/irqchip and depends on the global visible macro can
be queued in the relevant maintainer trees.

Can you send me a patch which moves the macro and includes
linux/irqchip from the local header file?

Thanks,

tglx

2015-07-02 19:55:20

by Joel Porquet

[permalink] [raw]
Subject: Re: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

On Thursday, July 02, 2015 09:06:34 PM Thomas Gleixner wrote:
> On Thu, 2 Jul 2015, Joël Porquet wrote:
> > On Thursday, July 02, 2015 12:33:05 PM Vineet Gupta wrote:
> > > On Thursday 02 July 2015 04:02 AM, Joel Porquet wrote:
> > > > At the moment the IRQCHIP_DECLARE macro is only declared locally in
> > > > 'drivers/irqchip/irqchip.h'. That prevents from using it directly in
> > > > arch/*
> > > > directories whenever irqchip drivers only exist there, which happens
> > > > in a
> > > > few cases (e.g. arc, arm, microblaze and mips).
> > > >
> > > > This patch makes the macro to be globally defined, in
> > > > include/linux/irqchip.h, and thus usable for arch-specific
> > > > declarations
> > > > of irqchip drivers. In this way, it is very similar to what
> > > > clocksource
> > > > does (ie CLOCKSOURCE_OF_DECLARE is defined in
> > > > include/linux/clocksource.h).
> > > >
> > > > I split up everything into patches to make the integration easier.
> > > > Please
> > > > let me know if it's not, and in such case how to make it better.
> > > >
> > > > For now, patch 01 of this series transfers the declaration of the
> > > > macro
> > > > IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h'. The
> > > > following patches, from 02 to 47, modify all the irqchip drivers that
> > > > use
> > > > IRQCHIP_DECLARE, one by one. And finally, the last patch 48 removes
> > > > the
> > > > private and now useless header 'drivers/irqchip/irqchip.h'.
> > >
> > > Hi Joel,
> > >
> > > I don't see the rest of series on lkml and/or the patch which touches
> > > arch/arc. Also, you may wanna redo this after 4.2-rc1 anyways. For ARC
> > > atleast, there's a new intc which would also require similar fixup.
> > > There
> > > might be others ....
> > >
> > > Thx,
> > > -Vineet
> >
> > Hi Vineet (and all),
> >
> > Sorry for the mistake, I hope I didn't spam anyone (too much). I realized
> > to late that sending about fifty patches to 26 recipients was probably
> > not a good idea, and my smtp provider would have blocked me before the
> > end anyway.
> >
> > Therefore I will follow your suggestion and wait until after 4.2-rc1. Then
> > I'll resubmit a new patchset that takes into account the new intc(s) as
> > well.
> >
> > But since this patchset affects many files across several drivers and
> > architectures, what would be the best way to submit it?
> >
> > Would it be OK to send the cover to all the maintainers/mailing-lists
> > involved in order to inform them that a patchset is affecting their
> > respective subsystem, but to send the patches only on the kernel
> > mailing-list?
> >
> > And/or is there someone in particular who is in charge to integrate such a
> > transversal patchset?
>
> The best thing is to move the macro to include/linux/irqchip.h now and
> include linux/irqchip in drivers/irqchip/irqchip.h.
>
> That's a safe change and I can queue it right away and merge it into
> rc1.
>
> So after that I can queue the drivers/irqchip patches in my tree and
> remove local header file for 4.3. The changes for stuff which is
> outside of drivers/irqchip and depends on the global visible macro can
> be queued in the relevant maintainer trees.
>
> Can you send me a patch which moves the macro and includes
> linux/irqchip from the local header file?

Done!

For the drivers/irqchip patches, would you prefer many patches (ie one per
driver and one for the header removal) or one patch that includes everything
or something in between?

Thanks for your help!

Joël

> Thanks,
>
> tglx

2015-07-02 20:29:43

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 00/48] Make the IRQCHIP_DECLARE macro globally accessible

On Thu, 2 Jul 2015, Joël Porquet wrote:
> On Thursday, July 02, 2015 09:06:34 PM Thomas Gleixner wrote:
> > Can you send me a patch which moves the macro and includes
> > linux/irqchip from the local header file?
>
> Done!
>
> For the drivers/irqchip patches, would you prefer many patches (ie one per
> driver and one for the header removal) or one patch that includes everything
> or something in between?

Combo patch for drivers and one for the removal. Post rc1 against rc1 please.

Thanks,

tglx