mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 01:04:08 +08:00
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 <sudipm.mukherjee@gmail.com> Link: https://lore.kernel.org/r/20200403134325.11523-11-sudipm.mukherjee@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bae9defb06
commit
3275158fa5
@ -278,46 +278,32 @@ static int port_detect(struct device *dev, void *dev_drv)
|
||||
int __parport_register_driver(struct parport_driver *drv, struct module *owner,
|
||||
const char *mod_name)
|
||||
{
|
||||
if (drv->devmodel) {
|
||||
/* using device model */
|
||||
int ret;
|
||||
/* using device model */
|
||||
int ret;
|
||||
|
||||
/* initialize common driver fields */
|
||||
drv->driver.name = drv->name;
|
||||
drv->driver.bus = &parport_bus_type;
|
||||
drv->driver.owner = owner;
|
||||
drv->driver.mod_name = mod_name;
|
||||
ret = driver_register(&drv->driver);
|
||||
if (ret)
|
||||
return ret;
|
||||
/* initialize common driver fields */
|
||||
drv->driver.name = drv->name;
|
||||
drv->driver.bus = &parport_bus_type;
|
||||
drv->driver.owner = owner;
|
||||
drv->driver.mod_name = mod_name;
|
||||
ret = driver_register(&drv->driver);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* check if bus has any parallel port registered, if
|
||||
* none is found then load the lowlevel driver.
|
||||
*/
|
||||
ret = bus_for_each_dev(&parport_bus_type, NULL, NULL,
|
||||
port_detect);
|
||||
if (!ret)
|
||||
get_lowlevel_driver();
|
||||
/*
|
||||
* check if bus has any parallel port registered, if
|
||||
* none is found then load the lowlevel driver.
|
||||
*/
|
||||
ret = bus_for_each_dev(&parport_bus_type, NULL, NULL,
|
||||
port_detect);
|
||||
if (!ret)
|
||||
get_lowlevel_driver();
|
||||
|
||||
mutex_lock(®istration_lock);
|
||||
if (drv->match_port)
|
||||
bus_for_each_dev(&parport_bus_type, NULL, drv,
|
||||
port_check);
|
||||
mutex_unlock(®istration_lock);
|
||||
} else {
|
||||
struct parport *port;
|
||||
|
||||
drv->devmodel = false;
|
||||
|
||||
if (list_empty(&portlist))
|
||||
get_lowlevel_driver();
|
||||
mutex_lock(®istration_lock);
|
||||
list_for_each_entry(port, &portlist, list)
|
||||
drv->attach(port);
|
||||
list_add(&drv->list, &drivers);
|
||||
mutex_unlock(®istration_lock);
|
||||
}
|
||||
mutex_lock(®istration_lock);
|
||||
if (drv->match_port)
|
||||
bus_for_each_dev(&parport_bus_type, NULL, drv,
|
||||
port_check);
|
||||
mutex_unlock(®istration_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -352,17 +338,9 @@ static int port_detach(struct device *dev, void *_drv)
|
||||
|
||||
void parport_unregister_driver(struct parport_driver *drv)
|
||||
{
|
||||
struct parport *port;
|
||||
|
||||
mutex_lock(®istration_lock);
|
||||
if (drv->devmodel) {
|
||||
bus_for_each_dev(&parport_bus_type, NULL, drv, port_detach);
|
||||
driver_unregister(&drv->driver);
|
||||
} else {
|
||||
list_del_init(&drv->list);
|
||||
list_for_each_entry(port, &portlist, list)
|
||||
drv->detach(port);
|
||||
}
|
||||
bus_for_each_dev(&parport_bus_type, NULL, drv, port_detach);
|
||||
driver_unregister(&drv->driver);
|
||||
mutex_unlock(®istration_lock);
|
||||
}
|
||||
EXPORT_SYMBOL(parport_unregister_driver);
|
||||
@ -915,10 +893,7 @@ void parport_unregister_device(struct pardevice *dev)
|
||||
spin_unlock_irq(&port->waitlist_lock);
|
||||
|
||||
kfree(dev->state);
|
||||
if (dev->devmodel)
|
||||
device_unregister(&dev->dev);
|
||||
else
|
||||
kfree(dev);
|
||||
device_unregister(&dev->dev);
|
||||
|
||||
module_put(port->ops->owner);
|
||||
parport_put_port(port);
|
||||
|
Loading…
Reference in New Issue
Block a user