]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
pinctrl: intel: fetch community only when we need it
authorRaag Jadav <raag.jadav@intel.com>
Wed, 11 Oct 2023 06:42:18 +0000 (12:12 +0530)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 11 Oct 2023 20:40:56 +0000 (23:40 +0300)
We check community features only in case PIN_CONFIG_BIAS_PULL_DOWN while
setting/getting pad termination. No need to fetch the community otherwise.

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/pinctrl/intel/pinctrl-intel.c

index f9155d94a83075bf3dc37cc0ca52b215fd9af44b..9731a3acb23c518db9d70d2b3e2b35483e5b046c 100644 (file)
@@ -534,11 +534,9 @@ static const struct pinmux_ops intel_pinmux_ops = {
 static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin,
                                 enum pin_config_param param, u32 *arg)
 {
-       const struct intel_community *community;
        void __iomem *padcfg1;
        u32 value, term;
 
-       community = intel_get_community(pctrl, pin);
        padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1);
 
        scoped_guard(raw_spinlock_irqsave, &pctrl->lock)
@@ -576,7 +574,9 @@ static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 
                break;
 
-       case PIN_CONFIG_BIAS_PULL_DOWN:
+       case PIN_CONFIG_BIAS_PULL_DOWN: {
+               const struct intel_community *community = intel_get_community(pctrl, pin);
+
                if (!term || value & PADCFG1_TERM_UP)
                        return -EINVAL;
 
@@ -603,6 +603,7 @@ static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin,
                }
 
                break;
+       }
 
        default:
                return -EINVAL;
@@ -673,7 +674,6 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 {
        unsigned int param = pinconf_to_config_param(config);
        unsigned int arg = pinconf_to_config_argument(config);
-       const struct intel_community *community;
        u32 term = 0, up = 0, value;
        void __iomem *padcfg1;
 
@@ -709,8 +709,8 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
                up = PADCFG1_TERM_UP;
                break;
 
-       case PIN_CONFIG_BIAS_PULL_DOWN:
-               community = intel_get_community(pctrl, pin);
+       case PIN_CONFIG_BIAS_PULL_DOWN: {
+               const struct intel_community *community = intel_get_community(pctrl, pin);
 
                switch (arg) {
                case 20000:
@@ -737,6 +737,7 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
                }
 
                break;
+       }
 
        default:
                return -EINVAL;