* [PATCH v1 1/2] bus: mhi: host: Use bus callbacks for .probe() and .remove()
2025-12-18 20:42 [PATCH v1 0/2] bus: mhi: Use bus callbacks for .probe() and .remove() Uwe Kleine-König
@ 2025-12-18 20:42 ` Uwe Kleine-König
2025-12-18 20:42 ` [PATCH v1 2/2] bus: mhi: ep: " Uwe Kleine-König
2025-12-31 10:58 ` [PATCH v1 0/2] bus: mhi: " Manivannan Sadhasivam
2 siblings, 0 replies; 4+ messages in thread
From: Uwe Kleine-König @ 2025-12-18 20:42 UTC (permalink / raw)
To: Manivannan Sadhasivam; +Cc: mhi, linux-arm-msm
These are nearly identical to the driver callbacks, the only relevant
difference is that the bus remove method returns void (instead of an int
where the value is ignored).
The objective is to get rid of users of struct device_driver callbacks
.probe(), and .remove() to eventually remove these.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
drivers/bus/mhi/host/init.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/bus/mhi/host/init.c b/drivers/bus/mhi/host/init.c
index 099be8dd1900..8a0fe09d974a 100644
--- a/drivers/bus/mhi/host/init.c
+++ b/drivers/bus/mhi/host/init.c
@@ -1265,7 +1265,7 @@ struct mhi_device *mhi_alloc_device(struct mhi_controller *mhi_cntrl)
return mhi_dev;
}
-static int mhi_driver_probe(struct device *dev)
+static int mhi_probe(struct device *dev)
{
struct mhi_device *mhi_dev = to_mhi_device(dev);
struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl;
@@ -1341,7 +1341,7 @@ static int mhi_driver_probe(struct device *dev)
return ret;
}
-static int mhi_driver_remove(struct device *dev)
+static void mhi_remove(struct device *dev)
{
struct mhi_device *mhi_dev = to_mhi_device(dev);
struct mhi_driver *mhi_drv = to_mhi_driver(dev->driver);
@@ -1355,7 +1355,7 @@ static int mhi_driver_remove(struct device *dev)
/* Skip if it is a controller device */
if (mhi_dev->dev_type == MHI_DEVICE_CONTROLLER)
- return 0;
+ return;
/* Reset both channels */
for (dir = 0; dir < 2; dir++) {
@@ -1407,8 +1407,6 @@ static int mhi_driver_remove(struct device *dev)
while (mhi_dev->dev_wake)
mhi_device_put(mhi_dev);
-
- return 0;
}
int __mhi_driver_register(struct mhi_driver *mhi_drv, struct module *owner)
@@ -1420,8 +1418,6 @@ int __mhi_driver_register(struct mhi_driver *mhi_drv, struct module *owner)
driver->bus = &mhi_bus_type;
driver->owner = owner;
- driver->probe = mhi_driver_probe;
- driver->remove = mhi_driver_remove;
return driver_register(driver);
}
@@ -1468,6 +1464,8 @@ const struct bus_type mhi_bus_type = {
.dev_name = "mhi",
.match = mhi_match,
.uevent = mhi_uevent,
+ .probe = mhi_probe,
+ .remove = mhi_remove,
.dev_groups = mhi_dev_groups,
};
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v1 2/2] bus: mhi: ep: Use bus callbacks for .probe() and .remove()
2025-12-18 20:42 [PATCH v1 0/2] bus: mhi: Use bus callbacks for .probe() and .remove() Uwe Kleine-König
2025-12-18 20:42 ` [PATCH v1 1/2] bus: mhi: host: " Uwe Kleine-König
@ 2025-12-18 20:42 ` Uwe Kleine-König
2025-12-31 10:58 ` [PATCH v1 0/2] bus: mhi: " Manivannan Sadhasivam
2 siblings, 0 replies; 4+ messages in thread
From: Uwe Kleine-König @ 2025-12-18 20:42 UTC (permalink / raw)
To: Manivannan Sadhasivam; +Cc: mhi, linux-arm-msm
These are nearly identical to the driver callbacks, the only relevant
difference is that the bus remove method returns void (instead of an int
where the value is ignored).
The objective is to get rid of users of struct device_driver callbacks
.probe(), and .remove() to eventually remove these.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
drivers/bus/mhi/ep/main.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
index 3c208b5c8446..35922e7a24c1 100644
--- a/drivers/bus/mhi/ep/main.c
+++ b/drivers/bus/mhi/ep/main.c
@@ -1596,7 +1596,7 @@ void mhi_ep_unregister_controller(struct mhi_ep_cntrl *mhi_cntrl)
}
EXPORT_SYMBOL_GPL(mhi_ep_unregister_controller);
-static int mhi_ep_driver_probe(struct device *dev)
+static int mhi_ep_probe(struct device *dev)
{
struct mhi_ep_device *mhi_dev = to_mhi_ep_device(dev);
struct mhi_ep_driver *mhi_drv = to_mhi_ep_driver(dev->driver);
@@ -1609,7 +1609,7 @@ static int mhi_ep_driver_probe(struct device *dev)
return mhi_drv->probe(mhi_dev, mhi_dev->id);
}
-static int mhi_ep_driver_remove(struct device *dev)
+static void mhi_ep_remove(struct device *dev)
{
struct mhi_ep_device *mhi_dev = to_mhi_ep_device(dev);
struct mhi_ep_driver *mhi_drv = to_mhi_ep_driver(dev->driver);
@@ -1619,7 +1619,7 @@ static int mhi_ep_driver_remove(struct device *dev)
/* Skip if it is a controller device */
if (mhi_dev->dev_type == MHI_DEVICE_CONTROLLER)
- return 0;
+ return;
/* Disconnect the channels associated with the driver */
for (dir = 0; dir < 2; dir++) {
@@ -1643,8 +1643,6 @@ static int mhi_ep_driver_remove(struct device *dev)
/* Remove the client driver now */
mhi_drv->remove(mhi_dev);
-
- return 0;
}
int __mhi_ep_driver_register(struct mhi_ep_driver *mhi_drv, struct module *owner)
@@ -1660,8 +1658,6 @@ int __mhi_ep_driver_register(struct mhi_ep_driver *mhi_drv, struct module *owner
driver->bus = &mhi_ep_bus_type;
driver->owner = owner;
- driver->probe = mhi_ep_driver_probe;
- driver->remove = mhi_ep_driver_remove;
return driver_register(driver);
}
@@ -1708,6 +1704,8 @@ const struct bus_type mhi_ep_bus_type = {
.dev_name = "mhi_ep",
.match = mhi_ep_match,
.uevent = mhi_ep_uevent,
+ .probe = mhi_ep_probe,
+ .remove = mhi_ep_remove,
};
static int __init mhi_ep_init(void)
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v1 0/2] bus: mhi: Use bus callbacks for .probe() and .remove()
2025-12-18 20:42 [PATCH v1 0/2] bus: mhi: Use bus callbacks for .probe() and .remove() Uwe Kleine-König
2025-12-18 20:42 ` [PATCH v1 1/2] bus: mhi: host: " Uwe Kleine-König
2025-12-18 20:42 ` [PATCH v1 2/2] bus: mhi: ep: " Uwe Kleine-König
@ 2025-12-31 10:58 ` Manivannan Sadhasivam
2 siblings, 0 replies; 4+ messages in thread
From: Manivannan Sadhasivam @ 2025-12-31 10:58 UTC (permalink / raw)
To: Manivannan Sadhasivam, Uwe Kleine-König; +Cc: mhi, linux-arm-msm
On Thu, 18 Dec 2025 21:42:14 +0100, Uwe Kleine-König wrote:
> this series converts the two busses defined in drivers/bus/mhi to use
> bus methods for .probe() and .remove() instead of the respective
> callbacks of struct device_driver.
>
> The eventual goal is that these callbacks are removed from struct
> device.
>
> [...]
Applied, thanks!
[1/2] bus: mhi: host: Use bus callbacks for .probe() and .remove()
commit: 8535df5dd64ec02d85e65dbcf79a59db9c16d921
[2/2] bus: mhi: ep: Use bus callbacks for .probe() and .remove()
commit: 91a0b0dce350766675961892ba4431363c4e29f7
Best regards,
--
Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 4+ messages in thread