From nobody Thu Sep 11 21:07:15 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FE89C001DB for ; Tue, 8 Aug 2023 20:43:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234106AbjHHUnr (ORCPT ); Tue, 8 Aug 2023 16:43:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233994AbjHHUn3 (ORCPT ); Tue, 8 Aug 2023 16:43:29 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A03443208B; Tue, 8 Aug 2023 09:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691512248; x=1723048248; h=from:to:cc:subject:date:message-id; bh=FHiTNDUCzaH3CxhFl0M+eCf/lVRDrPXo5yOGv54eeZQ=; b=YH6Zi0bGvGGNQyhYAnDp66gA22iieQyeNuwt1WxGB4kdYkpaeIbt25Hc Qmwn4ubKsKuIIfEkwTNe/RHElPVU9A0uxWzOUvRVLpoTQni4z7f1hxyaJ 7VNqahDHPl0D/HZCiyD17sDp+cb4lhF2ZaJgUHtyynztM8AmGTsxyU8Ll 7zuWErGjNKS+qsSsVPEfeBa/0udgRrQcnoPbOmeeI9dA82T8g8cKOs+t5 /q+cVR2K9fas2Flif+qxiHhEsjjmwgV/eIWGxATcYHvBFd/bf7elKK3l3 Z6OtLnp+ouLeOfT0jmXJTMppu2E0DXV+nUt7kQNqZ7fsdu9RyHPxBdLfF w==; X-IronPort-AV: E=McAfee;i="6600,9927,10795"; a="401725840" X-IronPort-AV: E=Sophos;i="6.01,263,1684825200"; d="scan'208";a="401725840" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Aug 2023 01:49:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10795"; a="760827832" X-IronPort-AV: E=Sophos;i="6.01,263,1684825200"; d="scan'208";a="760827832" Received: from inlubt0316.iind.intel.com ([10.191.20.213]) by orsmga008.jf.intel.com with ESMTP; 08 Aug 2023 01:49:10 -0700 From: Raag Jadav To: linus.walleij@linaro.org, mika.westerberg@linux.intel.com, andriy.shevchenko@linux.intel.com Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, mallikarjunappa.sangannavar@intel.com, pandith.n@intel.com, Raag Jadav Subject: [PATCH v1] pinctrl: baytrail: consolidate common mask operation Date: Tue, 8 Aug 2023 14:19:01 +0530 Message-Id: <20230808084901.18927-1-raag.jadav@intel.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Consolidate common mask operation outside of switch cases and limit IO operations to positive cases. Signed-off-by: Raag Jadav Acked-by: Mika Westerberg --- drivers/pinctrl/intel/pinctrl-baytrail.c | 34 +++++++++++------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/int= el/pinctrl-baytrail.c index 27aef62fc7c0..02ab5fd7cbd5 100644 --- a/drivers/pinctrl/intel/pinctrl-baytrail.c +++ b/drivers/pinctrl/intel/pinctrl-baytrail.c @@ -995,8 +995,8 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_= dev, void __iomem *conf_reg =3D byt_gpio_reg(vg, offset, BYT_CONF0_REG); void __iomem *val_reg =3D byt_gpio_reg(vg, offset, BYT_VAL_REG); void __iomem *db_reg =3D byt_gpio_reg(vg, offset, BYT_DEBOUNCE_REG); + u32 conf, val, db_pulse, debounce; unsigned long flags; - u32 conf, val, debounce; int i, ret =3D 0; =20 raw_spin_lock_irqsave(&byt_lock, flags); @@ -1053,8 +1053,6 @@ static int byt_pin_config_set(struct pinctrl_dev *pct= l_dev, =20 break; case PIN_CONFIG_INPUT_DEBOUNCE: - debounce =3D readl(db_reg); - if (arg) conf |=3D BYT_DEBOUNCE_EN; else @@ -1062,32 +1060,25 @@ static int byt_pin_config_set(struct pinctrl_dev *p= ctl_dev, =20 switch (arg) { case 375: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_375US; + db_pulse =3D BYT_DEBOUNCE_PULSE_375US; break; case 750: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_750US; + db_pulse =3D BYT_DEBOUNCE_PULSE_750US; break; case 1500: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_1500US; + db_pulse =3D BYT_DEBOUNCE_PULSE_1500US; break; case 3000: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_3MS; + db_pulse =3D BYT_DEBOUNCE_PULSE_3MS; break; case 6000: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_6MS; + db_pulse =3D BYT_DEBOUNCE_PULSE_6MS; break; case 12000: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_12MS; + db_pulse =3D BYT_DEBOUNCE_PULSE_12MS; break; case 24000: - debounce &=3D ~BYT_DEBOUNCE_PULSE_MASK; - debounce |=3D BYT_DEBOUNCE_PULSE_24MS; + db_pulse =3D BYT_DEBOUNCE_PULSE_24MS; break; default: if (arg) @@ -1095,8 +1086,13 @@ static int byt_pin_config_set(struct pinctrl_dev *pc= tl_dev, break; } =20 - if (!ret) - writel(debounce, db_reg); + if (ret) + break; + + debounce =3D readl(db_reg); + debounce =3D (debounce & ~BYT_DEBOUNCE_PULSE_MASK) | db_pulse; + writel(debounce, db_reg); + break; default: ret =3D -ENOTSUPP; --=20 2.17.1