From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751861AbdJROXK (ORCPT ); Wed, 18 Oct 2017 10:23:10 -0400 Received: from mail-lf0-f66.google.com ([209.85.215.66]:51019 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751136AbdJROXI (ORCPT ); Wed, 18 Oct 2017 10:23:08 -0400 X-Google-Smtp-Source: ABhQp+QQH1pq0m2fPQDUjKZ7Mr08ceIOX0OR4EmdyUIeM8RYhv70x6XLAAvdy5+JfdlUftnGIBWtKg== From: Dmitry Mastykin Cc: mastichi@gmail.com, sebastian.reichel@collabora.co.uk, preid@electromag.com.au, Linus Walleij , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] pinctrl: mcp23s08: fix interrupt handling regression Date: Wed, 18 Oct 2017 17:21:02 +0300 Message-Id: <1508336462-9378-1-git-send-email-mastichi@gmail.com> X-Mailer: git-send-email 2.7.4 To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org interrupt handling was broken with conversion to using regmap caching. cached_gpio value was updated by boolean status instead of gpio reading. Fixes: 8f38910ba4f6 ("pinctrl: mcp23s08: switch to regmap caching") Tested-by: Phil Reid Signed-off-by: Dmitry Mastykin --- drivers/pinctrl/pinctrl-mcp23s08.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/pinctrl-mcp23s08.c b/drivers/pinctrl/pinctrl-mcp23s08.c index 3e40d42..9c950bbf 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08.c +++ b/drivers/pinctrl/pinctrl-mcp23s08.c @@ -407,10 +407,10 @@ static int mcp23s08_get(struct gpio_chip *chip, unsigned offset) ret = mcp_read(mcp, MCP_GPIO, &status); if (ret < 0) status = 0; - else + else { + mcp->cached_gpio = status; status = !!(status & (1 << offset)); - - mcp->cached_gpio = status; + } mutex_unlock(&mcp->lock); return status; -- 2.7.4