[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201116211425.GK4739@sirena.org.uk>
Date: Mon, 16 Nov 2020 21:14:25 +0000
From: Mark Brown <broonie@...nel.org>
To: Tim Harvey <tharvey@...eworks.com>
Cc: Lee Jones <lee.jones@...aro.org>, Tony Lindgren <tony@...mide.com>,
open list <linux-kernel@...r.kernel.org>,
Carl Philipp Klemm <philipp@...s.xyz>,
Laxminath Kasam <lkasam@...eaurora.org>,
Merlijn Wajer <merlijn@...zup.org>,
Pavel Machek <pavel@....cz>, Sebastian Reichel <sre@...nel.org>
Subject: Re: [PATCH] mfd: cpcap: Fix interrupt regression with regmap
clear_ack
On Mon, Nov 16, 2020 at 12:43:57PM -0800, Tim Harvey wrote:
> What are your thoughts regarding the issue of regmap_irq_sync_unlock
> ack_invert ack'ing by writing ~d->mask_buf[i] which ends up setting
> all the other bits not trying to be awk'd? I would say that the device
> allowing an interrupt status to be 'set' and keeping it from releasing
> its IRQ is strange/broken for sure, but I'll need to work around it
> somehow.
My initial assumption with ack_invert would be that any bits we're not
acking are inverted as well - if we just write 0 to those bits then we
might be spuriously acking them. I'm not sure if there's something that
is being missed with how this hardware is modelled or if it's just a not
entirely thought through hardware design, if I'm understanding it
correctly I can't see anything that can safely be written to the bits we
don't want to ack. Either we cause them to be asserted or we might
clear them incorrectly if we race with that interrupt asserting.
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists