From: Sasha Levin Date: Mon, 7 Oct 2024 20:39:48 +0000 (-0400) Subject: Drop driver-core-platform-use-bus_type-functions.patch X-Git-Tag: v6.6.55~48 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ae801606272f9e60cd735b4c2a32b53f5f2baf1;p=thirdparty%2Fkernel%2Fstable-queue.git Drop driver-core-platform-use-bus_type-functions.patch Signed-off-by: Sasha Levin --- diff --git a/queue-5.10/driver-core-platform-use-bus_type-functions.patch b/queue-5.10/driver-core-platform-use-bus_type-functions.patch deleted file mode 100644 index 2eff75b194e..00000000000 --- a/queue-5.10/driver-core-platform-use-bus_type-functions.patch +++ /dev/null @@ -1,194 +0,0 @@ -From 4d14b95e49a265d15a81cd0d0b7f56e0bd028634 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 19 Nov 2020 13:46:11 +0100 -Subject: driver core: platform: use bus_type functions -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit 9c30921fe7994907e0b3e0637b2c8c0fc4b5171f ] - -This works towards the goal mentioned in 2006 in commit 594c8281f905 -("[PATCH] Add bus_type probe, remove, shutdown methods."). - -The functions are moved to where the other bus_type functions are -defined and renamed to match the already established naming scheme. - -Signed-off-by: Uwe Kleine-König -Link: https://lore.kernel.org/r/20201119124611.2573057-3-u.kleine-koenig@pengutronix.de -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: cfd67903977b ("PCI: xilinx-nwl: Clean up clock on probe failure/removal") -Signed-off-by: Sasha Levin ---- - drivers/base/platform.c | 132 ++++++++++++++++++++-------------------- - 1 file changed, 65 insertions(+), 67 deletions(-) - -diff --git a/drivers/base/platform.c b/drivers/base/platform.c -index 16426eb934632..90166535a5c05 100644 ---- a/drivers/base/platform.c -+++ b/drivers/base/platform.c -@@ -743,70 +743,6 @@ struct platform_device *platform_device_register_full( - } - EXPORT_SYMBOL_GPL(platform_device_register_full); - --static int platform_probe_fail(struct platform_device *pdev); -- --static int platform_drv_probe(struct device *_dev) --{ -- struct platform_driver *drv = to_platform_driver(_dev->driver); -- struct platform_device *dev = to_platform_device(_dev); -- int ret; -- -- /* -- * A driver registered using platform_driver_probe() cannot be bound -- * again later because the probe function usually lives in __init code -- * and so is gone. For these drivers .probe is set to -- * platform_probe_fail in __platform_driver_probe(). Don't even -- * prepare clocks and PM domains for these to match the traditional -- * behaviour. -- */ -- if (unlikely(drv->probe == platform_probe_fail)) -- return -ENXIO; -- -- ret = of_clk_set_defaults(_dev->of_node, false); -- if (ret < 0) -- return ret; -- -- ret = dev_pm_domain_attach(_dev, true); -- if (ret) -- goto out; -- -- if (drv->probe) { -- ret = drv->probe(dev); -- if (ret) -- dev_pm_domain_detach(_dev, true); -- } -- --out: -- if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) { -- dev_warn(_dev, "probe deferral not supported\n"); -- ret = -ENXIO; -- } -- -- return ret; --} -- --static int platform_drv_remove(struct device *_dev) --{ -- struct platform_driver *drv = to_platform_driver(_dev->driver); -- struct platform_device *dev = to_platform_device(_dev); -- int ret = 0; -- -- if (drv->remove) -- ret = drv->remove(dev); -- dev_pm_domain_detach(_dev, true); -- -- return ret; --} -- --static void platform_drv_shutdown(struct device *_dev) --{ -- struct platform_driver *drv = to_platform_driver(_dev->driver); -- struct platform_device *dev = to_platform_device(_dev); -- -- if (drv->shutdown) -- drv->shutdown(dev); --} -- - /** - * __platform_driver_register - register a driver for platform-level devices - * @drv: platform driver structure -@@ -817,9 +753,6 @@ int __platform_driver_register(struct platform_driver *drv, - { - drv->driver.owner = owner; - drv->driver.bus = &platform_bus_type; -- drv->driver.probe = platform_drv_probe; -- drv->driver.remove = platform_drv_remove; -- drv->driver.shutdown = platform_drv_shutdown; - - return driver_register(&drv->driver); - } -@@ -1329,6 +1262,68 @@ static int platform_uevent(struct device *dev, struct kobj_uevent_env *env) - return 0; - } - -+static int platform_probe(struct device *_dev) -+{ -+ struct platform_driver *drv = to_platform_driver(_dev->driver); -+ struct platform_device *dev = to_platform_device(_dev); -+ int ret; -+ -+ /* -+ * A driver registered using platform_driver_probe() cannot be bound -+ * again later because the probe function usually lives in __init code -+ * and so is gone. For these drivers .probe is set to -+ * platform_probe_fail in __platform_driver_probe(). Don't even prepare -+ * clocks and PM domains for these to match the traditional behaviour. -+ */ -+ if (unlikely(drv->probe == platform_probe_fail)) -+ return -ENXIO; -+ -+ ret = of_clk_set_defaults(_dev->of_node, false); -+ if (ret < 0) -+ return ret; -+ -+ ret = dev_pm_domain_attach(_dev, true); -+ if (ret) -+ goto out; -+ -+ if (drv->probe) { -+ ret = drv->probe(dev); -+ if (ret) -+ dev_pm_domain_detach(_dev, true); -+ } -+ -+out: -+ if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) { -+ dev_warn(_dev, "probe deferral not supported\n"); -+ ret = -ENXIO; -+ } -+ -+ return ret; -+} -+ -+static int platform_remove(struct device *_dev) -+{ -+ struct platform_driver *drv = to_platform_driver(_dev->driver); -+ struct platform_device *dev = to_platform_device(_dev); -+ int ret = 0; -+ -+ if (drv->remove) -+ ret = drv->remove(dev); -+ dev_pm_domain_detach(_dev, true); -+ -+ return ret; -+} -+ -+static void platform_shutdown(struct device *_dev) -+{ -+ struct platform_driver *drv = to_platform_driver(_dev->driver); -+ struct platform_device *dev = to_platform_device(_dev); -+ -+ if (drv->shutdown) -+ drv->shutdown(dev); -+} -+ -+ - int platform_dma_configure(struct device *dev) - { - enum dev_dma_attr attr; -@@ -1355,6 +1350,9 @@ struct bus_type platform_bus_type = { - .dev_groups = platform_dev_groups, - .match = platform_match, - .uevent = platform_uevent, -+ .probe = platform_probe, -+ .remove = platform_remove, -+ .shutdown = platform_shutdown, - .dma_configure = platform_dma_configure, - .pm = &platform_dev_pm_ops, - }; --- -2.43.0 - diff --git a/queue-5.10/series b/queue-5.10/series index 6cf961eea6d..947d5e030a9 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -164,7 +164,6 @@ drivers-media-dvb-frontends-rtl2832-fix-an-out-of-bo.patch drivers-media-dvb-frontends-rtl2830-fix-an-out-of-bo.patch pci-keystone-fix-if-statement-expression-in-ks_pcie_.patch pci-xilinx-nwl-fix-register-misspelling.patch -driver-core-platform-use-bus_type-functions.patch platform-provide-a-remove-callback-that-returns-no-v.patch pci-xilinx-nwl-clean-up-clock-on-probe-failure-remov.patch rdma-iwcm-fix-warning-at_kernel-workqueue.c-check_fl.patch