From: Greg Kroah-Hartman Date: Tue, 11 Jul 2023 20:25:06 +0000 (+0200) Subject: drop 2 6.4 patches X-Git-Tag: v6.1.39~119 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8cf208c558ba276276275dd73794b092c1a651f9;p=thirdparty%2Fkernel%2Fstable-queue.git drop 2 6.4 patches --- diff --git a/queue-6.4/i2c-convert-to-platform-remove-callback-returning-vo.patch b/queue-6.4/i2c-convert-to-platform-remove-callback-returning-vo.patch deleted file mode 100644 index e2b82f46b88..00000000000 --- a/queue-6.4/i2c-convert-to-platform-remove-callback-returning-vo.patch +++ /dev/null @@ -1,2748 +0,0 @@ -From cbe887280d2b7603830d97f5dcbe8769ba438a77 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 8 May 2023 22:51:38 +0200 -Subject: i2c: Convert to platform remove callback returning void -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit e190a0c389e60178fba3d532abf936dcae223e7d ] - -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 -Acked-by: Alain Volmat -Acked-by: Ard Biesheuvel -Acked-by: Baruch Siach -Acked-by: Florian Fainelli -Acked-by: Heiko Stuebner -Acked-by: Jarkko Nikula -Acked-by: Jernej Skrabec -Acked-by: Jochen Friedrich -Acked-by: Peter Rosin -Acked-by: Vadim Pasternak -Reviewed-by: Asmaa Mnebhi -Reviewed-by: Bartosz Golaszewski -Reviewed-by: Chris Packham -Reviewed-by: Chris Pringle -Reviewed-by: Claudiu Beznea -Reviewed-by: Conor Dooley -Reviewed-by: Geert Uytterhoeven -Reviewed-by: Hans de Goede -Reviewed-by: Jean Delvare -Reviewed-by: Konrad Dybcio -Reviewed-by: Krzysztof Kozlowski -Reviewed-by: Linus Walleij -Reviewed-by: Martin Blumenstingl -Reviewed-by: Matthias Brugger -Reviewed-by: Patrice Chotard -Reviewed-by: Tali Perry -Reviewed-by: Vignesh Raghavendra -Signed-off-by: Wolfram Sang -Stable-dep-of: 9e1a1ee93f6b ("i2c: ocores: use devm_ managed clks") -Signed-off-by: Sasha Levin ---- - drivers/i2c/busses/i2c-altera.c | 6 ++---- - drivers/i2c/busses/i2c-amd-mp2-plat.c | 5 ++--- - drivers/i2c/busses/i2c-aspeed.c | 6 ++---- - drivers/i2c/busses/i2c-at91-core.c | 6 ++---- - drivers/i2c/busses/i2c-au1550.c | 5 ++--- - drivers/i2c/busses/i2c-axxia.c | 6 ++---- - drivers/i2c/busses/i2c-bcm-iproc.c | 6 ++---- - drivers/i2c/busses/i2c-bcm-kona.c | 6 ++---- - drivers/i2c/busses/i2c-bcm2835.c | 6 ++---- - drivers/i2c/busses/i2c-brcmstb.c | 5 ++--- - drivers/i2c/busses/i2c-cadence.c | 6 ++---- - drivers/i2c/busses/i2c-cbus-gpio.c | 6 ++---- - drivers/i2c/busses/i2c-cht-wc.c | 6 ++---- - drivers/i2c/busses/i2c-cpm.c | 6 ++---- - drivers/i2c/busses/i2c-cros-ec-tunnel.c | 6 ++---- - drivers/i2c/busses/i2c-davinci.c | 14 ++++++-------- - drivers/i2c/busses/i2c-designware-platdrv.c | 6 ++---- - drivers/i2c/busses/i2c-digicolor.c | 6 ++---- - drivers/i2c/busses/i2c-dln2.c | 6 ++---- - drivers/i2c/busses/i2c-emev2.c | 6 ++---- - drivers/i2c/busses/i2c-exynos5.c | 6 ++---- - drivers/i2c/busses/i2c-gpio.c | 6 ++---- - drivers/i2c/busses/i2c-gxp.c | 6 ++---- - drivers/i2c/busses/i2c-highlander.c | 6 ++---- - drivers/i2c/busses/i2c-hix5hd2.c | 6 ++---- - drivers/i2c/busses/i2c-ibm_iic.c | 6 ++---- - drivers/i2c/busses/i2c-img-scb.c | 6 ++---- - drivers/i2c/busses/i2c-imx-lpi2c.c | 6 ++---- - drivers/i2c/busses/i2c-imx.c | 6 ++---- - drivers/i2c/busses/i2c-iop3xx.c | 6 ++---- - drivers/i2c/busses/i2c-isch.c | 6 ++---- - drivers/i2c/busses/i2c-jz4780.c | 5 ++--- - drivers/i2c/busses/i2c-kempld.c | 6 ++---- - drivers/i2c/busses/i2c-lpc2k.c | 6 ++---- - drivers/i2c/busses/i2c-meson.c | 6 ++---- - drivers/i2c/busses/i2c-microchip-corei2c.c | 6 ++---- - drivers/i2c/busses/i2c-mlxbf.c | 6 ++---- - drivers/i2c/busses/i2c-mlxcpld.c | 6 ++---- - drivers/i2c/busses/i2c-mpc.c | 6 ++---- - drivers/i2c/busses/i2c-mt65xx.c | 6 ++---- - drivers/i2c/busses/i2c-mt7621.c | 6 ++---- - drivers/i2c/busses/i2c-mv64xxx.c | 6 ++---- - drivers/i2c/busses/i2c-mxs.c | 6 ++---- - drivers/i2c/busses/i2c-npcm7xx.c | 5 ++--- - drivers/i2c/busses/i2c-ocores.c | 6 ++---- - drivers/i2c/busses/i2c-octeon-platdrv.c | 5 ++--- - drivers/i2c/busses/i2c-omap.c | 6 ++---- - drivers/i2c/busses/i2c-opal.c | 6 ++---- - drivers/i2c/busses/i2c-pasemi-platform.c | 5 ++--- - drivers/i2c/busses/i2c-pca-platform.c | 6 ++---- - drivers/i2c/busses/i2c-pnx.c | 6 ++---- - drivers/i2c/busses/i2c-powermac.c | 6 ++---- - drivers/i2c/busses/i2c-pxa.c | 6 ++---- - drivers/i2c/busses/i2c-qcom-cci.c | 6 ++---- - drivers/i2c/busses/i2c-qcom-geni.c | 5 ++--- - drivers/i2c/busses/i2c-qup.c | 5 ++--- - drivers/i2c/busses/i2c-rcar.c | 6 ++---- - drivers/i2c/busses/i2c-riic.c | 6 ++---- - drivers/i2c/busses/i2c-rk3x.c | 6 ++---- - drivers/i2c/busses/i2c-rzv2m.c | 6 ++---- - drivers/i2c/busses/i2c-s3c2410.c | 6 ++---- - drivers/i2c/busses/i2c-scmi.c | 6 ++---- - drivers/i2c/busses/i2c-sh7760.c | 6 ++---- - drivers/i2c/busses/i2c-sh_mobile.c | 5 ++--- - drivers/i2c/busses/i2c-simtec.c | 6 ++---- - drivers/i2c/busses/i2c-st.c | 6 ++---- - drivers/i2c/busses/i2c-stm32f4.c | 6 ++---- - drivers/i2c/busses/i2c-stm32f7.c | 6 ++---- - drivers/i2c/busses/i2c-sun6i-p2wi.c | 6 ++---- - drivers/i2c/busses/i2c-synquacer.c | 6 ++---- - drivers/i2c/busses/i2c-tegra-bpmp.c | 6 ++---- - drivers/i2c/busses/i2c-tegra.c | 6 ++---- - drivers/i2c/busses/i2c-uniphier-f.c | 6 ++---- - drivers/i2c/busses/i2c-uniphier.c | 6 ++---- - drivers/i2c/busses/i2c-versatile.c | 5 ++--- - drivers/i2c/busses/i2c-viperboard.c | 6 ++---- - drivers/i2c/busses/i2c-wmt.c | 6 ++---- - drivers/i2c/busses/i2c-xgene-slimpro.c | 6 ++---- - drivers/i2c/busses/i2c-xiic.c | 6 ++---- - drivers/i2c/busses/i2c-xlp9xx.c | 6 ++---- - drivers/i2c/busses/scx200_acb.c | 6 ++---- - drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 5 ++--- - drivers/i2c/muxes/i2c-demux-pinctrl.c | 6 ++---- - drivers/i2c/muxes/i2c-mux-gpio.c | 6 ++---- - drivers/i2c/muxes/i2c-mux-gpmux.c | 6 ++---- - drivers/i2c/muxes/i2c-mux-mlxcpld.c | 5 ++--- - drivers/i2c/muxes/i2c-mux-pinctrl.c | 6 ++---- - drivers/i2c/muxes/i2c-mux-reg.c | 6 ++---- - 88 files changed, 180 insertions(+), 343 deletions(-) - -diff --git a/drivers/i2c/busses/i2c-altera.c b/drivers/i2c/busses/i2c-altera.c -index 50e7f3f670b6f..252fbd175fb1c 100644 ---- a/drivers/i2c/busses/i2c-altera.c -+++ b/drivers/i2c/busses/i2c-altera.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-amd-mp2-plat.c b/drivers/i2c/busses/i2c-amd-mp2-plat.c -index 423fe0c8a471e..112fe2bc5662b 100644 ---- a/drivers/i2c/busses/i2c-amd-mp2-plat.c -+++ b/drivers/i2c/busses/i2c-amd-mp2-plat.c -@@ -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), -diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c -index d3c99c5b32478..2e5acfeb76c81 100644 ---- a/drivers/i2c/busses/i2c-aspeed.c -+++ b/drivers/i2c/busses/i2c-aspeed.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-at91-core.c b/drivers/i2c/busses/i2c-at91-core.c -index 2df9df5851314..05ad3bc3578ac 100644 ---- a/drivers/i2c/busses/i2c-at91-core.c -+++ b/drivers/i2c/busses/i2c-at91-core.c -@@ -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", -diff --git a/drivers/i2c/busses/i2c-au1550.c b/drivers/i2c/busses/i2c-au1550.c -index 7b42d35b12942..e66c12ecf2706 100644 ---- a/drivers/i2c/busses/i2c-au1550.c -+++ b/drivers/i2c/busses/i2c-au1550.c -@@ -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); -diff --git a/drivers/i2c/busses/i2c-axxia.c b/drivers/i2c/busses/i2c-axxia.c -index c1c74ce084071..d7f1e98777ace 100644 ---- a/drivers/i2c/busses/i2c-axxia.c -+++ b/drivers/i2c/busses/i2c-axxia.c -@@ -804,14 +804,12 @@ static int axxia_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-bcm-iproc.c b/drivers/i2c/busses/i2c-bcm-iproc.c -index 85d8a6b048856..2d8342fdc25de 100644 ---- a/drivers/i2c/busses/i2c-bcm-iproc.c -+++ b/drivers/i2c/busses/i2c-bcm-iproc.c -@@ -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); - -diff --git a/drivers/i2c/busses/i2c-bcm-kona.c b/drivers/i2c/busses/i2c-bcm-kona.c -index f3e369f0fd402..a57088ec2b064 100644 ---- a/drivers/i2c/busses/i2c-bcm-kona.c -+++ b/drivers/i2c/busses/i2c-bcm-kona.c -@@ -859,13 +859,11 @@ static int bcm_kona_i2c_probe(struct platform_device *pdev) - 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); - -diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c -index 09a077b31bfe1..8ce6d3f495516 100644 ---- a/drivers/i2c/busses/i2c-bcm2835.c -+++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -503,7 +503,7 @@ static int bcm2835_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-brcmstb.c b/drivers/i2c/busses/i2c-brcmstb.c -index ef942714642a7..cf92cbcb8c86b 100644 ---- a/drivers/i2c/busses/i2c-brcmstb.c -+++ b/drivers/i2c/busses/i2c-brcmstb.c -@@ -690,12 +690,11 @@ static int brcmstb_i2c_probe(struct platform_device *pdev) - 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); - -diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c -index 3a4edf7e75f9f..9849f45025700 100644 ---- a/drivers/i2c/busses/i2c-cadence.c -+++ b/drivers/i2c/busses/i2c-cadence.c -@@ -1415,7 +1415,7 @@ static int cdns_i2c_probe(struct platform_device *pdev) - * - * 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); -diff --git a/drivers/i2c/busses/i2c-cbus-gpio.c b/drivers/i2c/busses/i2c-cbus-gpio.c -index d97c61eec95c1..fdc1758a32756 100644 ---- a/drivers/i2c/busses/i2c-cbus-gpio.c -+++ b/drivers/i2c/busses/i2c-cbus-gpio.c -@@ -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), -diff --git a/drivers/i2c/busses/i2c-cht-wc.c b/drivers/i2c/busses/i2c-cht-wc.c -index 2b2c3d090089e..0209933b9a847 100644 ---- a/drivers/i2c/busses/i2c-cht-wc.c -+++ b/drivers/i2c/busses/i2c-cht-wc.c -@@ -529,15 +529,13 @@ static int cht_wc_i2c_adap_i2c_probe(struct platform_device *pdev) - 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", - }, -diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c -index 24d584a1c9a78..732daf6a932b3 100644 ---- a/drivers/i2c/busses/i2c-cpm.c -+++ b/drivers/i2c/busses/i2c-cpm.c -@@ -676,7 +676,7 @@ static int cpm_i2c_probe(struct platform_device *ofdev) - 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, -diff --git a/drivers/i2c/busses/i2c-cros-ec-tunnel.c b/drivers/i2c/busses/i2c-cros-ec-tunnel.c -index 8b3ff5bb14d8d..2737fd8abd324 100644 ---- a/drivers/i2c/busses/i2c-cros-ec-tunnel.c -+++ b/drivers/i2c/busses/i2c-cros-ec-tunnel.c -@@ -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), -diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c -index 9750310f2c961..b77f9288c0de6 100644 ---- a/drivers/i2c/busses/i2c-davinci.c -+++ b/drivers/i2c/busses/i2c-davinci.c -@@ -885,7 +885,7 @@ static int davinci_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c -index 89ad88c547544..b404dcd6a6469 100644 ---- a/drivers/i2c/busses/i2c-designware-platdrv.c -+++ b/drivers/i2c/busses/i2c-designware-platdrv.c -@@ -384,7 +384,7 @@ static int dw_i2c_plat_probe(struct platform_device *pdev) - 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), -diff --git a/drivers/i2c/busses/i2c-digicolor.c b/drivers/i2c/busses/i2c-digicolor.c -index 50925d97fa429..3462f2bc0fa87 100644 ---- a/drivers/i2c/busses/i2c-digicolor.c -+++ b/drivers/i2c/busses/i2c-digicolor.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-dln2.c b/drivers/i2c/busses/i2c-dln2.c -index 2a2089db71a5e..4f02cc2fb5675 100644 ---- a/drivers/i2c/busses/i2c-dln2.c -+++ b/drivers/i2c/busses/i2c-dln2.c -@@ -236,20 +236,18 @@ static int dln2_i2c_probe(struct platform_device *pdev) - 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); -diff --git a/drivers/i2c/busses/i2c-emev2.c b/drivers/i2c/busses/i2c-emev2.c -index f2e537b137b20..4ba93cd91c0f0 100644 ---- a/drivers/i2c/busses/i2c-emev2.c -+++ b/drivers/i2c/busses/i2c-emev2.c -@@ -419,14 +419,12 @@ static int em_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-exynos5.c b/drivers/i2c/busses/i2c-exynos5.c -index 4a6260d04db28..f378cd479e558 100644 ---- a/drivers/i2c/busses/i2c-exynos5.c -+++ b/drivers/i2c/busses/i2c-exynos5.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c -index 1794c0399f22d..e5a5b9e8bf2c7 100644 ---- a/drivers/i2c/busses/i2c-gpio.c -+++ b/drivers/i2c/busses/i2c-gpio.c -@@ -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) -diff --git a/drivers/i2c/busses/i2c-gxp.c b/drivers/i2c/busses/i2c-gxp.c -index 8ea3fb5e4c7f7..70b0de07ed99a 100644 ---- a/drivers/i2c/busses/i2c-gxp.c -+++ b/drivers/i2c/busses/i2c-gxp.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-highlander.c b/drivers/i2c/busses/i2c-highlander.c -index 4374a86772717..7922bc917c33a 100644 ---- a/drivers/i2c/busses/i2c-highlander.c -+++ b/drivers/i2c/busses/i2c-highlander.c -@@ -435,7 +435,7 @@ static int highlander_i2c_probe(struct platform_device *pdev) - 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); -diff --git a/drivers/i2c/busses/i2c-hix5hd2.c b/drivers/i2c/busses/i2c-hix5hd2.c -index 0e34cbaca22dc..64feaa9dca619 100644 ---- a/drivers/i2c/busses/i2c-hix5hd2.c -+++ b/drivers/i2c/busses/i2c-hix5hd2.c -@@ -464,7 +464,7 @@ static int hix5hd2_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c -index eeb80e34f9ad7..2d11577ded38a 100644 ---- a/drivers/i2c/busses/i2c-ibm_iic.c -+++ b/drivers/i2c/busses/i2c-ibm_iic.c -@@ -769,7 +769,7 @@ static int iic_probe(struct platform_device *ofdev) - /* - * 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); -diff --git a/drivers/i2c/busses/i2c-img-scb.c b/drivers/i2c/busses/i2c-img-scb.c -index 39c479f96eb58..8e6320bc791a7 100644 ---- a/drivers/i2c/busses/i2c-img-scb.c -+++ b/drivers/i2c/busses/i2c-img-scb.c -@@ -1413,7 +1413,7 @@ static int img_i2c_probe(struct platform_device *pdev) - 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); - -diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c -index 4d24ceb57ee74..f1ec7c1596b34 100644 ---- a/drivers/i2c/busses/i2c-imx-lpi2c.c -+++ b/drivers/i2c/busses/i2c-imx-lpi2c.c -@@ -623,7 +623,7 @@ static int lpi2c_imx_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c -index 42189a5f29051..65128a73e8a32 100644 ---- a/drivers/i2c/busses/i2c-imx.c -+++ b/drivers/i2c/busses/i2c-imx.c -@@ -1561,7 +1561,7 @@ static int i2c_imx_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c -index 4a6ff54d87fe8..f2f7ebeeaecb0 100644 ---- a/drivers/i2c/busses/i2c-iop3xx.c -+++ b/drivers/i2c/busses/i2c-iop3xx.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-isch.c b/drivers/i2c/busses/i2c-isch.c -index 2dc7ada06ac50..1dc1ceaa44439 100644 ---- a/drivers/i2c/busses/i2c-isch.c -+++ b/drivers/i2c/busses/i2c-isch.c -@@ -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); -diff --git a/drivers/i2c/busses/i2c-jz4780.c b/drivers/i2c/busses/i2c-jz4780.c -index baa7319eee539..0dfe603995214 100644 ---- a/drivers/i2c/busses/i2c-jz4780.c -+++ b/drivers/i2c/busses/i2c-jz4780.c -@@ -845,18 +845,17 @@ static int jz4780_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-kempld.c b/drivers/i2c/busses/i2c-kempld.c -index cf857cf225070..281058e3ea463 100644 ---- a/drivers/i2c/busses/i2c-kempld.c -+++ b/drivers/i2c/busses/i2c-kempld.c -@@ -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, - }; -diff --git a/drivers/i2c/busses/i2c-lpc2k.c b/drivers/i2c/busses/i2c-lpc2k.c -index 8fff6fbb7065c..469fe907723e8 100644 ---- a/drivers/i2c/busses/i2c-lpc2k.c -+++ b/drivers/i2c/busses/i2c-lpc2k.c -@@ -435,14 +435,12 @@ static int i2c_lpc2k_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-meson.c b/drivers/i2c/busses/i2c-meson.c -index 889eff06b78f4..16026c895bb65 100644 ---- a/drivers/i2c/busses/i2c-meson.c -+++ b/drivers/i2c/busses/i2c-meson.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-microchip-corei2c.c b/drivers/i2c/busses/i2c-microchip-corei2c.c -index 4d7e9b25f018b..7f58f7eaabb63 100644 ---- a/drivers/i2c/busses/i2c-microchip-corei2c.c -+++ b/drivers/i2c/busses/i2c-microchip-corei2c.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-mlxbf.c b/drivers/i2c/busses/i2c-mlxbf.c -index 1810d5791b3d7..ae66bdd1b7379 100644 ---- a/drivers/i2c/busses/i2c-mlxbf.c -+++ b/drivers/i2c/busses/i2c-mlxbf.c -@@ -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), -diff --git a/drivers/i2c/busses/i2c-mlxcpld.c b/drivers/i2c/busses/i2c-mlxcpld.c -index 081f51ef0551b..c42fd4b329e4b 100644 ---- a/drivers/i2c/busses/i2c-mlxcpld.c -+++ b/drivers/i2c/busses/i2c-mlxcpld.c -@@ -571,19 +571,17 @@ static int mlxcpld_i2c_probe(struct platform_device *pdev) - 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, - }, -diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c -index cfd074ee6d547..a308afb3cca51 100644 ---- a/drivers/i2c/busses/i2c-mpc.c -+++ b/drivers/i2c/busses/i2c-mpc.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c -index a43c4d77739ab..7ca3f2221ba69 100644 ---- a/drivers/i2c/busses/i2c-mt65xx.c -+++ b/drivers/i2c/busses/i2c-mt65xx.c -@@ -1505,15 +1505,13 @@ static int mtk_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-mt7621.c b/drivers/i2c/busses/i2c-mt7621.c -index 20eda5738ac49..f9c294e2bd3c5 100644 ---- a/drivers/i2c/busses/i2c-mt7621.c -+++ b/drivers/i2c/busses/i2c-mt7621.c -@@ -332,19 +332,17 @@ static int mtk_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c -index 878c076ebdc6b..fd8403b07fa61 100644 ---- a/drivers/i2c/busses/i2c-mv64xxx.c -+++ b/drivers/i2c/busses/i2c-mv64xxx.c -@@ -1084,7 +1084,7 @@ mv64xxx_i2c_probe(struct platform_device *pd) - return rc; - } - --static int -+static void - mv64xxx_i2c_remove(struct platform_device *pd) - { - struct mv64xxx_i2c_data *drv_data = platform_get_drvdata(pd); -@@ -1094,8 +1094,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 = { -@@ -1107,7 +1105,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, -diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c -index e0f3b3545cfe4..1d76f1c4dc06a 100644 ---- a/drivers/i2c/busses/i2c-mxs.c -+++ b/drivers/i2c/busses/i2c-mxs.c -@@ -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) -diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c -index 38d5864d0cb5b..53b65ffb6a647 100644 ---- a/drivers/i2c/busses/i2c-npcm7xx.c -+++ b/drivers/i2c/busses/i2c-npcm7xx.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c -index 2e575856c5cd5..0742b84a11eb5 100644 ---- a/drivers/i2c/busses/i2c-ocores.c -+++ b/drivers/i2c/busses/i2c-ocores.c -@@ -743,7 +743,7 @@ static int ocores_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-octeon-platdrv.c b/drivers/i2c/busses/i2c-octeon-platdrv.c -index 0c227963c8d69..7d54b3203f716 100644 ---- a/drivers/i2c/busses/i2c-octeon-platdrv.c -+++ b/drivers/i2c/busses/i2c-octeon-platdrv.c -@@ -253,12 +253,11 @@ static int octeon_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c -index 4199f57a6bf29..58fd6fa3edf14 100644 ---- a/drivers/i2c/busses/i2c-omap.c -+++ b/drivers/i2c/busses/i2c-omap.c -@@ -1519,7 +1519,7 @@ omap_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-opal.c b/drivers/i2c/busses/i2c-opal.c -index 9f773b4f5ed8e..17ef87d50f7c7 100644 ---- a/drivers/i2c/busses/i2c-opal.c -+++ b/drivers/i2c/busses/i2c-opal.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-pasemi-platform.c b/drivers/i2c/busses/i2c-pasemi-platform.c -index e35945a91dbef..0a44f64897c7a 100644 ---- a/drivers/i2c/busses/i2c-pasemi-platform.c -+++ b/drivers/i2c/busses/i2c-pasemi-platform.c -@@ -98,12 +98,11 @@ static int pasemi_platform_i2c_probe(struct platform_device *pdev) - 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); - -diff --git a/drivers/i2c/busses/i2c-pca-platform.c b/drivers/i2c/busses/i2c-pca-platform.c -index 86d4f75ef8d3f..d2a9e7b61c1ab 100644 ---- a/drivers/i2c/busses/i2c-pca-platform.c -+++ b/drivers/i2c/busses/i2c-pca-platform.c -@@ -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), -diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c -index 50f21cdbe90d3..82400057f810a 100644 ---- a/drivers/i2c/busses/i2c-pnx.c -+++ b/drivers/i2c/busses/i2c-pnx.c -@@ -743,14 +743,12 @@ static int i2c_pnx_probe(struct platform_device *pdev) - 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) -diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c -index ec706a3aba26c..4996a628fdae1 100644 ---- a/drivers/i2c/busses/i2c-powermac.c -+++ b/drivers/i2c/busses/i2c-powermac.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c -index f9fa5308556b7..937f7eebe9067 100644 ---- a/drivers/i2c/busses/i2c-pxa.c -+++ b/drivers/i2c/busses/i2c-pxa.c -@@ -1482,15 +1482,13 @@ static int i2c_pxa_probe(struct platform_device *dev) - 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, -diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c -index 01358472680c4..58860014e0681 100644 ---- a/drivers/i2c/busses/i2c-qcom-cci.c -+++ b/drivers/i2c/busses/i2c-qcom-cci.c -@@ -675,7 +675,7 @@ static int cci_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c -index 83909b02a03ee..b670a67c4fdd0 100644 ---- a/drivers/i2c/busses/i2c-qcom-geni.c -+++ b/drivers/i2c/busses/i2c-qcom-geni.c -@@ -936,14 +936,13 @@ static int geni_i2c_probe(struct platform_device *pdev) - 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", -diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c -index 78682388e02ed..ae90170023b00 100644 ---- a/drivers/i2c/busses/i2c-qup.c -+++ b/drivers/i2c/busses/i2c-qup.c -@@ -1911,7 +1911,7 @@ static int qup_i2c_probe(struct platform_device *pdev) - 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); - -@@ -1925,7 +1925,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 -@@ -1985,7 +1984,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, -diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c -index cef82b205c261..2d9c37410ebd0 100644 ---- a/drivers/i2c/busses/i2c-rcar.c -+++ b/drivers/i2c/busses/i2c-rcar.c -@@ -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); -diff --git a/drivers/i2c/busses/i2c-riic.c b/drivers/i2c/busses/i2c-riic.c -index 849848ccb0802..5f8c0bd508d2f 100644 ---- a/drivers/i2c/busses/i2c-riic.c -+++ b/drivers/i2c/busses/i2c-riic.c -@@ -477,7 +477,7 @@ static int riic_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c -index b31cf4f18f854..a044ca0c35a19 100644 ---- a/drivers/i2c/busses/i2c-rk3x.c -+++ b/drivers/i2c/busses/i2c-rk3x.c -@@ -1372,7 +1372,7 @@ static int rk3x_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-rzv2m.c b/drivers/i2c/busses/i2c-rzv2m.c -index 56d0faee5c46e..dee9b6e655c56 100644 ---- a/drivers/i2c/busses/i2c-rzv2m.c -+++ b/drivers/i2c/busses/i2c-rzv2m.c -@@ -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); - -diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c -index 45e9df81345a1..28f0e5c64f32e 100644 ---- a/drivers/i2c/busses/i2c-s3c2410.c -+++ b/drivers/i2c/busses/i2c-s3c2410.c -@@ -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", -diff --git a/drivers/i2c/busses/i2c-scmi.c b/drivers/i2c/busses/i2c-scmi.c -index 0239e134b90f4..1045702922413 100644 ---- a/drivers/i2c/busses/i2c-scmi.c -+++ b/drivers/i2c/busses/i2c-scmi.c -@@ -404,19 +404,17 @@ static int smbus_cmi_probe(struct platform_device *device) - 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, -diff --git a/drivers/i2c/busses/i2c-sh7760.c b/drivers/i2c/busses/i2c-sh7760.c -index 319d1fa617c88..60efa3a5e6756 100644 ---- a/drivers/i2c/busses/i2c-sh7760.c -+++ b/drivers/i2c/busses/i2c-sh7760.c -@@ -536,7 +536,7 @@ static int sh7760_i2c_probe(struct platform_device *pdev) - 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); -diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c -index 29330ee64c9c0..21717b943a9e0 100644 ---- a/drivers/i2c/busses/i2c-sh_mobile.c -+++ b/drivers/i2c/busses/i2c-sh_mobile.c -@@ -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) -diff --git a/drivers/i2c/busses/i2c-simtec.c b/drivers/i2c/busses/i2c-simtec.c -index 87701744752fb..18516bc64e046 100644 ---- a/drivers/i2c/busses/i2c-simtec.c -+++ b/drivers/i2c/busses/i2c-simtec.c -@@ -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); -diff --git a/drivers/i2c/busses/i2c-st.c b/drivers/i2c/busses/i2c-st.c -index f823913b75a6f..25c3521cae0e3 100644 ---- a/drivers/i2c/busses/i2c-st.c -+++ b/drivers/i2c/busses/i2c-st.c -@@ -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); -diff --git a/drivers/i2c/busses/i2c-stm32f4.c b/drivers/i2c/busses/i2c-stm32f4.c -index eebce7ecef25b..6ad06a5a22b43 100644 ---- a/drivers/i2c/busses/i2c-stm32f4.c -+++ b/drivers/i2c/busses/i2c-stm32f4.c -@@ -861,15 +861,13 @@ static int stm32f4_i2c_probe(struct platform_device *pdev) - 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); -diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c -index d1c59d83a65b9..e897d9101434d 100644 ---- a/drivers/i2c/busses/i2c-stm32f7.c -+++ b/drivers/i2c/busses/i2c-stm32f7.c -@@ -2309,7 +2309,7 @@ static int stm32f7_i2c_probe(struct platform_device *pdev) - 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); -diff --git a/drivers/i2c/busses/i2c-sun6i-p2wi.c b/drivers/i2c/busses/i2c-sun6i-p2wi.c -index 9e3483f507ff5..3cff1afe0caa2 100644 ---- a/drivers/i2c/busses/i2c-sun6i-p2wi.c -+++ b/drivers/i2c/busses/i2c-sun6i-p2wi.c -@@ -313,20 +313,18 @@ static int p2wi_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-synquacer.c b/drivers/i2c/busses/i2c-synquacer.c -index 50d19cf99a03a..4cc196ca8f6dc 100644 ---- a/drivers/i2c/busses/i2c-synquacer.c -+++ b/drivers/i2c/busses/i2c-synquacer.c -@@ -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), -diff --git a/drivers/i2c/busses/i2c-tegra-bpmp.c b/drivers/i2c/busses/i2c-tegra-bpmp.c -index 95139985b2d5e..bc3f94561746e 100644 ---- a/drivers/i2c/busses/i2c-tegra-bpmp.c -+++ b/drivers/i2c/busses/i2c-tegra-bpmp.c -@@ -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); - -diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c -index 157066f06a32d..a82d264bf73df 100644 ---- a/drivers/i2c/busses/i2c-tegra.c -+++ b/drivers/i2c/busses/i2c-tegra.c -@@ -1868,7 +1868,7 @@ static int tegra_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-uniphier-f.c b/drivers/i2c/busses/i2c-uniphier-f.c -index d7b622891e52d..54b1624ef87ea 100644 ---- a/drivers/i2c/busses/i2c-uniphier-f.c -+++ b/drivers/i2c/busses/i2c-uniphier-f.c -@@ -586,14 +586,12 @@ static int uniphier_fi2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-uniphier.c b/drivers/i2c/busses/i2c-uniphier.c -index e3ebae381f08a..96b1eb7489a3c 100644 ---- a/drivers/i2c/busses/i2c-uniphier.c -+++ b/drivers/i2c/busses/i2c-uniphier.c -@@ -380,14 +380,12 @@ static int uniphier_i2c_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c -index 1ab419f8fa527..0a866456db586 100644 ---- a/drivers/i2c/busses/i2c-versatile.c -+++ b/drivers/i2c/busses/i2c-versatile.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-viperboard.c b/drivers/i2c/busses/i2c-viperboard.c -index 8b5322c3bce0e..9e153b5b0e8e4 100644 ---- a/drivers/i2c/busses/i2c-viperboard.c -+++ b/drivers/i2c/busses/i2c-viperboard.c -@@ -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) -diff --git a/drivers/i2c/busses/i2c-wmt.c b/drivers/i2c/busses/i2c-wmt.c -index 7d4bc87360793..736acaa538d26 100644 ---- a/drivers/i2c/busses/i2c-wmt.c -+++ b/drivers/i2c/busses/i2c-wmt.c -@@ -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, -diff --git a/drivers/i2c/busses/i2c-xgene-slimpro.c b/drivers/i2c/busses/i2c-xgene-slimpro.c -index 3538d36368a90..fbc1ffbd2fa7d 100644 ---- a/drivers/i2c/busses/i2c-xgene-slimpro.c -+++ b/drivers/i2c/busses/i2c-xgene-slimpro.c -@@ -560,7 +560,7 @@ static int xgene_slimpro_i2c_probe(struct platform_device *pdev) - 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), -diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c -index 8a3d9817cb41c..61288f8dd0672 100644 ---- a/drivers/i2c/busses/i2c-xiic.c -+++ b/drivers/i2c/busses/i2c-xiic.c -@@ -1335,7 +1335,7 @@ static int xiic_i2c_probe(struct platform_device *pdev) - 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), -diff --git a/drivers/i2c/busses/i2c-xlp9xx.c b/drivers/i2c/busses/i2c-xlp9xx.c -index 4e3b11c0f7325..f59e8c544f366 100644 ---- a/drivers/i2c/busses/i2c-xlp9xx.c -+++ b/drivers/i2c/busses/i2c-xlp9xx.c -@@ -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), -diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c -index 7b42a18bd05c2..83c1db610f54b 100644 ---- a/drivers/i2c/busses/scx200_acb.c -+++ b/drivers/i2c/busses/scx200_acb.c -@@ -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[] = { -diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c -index 1c78657631f4f..24168e9f7df4c 100644 ---- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c -+++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c -@@ -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, -diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c b/drivers/i2c/muxes/i2c-demux-pinctrl.c -index f7a7405d4350a..a3a122fae71e0 100644 ---- a/drivers/i2c/muxes/i2c-demux-pinctrl.c -+++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c -@@ -282,7 +282,7 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev) - 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); - -diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c -index 73a23e117ebec..5d5cbe0130cdf 100644 ---- a/drivers/i2c/muxes/i2c-mux-gpio.c -+++ b/drivers/i2c/muxes/i2c-mux-gpio.c -@@ -225,14 +225,12 @@ static int i2c_mux_gpio_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/muxes/i2c-mux-gpmux.c b/drivers/i2c/muxes/i2c-mux-gpmux.c -index 33024acaac02b..0405af0e15104 100644 ---- a/drivers/i2c/muxes/i2c-mux-gpmux.c -+++ b/drivers/i2c/muxes/i2c-mux-gpmux.c -@@ -142,19 +142,17 @@ static int i2c_mux_probe(struct platform_device *pdev) - 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, -diff --git a/drivers/i2c/muxes/i2c-mux-mlxcpld.c b/drivers/i2c/muxes/i2c-mux-mlxcpld.c -index 1a879f6a31efd..3dda00f1df78d 100644 ---- a/drivers/i2c/muxes/i2c-mux-mlxcpld.c -+++ b/drivers/i2c/muxes/i2c-mux-mlxcpld.c -@@ -170,12 +170,11 @@ static int mlxcpld_mux_probe(struct platform_device *pdev) - 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); -diff --git a/drivers/i2c/muxes/i2c-mux-pinctrl.c b/drivers/i2c/muxes/i2c-mux-pinctrl.c -index d5ad904756fdf..18236b9fa14a9 100644 ---- a/drivers/i2c/muxes/i2c-mux-pinctrl.c -+++ b/drivers/i2c/muxes/i2c-mux-pinctrl.c -@@ -166,14 +166,12 @@ static int i2c_mux_pinctrl_probe(struct platform_device *pdev) - 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); - -diff --git a/drivers/i2c/muxes/i2c-mux-reg.c b/drivers/i2c/muxes/i2c-mux-reg.c -index 30a6de1694e07..9efc1ed01577b 100644 ---- a/drivers/i2c/muxes/i2c-mux-reg.c -+++ b/drivers/i2c/muxes/i2c-mux-reg.c -@@ -233,14 +233,12 @@ static int i2c_mux_reg_probe(struct platform_device *pdev) - 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), --- -2.39.2 - diff --git a/queue-6.4/i2c-ocores-use-devm_-managed-clks.patch b/queue-6.4/i2c-ocores-use-devm_-managed-clks.patch deleted file mode 100644 index 98eaf63e76f..00000000000 --- a/queue-6.4/i2c-ocores-use-devm_-managed-clks.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 39e9498756c740a7c8414bb8880884e9ffac6287 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 26 May 2023 15:05:33 +0800 -Subject: i2c: ocores: use devm_ managed clks - -From: Wang Zhang - -[ Upstream commit 9e1a1ee93f6b08aad5ee645073f7c7b115f71e15 ] - -Smatch complains that: -drivers/i2c/busses/i2c-ocores.c:704 ocores_i2c_probe() -warn: missing unwind goto? - -If any wrong occurs in ocores_i2c_of_probe, the i2c->clk needs to be -released. But the function returns directly without freeing the clock. - -Fix this by updating the code to use devm_clk_get_optional_enabled() -instead. Use dev_err_probe() where appropriate as well since we are -changing those statements. - -Fixes: f5f35a92e44a ("i2c: ocores: Add irq support for sparc") -Signed-off-by: Wang Zhang -Reviewed-by: Andi Shyti -Reviewed-by: Andrew Lunn -Signed-off-by: Wolfram Sang -Signed-off-by: Sasha Levin ---- - drivers/i2c/busses/i2c-ocores.c | 64 +++++++++++---------------------- - 1 file changed, 21 insertions(+), 43 deletions(-) - -diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c -index 0742b84a11eb5..4ac77e57bbbfe 100644 ---- a/drivers/i2c/busses/i2c-ocores.c -+++ b/drivers/i2c/busses/i2c-ocores.c -@@ -552,28 +552,20 @@ static int ocores_i2c_of_probe(struct platform_device *pdev, - &clock_frequency); - i2c->bus_clock_khz = 100; - -- i2c->clk = devm_clk_get(&pdev->dev, NULL); -- -- if (!IS_ERR(i2c->clk)) { -- int ret = clk_prepare_enable(i2c->clk); -- -- if (ret) { -- dev_err(&pdev->dev, -- "clk_prepare_enable failed: %d\n", ret); -- return ret; -- } -- i2c->ip_clock_khz = clk_get_rate(i2c->clk) / 1000; -- if (clock_frequency_present) -- i2c->bus_clock_khz = clock_frequency / 1000; -- } -- -+ i2c->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL); -+ if (IS_ERR(i2c->clk)) -+ return dev_err_probe(&pdev->dev, PTR_ERR(i2c->clk), -+ "devm_clk_get_optional_enabled failed\n"); -+ -+ i2c->ip_clock_khz = clk_get_rate(i2c->clk) / 1000; -+ if (clock_frequency_present) -+ i2c->bus_clock_khz = clock_frequency / 1000; - if (i2c->ip_clock_khz == 0) { - if (of_property_read_u32(np, "opencores,ip-clock-frequency", - &val)) { - if (!clock_frequency_present) { - dev_err(&pdev->dev, - "Missing required parameter 'opencores,ip-clock-frequency'\n"); -- clk_disable_unprepare(i2c->clk); - return -ENODEV; - } - i2c->ip_clock_khz = clock_frequency / 1000; -@@ -678,8 +670,7 @@ static int ocores_i2c_probe(struct platform_device *pdev) - default: - dev_err(&pdev->dev, "Unsupported I/O width (%d)\n", - i2c->reg_io_width); -- ret = -EINVAL; -- goto err_clk; -+ return -EINVAL; - } - } - -@@ -710,13 +701,13 @@ static int ocores_i2c_probe(struct platform_device *pdev) - pdev->name, i2c); - if (ret) { - dev_err(&pdev->dev, "Cannot claim IRQ\n"); -- goto err_clk; -+ return ret; - } - } - - ret = ocores_init(&pdev->dev, i2c); - if (ret) -- goto err_clk; -+ return ret; - - /* hook up driver to tree */ - platform_set_drvdata(pdev, i2c); -@@ -728,7 +719,7 @@ static int ocores_i2c_probe(struct platform_device *pdev) - /* add i2c adapter to i2c tree */ - ret = i2c_add_adapter(&i2c->adap); - if (ret) -- goto err_clk; -+ return ret; - - /* add in known devices to the bus */ - if (pdata) { -@@ -737,10 +728,6 @@ static int ocores_i2c_probe(struct platform_device *pdev) - } - - return 0; -- --err_clk: -- clk_disable_unprepare(i2c->clk); -- return ret; - } - - static void ocores_i2c_remove(struct platform_device *pdev) -@@ -754,9 +741,6 @@ static void ocores_i2c_remove(struct platform_device *pdev) - - /* remove adapter & data */ - i2c_del_adapter(&i2c->adap); -- -- if (!IS_ERR(i2c->clk)) -- clk_disable_unprepare(i2c->clk); - } - - #ifdef CONFIG_PM_SLEEP -@@ -769,28 +753,22 @@ static int ocores_i2c_suspend(struct device *dev) - ctrl &= ~(OCI2C_CTRL_EN | OCI2C_CTRL_IEN); - oc_setreg(i2c, OCI2C_CONTROL, ctrl); - -- if (!IS_ERR(i2c->clk)) -- clk_disable_unprepare(i2c->clk); -+ clk_disable_unprepare(i2c->clk); - return 0; - } - - static int ocores_i2c_resume(struct device *dev) - { - struct ocores_i2c *i2c = dev_get_drvdata(dev); -+ unsigned long rate; -+ int ret; - -- if (!IS_ERR(i2c->clk)) { -- unsigned long rate; -- int ret = clk_prepare_enable(i2c->clk); -- -- if (ret) { -- dev_err(dev, -- "clk_prepare_enable failed: %d\n", ret); -- return ret; -- } -- rate = clk_get_rate(i2c->clk) / 1000; -- if (rate) -- i2c->ip_clock_khz = rate; -- } -+ ret = clk_prepare_enable(i2c->clk); -+ if (ret) -+ return dev_err_probe(dev, ret, "clk_prepare_enable failed\n"); -+ rate = clk_get_rate(i2c->clk) / 1000; -+ if (rate) -+ i2c->ip_clock_khz = rate; - return ocores_init(dev, i2c); - } - --- -2.39.2 - diff --git a/queue-6.4/series b/queue-6.4/series index f39ebd1493e..916359c496c 100644 --- a/queue-6.4/series +++ b/queue-6.4/series @@ -516,8 +516,6 @@ dax-fix-dax_mapping_release-use-after-free.patch dax-introduce-alloc_dev_dax_id.patch dax-kmem-pass-valid-argument-to-memory_group_registe.patch hwrng-st-keep-clock-enabled-while-hwrng-is-registere.patch -i2c-convert-to-platform-remove-callback-returning-vo.patch -i2c-ocores-use-devm_-managed-clks.patch kbuild-fix-cfi-failures-with-gcov.patch kbuild-disable-gcov-for-.mod.o.patch cxl-region-move-cache-invalidation-before-region-tea.patch