Skip to content

Commit 866160a

Browse files
ukleinekvinodkoul
authored andcommitted
soundwire: Use bus methods for .probe(), .remove() and .shutdown()
These are nearly identical to the respective driver callbacks. The only differences are that .remove() returns void instead of int and .shutdown() has to cope for unbound devices. The objective is to get rid of users of struct device_driver callbacks .probe(), .remove() and .shutdown() to eventually remove these. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Link: https://patch.msgid.link/20251215174925.1327021-6-u.kleine-koenig@baylibre.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 478f389 commit 866160a

1 file changed

Lines changed: 13 additions & 15 deletions

File tree

drivers/soundwire/bus_type.c

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,7 @@ int sdw_slave_uevent(const struct device *dev, struct kobj_uevent_env *env)
7272
return 0;
7373
}
7474

75-
const struct bus_type sdw_bus_type = {
76-
.name = "soundwire",
77-
.match = sdw_bus_match,
78-
};
79-
EXPORT_SYMBOL_GPL(sdw_bus_type);
80-
81-
static int sdw_drv_probe(struct device *dev)
75+
static int sdw_bus_probe(struct device *dev)
8276
{
8377
struct sdw_slave *slave = dev_to_sdw_dev(dev);
8478
struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
@@ -164,7 +158,7 @@ static int sdw_drv_probe(struct device *dev)
164158
return 0;
165159
}
166160

167-
static int sdw_drv_remove(struct device *dev)
161+
static void sdw_bus_remove(struct device *dev)
168162
{
169163
struct sdw_slave *slave = dev_to_sdw_dev(dev);
170164
struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
@@ -179,19 +173,26 @@ static int sdw_drv_remove(struct device *dev)
179173
drv->remove(slave);
180174

181175
ida_free(&slave->bus->slave_ida, slave->index);
182-
183-
return 0;
184176
}
185177

186-
static void sdw_drv_shutdown(struct device *dev)
178+
static void sdw_bus_shutdown(struct device *dev)
187179
{
188180
struct sdw_slave *slave = dev_to_sdw_dev(dev);
189181
struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
190182

191-
if (drv->shutdown)
183+
if (dev->driver && drv->shutdown)
192184
drv->shutdown(slave);
193185
}
194186

187+
const struct bus_type sdw_bus_type = {
188+
.name = "soundwire",
189+
.match = sdw_bus_match,
190+
.probe = sdw_bus_probe,
191+
.remove = sdw_bus_remove,
192+
.shutdown = sdw_bus_shutdown,
193+
};
194+
EXPORT_SYMBOL_GPL(sdw_bus_type);
195+
195196
/**
196197
* __sdw_register_driver() - register a SoundWire Slave driver
197198
* @drv: driver to register
@@ -210,9 +211,6 @@ int __sdw_register_driver(struct sdw_driver *drv, struct module *owner)
210211
}
211212

212213
drv->driver.owner = owner;
213-
drv->driver.probe = sdw_drv_probe;
214-
drv->driver.remove = sdw_drv_remove;
215-
drv->driver.shutdown = sdw_drv_shutdown;
216214
drv->driver.dev_groups = sdw_attr_groups;
217215

218216
return driver_register(&drv->driver);

0 commit comments

Comments
 (0)