i2c: Convert to platform remove callback returning void
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 8 May 2023 20:51:38 +0000 (22:51 +0200)
committerWolfram Sang <wsa@kernel.org>
Mon, 5 Jun 2023 07:47:37 +0000 (09:47 +0200)
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Alain Volmat <alain.volmat@foss.st.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Acked-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Peter Rosin <peda@axentia.se>
Acked-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Asmaa Mnebhi <asnaa@nvidia.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: Chris Pringle <chris.pringle@phabrix.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Tali Perry <tali.perry@nuvoton.com>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
88 files changed:
drivers/i2c/busses/i2c-altera.c
drivers/i2c/busses/i2c-amd-mp2-plat.c
drivers/i2c/busses/i2c-aspeed.c
drivers/i2c/busses/i2c-at91-core.c
drivers/i2c/busses/i2c-au1550.c
drivers/i2c/busses/i2c-axxia.c
drivers/i2c/busses/i2c-bcm-iproc.c
drivers/i2c/busses/i2c-bcm-kona.c
drivers/i2c/busses/i2c-bcm2835.c
drivers/i2c/busses/i2c-brcmstb.c
drivers/i2c/busses/i2c-cadence.c
drivers/i2c/busses/i2c-cbus-gpio.c
drivers/i2c/busses/i2c-cht-wc.c
drivers/i2c/busses/i2c-cpm.c
drivers/i2c/busses/i2c-cros-ec-tunnel.c
drivers/i2c/busses/i2c-davinci.c
drivers/i2c/busses/i2c-designware-platdrv.c
drivers/i2c/busses/i2c-digicolor.c
drivers/i2c/busses/i2c-dln2.c
drivers/i2c/busses/i2c-emev2.c
drivers/i2c/busses/i2c-exynos5.c
drivers/i2c/busses/i2c-gpio.c
drivers/i2c/busses/i2c-gxp.c
drivers/i2c/busses/i2c-highlander.c
drivers/i2c/busses/i2c-hix5hd2.c
drivers/i2c/busses/i2c-ibm_iic.c
drivers/i2c/busses/i2c-img-scb.c
drivers/i2c/busses/i2c-imx-lpi2c.c
drivers/i2c/busses/i2c-imx.c
drivers/i2c/busses/i2c-iop3xx.c
drivers/i2c/busses/i2c-isch.c
drivers/i2c/busses/i2c-jz4780.c
drivers/i2c/busses/i2c-kempld.c
drivers/i2c/busses/i2c-lpc2k.c
drivers/i2c/busses/i2c-meson.c
drivers/i2c/busses/i2c-microchip-corei2c.c
drivers/i2c/busses/i2c-mlxbf.c
drivers/i2c/busses/i2c-mlxcpld.c
drivers/i2c/busses/i2c-mpc.c
drivers/i2c/busses/i2c-mt65xx.c
drivers/i2c/busses/i2c-mt7621.c
drivers/i2c/busses/i2c-mv64xxx.c
drivers/i2c/busses/i2c-mxs.c
drivers/i2c/busses/i2c-npcm7xx.c
drivers/i2c/busses/i2c-ocores.c
drivers/i2c/busses/i2c-octeon-platdrv.c
drivers/i2c/busses/i2c-omap.c
drivers/i2c/busses/i2c-opal.c
drivers/i2c/busses/i2c-pasemi-platform.c
drivers/i2c/busses/i2c-pca-platform.c
drivers/i2c/busses/i2c-pnx.c
drivers/i2c/busses/i2c-powermac.c
drivers/i2c/busses/i2c-pxa.c
drivers/i2c/busses/i2c-qcom-cci.c
drivers/i2c/busses/i2c-qcom-geni.c
drivers/i2c/busses/i2c-qup.c
drivers/i2c/busses/i2c-rcar.c
drivers/i2c/busses/i2c-riic.c
drivers/i2c/busses/i2c-rk3x.c
drivers/i2c/busses/i2c-rzv2m.c
drivers/i2c/busses/i2c-s3c2410.c
drivers/i2c/busses/i2c-scmi.c
drivers/i2c/busses/i2c-sh7760.c
drivers/i2c/busses/i2c-sh_mobile.c
drivers/i2c/busses/i2c-simtec.c
drivers/i2c/busses/i2c-st.c
drivers/i2c/busses/i2c-stm32f4.c
drivers/i2c/busses/i2c-stm32f7.c
drivers/i2c/busses/i2c-sun6i-p2wi.c
drivers/i2c/busses/i2c-synquacer.c
drivers/i2c/busses/i2c-tegra-bpmp.c
drivers/i2c/busses/i2c-tegra.c
drivers/i2c/busses/i2c-uniphier-f.c
drivers/i2c/busses/i2c-uniphier.c
drivers/i2c/busses/i2c-versatile.c
drivers/i2c/busses/i2c-viperboard.c
drivers/i2c/busses/i2c-wmt.c
drivers/i2c/busses/i2c-xgene-slimpro.c
drivers/i2c/busses/i2c-xiic.c
drivers/i2c/busses/i2c-xlp9xx.c
drivers/i2c/busses/scx200_acb.c
drivers/i2c/muxes/i2c-arb-gpio-challenge.c
drivers/i2c/muxes/i2c-demux-pinctrl.c
drivers/i2c/muxes/i2c-mux-gpio.c
drivers/i2c/muxes/i2c-mux-gpmux.c
drivers/i2c/muxes/i2c-mux-mlxcpld.c
drivers/i2c/muxes/i2c-mux-pinctrl.c
drivers/i2c/muxes/i2c-mux-reg.c

index 50e7f3f..252fbd1 100644 (file)
@@ -465,14 +465,12 @@ static int altr_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int altr_i2c_remove(struct platform_device *pdev)
+static void altr_i2c_remove(struct platform_device *pdev)
 {
        struct altr_i2c_dev *idev = platform_get_drvdata(pdev);
 
        clk_disable_unprepare(idev->i2c_clk);
        i2c_del_adapter(&idev->adapter);
-
-       return 0;
 }
 
 /* Match table for of_platform binding */
@@ -484,7 +482,7 @@ MODULE_DEVICE_TABLE(of, altr_i2c_of_match);
 
 static struct platform_driver altr_i2c_driver = {
        .probe = altr_i2c_probe,
-       .remove = altr_i2c_remove,
+       .remove_new = altr_i2c_remove,
        .driver = {
                .name = "altera-i2c",
                .of_match_table = altr_i2c_of_match,
index 423fe0c..112fe2b 100644 (file)
@@ -322,7 +322,7 @@ static int i2c_amd_probe(struct platform_device *pdev)
        return ret;
 }
 
-static int i2c_amd_remove(struct platform_device *pdev)
+static void i2c_amd_remove(struct platform_device *pdev)
 {
        struct amd_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
        struct amd_i2c_common *i2c_common = &i2c_dev->common;
@@ -336,7 +336,6 @@ static int i2c_amd_remove(struct platform_device *pdev)
        i2c_unlock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
 
        i2c_del_adapter(&i2c_dev->adap);
-       return 0;
 }
 
 static const struct acpi_device_id i2c_amd_acpi_match[] = {
@@ -347,7 +346,7 @@ MODULE_DEVICE_TABLE(acpi, i2c_amd_acpi_match);
 
 static struct platform_driver i2c_amd_plat_driver = {
        .probe = i2c_amd_probe,
-       .remove = i2c_amd_remove,
+       .remove_new = i2c_amd_remove,
        .driver = {
                .name = "i2c_amd_mp2",
                .acpi_match_table = ACPI_PTR(i2c_amd_acpi_match),
index d3c99c5..2e5acfe 100644 (file)
@@ -1061,7 +1061,7 @@ static int aspeed_i2c_probe_bus(struct platform_device *pdev)
        return 0;
 }
 
-static int aspeed_i2c_remove_bus(struct platform_device *pdev)
+static void aspeed_i2c_remove_bus(struct platform_device *pdev)
 {
        struct aspeed_i2c_bus *bus = platform_get_drvdata(pdev);
        unsigned long flags;
@@ -1077,13 +1077,11 @@ static int aspeed_i2c_remove_bus(struct platform_device *pdev)
        reset_control_assert(bus->rst);
 
        i2c_del_adapter(&bus->adap);
-
-       return 0;
 }
 
 static struct platform_driver aspeed_i2c_bus_driver = {
        .probe          = aspeed_i2c_probe_bus,
-       .remove         = aspeed_i2c_remove_bus,
+       .remove_new     = aspeed_i2c_remove_bus,
        .driver         = {
                .name           = "aspeed-i2c-bus",
                .of_match_table = aspeed_i2c_bus_of_table,
index 2df9df5..05ad3bc 100644 (file)
@@ -273,7 +273,7 @@ static int at91_twi_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int at91_twi_remove(struct platform_device *pdev)
+static void at91_twi_remove(struct platform_device *pdev)
 {
        struct at91_twi_dev *dev = platform_get_drvdata(pdev);
 
@@ -282,8 +282,6 @@ static int at91_twi_remove(struct platform_device *pdev)
 
        pm_runtime_disable(dev->dev);
        pm_runtime_set_suspended(dev->dev);
-
-       return 0;
 }
 
 static int __maybe_unused at91_twi_runtime_suspend(struct device *dev)
@@ -342,7 +340,7 @@ static const struct dev_pm_ops __maybe_unused at91_twi_pm = {
 
 static struct platform_driver at91_twi_driver = {
        .probe          = at91_twi_probe,
-       .remove         = at91_twi_remove,
+       .remove_new     = at91_twi_remove,
        .id_table       = at91_twi_devtypes,
        .driver         = {
                .name   = "at91_i2c",
index 7b42d35..e66c12e 100644 (file)
@@ -334,13 +334,12 @@ i2c_au1550_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int i2c_au1550_remove(struct platform_device *pdev)
+static void i2c_au1550_remove(struct platform_device *pdev)
 {
        struct i2c_au1550_data *priv = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&priv->adap);
        i2c_au1550_disable(priv);
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -379,7 +378,7 @@ static struct platform_driver au1xpsc_smbus_driver = {
                .pm     = AU1XPSC_SMBUS_PMOPS,
        },
        .probe          = i2c_au1550_probe,
-       .remove         = i2c_au1550_remove,
+       .remove_new     = i2c_au1550_remove,
 };
 
 module_platform_driver(au1xpsc_smbus_driver);
index c1c74ce..d7f1e98 100644 (file)
@@ -804,14 +804,12 @@ error_disable_clk:
        return ret;
 }
 
-static int axxia_i2c_remove(struct platform_device *pdev)
+static void axxia_i2c_remove(struct platform_device *pdev)
 {
        struct axxia_i2c_dev *idev = platform_get_drvdata(pdev);
 
        clk_disable_unprepare(idev->i2c_clk);
        i2c_del_adapter(&idev->adapter);
-
-       return 0;
 }
 
 /* Match table for of_platform binding */
@@ -824,7 +822,7 @@ MODULE_DEVICE_TABLE(of, axxia_i2c_of_match);
 
 static struct platform_driver axxia_i2c_driver = {
        .probe = axxia_i2c_probe,
-       .remove = axxia_i2c_remove,
+       .remove_new = axxia_i2c_remove,
        .driver = {
                .name = "axxia-i2c",
                .of_match_table = axxia_i2c_of_match,
index 85d8a6b..2d8342f 100644 (file)
@@ -1107,7 +1107,7 @@ static int bcm_iproc_i2c_probe(struct platform_device *pdev)
        return i2c_add_adapter(adap);
 }
 
-static int bcm_iproc_i2c_remove(struct platform_device *pdev)
+static void bcm_iproc_i2c_remove(struct platform_device *pdev)
 {
        struct bcm_iproc_i2c_dev *iproc_i2c = platform_get_drvdata(pdev);
 
@@ -1123,8 +1123,6 @@ static int bcm_iproc_i2c_remove(struct platform_device *pdev)
 
        i2c_del_adapter(&iproc_i2c->adapter);
        bcm_iproc_i2c_enable_disable(iproc_i2c, false);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -1260,7 +1258,7 @@ static struct platform_driver bcm_iproc_i2c_driver = {
                .pm = BCM_IPROC_I2C_PM_OPS,
        },
        .probe = bcm_iproc_i2c_probe,
-       .remove = bcm_iproc_i2c_remove,
+       .remove_new = bcm_iproc_i2c_remove,
 };
 module_platform_driver(bcm_iproc_i2c_driver);
 
index f3e369f..a57088e 100644 (file)
@@ -859,13 +859,11 @@ probe_disable_clk:
        return rc;
 }
 
-static int bcm_kona_i2c_remove(struct platform_device *pdev)
+static void bcm_kona_i2c_remove(struct platform_device *pdev)
 {
        struct bcm_kona_i2c_dev *dev = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&dev->adapter);
-
-       return 0;
 }
 
 static const struct of_device_id bcm_kona_i2c_of_match[] = {
@@ -880,7 +878,7 @@ static struct platform_driver bcm_kona_i2c_driver = {
                   .of_match_table = bcm_kona_i2c_of_match,
                   },
        .probe = bcm_kona_i2c_probe,
-       .remove = bcm_kona_i2c_remove,
+       .remove_new = bcm_kona_i2c_remove,
 };
 module_platform_driver(bcm_kona_i2c_driver);
 
index 09a077b..8ce6d3f 100644 (file)
@@ -503,7 +503,7 @@ err_put_exclusive_rate:
        return ret;
 }
 
-static int bcm2835_i2c_remove(struct platform_device *pdev)
+static void bcm2835_i2c_remove(struct platform_device *pdev)
 {
        struct bcm2835_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
@@ -512,8 +512,6 @@ static int bcm2835_i2c_remove(struct platform_device *pdev)
 
        free_irq(i2c_dev->irq, i2c_dev);
        i2c_del_adapter(&i2c_dev->adapter);
-
-       return 0;
 }
 
 static const struct of_device_id bcm2835_i2c_of_match[] = {
@@ -525,7 +523,7 @@ MODULE_DEVICE_TABLE(of, bcm2835_i2c_of_match);
 
 static struct platform_driver bcm2835_i2c_driver = {
        .probe          = bcm2835_i2c_probe,
-       .remove         = bcm2835_i2c_remove,
+       .remove_new     = bcm2835_i2c_remove,
        .driver         = {
                .name   = "i2c-bcm2835",
                .of_match_table = bcm2835_i2c_of_match,
index ef94271..cf92cbc 100644 (file)
@@ -690,12 +690,11 @@ probe_errorout:
        return rc;
 }
 
-static int brcmstb_i2c_remove(struct platform_device *pdev)
+static void brcmstb_i2c_remove(struct platform_device *pdev)
 {
        struct brcmstb_i2c_dev *dev = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&dev->adapter);
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -736,7 +735,7 @@ static struct platform_driver brcmstb_i2c_driver = {
                   .pm = &brcmstb_i2c_pm,
                   },
        .probe = brcmstb_i2c_probe,
-       .remove = brcmstb_i2c_remove,
+       .remove_new = brcmstb_i2c_remove,
 };
 module_platform_driver(brcmstb_i2c_driver);
 
index 3a4edf7..9849f45 100644 (file)
@@ -1415,7 +1415,7 @@ err_clk_dis:
  *
  * Return: 0 always
  */
-static int cdns_i2c_remove(struct platform_device *pdev)
+static void cdns_i2c_remove(struct platform_device *pdev)
 {
        struct cdns_i2c *id = platform_get_drvdata(pdev);
 
@@ -1427,8 +1427,6 @@ static int cdns_i2c_remove(struct platform_device *pdev)
        clk_notifier_unregister(id->clk, &id->clk_rate_change_nb);
        reset_control_assert(id->reset);
        clk_disable_unprepare(id->clk);
-
-       return 0;
 }
 
 static struct platform_driver cdns_i2c_drv = {
@@ -1438,7 +1436,7 @@ static struct platform_driver cdns_i2c_drv = {
                .pm = &cdns_i2c_dev_pm_ops,
        },
        .probe  = cdns_i2c_probe,
-       .remove = cdns_i2c_remove,
+       .remove_new = cdns_i2c_remove,
 };
 
 module_platform_driver(cdns_i2c_drv);
index d97c61e..fdc1758 100644 (file)
@@ -200,13 +200,11 @@ static const struct i2c_algorithm cbus_i2c_algo = {
        .functionality          = cbus_i2c_func,
 };
 
-static int cbus_i2c_remove(struct platform_device *pdev)
+static void cbus_i2c_remove(struct platform_device *pdev)
 {
        struct i2c_adapter *adapter = platform_get_drvdata(pdev);
 
        i2c_del_adapter(adapter);
-
-       return 0;
 }
 
 static int cbus_i2c_probe(struct platform_device *pdev)
@@ -266,7 +264,7 @@ MODULE_DEVICE_TABLE(of, i2c_cbus_dt_ids);
 
 static struct platform_driver cbus_i2c_driver = {
        .probe  = cbus_i2c_probe,
-       .remove = cbus_i2c_remove,
+       .remove_new = cbus_i2c_remove,
        .driver = {
                .name   = "i2c-cbus-gpio",
                .of_match_table = of_match_ptr(i2c_cbus_dt_ids),
index 2b2c3d0..0209933 100644 (file)
@@ -529,15 +529,13 @@ remove_irq_domain:
        return ret;
 }
 
-static int cht_wc_i2c_adap_i2c_remove(struct platform_device *pdev)
+static void cht_wc_i2c_adap_i2c_remove(struct platform_device *pdev)
 {
        struct cht_wc_i2c_adap *adap = platform_get_drvdata(pdev);
 
        i2c_unregister_device(adap->client);
        i2c_del_adapter(&adap->adapter);
        irq_domain_remove(adap->irq_domain);
-
-       return 0;
 }
 
 static const struct platform_device_id cht_wc_i2c_adap_id_table[] = {
@@ -548,7 +546,7 @@ MODULE_DEVICE_TABLE(platform, cht_wc_i2c_adap_id_table);
 
 static struct platform_driver cht_wc_i2c_adap_driver = {
        .probe = cht_wc_i2c_adap_i2c_probe,
-       .remove = cht_wc_i2c_adap_i2c_remove,
+       .remove_new = cht_wc_i2c_adap_i2c_remove,
        .driver = {
                .name = "cht_wcove_ext_chgr",
        },
index 24d584a..732daf6 100644 (file)
@@ -676,7 +676,7 @@ out_free:
        return result;
 }
 
-static int cpm_i2c_remove(struct platform_device *ofdev)
+static void cpm_i2c_remove(struct platform_device *ofdev)
 {
        struct cpm_i2c *cpm = platform_get_drvdata(ofdev);
 
@@ -685,8 +685,6 @@ static int cpm_i2c_remove(struct platform_device *ofdev)
        cpm_i2c_shutdown(cpm);
 
        kfree(cpm);
-
-       return 0;
 }
 
 static const struct of_device_id cpm_i2c_match[] = {
@@ -703,7 +701,7 @@ MODULE_DEVICE_TABLE(of, cpm_i2c_match);
 
 static struct platform_driver cpm_i2c_driver = {
        .probe          = cpm_i2c_probe,
-       .remove         = cpm_i2c_remove,
+       .remove_new     = cpm_i2c_remove,
        .driver = {
                .name = "fsl-i2c-cpm",
                .of_match_table = cpm_i2c_match,
index 8b3ff5b..2737fd8 100644 (file)
@@ -283,13 +283,11 @@ static int ec_i2c_probe(struct platform_device *pdev)
        return err;
 }
 
-static int ec_i2c_remove(struct platform_device *dev)
+static void ec_i2c_remove(struct platform_device *dev)
 {
        struct ec_i2c_device *bus = platform_get_drvdata(dev);
 
        i2c_del_adapter(&bus->adap);
-
-       return 0;
 }
 
 static const struct of_device_id cros_ec_i2c_of_match[] __maybe_unused = {
@@ -306,7 +304,7 @@ MODULE_DEVICE_TABLE(acpi, cros_ec_i2c_tunnel_acpi_id);
 
 static struct platform_driver ec_i2c_tunnel_driver = {
        .probe = ec_i2c_probe,
-       .remove = ec_i2c_remove,
+       .remove_new = ec_i2c_remove,
        .driver = {
                .name = "cros-ec-i2c-tunnel",
                .acpi_match_table = ACPI_PTR(cros_ec_i2c_tunnel_acpi_id),
index 9750310..b77f928 100644 (file)
@@ -885,7 +885,7 @@ err_pm:
        return r;
 }
 
-static int davinci_i2c_remove(struct platform_device *pdev)
+static void davinci_i2c_remove(struct platform_device *pdev)
 {
        struct davinci_i2c_dev *dev = platform_get_drvdata(pdev);
        int ret;
@@ -894,17 +894,15 @@ static int davinci_i2c_remove(struct platform_device *pdev)
 
        i2c_del_adapter(&dev->adapter);
 
-       ret = pm_runtime_resume_and_get(&pdev->dev);
+       ret = pm_runtime_get_sync(&pdev->dev);
        if (ret < 0)
-               return ret;
-
-       davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, 0);
+               dev_err(&pdev->dev, "Failed to resume device\n");
+       else
+               davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, 0);
 
        pm_runtime_dont_use_autosuspend(dev->dev);
        pm_runtime_put_sync(dev->dev);
        pm_runtime_disable(dev->dev);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -945,7 +943,7 @@ MODULE_ALIAS("platform:i2c_davinci");
 
 static struct platform_driver davinci_i2c_driver = {
        .probe          = davinci_i2c_probe,
-       .remove         = davinci_i2c_remove,
+       .remove_new     = davinci_i2c_remove,
        .driver         = {
                .name   = "i2c_davinci",
                .pm     = davinci_i2c_pm_ops,
index 89ad88c..b404dcd 100644 (file)
@@ -384,7 +384,7 @@ exit_reset:
        return ret;
 }
 
-static int dw_i2c_plat_remove(struct platform_device *pdev)
+static void dw_i2c_plat_remove(struct platform_device *pdev)
 {
        struct dw_i2c_dev *dev = platform_get_drvdata(pdev);
 
@@ -401,8 +401,6 @@ static int dw_i2c_plat_remove(struct platform_device *pdev)
        i2c_dw_remove_lock_support(dev);
 
        reset_control_assert(dev->rst);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -481,7 +479,7 @@ MODULE_ALIAS("platform:i2c_designware");
 
 static struct platform_driver dw_i2c_driver = {
        .probe = dw_i2c_plat_probe,
-       .remove = dw_i2c_plat_remove,
+       .remove_new = dw_i2c_plat_remove,
        .driver         = {
                .name   = "i2c_designware",
                .of_match_table = of_match_ptr(dw_i2c_of_match),
index 50925d9..3462f2b 100644 (file)
@@ -347,14 +347,12 @@ static int dc_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int dc_i2c_remove(struct platform_device *pdev)
+static void dc_i2c_remove(struct platform_device *pdev)
 {
        struct dc_i2c *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adap);
        clk_disable_unprepare(i2c->clk);
-
-       return 0;
 }
 
 static const struct of_device_id dc_i2c_match[] = {
@@ -365,7 +363,7 @@ MODULE_DEVICE_TABLE(of, dc_i2c_match);
 
 static struct platform_driver dc_i2c_driver = {
        .probe   = dc_i2c_probe,
-       .remove  = dc_i2c_remove,
+       .remove_new = dc_i2c_remove,
        .driver  = {
                .name  = "digicolor-i2c",
                .of_match_table = dc_i2c_match,
index 2a2089d..4f02cc2 100644 (file)
@@ -236,20 +236,18 @@ out_disable:
        return ret;
 }
 
-static int dln2_i2c_remove(struct platform_device *pdev)
+static void dln2_i2c_remove(struct platform_device *pdev)
 {
        struct dln2_i2c *dln2 = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&dln2->adapter);
        dln2_i2c_enable(dln2, false);
-
-       return 0;
 }
 
 static struct platform_driver dln2_i2c_driver = {
        .driver.name    = "dln2-i2c",
        .probe          = dln2_i2c_probe,
-       .remove         = dln2_i2c_remove,
+       .remove_new     = dln2_i2c_remove,
 };
 
 module_platform_driver(dln2_i2c_driver);
index f2e537b..4ba93cd 100644 (file)
@@ -419,14 +419,12 @@ err_clk:
        return ret;
 }
 
-static int em_i2c_remove(struct platform_device *dev)
+static void em_i2c_remove(struct platform_device *dev)
 {
        struct em_i2c_device *priv = platform_get_drvdata(dev);
 
        i2c_del_adapter(&priv->adap);
        clk_disable_unprepare(priv->sclk);
-
-       return 0;
 }
 
 static const struct of_device_id em_i2c_ids[] = {
@@ -436,7 +434,7 @@ static const struct of_device_id em_i2c_ids[] = {
 
 static struct platform_driver em_i2c_driver = {
        .probe = em_i2c_probe,
-       .remove = em_i2c_remove,
+       .remove_new = em_i2c_remove,
        .driver = {
                .name = "em-i2c",
                .of_match_table = em_i2c_ids,
index 4a6260d..f378cd4 100644 (file)
@@ -882,7 +882,7 @@ static int exynos5_i2c_probe(struct platform_device *pdev)
        return ret;
 }
 
-static int exynos5_i2c_remove(struct platform_device *pdev)
+static void exynos5_i2c_remove(struct platform_device *pdev)
 {
        struct exynos5_i2c *i2c = platform_get_drvdata(pdev);
 
@@ -890,8 +890,6 @@ static int exynos5_i2c_remove(struct platform_device *pdev)
 
        clk_unprepare(i2c->clk);
        clk_unprepare(i2c->pclk);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -945,7 +943,7 @@ static const struct dev_pm_ops exynos5_i2c_dev_pm_ops = {
 
 static struct platform_driver exynos5_i2c_driver = {
        .probe          = exynos5_i2c_probe,
-       .remove         = exynos5_i2c_remove,
+       .remove_new     = exynos5_i2c_remove,
        .driver         = {
                .name   = "exynos5-hsi2c",
                .pm     = &exynos5_i2c_dev_pm_ops,
index 1794c03..e5a5b9e 100644 (file)
@@ -475,7 +475,7 @@ static int i2c_gpio_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int i2c_gpio_remove(struct platform_device *pdev)
+static void i2c_gpio_remove(struct platform_device *pdev)
 {
        struct i2c_gpio_private_data *priv;
        struct i2c_adapter *adap;
@@ -486,8 +486,6 @@ static int i2c_gpio_remove(struct platform_device *pdev)
        adap = &priv->adap;
 
        i2c_del_adapter(adap);
-
-       return 0;
 }
 
 static const struct of_device_id i2c_gpio_dt_ids[] = {
@@ -510,7 +508,7 @@ static struct platform_driver i2c_gpio_driver = {
                .acpi_match_table = i2c_gpio_acpi_match,
        },
        .probe          = i2c_gpio_probe,
-       .remove         = i2c_gpio_remove,
+       .remove_new     = i2c_gpio_remove,
 };
 
 static int __init i2c_gpio_init(void)
index 8ea3fb5..70b0de0 100644 (file)
@@ -577,15 +577,13 @@ static int gxp_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int gxp_i2c_remove(struct platform_device *pdev)
+static void gxp_i2c_remove(struct platform_device *pdev)
 {
        struct gxp_i2c_drvdata *drvdata = platform_get_drvdata(pdev);
 
        /* Disable interrupt */
        regmap_update_bits(i2cg_map, GXP_I2CINTEN, BIT(drvdata->engine), 0);
        i2c_del_adapter(&drvdata->adapter);
-
-       return 0;
 }
 
 static const struct of_device_id gxp_i2c_of_match[] = {
@@ -596,7 +594,7 @@ MODULE_DEVICE_TABLE(of, gxp_i2c_of_match);
 
 static struct platform_driver gxp_i2c_driver = {
        .probe  = gxp_i2c_probe,
-       .remove = gxp_i2c_remove,
+       .remove_new = gxp_i2c_remove,
        .driver = {
                .name = "gxp-i2c",
                .of_match_table = gxp_i2c_of_match,
index 4374a86..7922bc9 100644 (file)
@@ -435,7 +435,7 @@ err:
        return ret;
 }
 
-static int highlander_i2c_remove(struct platform_device *pdev)
+static void highlander_i2c_remove(struct platform_device *pdev)
 {
        struct highlander_i2c_dev *dev = platform_get_drvdata(pdev);
 
@@ -446,8 +446,6 @@ static int highlander_i2c_remove(struct platform_device *pdev)
 
        iounmap(dev->base);
        kfree(dev);
-
-       return 0;
 }
 
 static struct platform_driver highlander_i2c_driver = {
@@ -456,7 +454,7 @@ static struct platform_driver highlander_i2c_driver = {
        },
 
        .probe          = highlander_i2c_probe,
-       .remove         = highlander_i2c_remove,
+       .remove_new     = highlander_i2c_remove,
 };
 
 module_platform_driver(highlander_i2c_driver);
index 0e34cba..64feaa9 100644 (file)
@@ -464,7 +464,7 @@ err_clk:
        return ret;
 }
 
-static int hix5hd2_i2c_remove(struct platform_device *pdev)
+static void hix5hd2_i2c_remove(struct platform_device *pdev)
 {
        struct hix5hd2_i2c_priv *priv = platform_get_drvdata(pdev);
 
@@ -472,8 +472,6 @@ static int hix5hd2_i2c_remove(struct platform_device *pdev)
        pm_runtime_disable(priv->dev);
        pm_runtime_set_suspended(priv->dev);
        clk_disable_unprepare(priv->clk);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -511,7 +509,7 @@ MODULE_DEVICE_TABLE(of, hix5hd2_i2c_match);
 
 static struct platform_driver hix5hd2_i2c_driver = {
        .probe          = hix5hd2_i2c_probe,
-       .remove         = hix5hd2_i2c_remove,
+       .remove_new     = hix5hd2_i2c_remove,
        .driver         = {
                .name   = "hix5hd2-i2c",
                .pm     = &hix5hd2_i2c_pm_ops,
index eeb80e3..2d11577 100644 (file)
@@ -769,7 +769,7 @@ error_cleanup:
 /*
  * Cleanup initialized IIC interface
  */
-static int iic_remove(struct platform_device *ofdev)
+static void iic_remove(struct platform_device *ofdev)
 {
        struct ibm_iic_private *dev = platform_get_drvdata(ofdev);
 
@@ -782,8 +782,6 @@ static int iic_remove(struct platform_device *ofdev)
 
        iounmap(dev->vaddr);
        kfree(dev);
-
-       return 0;
 }
 
 static const struct of_device_id ibm_iic_match[] = {
@@ -798,7 +796,7 @@ static struct platform_driver ibm_iic_driver = {
                .of_match_table = ibm_iic_match,
        },
        .probe  = iic_probe,
-       .remove = iic_remove,
+       .remove_new = iic_remove,
 };
 
 module_platform_driver(ibm_iic_driver);
index 8e98794..fea2940 100644 (file)
@@ -1413,7 +1413,7 @@ rpm_disable:
        return ret;
 }
 
-static int img_i2c_remove(struct platform_device *dev)
+static void img_i2c_remove(struct platform_device *dev)
 {
        struct img_i2c *i2c = platform_get_drvdata(dev);
 
@@ -1421,8 +1421,6 @@ static int img_i2c_remove(struct platform_device *dev)
        pm_runtime_disable(&dev->dev);
        if (!pm_runtime_status_suspended(&dev->dev))
                img_i2c_runtime_suspend(&dev->dev);
-
-       return 0;
 }
 
 static int img_i2c_runtime_suspend(struct device *dev)
@@ -1506,7 +1504,7 @@ static struct platform_driver img_scb_i2c_driver = {
                .pm             = &img_i2c_pm,
        },
        .probe = img_i2c_probe,
-       .remove = img_i2c_remove,
+       .remove_new = img_i2c_remove,
 };
 module_platform_driver(img_scb_i2c_driver);
 
index 1af0a63..48e6958 100644 (file)
@@ -623,7 +623,7 @@ rpm_disable:
        return ret;
 }
 
-static int lpi2c_imx_remove(struct platform_device *pdev)
+static void lpi2c_imx_remove(struct platform_device *pdev)
 {
        struct lpi2c_imx_struct *lpi2c_imx = platform_get_drvdata(pdev);
 
@@ -631,8 +631,6 @@ static int lpi2c_imx_remove(struct platform_device *pdev)
 
        pm_runtime_disable(&pdev->dev);
        pm_runtime_dont_use_autosuspend(&pdev->dev);
-
-       return 0;
 }
 
 static int __maybe_unused lpi2c_runtime_suspend(struct device *dev)
@@ -669,7 +667,7 @@ static const struct dev_pm_ops lpi2c_pm_ops = {
 
 static struct platform_driver lpi2c_imx_driver = {
        .probe = lpi2c_imx_probe,
-       .remove = lpi2c_imx_remove,
+       .remove_new = lpi2c_imx_remove,
        .driver = {
                .name = DRIVER_NAME,
                .of_match_table = lpi2c_imx_of_match,
index 42189a5..65128a7 100644 (file)
@@ -1561,7 +1561,7 @@ rpm_disable:
        return ret;
 }
 
-static int i2c_imx_remove(struct platform_device *pdev)
+static void i2c_imx_remove(struct platform_device *pdev)
 {
        struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
        int irq, ret;
@@ -1592,8 +1592,6 @@ static int i2c_imx_remove(struct platform_device *pdev)
 
        pm_runtime_put_noidle(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
-
-       return 0;
 }
 
 static int __maybe_unused i2c_imx_runtime_suspend(struct device *dev)
@@ -1624,7 +1622,7 @@ static const struct dev_pm_ops i2c_imx_pm_ops = {
 
 static struct platform_driver i2c_imx_driver = {
        .probe = i2c_imx_probe,
-       .remove = i2c_imx_remove,
+       .remove_new = i2c_imx_remove,
        .driver = {
                .name = DRIVER_NAME,
                .pm = &i2c_imx_pm_ops,
index 4a6ff54..f2f7ebe 100644 (file)
@@ -388,7 +388,7 @@ static const struct i2c_algorithm iop3xx_i2c_algo = {
        .functionality  = iop3xx_i2c_func,
 };
 
-static int
+static void
 iop3xx_i2c_remove(struct platform_device *pdev)
 {
        struct i2c_adapter *padapter = platform_get_drvdata(pdev);
@@ -408,8 +408,6 @@ iop3xx_i2c_remove(struct platform_device *pdev)
        release_mem_region(res->start, IOP3XX_I2C_IO_SIZE);
        kfree(adapter_data);
        kfree(padapter);
-
-       return 0;
 }
 
 static int
@@ -529,7 +527,7 @@ MODULE_DEVICE_TABLE(of, i2c_iop3xx_match);
 
 static struct platform_driver iop3xx_i2c_driver = {
        .probe          = iop3xx_i2c_probe,
-       .remove         = iop3xx_i2c_remove,
+       .remove_new     = iop3xx_i2c_remove,
        .driver         = {
                .name   = "IOP3xx-I2C",
                .of_match_table = i2c_iop3xx_match,
index 2dc7ada..1dc1cea 100644 (file)
@@ -286,14 +286,12 @@ static int smbus_sch_probe(struct platform_device *dev)
        return retval;
 }
 
-static int smbus_sch_remove(struct platform_device *pdev)
+static void smbus_sch_remove(struct platform_device *pdev)
 {
        if (sch_smba) {
                i2c_del_adapter(&sch_adapter);
                sch_smba = 0;
        }
-
-       return 0;
 }
 
 static struct platform_driver smbus_sch_driver = {
@@ -301,7 +299,7 @@ static struct platform_driver smbus_sch_driver = {
                .name = "isch_smbus",
        },
        .probe          = smbus_sch_probe,
-       .remove         = smbus_sch_remove,
+       .remove_new     = smbus_sch_remove,
 };
 
 module_platform_driver(smbus_sch_driver);
index baa7319..0dfe603 100644 (file)
@@ -845,18 +845,17 @@ err:
        return ret;
 }
 
-static int jz4780_i2c_remove(struct platform_device *pdev)
+static void jz4780_i2c_remove(struct platform_device *pdev)
 {
        struct jz4780_i2c *i2c = platform_get_drvdata(pdev);
 
        clk_disable_unprepare(i2c->clk);
        i2c_del_adapter(&i2c->adap);
-       return 0;
 }
 
 static struct platform_driver jz4780_i2c_driver = {
        .probe          = jz4780_i2c_probe,
-       .remove         = jz4780_i2c_remove,
+       .remove_new     = jz4780_i2c_remove,
        .driver         = {
                .name   = "jz4780-i2c",
                .of_match_table = jz4780_i2c_of_matches,
index cf857cf..281058e 100644 (file)
@@ -329,7 +329,7 @@ static int kempld_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int kempld_i2c_remove(struct platform_device *pdev)
+static void kempld_i2c_remove(struct platform_device *pdev)
 {
        struct kempld_i2c_data *i2c = platform_get_drvdata(pdev);
        struct kempld_device_data *pld = i2c->pld;
@@ -348,8 +348,6 @@ static int kempld_i2c_remove(struct platform_device *pdev)
        kempld_release_mutex(pld);
 
        i2c_del_adapter(&i2c->adap);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -389,7 +387,7 @@ static struct platform_driver kempld_i2c_driver = {
                .name = "kempld-i2c",
        },
        .probe          = kempld_i2c_probe,
-       .remove         = kempld_i2c_remove,
+       .remove_new     = kempld_i2c_remove,
        .suspend        = kempld_i2c_suspend,
        .resume         = kempld_i2c_resume,
 };
index 8fff6fb..469fe90 100644 (file)
@@ -435,14 +435,12 @@ fail_clk:
        return ret;
 }
 
-static int i2c_lpc2k_remove(struct platform_device *dev)
+static void i2c_lpc2k_remove(struct platform_device *dev)
 {
        struct lpc2k_i2c *i2c = platform_get_drvdata(dev);
 
        i2c_del_adapter(&i2c->adap);
        clk_disable_unprepare(i2c->clk);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -483,7 +481,7 @@ MODULE_DEVICE_TABLE(of, lpc2k_i2c_match);
 
 static struct platform_driver i2c_lpc2k_driver = {
        .probe  = i2c_lpc2k_probe,
-       .remove = i2c_lpc2k_remove,
+       .remove_new = i2c_lpc2k_remove,
        .driver = {
                .name           = "lpc2k-i2c",
                .pm             = I2C_LPC2K_DEV_PM_OPS,
index 889eff0..16026c8 100644 (file)
@@ -535,14 +535,12 @@ static int meson_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int meson_i2c_remove(struct platform_device *pdev)
+static void meson_i2c_remove(struct platform_device *pdev)
 {
        struct meson_i2c *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adap);
        clk_disable_unprepare(i2c->clk);
-
-       return 0;
 }
 
 static const struct meson_i2c_data i2c_meson6_data = {
@@ -568,7 +566,7 @@ MODULE_DEVICE_TABLE(of, meson_i2c_match);
 
 static struct platform_driver meson_i2c_driver = {
        .probe   = meson_i2c_probe,
-       .remove  = meson_i2c_remove,
+       .remove_new = meson_i2c_remove,
        .driver  = {
                .name  = "meson-i2c",
                .of_match_table = meson_i2c_match,
index 4d7e9b2..7f58f7e 100644 (file)
@@ -446,14 +446,12 @@ static int mchp_corei2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int mchp_corei2c_remove(struct platform_device *pdev)
+static void mchp_corei2c_remove(struct platform_device *pdev)
 {
        struct mchp_corei2c_dev *idev = platform_get_drvdata(pdev);
 
        clk_disable_unprepare(idev->i2c_clk);
        i2c_del_adapter(&idev->adapter);
-
-       return 0;
 }
 
 static const struct of_device_id mchp_corei2c_of_match[] = {
@@ -465,7 +463,7 @@ MODULE_DEVICE_TABLE(of, mchp_corei2c_of_match);
 
 static struct platform_driver mchp_corei2c_driver = {
        .probe = mchp_corei2c_probe,
-       .remove = mchp_corei2c_remove,
+       .remove_new = mchp_corei2c_remove,
        .driver = {
                .name = "microchip-corei2c",
                .of_match_table = mchp_corei2c_of_match,
index 1810d57..ae66bdd 100644 (file)
@@ -2433,7 +2433,7 @@ static int mlxbf_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int mlxbf_i2c_remove(struct platform_device *pdev)
+static void mlxbf_i2c_remove(struct platform_device *pdev)
 {
        struct mlxbf_i2c_priv *priv = platform_get_drvdata(pdev);
        struct device *dev = &pdev->dev;
@@ -2474,13 +2474,11 @@ static int mlxbf_i2c_remove(struct platform_device *pdev)
        devm_free_irq(dev, priv->irq, priv);
 
        i2c_del_adapter(&priv->adap);
-
-       return 0;
 }
 
 static struct platform_driver mlxbf_i2c_driver = {
        .probe = mlxbf_i2c_probe,
-       .remove = mlxbf_i2c_remove,
+       .remove_new = mlxbf_i2c_remove,
        .driver = {
                .name = "i2c-mlxbf",
                .acpi_match_table = ACPI_PTR(mlxbf_i2c_acpi_ids),
index 081f51e..c42fd4b 100644 (file)
@@ -571,19 +571,17 @@ mlxcpld_i2_probe_failed:
        return err;
 }
 
-static int mlxcpld_i2c_remove(struct platform_device *pdev)
+static void mlxcpld_i2c_remove(struct platform_device *pdev)
 {
        struct mlxcpld_i2c_priv *priv = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&priv->adap);
        mutex_destroy(&priv->lock);
-
-       return 0;
 }
 
 static struct platform_driver mlxcpld_i2c_driver = {
        .probe          = mlxcpld_i2c_probe,
-       .remove         = mlxcpld_i2c_remove,
+       .remove_new     = mlxcpld_i2c_remove,
        .driver = {
                .name = MLXCPLD_I2C_DEVICE_NAME,
        },
index cfd074e..a308afb 100644 (file)
@@ -890,15 +890,13 @@ static int fsl_i2c_probe(struct platform_device *op)
        return result;
 };
 
-static int fsl_i2c_remove(struct platform_device *op)
+static void fsl_i2c_remove(struct platform_device *op)
 {
        struct mpc_i2c *i2c = platform_get_drvdata(op);
 
        i2c_del_adapter(&i2c->adap);
 
        clk_disable_unprepare(i2c->clk_per);
-
-       return 0;
 };
 
 static int __maybe_unused mpc_i2c_suspend(struct device *dev)
@@ -959,7 +957,7 @@ MODULE_DEVICE_TABLE(of, mpc_i2c_of_match);
 /* Structure for a device driver */
 static struct platform_driver mpc_i2c_driver = {
        .probe          = fsl_i2c_probe,
-       .remove         = fsl_i2c_remove,
+       .remove_new     = fsl_i2c_remove,
        .driver = {
                .name = DRV_NAME,
                .of_match_table = mpc_i2c_of_match,
index a43c4d7..7ca3f22 100644 (file)
@@ -1505,15 +1505,13 @@ err_bulk_unprepare:
        return ret;
 }
 
-static int mtk_i2c_remove(struct platform_device *pdev)
+static void mtk_i2c_remove(struct platform_device *pdev)
 {
        struct mtk_i2c *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adap);
 
        clk_bulk_unprepare(I2C_MT65XX_CLK_MAX, i2c->clocks);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -1555,7 +1553,7 @@ static const struct dev_pm_ops mtk_i2c_pm = {
 
 static struct platform_driver mtk_i2c_driver = {
        .probe = mtk_i2c_probe,
-       .remove = mtk_i2c_remove,
+       .remove_new = mtk_i2c_remove,
        .driver = {
                .name = I2C_DRV_NAME,
                .pm = &mtk_i2c_pm,
index 20eda57..f9c294e 100644 (file)
@@ -332,19 +332,17 @@ err_disable_clk:
        return ret;
 }
 
-static int mtk_i2c_remove(struct platform_device *pdev)
+static void mtk_i2c_remove(struct platform_device *pdev)
 {
        struct mtk_i2c *i2c = platform_get_drvdata(pdev);
 
        clk_disable_unprepare(i2c->clk);
        i2c_del_adapter(&i2c->adap);
-
-       return 0;
 }
 
 static struct platform_driver mtk_i2c_driver = {
        .probe          = mtk_i2c_probe,
-       .remove         = mtk_i2c_remove,
+       .remove_new     = mtk_i2c_remove,
        .driver         = {
                .name   = "i2c-mt7621",
                .of_match_table = i2c_mtk_dt_ids,
index 047dfef..30fd688 100644 (file)
@@ -1073,7 +1073,7 @@ exit_disable_pm:
        return rc;
 }
 
-static int
+static void
 mv64xxx_i2c_remove(struct platform_device *pd)
 {
        struct mv64xxx_i2c_data         *drv_data = platform_get_drvdata(pd);
@@ -1083,8 +1083,6 @@ mv64xxx_i2c_remove(struct platform_device *pd)
        pm_runtime_disable(&pd->dev);
        if (!pm_runtime_status_suspended(&pd->dev))
                mv64xxx_i2c_runtime_suspend(&pd->dev);
-
-       return 0;
 }
 
 static const struct dev_pm_ops mv64xxx_i2c_pm_ops = {
@@ -1096,7 +1094,7 @@ static const struct dev_pm_ops mv64xxx_i2c_pm_ops = {
 
 static struct platform_driver mv64xxx_i2c_driver = {
        .probe  = mv64xxx_i2c_probe,
-       .remove = mv64xxx_i2c_remove,
+       .remove_new = mv64xxx_i2c_remove,
        .driver = {
                .name   = MV64XXX_I2C_CTLR_NAME,
                .pm     = &mv64xxx_i2c_pm_ops,
index e0f3b35..1d76f1c 100644 (file)
@@ -864,7 +864,7 @@ static int mxs_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int mxs_i2c_remove(struct platform_device *pdev)
+static void mxs_i2c_remove(struct platform_device *pdev)
 {
        struct mxs_i2c_dev *i2c = platform_get_drvdata(pdev);
 
@@ -874,8 +874,6 @@ static int mxs_i2c_remove(struct platform_device *pdev)
                dma_release_channel(i2c->dmach);
 
        writel(MXS_I2C_CTRL0_SFTRST, i2c->regs + MXS_I2C_CTRL0_SET);
-
-       return 0;
 }
 
 static struct platform_driver mxs_i2c_driver = {
@@ -884,7 +882,7 @@ static struct platform_driver mxs_i2c_driver = {
                   .of_match_table = mxs_i2c_dt_ids,
                   },
        .probe = mxs_i2c_probe,
-       .remove = mxs_i2c_remove,
+       .remove_new = mxs_i2c_remove,
 };
 
 static int __init mxs_i2c_init(void)
index 38d5864..53b65ff 100644 (file)
@@ -2361,7 +2361,7 @@ static int npcm_i2c_probe_bus(struct platform_device *pdev)
        return 0;
 }
 
-static int npcm_i2c_remove_bus(struct platform_device *pdev)
+static void npcm_i2c_remove_bus(struct platform_device *pdev)
 {
        unsigned long lock_flags;
        struct npcm_i2c *bus = platform_get_drvdata(pdev);
@@ -2371,7 +2371,6 @@ static int npcm_i2c_remove_bus(struct platform_device *pdev)
        npcm_i2c_disable(bus);
        spin_unlock_irqrestore(&bus->lock, lock_flags);
        i2c_del_adapter(&bus->adap);
-       return 0;
 }
 
 static const struct of_device_id npcm_i2c_bus_of_table[] = {
@@ -2383,7 +2382,7 @@ MODULE_DEVICE_TABLE(of, npcm_i2c_bus_of_table);
 
 static struct platform_driver npcm_i2c_bus_driver = {
        .probe = npcm_i2c_probe_bus,
-       .remove = npcm_i2c_remove_bus,
+       .remove_new = npcm_i2c_remove_bus,
        .driver = {
                .name = "nuvoton-i2c",
                .of_match_table = npcm_i2c_bus_of_table,
index 2e57585..0742b84 100644 (file)
@@ -743,7 +743,7 @@ err_clk:
        return ret;
 }
 
-static int ocores_i2c_remove(struct platform_device *pdev)
+static void ocores_i2c_remove(struct platform_device *pdev)
 {
        struct ocores_i2c *i2c = platform_get_drvdata(pdev);
        u8 ctrl = oc_getreg(i2c, OCI2C_CONTROL);
@@ -757,8 +757,6 @@ static int ocores_i2c_remove(struct platform_device *pdev)
 
        if (!IS_ERR(i2c->clk))
                clk_disable_unprepare(i2c->clk);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -804,7 +802,7 @@ static SIMPLE_DEV_PM_OPS(ocores_i2c_pm, ocores_i2c_suspend, ocores_i2c_resume);
 
 static struct platform_driver ocores_i2c_driver = {
        .probe   = ocores_i2c_probe,
-       .remove  = ocores_i2c_remove,
+       .remove_new = ocores_i2c_remove,
        .driver  = {
                .name = "ocores-i2c",
                .of_match_table = ocores_i2c_match,
index 0c22796..7d54b32 100644 (file)
@@ -253,12 +253,11 @@ out:
        return result;
 };
 
-static int octeon_i2c_remove(struct platform_device *pdev)
+static void octeon_i2c_remove(struct platform_device *pdev)
 {
        struct octeon_i2c *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adap);
-       return 0;
 };
 
 static const struct of_device_id octeon_i2c_match[] = {
@@ -270,7 +269,7 @@ MODULE_DEVICE_TABLE(of, octeon_i2c_match);
 
 static struct platform_driver octeon_i2c_driver = {
        .probe          = octeon_i2c_probe,
-       .remove         = octeon_i2c_remove,
+       .remove_new     = octeon_i2c_remove,
        .driver         = {
                .name   = DRV_NAME,
                .of_match_table = octeon_i2c_match,
index 4199f57..58fd6fa 100644 (file)
@@ -1519,7 +1519,7 @@ err_disable_pm:
        return r;
 }
 
-static int omap_i2c_remove(struct platform_device *pdev)
+static void omap_i2c_remove(struct platform_device *pdev)
 {
        struct omap_i2c_dev     *omap = platform_get_drvdata(pdev);
        int ret;
@@ -1535,8 +1535,6 @@ static int omap_i2c_remove(struct platform_device *pdev)
        pm_runtime_dont_use_autosuspend(&pdev->dev);
        pm_runtime_put_sync(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
-
-       return 0;
 }
 
 static int __maybe_unused omap_i2c_runtime_suspend(struct device *dev)
@@ -1588,7 +1586,7 @@ static const struct dev_pm_ops omap_i2c_pm_ops = {
 
 static struct platform_driver omap_i2c_driver = {
        .probe          = omap_i2c_probe,
-       .remove         = omap_i2c_remove,
+       .remove_new     = omap_i2c_remove,
        .driver         = {
                .name   = "omap_i2c",
                .pm     = &omap_i2c_pm_ops,
index 9f773b4..17ef87d 100644 (file)
@@ -232,13 +232,11 @@ static int i2c_opal_probe(struct platform_device *pdev)
        return rc;
 }
 
-static int i2c_opal_remove(struct platform_device *pdev)
+static void i2c_opal_remove(struct platform_device *pdev)
 {
        struct i2c_adapter *adapter = platform_get_drvdata(pdev);
 
        i2c_del_adapter(adapter);
-
-       return 0;
 }
 
 static const struct of_device_id i2c_opal_of_match[] = {
@@ -251,7 +249,7 @@ MODULE_DEVICE_TABLE(of, i2c_opal_of_match);
 
 static struct platform_driver i2c_opal_driver = {
        .probe  = i2c_opal_probe,
-       .remove = i2c_opal_remove,
+       .remove_new = i2c_opal_remove,
        .driver = {
                .name           = "i2c-opal",
                .of_match_table = i2c_opal_of_match,
index e35945a..0a44f64 100644 (file)
@@ -98,12 +98,11 @@ out_clk_disable:
        return error;
 }
 
-static int pasemi_platform_i2c_remove(struct platform_device *pdev)
+static void pasemi_platform_i2c_remove(struct platform_device *pdev)
 {
        struct pasemi_platform_i2c_data *data = platform_get_drvdata(pdev);
 
        clk_disable_unprepare(data->clk_ref);
-       return 0;
 }
 
 static const struct of_device_id pasemi_platform_i2c_of_match[] = {
@@ -119,7 +118,7 @@ static struct platform_driver pasemi_platform_i2c_driver = {
                .of_match_table         = pasemi_platform_i2c_of_match,
        },
        .probe  = pasemi_platform_i2c_probe,
-       .remove = pasemi_platform_i2c_remove,
+       .remove_new = pasemi_platform_i2c_remove,
 };
 module_platform_driver(pasemi_platform_i2c_driver);
 
index 86d4f75..d2a9e7b 100644 (file)
@@ -221,13 +221,11 @@ static int i2c_pca_pf_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int i2c_pca_pf_remove(struct platform_device *pdev)
+static void i2c_pca_pf_remove(struct platform_device *pdev)
 {
        struct i2c_pca_pf_data *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adap);
-
-       return 0;
 }
 
 #ifdef CONFIG_OF
@@ -241,7 +239,7 @@ MODULE_DEVICE_TABLE(of, i2c_pca_of_match_table);
 
 static struct platform_driver i2c_pca_pf_driver = {
        .probe = i2c_pca_pf_probe,
-       .remove = i2c_pca_pf_remove,
+       .remove_new = i2c_pca_pf_remove,
        .driver = {
                .name = "i2c-pca-platform",
                .of_match_table = of_match_ptr(i2c_pca_of_match_table),
index 50f21cd..8240005 100644 (file)
@@ -743,14 +743,12 @@ out_clock:
        return ret;
 }
 
-static int i2c_pnx_remove(struct platform_device *pdev)
+static void i2c_pnx_remove(struct platform_device *pdev)
 {
        struct i2c_pnx_algo_data *alg_data = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&alg_data->adapter);
        clk_disable_unprepare(alg_data->clk);
-
-       return 0;
 }
 
 #ifdef CONFIG_OF
@@ -768,7 +766,7 @@ static struct platform_driver i2c_pnx_driver = {
                .pm = PNX_I2C_PM,
        },
        .probe = i2c_pnx_probe,
-       .remove = i2c_pnx_remove,
+       .remove_new = i2c_pnx_remove,
 };
 
 static int __init i2c_adap_pnx_init(void)
index ec706a3..4996a62 100644 (file)
@@ -188,14 +188,12 @@ static const struct i2c_adapter_quirks i2c_powermac_quirks = {
        .max_num_msgs = 1,
 };
 
-static int i2c_powermac_remove(struct platform_device *dev)
+static void i2c_powermac_remove(struct platform_device *dev)
 {
        struct i2c_adapter      *adapter = platform_get_drvdata(dev);
 
        i2c_del_adapter(adapter);
        memset(adapter, 0, sizeof(*adapter));
-
-       return 0;
 }
 
 static u32 i2c_powermac_get_addr(struct i2c_adapter *adap,
@@ -439,7 +437,7 @@ static int i2c_powermac_probe(struct platform_device *dev)
 
 static struct platform_driver i2c_powermac_driver = {
        .probe = i2c_powermac_probe,
-       .remove = i2c_powermac_remove,
+       .remove_new = i2c_powermac_remove,
        .driver = {
                .name = "i2c-powermac",
                .bus = &platform_bus_type,
index f9fa530..937f7ee 100644 (file)
@@ -1482,15 +1482,13 @@ ereqirq:
        return ret;
 }
 
-static int i2c_pxa_remove(struct platform_device *dev)
+static void i2c_pxa_remove(struct platform_device *dev)
 {
        struct pxa_i2c *i2c = platform_get_drvdata(dev);
 
        i2c_del_adapter(&i2c->adap);
 
        clk_disable_unprepare(i2c->clk);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -1525,7 +1523,7 @@ static const struct dev_pm_ops i2c_pxa_dev_pm_ops = {
 
 static struct platform_driver i2c_pxa_driver = {
        .probe          = i2c_pxa_probe,
-       .remove         = i2c_pxa_remove,
+       .remove_new     = i2c_pxa_remove,
        .driver         = {
                .name   = "pxa2xx-i2c",
                .pm     = I2C_PXA_DEV_PM_OPS,
index 0135847..5886001 100644 (file)
@@ -675,7 +675,7 @@ disable_clocks:
        return ret;
 }
 
-static int cci_remove(struct platform_device *pdev)
+static void cci_remove(struct platform_device *pdev)
 {
        struct cci *cci = platform_get_drvdata(pdev);
        int i;
@@ -691,8 +691,6 @@ static int cci_remove(struct platform_device *pdev)
        disable_irq(cci->irq);
        pm_runtime_disable(&pdev->dev);
        pm_runtime_set_suspended(&pdev->dev);
-
-       return 0;
 }
 
 static const struct cci_data cci_v1_data = {
@@ -829,7 +827,7 @@ MODULE_DEVICE_TABLE(of, cci_dt_match);
 
 static struct platform_driver qcom_cci_driver = {
        .probe  = cci_probe,
-       .remove = cci_remove,
+       .remove_new = cci_remove,
        .driver = {
                .name = "i2c-qcom-cci",
                .of_match_table = cci_dt_match,
index 83909b0..b670a67 100644 (file)
@@ -936,14 +936,13 @@ err_dma:
        return ret;
 }
 
-static int geni_i2c_remove(struct platform_device *pdev)
+static void geni_i2c_remove(struct platform_device *pdev)
 {
        struct geni_i2c_dev *gi2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&gi2c->adap);
        release_gpi_dma(gi2c);
        pm_runtime_disable(gi2c->se.dev);
-       return 0;
 }
 
 static void geni_i2c_shutdown(struct platform_device *pdev)
@@ -1041,7 +1040,7 @@ MODULE_DEVICE_TABLE(of, geni_i2c_dt_match);
 
 static struct platform_driver geni_i2c_driver = {
        .probe  = geni_i2c_probe,
-       .remove = geni_i2c_remove,
+       .remove_new = geni_i2c_remove,
        .shutdown = geni_i2c_shutdown,
        .driver = {
                .name = "geni_i2c",
index 2e153f2..6eef1db 100644 (file)
@@ -1904,7 +1904,7 @@ fail_dma:
        return ret;
 }
 
-static int qup_i2c_remove(struct platform_device *pdev)
+static void qup_i2c_remove(struct platform_device *pdev)
 {
        struct qup_i2c_dev *qup = platform_get_drvdata(pdev);
 
@@ -1918,7 +1918,6 @@ static int qup_i2c_remove(struct platform_device *pdev)
        i2c_del_adapter(&qup->adap);
        pm_runtime_disable(qup->dev);
        pm_runtime_set_suspended(qup->dev);
-       return 0;
 }
 
 #ifdef CONFIG_PM
@@ -1978,7 +1977,7 @@ MODULE_DEVICE_TABLE(of, qup_i2c_dt_match);
 
 static struct platform_driver qup_i2c_driver = {
        .probe  = qup_i2c_probe,
-       .remove = qup_i2c_remove,
+       .remove_new = qup_i2c_remove,
        .driver = {
                .name = "i2c_qup",
                .pm = &qup_i2c_qup_pm_ops,
index cef82b2..2d9c374 100644 (file)
@@ -1155,7 +1155,7 @@ static int rcar_i2c_probe(struct platform_device *pdev)
        return ret;
 }
 
-static int rcar_i2c_remove(struct platform_device *pdev)
+static void rcar_i2c_remove(struct platform_device *pdev)
 {
        struct rcar_i2c_priv *priv = platform_get_drvdata(pdev);
        struct device *dev = &pdev->dev;
@@ -1167,8 +1167,6 @@ static int rcar_i2c_remove(struct platform_device *pdev)
        if (priv->flags & ID_P_PM_BLOCKED)
                pm_runtime_put(dev);
        pm_runtime_disable(dev);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -1204,7 +1202,7 @@ static struct platform_driver rcar_i2c_driver = {
                .pm     = DEV_PM_OPS,
        },
        .probe          = rcar_i2c_probe,
-       .remove         = rcar_i2c_remove,
+       .remove_new     = rcar_i2c_remove,
 };
 
 module_platform_driver(rcar_i2c_driver);
index 849848c..5f8c0bd 100644 (file)
@@ -477,7 +477,7 @@ out:
        return ret;
 }
 
-static int riic_i2c_remove(struct platform_device *pdev)
+static void riic_i2c_remove(struct platform_device *pdev)
 {
        struct riic_dev *riic = platform_get_drvdata(pdev);
 
@@ -486,8 +486,6 @@ static int riic_i2c_remove(struct platform_device *pdev)
        pm_runtime_put(&pdev->dev);
        i2c_del_adapter(&riic->adapter);
        pm_runtime_disable(&pdev->dev);
-
-       return 0;
 }
 
 static const struct of_device_id riic_i2c_dt_ids[] = {
@@ -497,7 +495,7 @@ static const struct of_device_id riic_i2c_dt_ids[] = {
 
 static struct platform_driver riic_i2c_driver = {
        .probe          = riic_i2c_probe,
-       .remove         = riic_i2c_remove,
+       .remove_new     = riic_i2c_remove,
        .driver         = {
                .name   = "i2c-riic",
                .of_match_table = riic_i2c_dt_ids,
index b31cf4f..a044ca0 100644 (file)
@@ -1372,7 +1372,7 @@ err_clk:
        return ret;
 }
 
-static int rk3x_i2c_remove(struct platform_device *pdev)
+static void rk3x_i2c_remove(struct platform_device *pdev)
 {
        struct rk3x_i2c *i2c = platform_get_drvdata(pdev);
 
@@ -1381,15 +1381,13 @@ static int rk3x_i2c_remove(struct platform_device *pdev)
        clk_notifier_unregister(i2c->clk, &i2c->clk_rate_nb);
        clk_unprepare(i2c->pclk);
        clk_unprepare(i2c->clk);
-
-       return 0;
 }
 
 static SIMPLE_DEV_PM_OPS(rk3x_i2c_pm_ops, NULL, rk3x_i2c_resume);
 
 static struct platform_driver rk3x_i2c_driver = {
        .probe   = rk3x_i2c_probe,
-       .remove  = rk3x_i2c_remove,
+       .remove_new = rk3x_i2c_remove,
        .driver  = {
                .name  = "rk3x-i2c",
                .of_match_table = rk3x_i2c_match,
index 56d0fae..dee9b6e 100644 (file)
@@ -460,7 +460,7 @@ static int rzv2m_i2c_probe(struct platform_device *pdev)
        return ret;
 }
 
-static int rzv2m_i2c_remove(struct platform_device *pdev)
+static void rzv2m_i2c_remove(struct platform_device *pdev)
 {
        struct rzv2m_i2c_priv *priv = platform_get_drvdata(pdev);
        struct device *dev = priv->adap.dev.parent;
@@ -468,8 +468,6 @@ static int rzv2m_i2c_remove(struct platform_device *pdev)
        i2c_del_adapter(&priv->adap);
        bit_clrl(priv->base + IICB0CTL0, IICB0IICE);
        pm_runtime_disable(dev);
-
-       return 0;
 }
 
 static int rzv2m_i2c_suspend(struct device *dev)
@@ -523,7 +521,7 @@ static struct platform_driver rzv2m_i2c_driver = {
                .pm = pm_sleep_ptr(&rzv2m_i2c_pm_ops),
        },
        .probe  = rzv2m_i2c_probe,
-       .remove = rzv2m_i2c_remove,
+       .remove_new = rzv2m_i2c_remove,
 };
 module_platform_driver(rzv2m_i2c_driver);
 
index 45e9df8..28f0e5c 100644 (file)
@@ -1114,7 +1114,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int s3c24xx_i2c_remove(struct platform_device *pdev)
+static void s3c24xx_i2c_remove(struct platform_device *pdev)
 {
        struct s3c24xx_i2c *i2c = platform_get_drvdata(pdev);
 
@@ -1123,8 +1123,6 @@ static int s3c24xx_i2c_remove(struct platform_device *pdev)
        pm_runtime_disable(&pdev->dev);
 
        i2c_del_adapter(&i2c->adap);
-
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -1172,7 +1170,7 @@ static const struct dev_pm_ops s3c24xx_i2c_dev_pm_ops = {
 
 static struct platform_driver s3c24xx_i2c_driver = {
        .probe          = s3c24xx_i2c_probe,
-       .remove         = s3c24xx_i2c_remove,
+       .remove_new     = s3c24xx_i2c_remove,
        .id_table       = s3c24xx_driver_ids,
        .driver         = {
                .name   = "s3c-i2c",
index 0239e13..1045702 100644 (file)
@@ -404,19 +404,17 @@ err:
        return ret;
 }
 
-static int smbus_cmi_remove(struct platform_device *device)
+static void smbus_cmi_remove(struct platform_device *device)
 {
        struct acpi_smbus_cmi *smbus_cmi = platform_get_drvdata(device);
 
        i2c_del_adapter(&smbus_cmi->adapter);
        kfree(smbus_cmi);
-
-       return 0;
 }
 
 static struct platform_driver smbus_cmi_driver = {
        .probe = smbus_cmi_probe,
-       .remove = smbus_cmi_remove,
+       .remove_new = smbus_cmi_remove,
        .driver = {
                .name   = "smbus_cmi",
                .acpi_match_table = acpi_smbus_cmi_ids,
index 319d1fa..60efa3a 100644 (file)
@@ -536,7 +536,7 @@ out0:
        return ret;
 }
 
-static int sh7760_i2c_remove(struct platform_device *pdev)
+static void sh7760_i2c_remove(struct platform_device *pdev)
 {
        struct cami2c *id = platform_get_drvdata(pdev);
 
@@ -546,8 +546,6 @@ static int sh7760_i2c_remove(struct platform_device *pdev)
        release_resource(id->ioarea);
        kfree(id->ioarea);
        kfree(id);
-
-       return 0;
 }
 
 static struct platform_driver sh7760_i2c_drv = {
@@ -555,7 +553,7 @@ static struct platform_driver sh7760_i2c_drv = {
                .name   = SH7760_I2C_DEVNAME,
        },
        .probe          = sh7760_i2c_probe,
-       .remove         = sh7760_i2c_remove,
+       .remove_new     = sh7760_i2c_remove,
 };
 
 module_platform_driver(sh7760_i2c_drv);
index 29330ee..21717b9 100644 (file)
@@ -956,14 +956,13 @@ static int sh_mobile_i2c_probe(struct platform_device *dev)
        return 0;
 }
 
-static int sh_mobile_i2c_remove(struct platform_device *dev)
+static void sh_mobile_i2c_remove(struct platform_device *dev)
 {
        struct sh_mobile_i2c_data *pd = platform_get_drvdata(dev);
 
        i2c_del_adapter(&pd->adap);
        sh_mobile_i2c_release_dma(pd);
        pm_runtime_disable(&dev->dev);
-       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -1000,7 +999,7 @@ static struct platform_driver sh_mobile_i2c_driver = {
                .pm     = DEV_PM_OPS,
        },
        .probe          = sh_mobile_i2c_probe,
-       .remove         = sh_mobile_i2c_remove,
+       .remove_new     = sh_mobile_i2c_remove,
 };
 
 static int __init sh_mobile_i2c_adap_init(void)
index 8770174..18516bc 100644 (file)
@@ -126,7 +126,7 @@ static int simtec_i2c_probe(struct platform_device *dev)
        return ret;
 }
 
-static int simtec_i2c_remove(struct platform_device *dev)
+static void simtec_i2c_remove(struct platform_device *dev)
 {
        struct simtec_i2c_data *pd = platform_get_drvdata(dev);
 
@@ -135,8 +135,6 @@ static int simtec_i2c_remove(struct platform_device *dev)
        iounmap(pd->reg);
        release_mem_region(pd->ioarea->start, resource_size(pd->ioarea));
        kfree(pd);
-
-       return 0;
 }
 
 /* device driver */
@@ -146,7 +144,7 @@ static struct platform_driver simtec_i2c_driver = {
                .name           = "simtec-i2c",
        },
        .probe          = simtec_i2c_probe,
-       .remove         = simtec_i2c_remove,
+       .remove_new     = simtec_i2c_remove,
 };
 
 module_platform_driver(simtec_i2c_driver);
index f823913..25c3521 100644 (file)
@@ -876,13 +876,11 @@ static int st_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int st_i2c_remove(struct platform_device *pdev)
+static void st_i2c_remove(struct platform_device *pdev)
 {
        struct st_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c_dev->adap);
-
-       return 0;
 }
 
 static const struct of_device_id st_i2c_match[] = {
@@ -899,7 +897,7 @@ static struct platform_driver st_i2c_driver = {
                .pm = pm_sleep_ptr(&st_i2c_pm),
        },
        .probe = st_i2c_probe,
-       .remove = st_i2c_remove,
+       .remove_new = st_i2c_remove,
 };
 
 module_platform_driver(st_i2c_driver);
index eebce7e..6ad06a5 100644 (file)
@@ -861,15 +861,13 @@ clk_free:
        return ret;
 }
 
-static int stm32f4_i2c_remove(struct platform_device *pdev)
+static void stm32f4_i2c_remove(struct platform_device *pdev)
 {
        struct stm32f4_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c_dev->adap);
 
        clk_unprepare(i2c_dev->clk);
-
-       return 0;
 }
 
 static const struct of_device_id stm32f4_i2c_match[] = {
@@ -884,7 +882,7 @@ static struct platform_driver stm32f4_i2c_driver = {
                .of_match_table = stm32f4_i2c_match,
        },
        .probe = stm32f4_i2c_probe,
-       .remove = stm32f4_i2c_remove,
+       .remove_new = stm32f4_i2c_remove,
 };
 
 module_platform_driver(stm32f4_i2c_driver);
index d1c59d8..e897d91 100644 (file)
@@ -2309,7 +2309,7 @@ clk_free:
        return ret;
 }
 
-static int stm32f7_i2c_remove(struct platform_device *pdev)
+static void stm32f7_i2c_remove(struct platform_device *pdev)
 {
        struct stm32f7_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
@@ -2341,8 +2341,6 @@ static int stm32f7_i2c_remove(struct platform_device *pdev)
        stm32f7_i2c_write_fm_plus_bits(i2c_dev, false);
 
        clk_disable_unprepare(i2c_dev->clk);
-
-       return 0;
 }
 
 static int __maybe_unused stm32f7_i2c_runtime_suspend(struct device *dev)
@@ -2486,7 +2484,7 @@ static struct platform_driver stm32f7_i2c_driver = {
                .pm = &stm32f7_i2c_pm_ops,
        },
        .probe = stm32f7_i2c_probe,
-       .remove = stm32f7_i2c_remove,
+       .remove_new = stm32f7_i2c_remove,
 };
 
 module_platform_driver(stm32f7_i2c_driver);
index 9e3483f..3cff1af 100644 (file)
@@ -313,20 +313,18 @@ err_clk_disable:
        return ret;
 }
 
-static int p2wi_remove(struct platform_device *dev)
+static void p2wi_remove(struct platform_device *dev)
 {
        struct p2wi *p2wi = platform_get_drvdata(dev);
 
        reset_control_assert(p2wi->rstc);
        clk_disable_unprepare(p2wi->clk);
        i2c_del_adapter(&p2wi->adapter);
-
-       return 0;
 }
 
 static struct platform_driver p2wi_driver = {
        .probe  = p2wi_probe,
-       .remove = p2wi_remove,
+       .remove_new = p2wi_remove,
        .driver = {
                .name = "i2c-sunxi-p2wi",
                .of_match_table = p2wi_of_match_table,
index 50d19cf..4cc196c 100644 (file)
@@ -618,15 +618,13 @@ static int synquacer_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int synquacer_i2c_remove(struct platform_device *pdev)
+static void synquacer_i2c_remove(struct platform_device *pdev)
 {
        struct synquacer_i2c *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adapter);
        if (!IS_ERR(i2c->pclk))
                clk_disable_unprepare(i2c->pclk);
-
-       return 0;
 };
 
 static const struct of_device_id synquacer_i2c_dt_ids[] __maybe_unused = {
@@ -645,7 +643,7 @@ MODULE_DEVICE_TABLE(acpi, synquacer_i2c_acpi_ids);
 
 static struct platform_driver synquacer_i2c_driver = {
        .probe  = synquacer_i2c_probe,
-       .remove = synquacer_i2c_remove,
+       .remove_new = synquacer_i2c_remove,
        .driver = {
                .name = "synquacer_i2c",
                .of_match_table = of_match_ptr(synquacer_i2c_dt_ids),
index 9513998..bc3f945 100644 (file)
@@ -316,13 +316,11 @@ static int tegra_bpmp_i2c_probe(struct platform_device *pdev)
        return i2c_add_adapter(&i2c->adapter);
 }
 
-static int tegra_bpmp_i2c_remove(struct platform_device *pdev)
+static void tegra_bpmp_i2c_remove(struct platform_device *pdev)
 {
        struct tegra_bpmp_i2c *i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&i2c->adapter);
-
-       return 0;
 }
 
 static const struct of_device_id tegra_bpmp_i2c_of_match[] = {
@@ -337,7 +335,7 @@ static struct platform_driver tegra_bpmp_i2c_driver = {
                .of_match_table = tegra_bpmp_i2c_of_match,
        },
        .probe = tegra_bpmp_i2c_probe,
-       .remove = tegra_bpmp_i2c_remove,
+       .remove_new = tegra_bpmp_i2c_remove,
 };
 module_platform_driver(tegra_bpmp_i2c_driver);
 
index 157066f..a82d264 100644 (file)
@@ -1868,7 +1868,7 @@ release_clocks:
        return err;
 }
 
-static int tegra_i2c_remove(struct platform_device *pdev)
+static void tegra_i2c_remove(struct platform_device *pdev)
 {
        struct tegra_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
@@ -1877,8 +1877,6 @@ static int tegra_i2c_remove(struct platform_device *pdev)
 
        tegra_i2c_release_dma(i2c_dev);
        tegra_i2c_release_clocks(i2c_dev);
-
-       return 0;
 }
 
 static int __maybe_unused tegra_i2c_runtime_resume(struct device *dev)
@@ -1987,7 +1985,7 @@ MODULE_DEVICE_TABLE(acpi, tegra_i2c_acpi_match);
 
 static struct platform_driver tegra_i2c_driver = {
        .probe = tegra_i2c_probe,
-       .remove = tegra_i2c_remove,
+       .remove_new = tegra_i2c_remove,
        .driver = {
                .name = "tegra-i2c",
                .of_match_table = tegra_i2c_of_match,
index d7b6228..54b1624 100644 (file)
@@ -586,14 +586,12 @@ disable_clk:
        return ret;
 }
 
-static int uniphier_fi2c_remove(struct platform_device *pdev)
+static void uniphier_fi2c_remove(struct platform_device *pdev)
 {
        struct uniphier_fi2c_priv *priv = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&priv->adap);
        clk_disable_unprepare(priv->clk);
-
-       return 0;
 }
 
 static int __maybe_unused uniphier_fi2c_suspend(struct device *dev)
@@ -631,7 +629,7 @@ MODULE_DEVICE_TABLE(of, uniphier_fi2c_match);
 
 static struct platform_driver uniphier_fi2c_drv = {
        .probe  = uniphier_fi2c_probe,
-       .remove = uniphier_fi2c_remove,
+       .remove_new = uniphier_fi2c_remove,
        .driver = {
                .name  = "uniphier-fi2c",
                .of_match_table = uniphier_fi2c_match,
index e3ebae3..96b1eb7 100644 (file)
@@ -380,14 +380,12 @@ disable_clk:
        return ret;
 }
 
-static int uniphier_i2c_remove(struct platform_device *pdev)
+static void uniphier_i2c_remove(struct platform_device *pdev)
 {
        struct uniphier_i2c_priv *priv = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&priv->adap);
        clk_disable_unprepare(priv->clk);
-
-       return 0;
 }
 
 static int __maybe_unused uniphier_i2c_suspend(struct device *dev)
@@ -425,7 +423,7 @@ MODULE_DEVICE_TABLE(of, uniphier_i2c_match);
 
 static struct platform_driver uniphier_i2c_drv = {
        .probe  = uniphier_i2c_probe,
-       .remove = uniphier_i2c_remove,
+       .remove_new = uniphier_i2c_remove,
        .driver = {
                .name  = "uniphier-i2c",
                .of_match_table = uniphier_i2c_match,
index 1ab419f..0a86645 100644 (file)
@@ -96,12 +96,11 @@ static int i2c_versatile_probe(struct platform_device *dev)
        return 0;
 }
 
-static int i2c_versatile_remove(struct platform_device *dev)
+static void i2c_versatile_remove(struct platform_device *dev)
 {
        struct i2c_versatile *i2c = platform_get_drvdata(dev);
 
        i2c_del_adapter(&i2c->adap);
-       return 0;
 }
 
 static const struct of_device_id i2c_versatile_match[] = {
@@ -112,7 +111,7 @@ MODULE_DEVICE_TABLE(of, i2c_versatile_match);
 
 static struct platform_driver i2c_versatile_driver = {
        .probe          = i2c_versatile_probe,
-       .remove         = i2c_versatile_remove,
+       .remove_new     = i2c_versatile_remove,
        .driver         = {
                .name   = "versatile-i2c",
                .of_match_table = i2c_versatile_match,
index 8b5322c..9e153b5 100644 (file)
@@ -407,20 +407,18 @@ static int vprbrd_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int vprbrd_i2c_remove(struct platform_device *pdev)
+static void vprbrd_i2c_remove(struct platform_device *pdev)
 {
        struct vprbrd_i2c *vb_i2c = platform_get_drvdata(pdev);
 
        i2c_del_adapter(&vb_i2c->i2c);
-
-       return 0;
 }
 
 static struct platform_driver vprbrd_i2c_driver = {
        .driver.name    = "viperboard-i2c",
        .driver.owner   = THIS_MODULE,
        .probe          = vprbrd_i2c_probe,
-       .remove         = vprbrd_i2c_remove,
+       .remove_new     = vprbrd_i2c_remove,
 };
 
 static int __init vprbrd_i2c_init(void)
index 7d4bc87..736acaa 100644 (file)
@@ -436,7 +436,7 @@ static int wmt_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int wmt_i2c_remove(struct platform_device *pdev)
+static void wmt_i2c_remove(struct platform_device *pdev)
 {
        struct wmt_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
@@ -444,8 +444,6 @@ static int wmt_i2c_remove(struct platform_device *pdev)
        writew(0, i2c_dev->base + REG_IMR);
        clk_disable_unprepare(i2c_dev->clk);
        i2c_del_adapter(&i2c_dev->adapter);
-
-       return 0;
 }
 
 static const struct of_device_id wmt_i2c_dt_ids[] = {
@@ -455,7 +453,7 @@ static const struct of_device_id wmt_i2c_dt_ids[] = {
 
 static struct platform_driver wmt_i2c_driver = {
        .probe          = wmt_i2c_probe,
-       .remove         = wmt_i2c_remove,
+       .remove_new     = wmt_i2c_remove,
        .driver         = {
                .name   = "wmt-i2c",
                .of_match_table = wmt_i2c_dt_ids,
index 3538d36..fbc1ffb 100644 (file)
@@ -560,7 +560,7 @@ mbox_err:
        return rc;
 }
 
-static int xgene_slimpro_i2c_remove(struct platform_device *pdev)
+static void xgene_slimpro_i2c_remove(struct platform_device *pdev)
 {
        struct slimpro_i2c_dev *ctx = platform_get_drvdata(pdev);
 
@@ -570,8 +570,6 @@ static int xgene_slimpro_i2c_remove(struct platform_device *pdev)
                mbox_free_channel(ctx->mbox_chan);
        else
                pcc_mbox_free_channel(ctx->pcc_chan);
-
-       return 0;
 }
 
 static const struct of_device_id xgene_slimpro_i2c_dt_ids[] = {
@@ -591,7 +589,7 @@ MODULE_DEVICE_TABLE(acpi, xgene_slimpro_i2c_acpi_ids);
 
 static struct platform_driver xgene_slimpro_i2c_driver = {
        .probe  = xgene_slimpro_i2c_probe,
-       .remove = xgene_slimpro_i2c_remove,
+       .remove_new = xgene_slimpro_i2c_remove,
        .driver = {
                .name   = "xgene-slimpro-i2c",
                .of_match_table = of_match_ptr(xgene_slimpro_i2c_dt_ids),
index 8a3d981..61288f8 100644 (file)
@@ -1335,7 +1335,7 @@ err_clk_dis:
        return ret;
 }
 
-static int xiic_i2c_remove(struct platform_device *pdev)
+static void xiic_i2c_remove(struct platform_device *pdev)
 {
        struct xiic_i2c *i2c = platform_get_drvdata(pdev);
        int ret;
@@ -1356,8 +1356,6 @@ static int xiic_i2c_remove(struct platform_device *pdev)
        pm_runtime_disable(&pdev->dev);
        pm_runtime_set_suspended(&pdev->dev);
        pm_runtime_dont_use_autosuspend(&pdev->dev);
-
-       return 0;
 }
 
 static int __maybe_unused xiic_i2c_runtime_suspend(struct device *dev)
@@ -1390,7 +1388,7 @@ static const struct dev_pm_ops xiic_dev_pm_ops = {
 
 static struct platform_driver xiic_i2c_driver = {
        .probe   = xiic_i2c_probe,
-       .remove  = xiic_i2c_remove,
+       .remove_new = xiic_i2c_remove,
        .driver  = {
                .name = DRIVER_NAME,
                .of_match_table = of_match_ptr(xiic_of_match),
index 4e3b11c..f59e8c5 100644 (file)
@@ -559,7 +559,7 @@ static int xlp9xx_i2c_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int xlp9xx_i2c_remove(struct platform_device *pdev)
+static void xlp9xx_i2c_remove(struct platform_device *pdev)
 {
        struct xlp9xx_i2c_dev *priv;
 
@@ -568,8 +568,6 @@ static int xlp9xx_i2c_remove(struct platform_device *pdev)
        synchronize_irq(priv->irq);
        i2c_del_adapter(&priv->adapter);
        xlp9xx_write_i2c_reg(priv, XLP9XX_I2C_CTRL, 0);
-
-       return 0;
 }
 
 #ifdef CONFIG_ACPI
@@ -583,7 +581,7 @@ MODULE_DEVICE_TABLE(acpi, xlp9xx_i2c_acpi_ids);
 
 static struct platform_driver xlp9xx_i2c_driver = {
        .probe = xlp9xx_i2c_probe,
-       .remove = xlp9xx_i2c_remove,
+       .remove_new = xlp9xx_i2c_remove,
        .driver = {
                .name = "xlp9xx-i2c",
                .acpi_match_table = ACPI_PTR(xlp9xx_i2c_acpi_ids),
index 7b42a18..83c1db6 100644 (file)
@@ -523,14 +523,12 @@ static void scx200_cleanup_iface(struct scx200_acb_iface *iface)
        kfree(iface);
 }
 
-static int scx200_remove(struct platform_device *pdev)
+static void scx200_remove(struct platform_device *pdev)
 {
        struct scx200_acb_iface *iface;
 
        iface = platform_get_drvdata(pdev);
        scx200_cleanup_iface(iface);
-
-       return 0;
 }
 
 static struct platform_driver scx200_pci_driver = {
@@ -538,7 +536,7 @@ static struct platform_driver scx200_pci_driver = {
                .name = "cs5535-smb",
        },
        .probe = scx200_probe,
-       .remove = scx200_remove,
+       .remove_new = scx200_remove,
 };
 
 static const struct pci_device_id scx200_isa[] = {
index 1c78657..24168e9 100644 (file)
@@ -174,13 +174,12 @@ static int i2c_arbitrator_probe(struct platform_device *pdev)
        return ret;
 }
 
-static int i2c_arbitrator_remove(struct platform_device *pdev)
+static void i2c_arbitrator_remove(struct platform_device *pdev)
 {
        struct i2c_mux_core *muxc = platform_get_drvdata(pdev);
 
        i2c_mux_del_adapters(muxc);
        i2c_put_adapter(muxc->parent);
-       return 0;
 }
 
 static const struct of_device_id i2c_arbitrator_of_match[] = {
@@ -191,7 +190,7 @@ MODULE_DEVICE_TABLE(of, i2c_arbitrator_of_match);
 
 static struct platform_driver i2c_arbitrator_driver = {
        .probe  = i2c_arbitrator_probe,
-       .remove = i2c_arbitrator_remove,
+       .remove_new = i2c_arbitrator_remove,
        .driver = {
                .name   = "i2c-arb-gpio-challenge",
                .of_match_table = i2c_arbitrator_of_match,
index f7a7405..a3a122f 100644 (file)
@@ -282,7 +282,7 @@ err_rollback:
        return err;
 }
 
-static int i2c_demux_pinctrl_remove(struct platform_device *pdev)
+static void i2c_demux_pinctrl_remove(struct platform_device *pdev)
 {
        struct i2c_demux_pinctrl_priv *priv = platform_get_drvdata(pdev);
        int i;
@@ -296,8 +296,6 @@ static int i2c_demux_pinctrl_remove(struct platform_device *pdev)
                of_node_put(priv->chan[i].parent_np);
                of_changeset_destroy(&priv->chan[i].chgset);
        }
-
-       return 0;
 }
 
 static const struct of_device_id i2c_demux_pinctrl_of_match[] = {
@@ -312,7 +310,7 @@ static struct platform_driver i2c_demux_pinctrl_driver = {
                .of_match_table = i2c_demux_pinctrl_of_match,
        },
        .probe  = i2c_demux_pinctrl_probe,
-       .remove = i2c_demux_pinctrl_remove,
+       .remove_new = i2c_demux_pinctrl_remove,
 };
 module_platform_driver(i2c_demux_pinctrl_driver);
 
index 73a23e1..5d5cbe0 100644 (file)
@@ -225,14 +225,12 @@ alloc_failed:
        return ret;
 }
 
-static int i2c_mux_gpio_remove(struct platform_device *pdev)
+static void i2c_mux_gpio_remove(struct platform_device *pdev)
 {
        struct i2c_mux_core *muxc = platform_get_drvdata(pdev);
 
        i2c_mux_del_adapters(muxc);
        i2c_put_adapter(muxc->parent);
-
-       return 0;
 }
 
 static const struct of_device_id i2c_mux_gpio_of_match[] = {
@@ -243,7 +241,7 @@ MODULE_DEVICE_TABLE(of, i2c_mux_gpio_of_match);
 
 static struct platform_driver i2c_mux_gpio_driver = {
        .probe  = i2c_mux_gpio_probe,
-       .remove = i2c_mux_gpio_remove,
+       .remove_new = i2c_mux_gpio_remove,
        .driver = {
                .name   = "i2c-mux-gpio",
                .of_match_table = i2c_mux_gpio_of_match,
index 33024ac..0405af0 100644 (file)
@@ -142,19 +142,17 @@ err_parent:
        return ret;
 }
 
-static int i2c_mux_remove(struct platform_device *pdev)
+static void i2c_mux_remove(struct platform_device *pdev)
 {
        struct i2c_mux_core *muxc = platform_get_drvdata(pdev);
 
        i2c_mux_del_adapters(muxc);
        i2c_put_adapter(muxc->parent);
-
-       return 0;
 }
 
 static struct platform_driver i2c_mux_driver = {
        .probe  = i2c_mux_probe,
-       .remove = i2c_mux_remove,
+       .remove_new = i2c_mux_remove,
        .driver = {
                .name   = "i2c-mux-gpmux",
                .of_match_table = i2c_mux_of_match,
index 1a879f6..3dda00f 100644 (file)
@@ -170,12 +170,11 @@ virt_reg_failed:
        return err;
 }
 
-static int mlxcpld_mux_remove(struct platform_device *pdev)
+static void mlxcpld_mux_remove(struct platform_device *pdev)
 {
        struct i2c_mux_core *muxc = platform_get_drvdata(pdev);
 
        i2c_mux_del_adapters(muxc);
-       return 0;
 }
 
 static struct platform_driver mlxcpld_mux_driver = {
@@ -183,7 +182,7 @@ static struct platform_driver mlxcpld_mux_driver = {
                .name = "i2c-mux-mlxcpld",
        },
        .probe = mlxcpld_mux_probe,
-       .remove = mlxcpld_mux_remove,
+       .remove_new = mlxcpld_mux_remove,
 };
 
 module_platform_driver(mlxcpld_mux_driver);
index d5ad904..18236b9 100644 (file)
@@ -166,14 +166,12 @@ err_put_parent:
        return ret;
 }
 
-static int i2c_mux_pinctrl_remove(struct platform_device *pdev)
+static void i2c_mux_pinctrl_remove(struct platform_device *pdev)
 {
        struct i2c_mux_core *muxc = platform_get_drvdata(pdev);
 
        i2c_mux_del_adapters(muxc);
        i2c_put_adapter(muxc->parent);
-
-       return 0;
 }
 
 static const struct of_device_id i2c_mux_pinctrl_of_match[] = {
@@ -188,7 +186,7 @@ static struct platform_driver i2c_mux_pinctrl_driver = {
                .of_match_table = i2c_mux_pinctrl_of_match,
        },
        .probe  = i2c_mux_pinctrl_probe,
-       .remove = i2c_mux_pinctrl_remove,
+       .remove_new = i2c_mux_pinctrl_remove,
 };
 module_platform_driver(i2c_mux_pinctrl_driver);
 
index 30a6de1..9efc1ed 100644 (file)
@@ -233,14 +233,12 @@ err_put_parent:
        return ret;
 }
 
-static int i2c_mux_reg_remove(struct platform_device *pdev)
+static void i2c_mux_reg_remove(struct platform_device *pdev)
 {
        struct i2c_mux_core *muxc = platform_get_drvdata(pdev);
 
        i2c_mux_del_adapters(muxc);
        i2c_put_adapter(muxc->parent);
-
-       return 0;
 }
 
 static const struct of_device_id i2c_mux_reg_of_match[] = {
@@ -251,7 +249,7 @@ MODULE_DEVICE_TABLE(of, i2c_mux_reg_of_match);
 
 static struct platform_driver i2c_mux_reg_driver = {
        .probe  = i2c_mux_reg_probe,
-       .remove = i2c_mux_reg_remove,
+       .remove_new = i2c_mux_reg_remove,
        .driver = {
                .name   = "i2c-mux-reg",
                .of_match_table = of_match_ptr(i2c_mux_reg_of_match),