Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp5162299ybl; Mon, 26 Aug 2019 23:57:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqwn/77nEjDpP9dYtedgxSkoNR2HRjb1OYqy4BLvg/QbuanF+8FYUpEOZPQJw7NyF0/Etfbc X-Received: by 2002:a65:52ca:: with SMTP id z10mr6828021pgp.424.1566889079303; Mon, 26 Aug 2019 23:57:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566889079; cv=none; d=google.com; s=arc-20160816; b=zMknIR0i+9Rry69MBLm8vo6k24Jqzo6pMo78XNGysDaSX3c7h9PHulj8ugnpFmJsIF qbSMhJuuwM51U06uBdmUB+XFwfWvNcxzgC+84Ee9apZaHUbQW8yZ/c/jLhBhaIRxxwGV pPQnT8BQKnUISrfM4bpgOXVJBpH8bhelzkaeLa0M1eoYH79YFbvYcVNbrW3OFnlFLAnK 0WZ8XkgxwXpxG7Noe1KjaGNnTzthU9LzSYlBQ06+3/9USxp0lutI8az9LCit4yAkP/xW pk8/rr+dOHs12S2BmvhMoCeUnbfAfdngNdsZQQCAaxJ9g5mCikJEZtijfXhxFeRbzShb Auhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=7VmY4EkeZ8SHd4Hom584yCebmz7d0u9DPKVTeIl8Wb8=; b=KrvjI/pxPf17adJd/spTW1P8LE5+Yggc/3an0jRLKf8sfju5LwwvKKavQd72FtzVZr f1+8ISSzLYRRU47DKt+Szk5Tlb3tX/cFN+PL+PQLPr5xE89FDvmyJJgDJwHSV2LzhT8R eWgV7lRtioKyW4JEJSzSnxl/bC8dBZ9lxvG6rjmzNWZHMdtFVZHkzMmgvgCQJa5An/qK kWUaalLFrvTEr7sGSS7OrJs9MeEHmmVBtijUVQzPV/oRsaEmf69dnFReB49PI9gNXkwM Bkqvhe2OuSvYR5MLYizBmQdQ8gnc2W31tBhNqUc6JTHhMvxWF5LdQciRqyJ5dw1GfQap UaqA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z2si10898419pgv.417.2019.08.26.23.57.43; Mon, 26 Aug 2019 23:57:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727986AbfH0G4z (ORCPT + 99 others); Tue, 27 Aug 2019 02:56:55 -0400 Received: from protonic.xs4all.nl ([83.163.252.89]:51452 "EHLO protonic.nl" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725904AbfH0G4y (ORCPT ); Tue, 27 Aug 2019 02:56:54 -0400 Received: from troy.prtnl (troy.prtnl [192.168.224.29]) by sparta (Postfix) with ESMTP id 8E22944A00C5; Tue, 27 Aug 2019 08:49:09 +0200 (CEST) From: David Jander To: Linus Walleij Cc: Bartosz Golaszewski , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, David Jander Subject: [PATCH 2/2] gpio: pca953x.c: Use pca953x_read_regs instead of regmap_bulk_read Date: Tue, 27 Aug 2019 06:46:29 +0000 Message-Id: <20190827064629.90214-2-david@protonic.nl> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190827064629.90214-1-david@protonic.nl> References: <20190827064629.90214-1-david@protonic.nl> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The register number needs to be translated for chips with more than 8 ports. This patch fixes a bug causing all chips with more than 8 GPIO pins to not work correctly. Signed-off-by: David Jander --- drivers/gpio/gpio-pca953x.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index 30072a570bc2..48fea4c68e8d 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -606,8 +606,7 @@ static void pca953x_irq_bus_sync_unlock(struct irq_data *d) u8 invert_irq_mask[MAX_BANK]; u8 reg_direction[MAX_BANK]; - regmap_bulk_read(chip->regmap, chip->regs->direction, reg_direction, - NBANK(chip)); + pca953x_read_regs(chip, chip->regs->direction, reg_direction); if (chip->driver_data & PCA_PCAL) { /* Enable latch on interrupt-enabled inputs */ @@ -710,8 +709,7 @@ static bool pca953x_irq_pending(struct pca953x_chip *chip, u8 *pending) return false; /* Remove output pins from the equation */ - regmap_bulk_read(chip->regmap, chip->regs->direction, reg_direction, - NBANK(chip)); + pca953x_read_regs(chip, chip->regs->direction, reg_direction); for (i = 0; i < NBANK(chip); i++) cur_stat[i] &= reg_direction[i]; @@ -789,8 +787,7 @@ static int pca953x_irq_setup(struct pca953x_chip *chip, * interrupt. We have to rely on the previous read for * this purpose. */ - regmap_bulk_read(chip->regmap, chip->regs->direction, reg_direction, - NBANK(chip)); + pca953x_read_regs(chip, chip->regs->direction, reg_direction); for (i = 0; i < NBANK(chip); i++) chip->irq_stat[i] &= reg_direction[i]; mutex_init(&chip->irq_lock); -- 2.19.1