Message ID | 20231030155340.3468528-1-andriy.shevchenko@linux.intel.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:d641:0:b0:403:3b70:6f57 with SMTP id cy1csp2315922vqb; Mon, 30 Oct 2023 08:54:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEBw3Fox7Kjj6bzTja5XPkOJEAFKvXHhdq+SM/eMm3W+ZBISyD2JoMrfQ+RzOtmvvb7sVbs X-Received: by 2002:a17:90a:ca11:b0:27c:f8bd:9a98 with SMTP id x17-20020a17090aca1100b0027cf8bd9a98mr6401588pjt.40.1698681278907; Mon, 30 Oct 2023 08:54:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698681278; cv=none; d=google.com; s=arc-20160816; b=IhXD3+mR/CmYBMMa2WD5yF1ig2wXYUIEYofZy7A0tPtk3E5VrMEtTRXI6XyRH4Cne5 ZiLLZlgiajNOPsJU7XrjxJh3cD4bay0wz9EOyAuH0f1qY6oxh4zIgu++VCNKkutXiTet //iXGEIPzic4LcpEfwtjDJi3qF9KjZTHy5COSqyOUp/SDAd2pAqIBERIDPGUXkfCHsKk YZaExyermPS5cS+AjaCjHLzHRTMxDf8pstduwiUoAruLKzG6xWez1VN0ClTFWh/o2knD thCMXIDUi0R/u/sujInZ/QI56vR1D4jxLfo9fM0ROsDHUqySr8Q38R18AociM/eW+suH cRbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=ZmItSUGaklgAyG+UWvo51wmWyogiz3q4ZrBs0lU5tE0=; fh=AduAXW7Jd7A4dQMDR0NWpSVsCPSBZ//h3iRxo3IQQt0=; b=oT+3eG6PYaMW/N4ekqn39juPtaPqROq0p/MsBSghjVIK1dIYPO+Tr0B9wVm3MpoIF+ JYpGCi7+4U1JXrctCIQpjOtXgk+etWuWTCmdD8uj7Dp3iKO9NE1JfG1RZ84rjWXeohmW aletfht0cqu6SVLOZFnOXcHKBSBg07v084833HXxccBzcDDvnycMkb60cJxm9SkDFXR5 dO4STiT1lMYVm4BKiEzjr3wFVRZPVki6qHvVgqlkWfSqeoxmF+WUuvCBHkRFqbroq7G9 Pklp5fadOHgsjioFjE8npIiOzpjbRbdsO9VeYvpgtgRPJw4XT77LI2UyvsRL175YnqR3 +w6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KQ8Veuxs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id h21-20020a17090ac39500b002800b0fa4f2si4049438pjt.104.2023.10.30.08.54.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 08:54:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KQ8Veuxs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 9726F80AE55B; Mon, 30 Oct 2023 08:54:36 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233740AbjJ3PyP (ORCPT <rfc822;chrisjones.unixmen@gmail.com> + 32 others); Mon, 30 Oct 2023 11:54:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233642AbjJ3PyG (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 30 Oct 2023 11:54:06 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9C07C5; Mon, 30 Oct 2023 08:54:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698681244; x=1730217244; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=yuuVEK/WCKgIgnUepz96+I9qXc9OXiBKs3MAo0tKBzs=; b=KQ8Veuxst/uEeG5+Y/CK/bkc/KSqeiNy7tVx9kkWZv+hd31JRRoe6Mc+ 7hw4YQBky3OiEgUKGe4wkN8JXdPVu4H6LIfAtSopOLOQBqAJPeOi5robO D+WBS2fln4/I3xKXveqj4BQBrnYa+Jmst5xuGkcG24i/G4dh/ywYizBQ3 tEw3HSAEsDUN62iNnS3omSZ9V+Bo8CDnxkCpYelhqTZX252JoJDwqSyjN tDC7mMvq0g6w8au80MCpQ6f/SOFflmRyRZsVweuTHb55kDO1o3LqGuzA3 uq53zR8KdE0b/7tOH/FLLM85hhyiAInKyPa2H1vhE1u5n45o/WUVAhWa4 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10879"; a="386986404" X-IronPort-AV: E=Sophos;i="6.03,263,1694761200"; d="scan'208";a="386986404" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Oct 2023 08:53:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10879"; a="736770579" X-IronPort-AV: E=Sophos;i="6.03,263,1694761200"; d="scan'208";a="736770579" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga006.jf.intel.com with ESMTP; 30 Oct 2023 08:53:46 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 3F6C72AB; Mon, 30 Oct 2023 17:53:45 +0200 (EET) From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Raag Jadav <raag.jadav@intel.com>, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mika Westerberg <mika.westerberg@linux.intel.com>, Andy Shevchenko <andy@kernel.org>, Linus Walleij <linus.walleij@linaro.org> Subject: [PATCH v1 1/1] pinctrl: tangier: Move default strength assignment to a switch-case Date: Mon, 30 Oct 2023 17:53:40 +0200 Message-Id: <20231030155340.3468528-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Mon, 30 Oct 2023 08:54:36 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781196420303422562 X-GMAIL-MSGID: 1781196420303422562 |
Series |
[v1,1/1] pinctrl: tangier: Move default strength assignment to a switch-case
|
|
Commit Message
Andy Shevchenko
Oct. 30, 2023, 3:53 p.m. UTC
iWhen ->pin_config_set() is called from the GPIO library (assumed
GpioIo() ACPI resource), the argument can be 1, when, for example,
PullDefault is provided. In such case we supply sane default in
the driver. Move that default assingment to a switch-case, so
it will be consolidated in one place.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-tangier.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
Comments
On Mon, Oct 30, 2023 at 05:53:40PM +0200, Andy Shevchenko wrote: > iWhen ->pin_config_set() is called from the GPIO library (assumed > GpioIo() ACPI resource), the argument can be 1, when, for example, > PullDefault is provided. In such case we supply sane default in > the driver. Move that default assingment to a switch-case, so > it will be consolidated in one place. Looks good. iWhen -> When Raag
On Mon, Oct 30, 2023 at 11:14:11PM +0200, Raag Jadav wrote: > On Mon, Oct 30, 2023 at 05:53:40PM +0200, Andy Shevchenko wrote: > > iWhen ->pin_config_set() is called from the GPIO library (assumed > > GpioIo() ACPI resource), the argument can be 1, when, for example, > > PullDefault is provided. In such case we supply sane default in > > the driver. Move that default assingment to a switch-case, so > > it will be consolidated in one place. > > Looks good. Thank you for review. Can you give your Rb tag then? > iWhen -> When I'll fix it locally.
On Tue, Oct 31, 2023 at 12:22:47PM +0200, Andy Shevchenko wrote: > On Mon, Oct 30, 2023 at 11:14:11PM +0200, Raag Jadav wrote: > > On Mon, Oct 30, 2023 at 05:53:40PM +0200, Andy Shevchenko wrote: > > > iWhen ->pin_config_set() is called from the GPIO library (assumed > > > GpioIo() ACPI resource), the argument can be 1, when, for example, > > > PullDefault is provided. In such case we supply sane default in > > > the driver. Move that default assingment to a switch-case, so > > > it will be consolidated in one place. > > > > Looks good. > > Thank you for review. Can you give your Rb tag then? Since I'm not a maintainer, I'm not sure if I qualify. But anyway, here you go. Reviewed-by: Raag Jadav <raag.jadav@intel.com>
On Mon, Oct 30, 2023 at 05:53:40PM +0200, Andy Shevchenko wrote: > iWhen ->pin_config_set() is called from the GPIO library (assumed > GpioIo() ACPI resource), the argument can be 1, when, for example, > PullDefault is provided. In such case we supply sane default in > the driver. Move that default assingment to a switch-case, so > it will be consolidated in one place. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/pinctrl/intel/pinctrl-tangier.c | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > > diff --git a/drivers/pinctrl/intel/pinctrl-tangier.c b/drivers/pinctrl/intel/pinctrl-tangier.c > index 007bca1cf224..26e34ec0a972 100644 > --- a/drivers/pinctrl/intel/pinctrl-tangier.c > +++ b/drivers/pinctrl/intel/pinctrl-tangier.c > @@ -368,14 +368,11 @@ static int tng_config_set_pin(struct tng_pinctrl *tp, unsigned int pin, > break; > > case PIN_CONFIG_BIAS_PULL_UP: > - /* Set default strength value in case none is given */ > - if (arg == 1) > - arg = 20000; > - > switch (arg) { > case 50000: > term = BUFCFG_PUPD_VAL_50K; > break; > + case 1: /* Set default strength value in case none is given */ The comment is good but I think would it make sense to have constant for this instead? > case 20000: > term = BUFCFG_PUPD_VAL_20K; > break; > @@ -394,14 +391,11 @@ static int tng_config_set_pin(struct tng_pinctrl *tp, unsigned int pin, > break; > > case PIN_CONFIG_BIAS_PULL_DOWN: > - /* Set default strength value in case none is given */ > - if (arg == 1) > - arg = 20000; > - > switch (arg) { > case 50000: > term = BUFCFG_PUPD_VAL_50K; > break; > + case 1: /* Set default strength value in case none is given */ > case 20000: > term = BUFCFG_PUPD_VAL_20K; > break; > -- > 2.40.0.1.gaa8946217a0b
On Wed, Nov 01, 2023 at 08:35:20AM +0200, Mika Westerberg wrote: > On Mon, Oct 30, 2023 at 05:53:40PM +0200, Andy Shevchenko wrote: ... > > + case 1: /* Set default strength value in case none is given */ > > The comment is good but I think would it make sense to have constant for > this instead? If so, it makes sense to get it via entire GPIO library, and not locally for Intel stuff. That said, I prefer to do that separately. Do you agree?
On Wed, Nov 01, 2023 at 11:34:58AM +0200, Andy Shevchenko wrote: > On Wed, Nov 01, 2023 at 08:35:20AM +0200, Mika Westerberg wrote: > > On Mon, Oct 30, 2023 at 05:53:40PM +0200, Andy Shevchenko wrote: > > ... > > > > + case 1: /* Set default strength value in case none is given */ > > > > The comment is good but I think would it make sense to have constant for > > this instead? > > If so, it makes sense to get it via entire GPIO library, and not locally for > Intel stuff. That said, I prefer to do that separately. Do you agree? Yes, agree.
On Mon, Oct 30, 2023 at 4:54 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > iWhen ->pin_config_set() is called from the GPIO library (assumed > GpioIo() ACPI resource), the argument can be 1, when, for example, > PullDefault is provided. In such case we supply sane default in > the driver. Move that default assingment to a switch-case, so > it will be consolidated in one place. (...) > + case 1: /* Set default strength value in case none is given */ So where does this 1 come from in the end? That's the piece I am missing in this explanation. Somewhere, someone decided to pass 1 to indicate "pull to default resistance". Is it coming from ACPI firmware? Then a comment such as "the firmware author chose to pass 1 for default pull" should be added to the constant definition in the code. Other than that it looks good! Yours, Linus Walleij
On Thu, Nov 02, 2023 at 08:36:11AM +0100, Linus Walleij wrote: > On Mon, Oct 30, 2023 at 4:54 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: (...) > > + case 1: /* Set default strength value in case none is given */ > > So where does this 1 come from in the end? That's the piece I > am missing in this explanation. Somewhere, someone decided > to pass 1 to indicate "pull to default resistance". > > Is it coming from ACPI firmware? No, it's pure Linux kernel decision. gpio_set_bias() is who made that. That's why it needs to be chosen on global level. We may even document somewhere that arguments let's say up to 10 do not make any sense in real life, as even for 1.2 v it will give 120 mA current on a single pin. Yet, theoretically that's possible for discrete industrial GPIOs, so we can choose "very big number" if such case appears in the future. I don't want to change 1 to something else right now as it may break things. > for default pull" should be added to the constant definition in the > code.
On Thu, Nov 02, 2023 at 02:34:30PM +0200, Andy Shevchenko wrote: > On Thu, Nov 02, 2023 at 08:36:11AM +0100, Linus Walleij wrote: > > On Mon, Oct 30, 2023 at 4:54 PM Andy Shevchenko > > <andriy.shevchenko@linux.intel.com> wrote: (...) > > > + case 1: /* Set default strength value in case none is given */ > > > > So where does this 1 come from in the end? That's the piece I > > am missing in this explanation. Somewhere, someone decided > > to pass 1 to indicate "pull to default resistance". > > > > Is it coming from ACPI firmware? > > No, it's pure Linux kernel decision. > gpio_set_bias() is who made that. That's why it needs to be chosen on global > level. > > We may even document somewhere that arguments let's say up to 10 do not make > any sense in real life, as even for 1.2 v it will give 120 mA current on a single > pin. Yet, theoretically that's possible for discrete industrial GPIOs, so we > can choose "very big number" if such case appears in the future. I don't want Just realized that "very big number" is limited to 16-bit value right now and 65 kOhm is quite reasonable value for the pull bias (yet we can use exact 0xffff for the "special" case). > to change 1 to something else right now as it may break things. > > > for default pull" should be added to the constant definition in the > > code.
On Thu, Nov 2, 2023 at 1:34 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > On Thu, Nov 02, 2023 at 08:36:11AM +0100, Linus Walleij wrote: > > So where does this 1 come from in the end? That's the piece I > > am missing in this explanation. Somewhere, someone decided > > to pass 1 to indicate "pull to default resistance". > > > > Is it coming from ACPI firmware? > > No, it's pure Linux kernel decision. > gpio_set_bias() is who made that. That's why it needs to be chosen on global > level. Aha I see, that makes sense. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
On Thu, Nov 02, 2023 at 01:56:08PM +0100, Linus Walleij wrote: > On Thu, Nov 2, 2023 at 1:34 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > On Thu, Nov 02, 2023 at 08:36:11AM +0100, Linus Walleij wrote: > > > > So where does this 1 come from in the end? That's the piece I > > > am missing in this explanation. Somewhere, someone decided > > > to pass 1 to indicate "pull to default resistance". > > > > > > Is it coming from ACPI firmware? > > > > No, it's pure Linux kernel decision. > > gpio_set_bias() is who made that. That's why it needs to be chosen on global > > level. > > Aha I see, that makes sense. > Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Pushed to my review and testing queue, thanks!
diff --git a/drivers/pinctrl/intel/pinctrl-tangier.c b/drivers/pinctrl/intel/pinctrl-tangier.c index 007bca1cf224..26e34ec0a972 100644 --- a/drivers/pinctrl/intel/pinctrl-tangier.c +++ b/drivers/pinctrl/intel/pinctrl-tangier.c @@ -368,14 +368,11 @@ static int tng_config_set_pin(struct tng_pinctrl *tp, unsigned int pin, break; case PIN_CONFIG_BIAS_PULL_UP: - /* Set default strength value in case none is given */ - if (arg == 1) - arg = 20000; - switch (arg) { case 50000: term = BUFCFG_PUPD_VAL_50K; break; + case 1: /* Set default strength value in case none is given */ case 20000: term = BUFCFG_PUPD_VAL_20K; break; @@ -394,14 +391,11 @@ static int tng_config_set_pin(struct tng_pinctrl *tp, unsigned int pin, break; case PIN_CONFIG_BIAS_PULL_DOWN: - /* Set default strength value in case none is given */ - if (arg == 1) - arg = 20000; - switch (arg) { case 50000: term = BUFCFG_PUPD_VAL_50K; break; + case 1: /* Set default strength value in case none is given */ case 20000: term = BUFCFG_PUPD_VAL_20K; break;