[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190104113207.GT16508@imbe.wolfsonmicro.main>
Date: Fri, 4 Jan 2019 11:32:07 +0000
From: Charles Keepax <ckeepax@...nsource.cirrus.com>
To: Matti Vaittinen <matti.vaittinen@...rohmeurope.com>
CC: <mazziesaccount@...il.com>, <mikko.mutanen@...rohmeurope.com>,
<heikki.haikola@...rohmeurope.com>, <broonie@...nel.org>,
<gregkh@...uxfoundation.org>, <rafael@...nel.org>,
<linux-kernel@...r.kernel.org>, <geert@...ux-m68k.org>
Subject: Re: [PATCH] regmap: regmap-irq: Make irq-type callbak optional
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)) {
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.
Thanks,
Charles
Powered by blists - more mailing lists