Merge tag 'v3.14.25' into backport/v3.14.24-ltsi-rc1+v3.14.25/snapshot-merge.wip
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / pinctrl / core.c
index c0fe609..e09474e 100644 (file)
@@ -468,6 +468,9 @@ int pinctrl_get_group_pins(struct pinctrl_dev *pctldev, const char *pin_group,
        const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
        int gs;
 
+       if (!pctlops->get_group_pins)
+               return -EINVAL;
+
        gs = pinctrl_get_group_selector(pctldev, pin_group);
        if (gs < 0)
                return gs;
@@ -1362,15 +1365,16 @@ static int pinctrl_groups_show(struct seq_file *s, void *what)
 
        seq_puts(s, "registered pin groups:\n");
        while (selector < ngroups) {
-               const unsigned *pins;
-               unsigned num_pins;
+               const unsigned *pins = NULL;
+               unsigned num_pins = 0;
                const char *gname = ops->get_group_name(pctldev, selector);
                const char *pname;
-               int ret;
+               int ret = 0;
                int i;
 
-               ret = ops->get_group_pins(pctldev, selector,
-                                         &pins, &num_pins);
+               if (ops->get_group_pins)
+                       ret = ops->get_group_pins(pctldev, selector,
+                                                 &pins, &num_pins);
                if (ret)
                        seq_printf(s, "%s [ERROR GETTING PINS]\n",
                                   gname);
@@ -1694,8 +1698,7 @@ static int pinctrl_check_ops(struct pinctrl_dev *pctldev)
 
        if (!ops ||
            !ops->get_groups_count ||
-           !ops->get_group_name ||
-           !ops->get_group_pins)
+           !ops->get_group_name)
                return -EINVAL;
 
        if (ops->dt_node_to_map && !ops->dt_free_map)