OSDN Git Service

i2c: i801: Refactor mux code since platform_device_unregister() is NULL aware
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 28 Dec 2020 20:06:18 +0000 (22:06 +0200)
committerWolfram Sang <wsa@kernel.org>
Tue, 5 Jan 2021 11:05:18 +0000 (12:05 +0100)
platform_device_unregister() is NULL-aware and thus doesn't required a
duplication check in i801_del_mux(). Besides that it's also error pointer
aware, and we may drop unneeded assignment in i801_add_mux() followed by
conversion to PTR_ERR_OR_ZERO() for the returned value.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-i801.c

index 7c2569a..1400a87 100644 (file)
@@ -1433,7 +1433,7 @@ static int i801_add_mux(struct i801_priv *priv)
        const struct i801_mux_config *mux_config;
        struct i2c_mux_gpio_platform_data gpio_data;
        struct gpiod_lookup_table *lookup;
-       int err, i;
+       int i;
 
        if (!priv->mux_drvdata)
                return 0;
@@ -1473,20 +1473,16 @@ static int i801_add_mux(struct i801_priv *priv)
                                PLATFORM_DEVID_NONE, &gpio_data,
                                sizeof(struct i2c_mux_gpio_platform_data));
        if (IS_ERR(priv->mux_pdev)) {
-               err = PTR_ERR(priv->mux_pdev);
                gpiod_remove_lookup_table(lookup);
-               priv->mux_pdev = NULL;
                dev_err(dev, "Failed to register i2c-mux-gpio device\n");
-               return err;
        }
 
-       return 0;
+       return PTR_ERR_OR_ZERO(priv->mux_pdev);
 }
 
 static void i801_del_mux(struct i801_priv *priv)
 {
-       if (priv->mux_pdev)
-               platform_device_unregister(priv->mux_pdev);
+       platform_device_unregister(priv->mux_pdev);
        gpiod_remove_lookup_table(priv->lookup);
 }