Skip to content

Commit 3275158

Browse files
sudipm-mukherjeegregkh
authored andcommitted
parport: remove use of devmodel
Now that all the drivers using parallel port has been converted to use device model, there is no driver left which has devmodel as false. Remove the part of the code which expects devmodel can be false. Signed-off-by: Sudip Mukherjee <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent bae9def commit 3275158

File tree

1 file changed

+28
-53
lines changed

1 file changed

+28
-53
lines changed

drivers/parport/share.c

Lines changed: 28 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -278,46 +278,32 @@ static int port_detect(struct device *dev, void *dev_drv)
278278
int __parport_register_driver(struct parport_driver *drv, struct module *owner,
279279
const char *mod_name)
280280
{
281-
if (drv->devmodel) {
282-
/* using device model */
283-
int ret;
284-
285-
/* initialize common driver fields */
286-
drv->driver.name = drv->name;
287-
drv->driver.bus = &parport_bus_type;
288-
drv->driver.owner = owner;
289-
drv->driver.mod_name = mod_name;
290-
ret = driver_register(&drv->driver);
291-
if (ret)
292-
return ret;
281+
/* using device model */
282+
int ret;
293283

294-
/*
295-
* check if bus has any parallel port registered, if
296-
* none is found then load the lowlevel driver.
297-
*/
298-
ret = bus_for_each_dev(&parport_bus_type, NULL, NULL,
299-
port_detect);
300-
if (!ret)
301-
get_lowlevel_driver();
302-
303-
mutex_lock(&registration_lock);
304-
if (drv->match_port)
305-
bus_for_each_dev(&parport_bus_type, NULL, drv,
306-
port_check);
307-
mutex_unlock(&registration_lock);
308-
} else {
309-
struct parport *port;
310-
311-
drv->devmodel = false;
312-
313-
if (list_empty(&portlist))
314-
get_lowlevel_driver();
315-
mutex_lock(&registration_lock);
316-
list_for_each_entry(port, &portlist, list)
317-
drv->attach(port);
318-
list_add(&drv->list, &drivers);
319-
mutex_unlock(&registration_lock);
320-
}
284+
/* initialize common driver fields */
285+
drv->driver.name = drv->name;
286+
drv->driver.bus = &parport_bus_type;
287+
drv->driver.owner = owner;
288+
drv->driver.mod_name = mod_name;
289+
ret = driver_register(&drv->driver);
290+
if (ret)
291+
return ret;
292+
293+
/*
294+
* check if bus has any parallel port registered, if
295+
* none is found then load the lowlevel driver.
296+
*/
297+
ret = bus_for_each_dev(&parport_bus_type, NULL, NULL,
298+
port_detect);
299+
if (!ret)
300+
get_lowlevel_driver();
301+
302+
mutex_lock(&registration_lock);
303+
if (drv->match_port)
304+
bus_for_each_dev(&parport_bus_type, NULL, drv,
305+
port_check);
306+
mutex_unlock(&registration_lock);
321307

322308
return 0;
323309
}
@@ -352,17 +338,9 @@ static int port_detach(struct device *dev, void *_drv)
352338

353339
void parport_unregister_driver(struct parport_driver *drv)
354340
{
355-
struct parport *port;
356-
357341
mutex_lock(&registration_lock);
358-
if (drv->devmodel) {
359-
bus_for_each_dev(&parport_bus_type, NULL, drv, port_detach);
360-
driver_unregister(&drv->driver);
361-
} else {
362-
list_del_init(&drv->list);
363-
list_for_each_entry(port, &portlist, list)
364-
drv->detach(port);
365-
}
342+
bus_for_each_dev(&parport_bus_type, NULL, drv, port_detach);
343+
driver_unregister(&drv->driver);
366344
mutex_unlock(&registration_lock);
367345
}
368346
EXPORT_SYMBOL(parport_unregister_driver);
@@ -915,10 +893,7 @@ void parport_unregister_device(struct pardevice *dev)
915893
spin_unlock_irq(&port->waitlist_lock);
916894

917895
kfree(dev->state);
918-
if (dev->devmodel)
919-
device_unregister(&dev->dev);
920-
else
921-
kfree(dev);
896+
device_unregister(&dev->dev);
922897

923898
module_put(port->ops->owner);
924899
parport_put_port(port);

0 commit comments

Comments
 (0)