[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADtm3G58SBF0FskUPJCs_8km8oXrKYs-+hrJoV4osyw9mvQbiQ@mail.gmail.com>
Date: Tue, 3 Oct 2017 18:55:51 -0700
From: Gregory Fong <gregory.0xf0@...il.com>
To: Doug Berger <opendmb@...il.com>
Cc: Linus Walleij <linus.walleij@...aro.org>,
Brian Norris <computersforpeace@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
bcm-kernel-feedback-list <bcm-kernel-feedback-list@...adcom.com>,
linux-gpio@...r.kernel.org,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH 2/7] gpio: brcmstb: release the bgpio lock during irq handlers
Hi Doug,
On Fri, Sep 29, 2017 at 8:40 PM, Doug Berger <opendmb@...il.com> wrote:
> The basic memory-mapped GPIO controller lock must be released
> before calling the registered GPIO interrupt handlers to allow
> the interrupt handlers to access the hardware. Otherwise, the
> hardware accesses will deadlock when they attempt to grab the
> lock.
I was having some trouble understanding exactly what the problem was
here, but I think I see it now. Since this locks the entire bank,
where some GPIOs might be set as inputs and some as inputs (and
interrupt sources), then an interrupt on a GPIO that is supposed to
set another GPIO in the bank would result in deadlock. Is that
correct? If so, please update the commit message to make that clear,
and nice fix. If not that, it would be nice to know what scenario can
cause a problem.
Thanks,
Gregory
Powered by blists - more mailing lists