From: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
To: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: mazziesaccount@gmail.com, mikko.mutanen@fi.rohmeurope.com,
heikki.haikola@fi.rohmeurope.com, broonie@kernel.org,
gregkh@linuxfoundation.org, rafael@kernel.org,
linux-kernel@vger.kernel.org, geert@linux-m68k.org
Subject: Re: [PATCH] regmap: regmap-irq: Make irq-type callbak optional
Date: Fri, 4 Jan 2019 14:14:34 +0200 [thread overview]
Message-ID: <20190104121434.GC8865@localhost.localdomain> (raw)
In-Reply-To: <20190104113207.GT16508@imbe.wolfsonmicro.main>
Big thanks for testing this so early Charles =) It's nice to get this
report before I broke things more widely!
On Fri, Jan 04, 2019 at 11:32:07AM +0000, Charles Keepax wrote:
> On Fri, Jan 04, 2019 at 11:14:43AM +0000, Charles Keepax wrote:
> > On Fri, Jan 04, 2019 at 12:31:15PM +0200, Matti Vaittinen wrote:
> > > + if (num_type_reg)
> > > + d->irq_chip.irq_set_type = regmap_irq_set_type;
> > > +
> >
> > Afraid this also causes regressions at my end, still having a bit
> > of a look but it looks like some how this prevents properties of the
> > IRQ getting passed along which causes my system to not probe
> > properly with:
> >
> > genirq: Flags mismatch irq 58. 00002088 (cs35l35) vs. 00002088 (cs35l35)
> > cs35l35 0-0041: Failed to request IRQ: -16
> >
>
> My case is a shared IRQ with 2 amps (cs35l35) connected to a CODEC
> (wm8280).
>
> So looks like the issue is if you don't have a set_type callback
> then the IRQ ends up as IRQF_TRIGGER_NONE, which causes the
> second IRQ to fail the middle check here in __setup_irq:
>
> if (!((old->flags & new->flags) & IRQF_SHARED) ||
> (oldtype != (new->flags & IRQF_TRIGGER_MASK)) ||
> ((old->flags ^ new->flags) & IRQF_ONESHOT)) {
Right. Thanks for pinpointing the issue. This thing is a bit fishy.
There should not be a need for a 'fake type setting callback' when we
have shared IRQ with two or more devices who actually agree on IRQ type
- assuming the HW default irq type is correct.
For me the correct thing would that the HW default type should be
stored in desc and returned by irqd_get_trigger_type instead of
IRQF_TRIGGER_NONE. But I have no idea how that would be nicely
implemented w/o going trough all the irqchips.
The other option would be being more permissive when IRQF_TRIGGER_NONE
is set as oldtype. But I am not feeling like an expert on this area.
> Kinda inclined to just leave the fix as currently submitted and
> just drop this patch? But I can do more testing etc. if we want
> to push further down this road.
Huge thanks for the offer Charles - I do really appreciate the testing.
Touching the IRQ core sounds quite scary to me. Changing it feels risky
and would probably involve bunch of other people too. 10-years ago I
would have taken the challenge and tried to get this "correct" - but
nowadays I have learned to accept some small shortcuts :p
I will gladly follow things and participate the discussions/development
if someone wants to see how this should be done - but I don't think I
have the energy and time to drive this change further... So Mark, please
just drop this patch and keep the original fix unless you want to drive
this further yourself =)
Br,
Matti Vaittinen
>
> Thanks,
> Charles
--
Matti Vaittinen
ROHM Semiconductors
~~~ "I don't think so," said Rene Descartes. Just then, he vanished ~~~
prev parent reply other threads:[~2019-01-04 12:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-04 10:31 [PATCH] regmap: regmap-irq: Make irq-type callbak optional Matti Vaittinen
2019-01-04 11:14 ` Charles Keepax
2019-01-04 11:32 ` Charles Keepax
2019-01-04 12:14 ` Matti Vaittinen [this message]
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=20190104121434.GC8865@localhost.localdomain \
--to=matti.vaittinen@fi.rohmeurope.com \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.haikola@fi.rohmeurope.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mazziesaccount@gmail.com \
--cc=mikko.mutanen@fi.rohmeurope.com \
--cc=rafael@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox