From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Jon Hunter <jonathanh@nvidia.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org
Subject: Re: BUG? genirq: irq 14 uses trigger mode 8; requested 0
Date: Mon, 7 Nov 2016 13:49:02 +0200 [thread overview]
Message-ID: <20161107114902.GA1447@lahna.fi.intel.com> (raw)
In-Reply-To: <20161101144400.GE1436@lahna.fi.intel.com>
On Tue, Nov 01, 2016 at 04:44:00PM +0200, Mika Westerberg wrote:
> On Tue, Nov 01, 2016 at 02:24:38PM +0000, Jon Hunter wrote:
> > Hi Mika,
> >
> > On 01/11/16 13:02, Mika Westerberg wrote:
> > > Hi,
> > >
> > > I started seeing following messages on Intel Broxton when the
> > > pinctrl/GPIO driver [1] loads:
> > >
> > > [ 0.645786] genirq: irq 14 uses trigger mode 8; requested 0
> > >
> > > The driver shares interrupt with other GPIO "communities" or banks so it
> > > uses request_irq() instead of irq_set_chained_handler_and_data(). The
> > > driver does not specify IRQ flags as those come from ACPI resources.
> > >
> > > This started happen after commit 4b357daed698 ("genirq: Look-up trigger
> > > type if not specified by caller").
> > >
> > > I think this is what happens:
> > >
> > > 1. ACPI platform sets up the interrupt according what is in the _CRS
> > > of the GPIO device. This ends up setting trigger type for irq_data of
> > > the irq.
> > >
> > > 2. First GPIO device is found and the driver calls request_irq() which
> > > calls __setup_irq() where shared == 0.
> > >
> > > 3. Since new->flags is read back from irq_data we call __irq_set_trigger()
> > > passing the flags.
> > >
> > > 4. The parent IRQ chip, IO-APIC, does not have ->irq_set_type callback
> > > so __irq_set_trigger() never calls irq_settings_set_trigger_mask() for
> > > the desciptor.
> > >
> > > 5. The second GPIO device is found and this time shared == 1 so we
> > > end up comparing nmsk with omsk where nmsk was read from irq_data
> > > and omsk is read using irq_settings_get_trigger_mask().
> > >
> > > 6. Because we never called irq_settings_set_trigger_mask() for the
> > > descriptor, omsk is 0 and we print out a warning:
> > >
> > > [ 0.645786] genirq: irq 14 uses trigger mode 8; requested 0
> > >
> > > If I revert commit 4b357daed698 the warning goes away.
> > >
> > > Do you have any ideas how to get rid of the warning properly?
> >
> > May be I am misunderstanding something here, but if the parent does not have
> > a ->irq_set_type callback, then it would seem that the type for the
> > interrupt should be not specified/set in the ACPI _CRS for the GPIO device,
> > right?
>
> Not sure.
>
> Why the parent driver (IO-APIC) does not have ->irq_set_type callback is
> beyond me. I guess it might have something to do with the IRQ hierarchy
> domains it is part of.
>
> When the ACPI core parses _CRS for the GPIO device it calls
> acpi_register_gsi() with the triggering flags from _CRS and that ends up
> calling acpi_register_gsi_ioapic() that programs the hardware
> accordingly. So we definitely need to have the type in _CRS.
Jon, Marc,
Do you have any suggestions how to fix this other than reverting
4b357daed698 ("genirq: Look-up trigger type if not specified by
caller")?
Before that commit everything works fine.
next prev parent reply other threads:[~2016-11-07 11:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-01 13:02 BUG? genirq: irq 14 uses trigger mode 8; requested 0 Mika Westerberg
2016-11-01 14:24 ` Jon Hunter
2016-11-01 14:44 ` Mika Westerberg
2016-11-07 11:49 ` Mika Westerberg [this message]
2016-11-07 13:32 ` Jon Hunter
2016-11-07 14:40 ` Marc Zyngier
2016-11-07 14:59 ` Mika Westerberg
2016-11-07 15:50 ` Jon Hunter
2016-11-07 16:00 ` Thomas Gleixner
2016-11-07 19:29 ` Thomas Gleixner
2016-11-08 9:17 ` Mika Westerberg
2016-11-08 14:22 ` [tip:irq/urgent] genirq: Use irq type from irqdata instead of irqdesc tip-bot for Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161107114902.GA1447@lahna.fi.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=jonathanh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.