Message ID | 20230608070017.28072-4-raag.jadav@intel.com |
---|---|
State | New |
Headers | show |
Series | Minor optimizations for Intel pinctrl | expand |
On Thu, Jun 08, 2023 at 12:30:16PM +0530, Raag Jadav wrote: > Simplify exit path of ->set_mux() hook and save a few bytes. > > add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-22 (-22) > Function old new delta > intel_pinmux_set_mux 242 220 -22 > Total: Before=10453, After=10431, chg -0.21% > > Signed-off-by: Raag Jadav <raag.jadav@intel.com> > --- > drivers/pinctrl/intel/pinctrl-intel.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c > index 3f78066b1837..1b5745202058 100644 > --- a/drivers/pinctrl/intel/pinctrl-intel.c > +++ b/drivers/pinctrl/intel/pinctrl-intel.c > @@ -393,7 +393,10 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, > struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); > const struct intel_pingroup *grp = &pctrl->soc->groups[group]; > unsigned long flags; > - int i; > + int i, ret; > + > + /* In case we never really enter any of the below loops */ > + ret = 0; How can that happen?
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 3f78066b1837..1b5745202058 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -393,7 +393,10 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); const struct intel_pingroup *grp = &pctrl->soc->groups[group]; unsigned long flags; - int i; + int i, ret; + + /* In case we never really enter any of the below loops */ + ret = 0; raw_spin_lock_irqsave(&pctrl->lock, flags); @@ -403,8 +406,8 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, */ for (i = 0; i < grp->grp.npins; i++) { if (!intel_pad_usable(pctrl, grp->grp.pins[i])) { - raw_spin_unlock_irqrestore(&pctrl->lock, flags); - return -EBUSY; + ret = -EBUSY; + goto out_unlock; } } @@ -427,9 +430,10 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, writel(value, padcfg0); } +out_unlock: raw_spin_unlock_irqrestore(&pctrl->lock, flags); - return 0; + return ret; } static void __intel_gpio_set_direction(void __iomem *padcfg0, bool input)
Simplify exit path of ->set_mux() hook and save a few bytes. add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-22 (-22) Function old new delta intel_pinmux_set_mux 242 220 -22 Total: Before=10453, After=10431, chg -0.21% Signed-off-by: Raag Jadav <raag.jadav@intel.com> --- drivers/pinctrl/intel/pinctrl-intel.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)