]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mfd: wm8994-core: Fix error path in wm8994_device_init
authorAnthony Brandon <anthony@amarulasolutions.com>
Thu, 14 Jun 2018 11:57:14 +0000 (13:57 +0200)
committerLee Jones <lee.jones@linaro.org>
Fri, 27 Jul 2018 07:13:24 +0000 (08:13 +0100)
For some errors, the wm8994_device_init function was returning or
jumping to the wrong point in the error path.

Signed-off-by: Anthony Brandon <anthony@amarulasolutions.com>
Reviewed-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/wm8994-core.c

index 5d5888ee2966818e5b8e266ac41680344011b42b..a944841a55cbf8c9b420c033e37caeca8fe243ea 100644 (file)
@@ -513,14 +513,15 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
                break;
        default:
                dev_err(wm8994->dev, "Unknown device type %d\n", wm8994->type);
-               return -EINVAL;
+               ret = -EINVAL;
+               goto err_enable;
        }
 
        ret = regmap_reinit_cache(wm8994->regmap, regmap_config);
        if (ret != 0) {
                dev_err(wm8994->dev, "Failed to reinit register cache: %d\n",
                        ret);
-               return ret;
+               goto err_enable;
        }
 
        /* Explicitly put the device into reset in case regulators
@@ -531,7 +532,7 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
                               wm8994_reg_read(wm8994, WM8994_SOFTWARE_RESET));
        if (ret != 0) {
                dev_err(wm8994->dev, "Failed to reset device: %d\n", ret);
-               return ret;
+               goto err_enable;
        }
 
        if (regmap_patch) {
@@ -540,7 +541,7 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
                if (ret != 0) {
                        dev_err(wm8994->dev, "Failed to register patch: %d\n",
                                ret);
-                       goto err;
+                       goto err_enable;
                }
        }