@@ -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,11 +158,10 @@ 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 );
171- int ret = 0 ;
172165
173166 mutex_lock (& slave -> sdw_dev_lock );
174167
@@ -177,22 +170,29 @@ static int sdw_drv_remove(struct device *dev)
177170 mutex_unlock (& slave -> sdw_dev_lock );
178171
179172 if (drv -> remove )
180- ret = drv -> remove (slave );
173+ drv -> remove (slave );
181174
182175 ida_free (& slave -> bus -> slave_ida , slave -> index );
183-
184- return ret ;
185176}
186177
187- static void sdw_drv_shutdown (struct device * dev )
178+ static void sdw_bus_shutdown (struct device * dev )
188179{
189180 struct sdw_slave * slave = dev_to_sdw_dev (dev );
190181 struct sdw_driver * drv = drv_to_sdw_driver (dev -> driver );
191182
192- if (drv -> shutdown )
183+ if (dev -> driver && drv -> shutdown )
193184 drv -> shutdown (slave );
194185}
195186
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+
196196/**
197197 * __sdw_register_driver() - register a SoundWire Slave driver
198198 * @drv: driver to register
@@ -211,9 +211,6 @@ int __sdw_register_driver(struct sdw_driver *drv, struct module *owner)
211211 }
212212
213213 drv -> driver .owner = owner ;
214- drv -> driver .probe = sdw_drv_probe ;
215- drv -> driver .remove = sdw_drv_remove ;
216- drv -> driver .shutdown = sdw_drv_shutdown ;
217214 drv -> driver .dev_groups = sdw_attr_groups ;
218215
219216 return driver_register (& drv -> driver );
0 commit comments