From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: Re: [PATCH v2 2/2] gpio: Use new GPIO_LINE_DIRECTION Date: Wed, 6 Nov 2019 16:22:26 +0200 Message-ID: <20191106142226.GB32742@smile.fi.intel.com> References: <42f40109e2926bca197b30fd9624c609653b23e5.1573029228.git.matti.vaittinen@fi.rohmeurope.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <42f40109e2926bca197b30fd9624c609653b23e5.1573029228.git.matti.vaittinen@fi.rohmeurope.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Matti Vaittinen Cc: Kuppuswamy Sathyanarayanan , linux-aspeed@lists.ozlabs.org, David Daney , Linus Walleij , alsa-devel@alsa-project.org, Peter Tyser , Thierry Reding , Alexandre Torgue , Jonathan Hunter , Fabio Estevam , linux-stm32@st-md-mailman.stormreply.com, Marek Vasut , Florian Fainelli , Kevin Hilman , Michal Simek , Marek Behun , Bartosz Golaszewski , Ludovic Desroches , bcm-kernel-feedback-list@broadcom.com, Joel Stanley , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= List-Id: linux-tegra@vger.kernel.org On Wed, Nov 06, 2019 at 10:54:12AM +0200, Matti Vaittinen wrote: > It's hard for occasional GPIO code reader/writer to know if values 0/1 > equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and > GPIO_LINE_DIRECTION_OUT to help them out. > > NOTE - for gpio-amd-fch and gpio-bd9571mwv: > This commit also changes the return value for direction get to equal 1 > for direction INPUT. Prior this commit these drivers might have > returned some other positive value but 1 for INPUT. > drivers/gpio/gpio-ich.c | 5 ++++- > drivers/gpio/gpio-merrifield.c | 5 ++++- > drivers/gpio/gpio-pca953x.c | 5 ++++- > drivers/gpio/gpio-sch.c | 5 ++++- > drivers/gpio/gpio-wcove.c | 7 +++++-- Since maintainers seems in favour of this and bloat-o-meter shows no difference on selected module, Acked-by: Andy Shevchenko for the stuff I'm involved in. Thanks! > diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c > index 90bf7742f9b0..2f086d0aa1f4 100644 > --- a/drivers/gpio/gpio-ich.c > +++ b/drivers/gpio/gpio-ich.c > @@ -159,7 +159,10 @@ static bool ichx_gpio_check_available(struct gpio_chip *gpio, unsigned nr) > > static int ichx_gpio_get_direction(struct gpio_chip *gpio, unsigned nr) > { > - return ichx_read_bit(GPIO_IO_SEL, nr); > + if (ichx_read_bit(GPIO_IO_SEL, nr)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static int ichx_gpio_direction_input(struct gpio_chip *gpio, unsigned nr) > diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c > index 2f1e9da81c1e..d4fa6e9560f3 100644 > --- a/drivers/gpio/gpio-merrifield.c > +++ b/drivers/gpio/gpio-merrifield.c > @@ -162,7 +162,10 @@ static int mrfld_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > { > void __iomem *gpdr = gpio_reg(chip, offset, GPDR); > > - return !(readl(gpdr) & BIT(offset % 32)); > + if (readl(gpdr) & BIT(offset % 32)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int mrfld_gpio_set_debounce(struct gpio_chip *chip, unsigned int offset, > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index de5d1383f28d..82122c3c688a 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -449,7 +449,10 @@ static int pca953x_gpio_get_direction(struct gpio_chip *gc, unsigned off) > if (ret < 0) > return ret; > > - return !!(reg_val & bit); > + if (reg_val & bit) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static void pca953x_gpio_set_multiple(struct gpio_chip *gc, > diff --git a/drivers/gpio/gpio-sch.c b/drivers/gpio/gpio-sch.c > index fb143f28c386..c65f35b68202 100644 > --- a/drivers/gpio/gpio-sch.c > +++ b/drivers/gpio/gpio-sch.c > @@ -127,7 +127,10 @@ static int sch_gpio_get_direction(struct gpio_chip *gc, unsigned gpio_num) > { > struct sch_gpio *sch = gpiochip_get_data(gc); > > - return sch_gpio_reg_get(sch, gpio_num, GIO); > + if (sch_gpio_reg_get(sch, gpio_num, GIO)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static const struct gpio_chip sch_gpio_chip = { > diff --git a/drivers/gpio/gpio-wcove.c b/drivers/gpio/gpio-wcove.c > index 444fe9e7f04a..8b481b3c1ebe 100644 > --- a/drivers/gpio/gpio-wcove.c > +++ b/drivers/gpio/gpio-wcove.c > @@ -170,13 +170,16 @@ static int wcove_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio) > int ret, reg = to_reg(gpio, CTRL_OUT); > > if (reg < 0) > - return 0; > + return GPIO_LINE_DIRECTION_OUT; > > ret = regmap_read(wg->regmap, reg, &val); > if (ret) > return ret; > > - return !(val & CTLO_DIR_OUT); > + if (val & CTLO_DIR_OUT) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int wcove_gpio_get(struct gpio_chip *chip, unsigned int gpio) -- With Best Regards, Andy Shevchenko From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 01610C5DF63 for ; Wed, 6 Nov 2019 15:09:43 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 755DD21848 for ; Wed, 6 Nov 2019 15:09:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="mypRvq3M" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 755DD21848 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 567B0168C; Wed, 6 Nov 2019 16:08:50 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 567B0168C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1573052980; bh=l56INx9qtWZRNXf72Bp+C6AmkU80DWPDvqabFrwLPDY=; h=Date:From:To:References:In-Reply-To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=mypRvq3MX+eMIoSu6Qix1Aoup6Cb1/gdHtGc/quFQY/dhYUfRfX2bXsT+mLFu4exl aHNt4F8iCm3slUDukvAEX6cNrh5mAXVK7HBgzkmkN1vPfZnAiOn0ueWRrYYt0um2sV qtHYdZSixuk+qYQVW61jUDgGCi2OT/PlYtk5s2Zc= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id DB343F80291; Wed, 6 Nov 2019 16:08:49 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 95212F803D0; Wed, 6 Nov 2019 15:22:50 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 2E318F800F3 for ; Wed, 6 Nov 2019 15:22:46 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 2E318F800F3 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Nov 2019 06:22:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,275,1569308400"; d="scan'208";a="227938330" Received: from smile.fi.intel.com (HELO smile) ([10.237.68.40]) by FMSMGA003.fm.intel.com with ESMTP; 06 Nov 2019 06:22:29 -0800 Received: from andy by smile with local (Exim 4.93-RC1) (envelope-from ) id 1iSMCY-0004FN-Gs; Wed, 06 Nov 2019 16:22:26 +0200 Date: Wed, 6 Nov 2019 16:22:26 +0200 From: Andy Shevchenko To: Matti Vaittinen Message-ID: <20191106142226.GB32742@smile.fi.intel.com> References: <42f40109e2926bca197b30fd9624c609653b23e5.1573029228.git.matti.vaittinen@fi.rohmeurope.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <42f40109e2926bca197b30fd9624c609653b23e5.1573029228.git.matti.vaittinen@fi.rohmeurope.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) X-Mailman-Approved-At: Wed, 06 Nov 2019 16:08:47 +0100 Cc: Kuppuswamy Sathyanarayanan , linux-aspeed@lists.ozlabs.org, David Daney , Linus Walleij , alsa-devel@alsa-project.org, Peter Tyser , Thierry Reding , Alexandre Torgue , Jonathan Hunter , Fabio Estevam , linux-stm32@st-md-mailman.stormreply.com, Marek Vasut , Florian Fainelli , Kevin Hilman , Michal Simek , Marek Behun , Bartosz Golaszewski , Ludovic Desroches , bcm-kernel-feedback-list@broadcom.com, Joel Stanley , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Bamvor Jian Zhang , NXP Linux Team , linux-pwm@vger.kernel.org, Grygorii Strashko , Charles Keepax , Maxime Coquelin , mazziesaccount@gmail.com, Ray Jui , Sascha Hauer , William Breathitt Gray , linux-gpio@vger.kernel.org, Richard Fitzgerald , Santosh Shilimkar , linux-tegra@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Scott Branden , Masahiro Yamada , Andrew Jeffery , "Enrico Weigelt, metux IT consult" , linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Thorsten Scherer , Pengutronix Kernel Team , patches@opensource.cirrus.com, Shawn Guo Subject: Re: [alsa-devel] [PATCH v2 2/2] gpio: Use new GPIO_LINE_DIRECTION X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On Wed, Nov 06, 2019 at 10:54:12AM +0200, Matti Vaittinen wrote: > It's hard for occasional GPIO code reader/writer to know if values 0/1 > equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and > GPIO_LINE_DIRECTION_OUT to help them out. > > NOTE - for gpio-amd-fch and gpio-bd9571mwv: > This commit also changes the return value for direction get to equal 1 > for direction INPUT. Prior this commit these drivers might have > returned some other positive value but 1 for INPUT. > drivers/gpio/gpio-ich.c | 5 ++++- > drivers/gpio/gpio-merrifield.c | 5 ++++- > drivers/gpio/gpio-pca953x.c | 5 ++++- > drivers/gpio/gpio-sch.c | 5 ++++- > drivers/gpio/gpio-wcove.c | 7 +++++-- Since maintainers seems in favour of this and bloat-o-meter shows no difference on selected module, Acked-by: Andy Shevchenko for the stuff I'm involved in. Thanks! > diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c > index 90bf7742f9b0..2f086d0aa1f4 100644 > --- a/drivers/gpio/gpio-ich.c > +++ b/drivers/gpio/gpio-ich.c > @@ -159,7 +159,10 @@ static bool ichx_gpio_check_available(struct gpio_chip *gpio, unsigned nr) > > static int ichx_gpio_get_direction(struct gpio_chip *gpio, unsigned nr) > { > - return ichx_read_bit(GPIO_IO_SEL, nr); > + if (ichx_read_bit(GPIO_IO_SEL, nr)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static int ichx_gpio_direction_input(struct gpio_chip *gpio, unsigned nr) > diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c > index 2f1e9da81c1e..d4fa6e9560f3 100644 > --- a/drivers/gpio/gpio-merrifield.c > +++ b/drivers/gpio/gpio-merrifield.c > @@ -162,7 +162,10 @@ static int mrfld_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > { > void __iomem *gpdr = gpio_reg(chip, offset, GPDR); > > - return !(readl(gpdr) & BIT(offset % 32)); > + if (readl(gpdr) & BIT(offset % 32)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int mrfld_gpio_set_debounce(struct gpio_chip *chip, unsigned int offset, > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index de5d1383f28d..82122c3c688a 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -449,7 +449,10 @@ static int pca953x_gpio_get_direction(struct gpio_chip *gc, unsigned off) > if (ret < 0) > return ret; > > - return !!(reg_val & bit); > + if (reg_val & bit) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static void pca953x_gpio_set_multiple(struct gpio_chip *gc, > diff --git a/drivers/gpio/gpio-sch.c b/drivers/gpio/gpio-sch.c > index fb143f28c386..c65f35b68202 100644 > --- a/drivers/gpio/gpio-sch.c > +++ b/drivers/gpio/gpio-sch.c > @@ -127,7 +127,10 @@ static int sch_gpio_get_direction(struct gpio_chip *gc, unsigned gpio_num) > { > struct sch_gpio *sch = gpiochip_get_data(gc); > > - return sch_gpio_reg_get(sch, gpio_num, GIO); > + if (sch_gpio_reg_get(sch, gpio_num, GIO)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static const struct gpio_chip sch_gpio_chip = { > diff --git a/drivers/gpio/gpio-wcove.c b/drivers/gpio/gpio-wcove.c > index 444fe9e7f04a..8b481b3c1ebe 100644 > --- a/drivers/gpio/gpio-wcove.c > +++ b/drivers/gpio/gpio-wcove.c > @@ -170,13 +170,16 @@ static int wcove_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio) > int ret, reg = to_reg(gpio, CTRL_OUT); > > if (reg < 0) > - return 0; > + return GPIO_LINE_DIRECTION_OUT; > > ret = regmap_read(wg->regmap, reg, &val); > if (ret) > return ret; > > - return !(val & CTLO_DIR_OUT); > + if (val & CTLO_DIR_OUT) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int wcove_gpio_get(struct gpio_chip *chip, unsigned int gpio) -- With Best Regards, Andy Shevchenko _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AA77AC5DF65 for ; Wed, 6 Nov 2019 14:24:49 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 71BD021D6C for ; Wed, 6 Nov 2019 14:24:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="BxidzQ42" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71BD021D6C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=UoPh6llK/F6ZC1UeuVGd99ABbZuSN5S4OLxXg2MDF9A=; b=BxidzQ42MiVJis FrnF7tqRox549ABfZJi+yTeW3D3YJeEpi2zKnZpwGDK6er/uhIreOqceSd8JNIZmlzWaI71AbVxLx oSIG3ddFurYHqpz2bR7g3paDKAsu4jzr4wFO77vDDMTXaglsX8xfS38Ix+oMBTXM/DIbKJSEWdU3z VPvrucOEmTo76GfqDMWW6cXvTooiCdkMPI5eFmSI0n2U6zn/aqm2ddiNe0hCRvqmqQ08wpAUiKSGW Kci1GFYWsFF7BetDwQbYCXv5UKlF0MLAFM43jTdB5g5FP8pNxlnjU5bptQ2dJ0qAbRtrIxV5uZ5Zl OooWISV04+oVk0dBTP2g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iSMEr-0007C5-0c; Wed, 06 Nov 2019 14:24:49 +0000 Received: from mga04.intel.com ([192.55.52.120]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iSMEm-0006Zu-Ue for linux-arm-kernel@lists.infradead.org; Wed, 06 Nov 2019 14:24:46 +0000 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Nov 2019 06:22:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,275,1569308400"; d="scan'208";a="227938330" Received: from smile.fi.intel.com (HELO smile) ([10.237.68.40]) by FMSMGA003.fm.intel.com with ESMTP; 06 Nov 2019 06:22:29 -0800 Received: from andy by smile with local (Exim 4.93-RC1) (envelope-from ) id 1iSMCY-0004FN-Gs; Wed, 06 Nov 2019 16:22:26 +0200 Date: Wed, 6 Nov 2019 16:22:26 +0200 From: Andy Shevchenko To: Matti Vaittinen Subject: Re: [PATCH v2 2/2] gpio: Use new GPIO_LINE_DIRECTION Message-ID: <20191106142226.GB32742@smile.fi.intel.com> References: <42f40109e2926bca197b30fd9624c609653b23e5.1573029228.git.matti.vaittinen@fi.rohmeurope.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <42f40109e2926bca197b30fd9624c609653b23e5.1573029228.git.matti.vaittinen@fi.rohmeurope.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191106_062445_007350_068941B8 X-CRM114-Status: GOOD ( 18.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kuppuswamy Sathyanarayanan , linux-aspeed@lists.ozlabs.org, David Daney , Linus Walleij , alsa-devel@alsa-project.org, Peter Tyser , Thierry Reding , Alexandre Torgue , Jonathan Hunter , Fabio Estevam , linux-stm32@st-md-mailman.stormreply.com, Marek Vasut , Florian Fainelli , Kevin Hilman , Michal Simek , Marek Behun , Bartosz Golaszewski , Ludovic Desroches , bcm-kernel-feedback-list@broadcom.com, Joel Stanley , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Bamvor Jian Zhang , NXP Linux Team , linux-pwm@vger.kernel.org, Grygorii Strashko , Charles Keepax , Maxime Coquelin , mazziesaccount@gmail.com, Ray Jui , Sascha Hauer , William Breathitt Gray , linux-gpio@vger.kernel.org, Richard Fitzgerald , Santosh Shilimkar , linux-tegra@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Scott Branden , Masahiro Yamada , Andrew Jeffery , "Enrico Weigelt, metux IT consult" , linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Thorsten Scherer , Pengutronix Kernel Team , patches@opensource.cirrus.com, Shawn Guo Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Nov 06, 2019 at 10:54:12AM +0200, Matti Vaittinen wrote: > It's hard for occasional GPIO code reader/writer to know if values 0/1 > equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and > GPIO_LINE_DIRECTION_OUT to help them out. > > NOTE - for gpio-amd-fch and gpio-bd9571mwv: > This commit also changes the return value for direction get to equal 1 > for direction INPUT. Prior this commit these drivers might have > returned some other positive value but 1 for INPUT. > drivers/gpio/gpio-ich.c | 5 ++++- > drivers/gpio/gpio-merrifield.c | 5 ++++- > drivers/gpio/gpio-pca953x.c | 5 ++++- > drivers/gpio/gpio-sch.c | 5 ++++- > drivers/gpio/gpio-wcove.c | 7 +++++-- Since maintainers seems in favour of this and bloat-o-meter shows no difference on selected module, Acked-by: Andy Shevchenko for the stuff I'm involved in. Thanks! > diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c > index 90bf7742f9b0..2f086d0aa1f4 100644 > --- a/drivers/gpio/gpio-ich.c > +++ b/drivers/gpio/gpio-ich.c > @@ -159,7 +159,10 @@ static bool ichx_gpio_check_available(struct gpio_chip *gpio, unsigned nr) > > static int ichx_gpio_get_direction(struct gpio_chip *gpio, unsigned nr) > { > - return ichx_read_bit(GPIO_IO_SEL, nr); > + if (ichx_read_bit(GPIO_IO_SEL, nr)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static int ichx_gpio_direction_input(struct gpio_chip *gpio, unsigned nr) > diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c > index 2f1e9da81c1e..d4fa6e9560f3 100644 > --- a/drivers/gpio/gpio-merrifield.c > +++ b/drivers/gpio/gpio-merrifield.c > @@ -162,7 +162,10 @@ static int mrfld_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > { > void __iomem *gpdr = gpio_reg(chip, offset, GPDR); > > - return !(readl(gpdr) & BIT(offset % 32)); > + if (readl(gpdr) & BIT(offset % 32)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int mrfld_gpio_set_debounce(struct gpio_chip *chip, unsigned int offset, > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index de5d1383f28d..82122c3c688a 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -449,7 +449,10 @@ static int pca953x_gpio_get_direction(struct gpio_chip *gc, unsigned off) > if (ret < 0) > return ret; > > - return !!(reg_val & bit); > + if (reg_val & bit) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static void pca953x_gpio_set_multiple(struct gpio_chip *gc, > diff --git a/drivers/gpio/gpio-sch.c b/drivers/gpio/gpio-sch.c > index fb143f28c386..c65f35b68202 100644 > --- a/drivers/gpio/gpio-sch.c > +++ b/drivers/gpio/gpio-sch.c > @@ -127,7 +127,10 @@ static int sch_gpio_get_direction(struct gpio_chip *gc, unsigned gpio_num) > { > struct sch_gpio *sch = gpiochip_get_data(gc); > > - return sch_gpio_reg_get(sch, gpio_num, GIO); > + if (sch_gpio_reg_get(sch, gpio_num, GIO)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static const struct gpio_chip sch_gpio_chip = { > diff --git a/drivers/gpio/gpio-wcove.c b/drivers/gpio/gpio-wcove.c > index 444fe9e7f04a..8b481b3c1ebe 100644 > --- a/drivers/gpio/gpio-wcove.c > +++ b/drivers/gpio/gpio-wcove.c > @@ -170,13 +170,16 @@ static int wcove_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio) > int ret, reg = to_reg(gpio, CTRL_OUT); > > if (reg < 0) > - return 0; > + return GPIO_LINE_DIRECTION_OUT; > > ret = regmap_read(wg->regmap, reg, &val); > if (ret) > return ret; > > - return !(val & CTLO_DIR_OUT); > + if (val & CTLO_DIR_OUT) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int wcove_gpio_get(struct gpio_chip *chip, unsigned int gpio) -- With Best Regards, Andy Shevchenko _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel