2017-03-14 10:52:03

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

Michael Ellerman <[email protected]> writes:

> We'd like to eventually remove NO_IRQ on powerpc, so remove usages of it
> from electra_cf.c which is a powerpc-only driver.
>
> Signed-off-by: Michael Ellerman <[email protected]>
> ---
> drivers/pcmcia/electra_cf.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Ping anyone?

Or should I merge this via the powerpc tree?

cheers

> diff --git a/drivers/pcmcia/electra_cf.c b/drivers/pcmcia/electra_cf.c
> index 4d7bc3f4124a..c6fe2a4a7a6a 100644
> --- a/drivers/pcmcia/electra_cf.c
> +++ b/drivers/pcmcia/electra_cf.c
> @@ -207,7 +207,7 @@ static int electra_cf_probe(struct platform_device *ofdev)
> return -ENOMEM;
>
> setup_timer(&cf->timer, electra_cf_timer, (unsigned long)cf);
> - cf->irq = NO_IRQ;
> + cf->irq = 0;
>
> cf->ofdev = ofdev;
> cf->mem_phys = mem.start;
> @@ -313,7 +313,7 @@ fail3:
> fail2:
> release_mem_region(cf->mem_phys, cf->mem_size);
> fail1:
> - if (cf->irq != NO_IRQ)
> + if (cf->irq)
> free_irq(cf->irq, cf);
>
> if (cf->io_virt)
> --
> 2.7.4


2017-03-14 12:47:40

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

On Tue, Mar 14, 2017 at 11:51 AM, Michael Ellerman <[email protected]> wrote:
> Michael Ellerman <[email protected]> writes:
>
>> We'd like to eventually remove NO_IRQ on powerpc, so remove usages of it
>> from electra_cf.c which is a powerpc-only driver.
>>
>> Signed-off-by: Michael Ellerman <[email protected]>
>> ---
>> drivers/pcmcia/electra_cf.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Ping anyone?
>
> Or should I merge this via the powerpc tree?

That's what I would recommend for a powerpc specific pcmcia driver, yes.

Looking at the bigger picture of powerpc drivers using NO_IRQ, I also
see these others:

drivers/ata/pata_mpc52xx.c: if (ata_irq == NO_IRQ) {
drivers/ata/sata_dwc_460ex.c:#ifndef NO_IRQ
drivers/ata/sata_dwc_460ex.c:#define NO_IRQ 0
drivers/ata/sata_dwc_460ex.c: if (hsdev->dma->irq == NO_IRQ) {
drivers/ata/sata_dwc_460ex.c: if (irq == NO_IRQ) {
drivers/iommu/fsl_pamu.c: if (irq == NO_IRQ) {
drivers/iommu/fsl_pamu.c: if (irq != NO_IRQ)
drivers/media/platform/fsl-viu.c: if (viu_irq == NO_IRQ) {
drivers/mtd/nand/mpc5121_nfc.c: if (prv->irq == NO_IRQ) {
drivers/pcmcia/electra_cf.c: cf->irq = NO_IRQ;
drivers/pcmcia/electra_cf.c: if (cf->irq != NO_IRQ)
drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
no interrupt is pending. */
drivers/soc/fsl/qe/qe_ic.c: return NO_IRQ;
drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
no interrupt is pending. */
drivers/soc/fsl/qe/qe_ic.c: return NO_IRQ;
drivers/soc/fsl/qe/qe_ic.c: if (qe_ic->virq_low == NO_IRQ) {
drivers/soc/fsl/qe/qe_ic.c: if (qe_ic->virq_high != NO_IRQ &&
drivers/spi/spi-mpc52xx.c: if (status && (irq != NO_IRQ))
drivers/tty/ehv_bytechan.c: if (stdout_irq == NO_IRQ) {
drivers/tty/ehv_bytechan.c: if ((bc->rx_irq == NO_IRQ) ||
(bc->tx_irq == NO_IRQ)) {
drivers/tty/serial/cpm_uart/cpm_uart_core.c: if (pinfo->port.irq == NO_IRQ) {
drivers/uio/uio_fsl_elbc_gpcm.c: if (irq != NO_IRQ) {
drivers/uio/uio_fsl_elbc_gpcm.c: irq = NO_IRQ;
drivers/uio/uio_fsl_elbc_gpcm.c: irq != NO_IRQ ? irq : -1);
drivers/usb/host/ehci-grlib.c: if (irq == NO_IRQ) {
drivers/usb/host/ehci-ppc-of.c: if (irq == NO_IRQ) {
drivers/usb/host/fhci-hcd.c: if (usb_irq == NO_IRQ) {
drivers/usb/host/ohci-ppc-of.c: if (irq == NO_IRQ) {
drivers/usb/host/uhci-grlib.c: if (irq == NO_IRQ) {
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c: if (par->irq == NO_IRQ) {
drivers/virt/fsl_hypervisor.c: if (!handle || (irq == NO_IRQ)) {
include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
include/soc/fsl/qe/qe_ic.h: if (cascade_irq == NO_IRQ)
include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)

Did you have other pending patches for those?

Arnd

2017-03-15 05:35:23

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

Arnd Bergmann <[email protected]> writes:

> On Tue, Mar 14, 2017 at 11:51 AM, Michael Ellerman <[email protected]> wrote:
>> Michael Ellerman <[email protected]> writes:
>>
>>> We'd like to eventually remove NO_IRQ on powerpc, so remove usages of it
>>> from electra_cf.c which is a powerpc-only driver.
>>>
>>> Signed-off-by: Michael Ellerman <[email protected]>
>>> ---
>>> drivers/pcmcia/electra_cf.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> Ping anyone?
>>
>> Or should I merge this via the powerpc tree?
>
> That's what I would recommend for a powerpc specific pcmcia driver, yes.

Suits me.

> Looking at the bigger picture of powerpc drivers using NO_IRQ, I also
> see these others:
>
> drivers/ata/pata_mpc52xx.c: if (ata_irq == NO_IRQ) {
> drivers/ata/sata_dwc_460ex.c:#ifndef NO_IRQ
> drivers/ata/sata_dwc_460ex.c:#define NO_IRQ 0
> drivers/ata/sata_dwc_460ex.c: if (hsdev->dma->irq == NO_IRQ) {
> drivers/ata/sata_dwc_460ex.c: if (irq == NO_IRQ) {
> drivers/iommu/fsl_pamu.c: if (irq == NO_IRQ) {
> drivers/iommu/fsl_pamu.c: if (irq != NO_IRQ)
> drivers/media/platform/fsl-viu.c: if (viu_irq == NO_IRQ) {
> drivers/mtd/nand/mpc5121_nfc.c: if (prv->irq == NO_IRQ) {
> drivers/pcmcia/electra_cf.c: cf->irq = NO_IRQ;
> drivers/pcmcia/electra_cf.c: if (cf->irq != NO_IRQ)
> drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
> no interrupt is pending. */
> drivers/soc/fsl/qe/qe_ic.c: return NO_IRQ;
> drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
> no interrupt is pending. */
> drivers/soc/fsl/qe/qe_ic.c: return NO_IRQ;
> drivers/soc/fsl/qe/qe_ic.c: if (qe_ic->virq_low == NO_IRQ) {
> drivers/soc/fsl/qe/qe_ic.c: if (qe_ic->virq_high != NO_IRQ &&
> drivers/spi/spi-mpc52xx.c: if (status && (irq != NO_IRQ))
> drivers/tty/ehv_bytechan.c: if (stdout_irq == NO_IRQ) {
> drivers/tty/ehv_bytechan.c: if ((bc->rx_irq == NO_IRQ) ||
> (bc->tx_irq == NO_IRQ)) {
> drivers/tty/serial/cpm_uart/cpm_uart_core.c: if (pinfo->port.irq == NO_IRQ) {
> drivers/uio/uio_fsl_elbc_gpcm.c: if (irq != NO_IRQ) {
> drivers/uio/uio_fsl_elbc_gpcm.c: irq = NO_IRQ;
> drivers/uio/uio_fsl_elbc_gpcm.c: irq != NO_IRQ ? irq : -1);
> drivers/usb/host/ehci-grlib.c: if (irq == NO_IRQ) {
> drivers/usb/host/ehci-ppc-of.c: if (irq == NO_IRQ) {
> drivers/usb/host/fhci-hcd.c: if (usb_irq == NO_IRQ) {
> drivers/usb/host/ohci-ppc-of.c: if (irq == NO_IRQ) {
> drivers/usb/host/uhci-grlib.c: if (irq == NO_IRQ) {
> drivers/video/fbdev/mb862xx/mb862xxfbdrv.c: if (par->irq == NO_IRQ) {
> drivers/virt/fsl_hypervisor.c: if (!handle || (irq == NO_IRQ)) {
> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
> include/soc/fsl/qe/qe_ic.h: if (cascade_irq == NO_IRQ)
> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
>
> Did you have other pending patches for those?

No. I stayed away from anything FSL related as I was under the
impression some of them were being ported to arch/arm, which uses -1 for
NO_IRQ IIUIC.

eg. all of include/soc/fsl and drivers/soc/fsl was moved from
arch/powerpc in commit 7aa1aa6ecec2, which said:

QE: Move QE from arch/powerpc to drivers/soc

ls1 has qe and ls1 has arm cpu.
move qe from arch/powerpc to drivers/soc/fsl
to adapt to powerpc and arm

But looking at the Kconfigs it looks like they're still only selectable
on PPC. So that's a bit annoying.

I'll do patches for everything above that's not drivers/soc or
include/soc and hopefully we can hear from someone at NXP on the plans
for getting the soc parts enabled on arm.

cheers

2017-03-15 12:08:17

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

On Wed, Mar 15, 2017 at 6:35 AM, Michael Ellerman <[email protected]> wrote:
> Arnd Bergmann <[email protected]> writes:
>> On Tue, Mar 14, 2017 at 11:51 AM, Michael Ellerman <[email protected]> wrote:
>>> Michael Ellerman <[email protected]> writes:
>>>
>>
>> drivers/ata/pata_mpc52xx.c: if (ata_irq == NO_IRQ) {
>> drivers/ata/sata_dwc_460ex.c:#ifndef NO_IRQ
>> drivers/ata/sata_dwc_460ex.c:#define NO_IRQ 0
>> drivers/ata/sata_dwc_460ex.c: if (hsdev->dma->irq == NO_IRQ) {
>> drivers/ata/sata_dwc_460ex.c: if (irq == NO_IRQ) {
>> drivers/iommu/fsl_pamu.c: if (irq == NO_IRQ) {
>> drivers/iommu/fsl_pamu.c: if (irq != NO_IRQ)
>> drivers/media/platform/fsl-viu.c: if (viu_irq == NO_IRQ) {
>> drivers/mtd/nand/mpc5121_nfc.c: if (prv->irq == NO_IRQ) {
>> drivers/pcmcia/electra_cf.c: cf->irq = NO_IRQ;
>> drivers/pcmcia/electra_cf.c: if (cf->irq != NO_IRQ)
>> drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
>> no interrupt is pending. */
>> drivers/soc/fsl/qe/qe_ic.c: return NO_IRQ;
>> drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
>> no interrupt is pending. */
>> drivers/soc/fsl/qe/qe_ic.c: return NO_IRQ;
>> drivers/soc/fsl/qe/qe_ic.c: if (qe_ic->virq_low == NO_IRQ) {
>> drivers/soc/fsl/qe/qe_ic.c: if (qe_ic->virq_high != NO_IRQ &&
>> drivers/spi/spi-mpc52xx.c: if (status && (irq != NO_IRQ))
>> drivers/tty/ehv_bytechan.c: if (stdout_irq == NO_IRQ) {
>> drivers/tty/ehv_bytechan.c: if ((bc->rx_irq == NO_IRQ) ||
>> (bc->tx_irq == NO_IRQ)) {
>> drivers/tty/serial/cpm_uart/cpm_uart_core.c: if (pinfo->port.irq == NO_IRQ) {
>> drivers/uio/uio_fsl_elbc_gpcm.c: if (irq != NO_IRQ) {
>> drivers/uio/uio_fsl_elbc_gpcm.c: irq = NO_IRQ;
>> drivers/uio/uio_fsl_elbc_gpcm.c: irq != NO_IRQ ? irq : -1);
>> drivers/usb/host/ehci-grlib.c: if (irq == NO_IRQ) {
>> drivers/usb/host/ehci-ppc-of.c: if (irq == NO_IRQ) {
>> drivers/usb/host/fhci-hcd.c: if (usb_irq == NO_IRQ) {
>> drivers/usb/host/ohci-ppc-of.c: if (irq == NO_IRQ) {
>> drivers/usb/host/uhci-grlib.c: if (irq == NO_IRQ) {
>> drivers/video/fbdev/mb862xx/mb862xxfbdrv.c: if (par->irq == NO_IRQ) {
>> drivers/virt/fsl_hypervisor.c: if (!handle || (irq == NO_IRQ)) {
>> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
>> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
>> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
>> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
>> include/soc/fsl/qe/qe_ic.h: if (cascade_irq == NO_IRQ)
>> include/soc/fsl/qe/qe_ic.h: if (cascade_irq != NO_IRQ)
>>
>> Did you have other pending patches for those?
>
> No. I stayed away from anything FSL related as I was under the
> impression some of them were being ported to arch/arm, which uses -1 for
> NO_IRQ IIUIC.
>
> eg. all of include/soc/fsl and drivers/soc/fsl was moved from
> arch/powerpc in commit 7aa1aa6ecec2, which said:
>
> QE: Move QE from arch/powerpc to drivers/soc
>
> ls1 has qe and ls1 has arm cpu.
> move qe from arch/powerpc to drivers/soc/fsl
> to adapt to powerpc and arm
>
> But looking at the Kconfigs it looks like they're still only selectable
> on PPC. So that's a bit annoying.
>
> I'll do patches for everything above that's not drivers/soc or
> include/soc and hopefully we can hear from someone at NXP on the plans
> for getting the soc parts enabled on arm.

I think the removal of the NO_IRQ references is a requirement for
getting the drivers working properly on ARM, as the OF platform
code will use '0' for invalid IRQs.

Arnd

2017-03-15 17:51:39

by Crystal Wood

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

On Wed, 2017-03-15 at 16:35 +1100, Michael Ellerman wrote:
> Arnd Bergmann <[email protected]> writes:
>
> >
> > On Tue, Mar 14, 2017 at 11:51 AM, Michael Ellerman <[email protected]>
> > wrote:
> > >
> > > Michael Ellerman <[email protected]> writes:
> > >
> > > >
> > > > We'd like to eventually remove NO_IRQ on powerpc, so remove usages of
> > > > it
> > > > from electra_cf.c which is a powerpc-only driver.
> > > >
> > > > Signed-off-by: Michael Ellerman <[email protected]>
> > > > ---
> > > >  drivers/pcmcia/electra_cf.c | 4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > Ping anyone?
> > >
> > > Or should I merge this via the powerpc tree?
> > That's what I would recommend for a powerpc specific pcmcia driver, yes.
> Suits me.
>
> >
> > Looking at the bigger picture of powerpc drivers using NO_IRQ, I also
> > see these others:
> >
> > drivers/ata/pata_mpc52xx.c:     if (ata_irq == NO_IRQ) {
> > drivers/ata/sata_dwc_460ex.c:#ifndef NO_IRQ
> > drivers/ata/sata_dwc_460ex.c:#define NO_IRQ             0
> > drivers/ata/sata_dwc_460ex.c:   if (hsdev->dma->irq == NO_IRQ) {
> > drivers/ata/sata_dwc_460ex.c:   if (irq == NO_IRQ) {
> > drivers/iommu/fsl_pamu.c:       if (irq == NO_IRQ) {
> > drivers/iommu/fsl_pamu.c:       if (irq != NO_IRQ)
> > drivers/media/platform/fsl-viu.c:       if (viu_irq == NO_IRQ) {
> > drivers/mtd/nand/mpc5121_nfc.c: if (prv->irq == NO_IRQ) {
> > drivers/pcmcia/electra_cf.c:    cf->irq = NO_IRQ;
> > drivers/pcmcia/electra_cf.c:    if (cf->irq != NO_IRQ)
> > drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
> > no interrupt is pending. */
> > drivers/soc/fsl/qe/qe_ic.c:             return NO_IRQ;
> > drivers/soc/fsl/qe/qe_ic.c:/* Return an interrupt vector or NO_IRQ if
> > no interrupt is pending. */
> > drivers/soc/fsl/qe/qe_ic.c:             return NO_IRQ;
> > drivers/soc/fsl/qe/qe_ic.c:     if (qe_ic->virq_low == NO_IRQ) {
> > drivers/soc/fsl/qe/qe_ic.c:     if (qe_ic->virq_high != NO_IRQ &&
> > drivers/spi/spi-mpc52xx.c:      if (status && (irq != NO_IRQ))
> > drivers/tty/ehv_bytechan.c:     if (stdout_irq == NO_IRQ) {
> > drivers/tty/ehv_bytechan.c:     if ((bc->rx_irq == NO_IRQ) ||
> > (bc->tx_irq == NO_IRQ)) {
> > drivers/tty/serial/cpm_uart/cpm_uart_core.c:    if (pinfo->port.irq ==
> > NO_IRQ) {
> > drivers/uio/uio_fsl_elbc_gpcm.c:        if (irq != NO_IRQ) {
> > drivers/uio/uio_fsl_elbc_gpcm.c:                        irq = NO_IRQ;
> > drivers/uio/uio_fsl_elbc_gpcm.c:                 irq != NO_IRQ ? irq :
> > -1);
> > drivers/usb/host/ehci-grlib.c:  if (irq == NO_IRQ) {
> > drivers/usb/host/ehci-ppc-of.c: if (irq == NO_IRQ) {
> > drivers/usb/host/fhci-hcd.c:    if (usb_irq == NO_IRQ) {
> > drivers/usb/host/ohci-ppc-of.c: if (irq == NO_IRQ) {
> > drivers/usb/host/uhci-grlib.c:  if (irq == NO_IRQ) {
> > drivers/video/fbdev/mb862xx/mb862xxfbdrv.c:     if (par->irq == NO_IRQ) {
> > drivers/virt/fsl_hypervisor.c:          if (!handle || (irq == NO_IRQ)) {
> > include/soc/fsl/qe/qe_ic.h:     if (cascade_irq != NO_IRQ)
> > include/soc/fsl/qe/qe_ic.h:     if (cascade_irq != NO_IRQ)
> > include/soc/fsl/qe/qe_ic.h:     if (cascade_irq != NO_IRQ)
> > include/soc/fsl/qe/qe_ic.h:     if (cascade_irq != NO_IRQ)
> > include/soc/fsl/qe/qe_ic.h:     if (cascade_irq == NO_IRQ)
> > include/soc/fsl/qe/qe_ic.h:     if (cascade_irq != NO_IRQ)
> >
> > Did you have other pending patches for those?
> No. I stayed away from anything FSL related as I was under the
> impression some of them were being ported to arch/arm, which uses -1 for
> NO_IRQ IIUIC.
>
> eg. all of include/soc/fsl and drivers/soc/fsl was moved from
> arch/powerpc in commit 7aa1aa6ecec2, which said:
>
>     QE: Move QE from arch/powerpc to drivers/soc
>     
>     ls1 has qe and ls1 has arm cpu.
>     move qe from arch/powerpc to drivers/soc/fsl
>     to adapt to powerpc and arm
>
> But looking at the Kconfigs it looks like they're still only selectable
> on PPC. So that's a bit annoying.
>
> I'll do patches for everything above that's not drivers/soc or
> include/soc and hopefully we can hear from someone at NXP on the plans
> for getting the soc parts enabled on arm.

qe_ic is handled by https://lkml.org/lkml/2017/3/13/1234

-Scott

2017-03-16 09:55:45

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

Arnd Bergmann <[email protected]> writes:
> On Wed, Mar 15, 2017 at 6:35 AM, Michael Ellerman <[email protected]> wrote:
>> I'll do patches for everything above that's not drivers/soc or
>> include/soc and hopefully we can hear from someone at NXP on the plans
>> for getting the soc parts enabled on arm.
>
> I think the removal of the NO_IRQ references is a requirement for
> getting the drivers working properly on ARM, as the OF platform
> code will use '0' for invalid IRQs.

OK. So the #define NO_IRQ (-1) in arch/arm/include/asm/irq.h is a red
herring and should be ignored for anything modern?

cheers

2017-03-16 10:04:54

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

Scott Wood <[email protected]> writes:
> On Wed, 2017-03-15 at 16:35 +1100, Michael Ellerman wrote:
>> I'll do patches for everything above that's not drivers/soc or
>> include/soc and hopefully we can hear from someone at NXP on the plans
>> for getting the soc parts enabled on arm.
>
> qe_ic is handled by https://lkml.org/lkml/2017/3/13/1234

Thanks.

cheers

2017-03-16 10:12:16

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia: NO_IRQ removal for electra_cf.c

On Thu, Mar 16, 2017 at 10:55 AM, Michael Ellerman <[email protected]> wrote:
> Arnd Bergmann <[email protected]> writes:
>> On Wed, Mar 15, 2017 at 6:35 AM, Michael Ellerman <[email protected]> wrote:
>>> I'll do patches for everything above that's not drivers/soc or
>>> include/soc and hopefully we can hear from someone at NXP on the plans
>>> for getting the soc parts enabled on arm.
>>
>> I think the removal of the NO_IRQ references is a requirement for
>> getting the drivers working properly on ARM, as the OF platform
>> code will use '0' for invalid IRQs.
>
> OK. So the #define NO_IRQ (-1) in arch/arm/include/asm/irq.h is a red
> herring and should be ignored for anything modern?

Correct. There are a couple of older (non-DT) platforms that still rely on it,
and I also have patches for those, which I intend to revisit at some point.

Arnd