Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
[firefly-linux-kernel-4.4.55.git] / drivers / pinctrl / pinmux.c
index 9248ce4efed4d446fefb3cc736b82ffe7c796a28..051e8592990e9c9824563f8af789af05b1a5fdbf 100644 (file)
@@ -391,14 +391,16 @@ int pinmux_enable_setting(struct pinctrl_setting const *setting)
        struct pinctrl_dev *pctldev = setting->pctldev;
        const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
        const struct pinmux_ops *ops = pctldev->desc->pmxops;
-       int ret;
-       const unsigned *pins;
-       unsigned num_pins;
+       int ret = 0;
+       const unsigned *pins = NULL;
+       unsigned num_pins = 0;
        int i;
        struct pin_desc *desc;
 
-       ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
-                                     &pins, &num_pins);
+       if (pctlops->get_group_pins)
+               ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
+                                             &pins, &num_pins);
+
        if (ret) {
                const char *gname;
 
@@ -470,14 +472,15 @@ void pinmux_disable_setting(struct pinctrl_setting const *setting)
        struct pinctrl_dev *pctldev = setting->pctldev;
        const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
        const struct pinmux_ops *ops = pctldev->desc->pmxops;
-       int ret;
-       const unsigned *pins;
-       unsigned num_pins;
+       int ret = 0;
+       const unsigned *pins = NULL;
+       unsigned num_pins = 0;
        int i;
        struct pin_desc *desc;
 
-       ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
-                                     &pins, &num_pins);
+       if (pctlops->get_group_pins)
+               ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
+                                             &pins, &num_pins);
        if (ret) {
                const char *gname;