All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl
@ 2023-06-08  7:19 Raag Jadav
  2023-06-08  7:19 ` [PATCH v1 1/2] pinctrl: cherryview: simplify exit path of set_mux hook Raag Jadav
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Raag Jadav @ 2023-06-08  7:19 UTC (permalink / raw)
  To: linus.walleij, mika.westerberg, andriy.shevchenko
  Cc: linux-gpio, linux-kernel, mallikarjunappa.sangannavar, pandith.n,
	Raag Jadav

This series implements minor optimizations for Cherryview pinctrl driver.

The numbers are as tested with gcc 7.5.0 and may vary with newer versions.

Raag Jadav (2):
  pinctrl: cherryview: simplify exit path of set_mux hook
  pinctrl: cherryview: simplify exit path of gpio_request_enable hook

 drivers/pinctrl/intel/pinctrl-cherryview.c | 24 ++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v1 1/2] pinctrl: cherryview: simplify exit path of set_mux hook
  2023-06-08  7:19 [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Raag Jadav
@ 2023-06-08  7:19 ` Raag Jadav
  2023-06-08  7:19 ` [PATCH v1 2/2] pinctrl: cherryview: simplify exit path of gpio_request_enable hook Raag Jadav
  2023-06-08  8:12 ` [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Mika Westerberg
  2 siblings, 0 replies; 4+ messages in thread
From: Raag Jadav @ 2023-06-08  7:19 UTC (permalink / raw)
  To: linus.walleij, mika.westerberg, andriy.shevchenko
  Cc: linux-gpio, linux-kernel, mallikarjunappa.sangannavar, pandith.n,
	Raag Jadav

Simplify exit path of ->set_mux() hook and save a few bytes.

add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-34 (-34)
Function                                     old     new   delta
chv_pinmux_set_mux                           640     606     -34
Total: Before=19233, After=19199, chg -0.18%

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
 drivers/pinctrl/intel/pinctrl-cherryview.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index b9b2b1d2d47f..1e21c6f8aa7f 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -716,18 +716,21 @@ static int chv_pinmux_set_mux(struct pinctrl_dev *pctldev,
 	struct device *dev = pctrl->dev;
 	const struct intel_pingroup *grp;
 	unsigned long flags;
-	int i;
+	int i, ret;
 
 	grp = &pctrl->soc->groups[group];
 
+	/* In case we never really enter any of the below loops */
+	ret = 0;
+
 	raw_spin_lock_irqsave(&chv_lock, flags);
 
 	/* Check first that the pad is not locked */
 	for (i = 0; i < grp->grp.npins; i++) {
 		if (chv_pad_locked(pctrl, grp->grp.pins[i])) {
-			raw_spin_unlock_irqrestore(&chv_lock, flags);
 			dev_warn(dev, "unable to set mode for locked pin %u\n", grp->grp.pins[i]);
-			return -EBUSY;
+			ret = -EBUSY;
+			goto out_unlock;
 		}
 	}
 
@@ -765,9 +768,10 @@ static int chv_pinmux_set_mux(struct pinctrl_dev *pctldev,
 			invert_oe ? "" : "not ");
 	}
 
+out_unlock:
 	raw_spin_unlock_irqrestore(&chv_lock, flags);
 
-	return 0;
+	return ret;
 }
 
 static void chv_gpio_clear_triggering(struct intel_pinctrl *pctrl,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v1 2/2] pinctrl: cherryview: simplify exit path of gpio_request_enable hook
  2023-06-08  7:19 [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Raag Jadav
  2023-06-08  7:19 ` [PATCH v1 1/2] pinctrl: cherryview: simplify exit path of set_mux hook Raag Jadav
@ 2023-06-08  7:19 ` Raag Jadav
  2023-06-08  8:12 ` [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Mika Westerberg
  2 siblings, 0 replies; 4+ messages in thread
From: Raag Jadav @ 2023-06-08  7:19 UTC (permalink / raw)
  To: linus.walleij, mika.westerberg, andriy.shevchenko
  Cc: linux-gpio, linux-kernel, mallikarjunappa.sangannavar, pandith.n,
	Raag Jadav

Simplify exit path of ->gpio_request_enable() hook and save a few bytes.

add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-10 (-10)
Function                                     old     new   delta
chv_gpio_request_enable                      296     286     -10
Total: Before=19199, After=19189, chg -0.05%

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
 drivers/pinctrl/intel/pinctrl-cherryview.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 1e21c6f8aa7f..8dbe92cd1c21 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -803,15 +803,18 @@ static int chv_gpio_request_enable(struct pinctrl_dev *pctldev,
 	struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
 	unsigned long flags;
 	u32 value;
+	int ret;
+
+	/* For positive cases */
+	ret = 0;
 
 	raw_spin_lock_irqsave(&chv_lock, flags);
 
 	if (chv_pad_locked(pctrl, offset)) {
 		value = chv_readl(pctrl, offset, CHV_PADCTRL0);
 		if (!(value & CHV_PADCTRL0_GPIOEN)) {
-			/* Locked so cannot enable */
-			raw_spin_unlock_irqrestore(&chv_lock, flags);
-			return -EBUSY;
+			ret = -EBUSY;
+			goto out_unlock;
 		}
 	} else {
 		struct intel_community_context *cctx = &pctrl->context.communities[0];
@@ -845,9 +848,10 @@ static int chv_gpio_request_enable(struct pinctrl_dev *pctldev,
 		chv_writel(pctrl, offset, CHV_PADCTRL0, value);
 	}
 
+out_unlock:
 	raw_spin_unlock_irqrestore(&chv_lock, flags);
 
-	return 0;
+	return ret;
 }
 
 static void chv_gpio_disable_free(struct pinctrl_dev *pctldev,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl
  2023-06-08  7:19 [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Raag Jadav
  2023-06-08  7:19 ` [PATCH v1 1/2] pinctrl: cherryview: simplify exit path of set_mux hook Raag Jadav
  2023-06-08  7:19 ` [PATCH v1 2/2] pinctrl: cherryview: simplify exit path of gpio_request_enable hook Raag Jadav
@ 2023-06-08  8:12 ` Mika Westerberg
  2 siblings, 0 replies; 4+ messages in thread
From: Mika Westerberg @ 2023-06-08  8:12 UTC (permalink / raw)
  To: Raag Jadav
  Cc: linus.walleij, andriy.shevchenko, linux-gpio, linux-kernel,
	mallikarjunappa.sangannavar, pandith.n

On Thu, Jun 08, 2023 at 12:49:01PM +0530, Raag Jadav wrote:
> This series implements minor optimizations for Cherryview pinctrl driver.
> 
> The numbers are as tested with gcc 7.5.0 and may vary with newer versions.

Exactly they may vary and also depending on which compiler options you
pass. Same comments to this series as I gave for the previous one.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-06-08  8:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-08  7:19 [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Raag Jadav
2023-06-08  7:19 ` [PATCH v1 1/2] pinctrl: cherryview: simplify exit path of set_mux hook Raag Jadav
2023-06-08  7:19 ` [PATCH v1 2/2] pinctrl: cherryview: simplify exit path of gpio_request_enable hook Raag Jadav
2023-06-08  8:12 ` [PATCH v1 0/2] Minor optimizations for Cherryview pinctrl Mika Westerberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.