Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[firefly-linux-kernel-4.4.55.git] / drivers / pinctrl / pinconf.c
index d16ef8797f590b9fd5bfacf697a68766c65d0266..a138965c01cbc6e4029615bc080790d2338e59e2 100644 (file)
@@ -158,7 +158,7 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting)
 {
        struct pinctrl_dev *pctldev = setting->pctldev;
        const struct pinconf_ops *ops = pctldev->desc->confops;
-       int i, ret;
+       int ret;
 
        if (!ops) {
                dev_err(pctldev->dev, "missing confops\n");
@@ -171,17 +171,15 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting)
                        dev_err(pctldev->dev, "missing pin_config_set op\n");
                        return -EINVAL;
                }
-               for (i = 0; i < setting->data.configs.num_configs; i++) {
-                       ret = ops->pin_config_set(pctldev,
-                                       setting->data.configs.group_or_pin,
-                                       setting->data.configs.configs[i]);
-                       if (ret < 0) {
-                               dev_err(pctldev->dev,
-                                       "pin_config_set op failed for pin %d config %08lx\n",
-                                       setting->data.configs.group_or_pin,
-                                       setting->data.configs.configs[i]);
-                               return ret;
-                       }
+               ret = ops->pin_config_set(pctldev,
+                               setting->data.configs.group_or_pin,
+                               setting->data.configs.configs,
+                               setting->data.configs.num_configs);
+               if (ret < 0) {
+                       dev_err(pctldev->dev,
+                               "pin_config_set op failed for pin %d\n",
+                               setting->data.configs.group_or_pin);
+                       return ret;
                }
                break;
        case PIN_MAP_TYPE_CONFIGS_GROUP:
@@ -190,17 +188,15 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting)
                                "missing pin_config_group_set op\n");
                        return -EINVAL;
                }
-               for (i = 0; i < setting->data.configs.num_configs; i++) {
-                       ret = ops->pin_config_group_set(pctldev,
-                                       setting->data.configs.group_or_pin,
-                                       setting->data.configs.configs[i]);
-                       if (ret < 0) {
-                               dev_err(pctldev->dev,
-                                       "pin_config_group_set op failed for group %d config %08lx\n",
-                                       setting->data.configs.group_or_pin,
-                                       setting->data.configs.configs[i]);
-                               return ret;
-                       }
+               ret = ops->pin_config_group_set(pctldev,
+                               setting->data.configs.group_or_pin,
+                               setting->data.configs.configs,
+                               setting->data.configs.num_configs);
+               if (ret < 0) {
+                       dev_err(pctldev->dev,
+                               "pin_config_group_set op failed for group %d\n",
+                               setting->data.configs.group_or_pin);
+                       return ret;
                }
                break;
        default:
@@ -512,7 +508,7 @@ static int pinconf_dbg_config_write(struct file *file,
        int i;
 
        /* Get userspace string and assure termination */
-       buf_size = min(count, (sizeof(buf)-1));
+       buf_size = min(count, (size_t)(sizeof(buf)-1));
        if (copy_from_user(buf, user_buf, buf_size))
                return -EFAULT;
        buf[buf_size] = 0;