[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1703162034430.4110@nanos>
Date: Thu, 16 Mar 2017 20:36:19 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Mason <slash.tmp@...e.fr>
cc: LKML <linux-kernel@...r.kernel.org>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
Marc Zyngier <marc.zyngier@....com>,
Jason Cooper <jason@...edaemon.net>,
linux-pci <linux-pci@...r.kernel.org>,
Bjorn Helgaas <helgaas@...nel.org>,
Thibaud Cornic <thibaud_cornic@...madesigns.com>,
Phuong Nguyen <phuong_nguyen@...madesigns.com>,
Robin Murphy <robin.murphy@....com>,
Liviu Dudau <liviu.dudau@....com>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Uwe Kleine-Konig <u.kleine-koenig@...gutronix.de>,
Rob Herring <robh@...nel.org>
Subject: Re: Legacy PCI interrupt support in PCIe host driver
On Thu, 16 Mar 2017, Mason wrote:
> On 16/03/2017 18:47, Thomas Gleixner wrote:
> > On Thu, 16 Mar 2017, Mason wrote:
> >> I guess if two interrupts fire at the same time, we'll just take two
> >> separate exceptions?
> >
> > Wrong guess. That might work with level interrupts, but with other types
> > nothing will raise another exception. Sharing interrupts on edge types is a
> > stupid idea, but hardware folks insist on implementing stupid ideas.
>
> When you say "That might work with level interrupts", what is "that" ?
That you take two exceptions because if both have raised the irq it will
stay raised when you only handle one. Non level types will not keep it
raised in the CPU and you lost.
> In my case,
>
> interrupt-map = <0 0 0 1 &irq0 54 IRQ_TYPE_LEVEL_HIGH>;
> interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
>
> Both ISRs expect LEVEL_HIGH. In fact, doesn't request_irq
> return an error if the triggers are different?
That's completely irrelevant.
Thanks,
tglx
Powered by blists - more mailing lists