[PATCH] Driver core: pass interface to class interface methods

Driver core: pass interface to class intreface methods

Pass interface as argument to add() and remove() class interface
methods. This way a subsystem can implement generic add/remove
handlers and then call interface-specific ones.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Dmitry Torokhov
2005-09-15 02:01:36 -05:00
committed by Greg Kroah-Hartman
parent 7bd7b09142
commit d8539d81ae
6 changed files with 22 additions and 16 deletions

View File

@@ -532,7 +532,7 @@ int class_device_add(struct class_device *class_dev)
list_add_tail(&class_dev->node, &parent->children);
list_for_each_entry(class_intf, &parent->interfaces, node)
if (class_intf->add)
class_intf->add(class_dev);
class_intf->add(class_dev, class_intf);
up(&parent->sem);
}
@@ -612,7 +612,7 @@ void class_device_del(struct class_device *class_dev)
list_del_init(&class_dev->node);
list_for_each_entry(class_intf, &parent->interfaces, node)
if (class_intf->remove)
class_intf->remove(class_dev);
class_intf->remove(class_dev, class_intf);
up(&parent->sem);
}
@@ -729,7 +729,7 @@ int class_interface_register(struct class_interface *class_intf)
list_add_tail(&class_intf->node, &parent->interfaces);
if (class_intf->add) {
list_for_each_entry(class_dev, &parent->children, node)
class_intf->add(class_dev);
class_intf->add(class_dev, class_intf);
}
up(&parent->sem);
@@ -748,7 +748,7 @@ void class_interface_unregister(struct class_interface *class_intf)
list_del_init(&class_intf->node);
if (class_intf->remove) {
list_for_each_entry(class_dev, &parent->children, node)
class_intf->remove(class_dev);
class_intf->remove(class_dev, class_intf);
}
up(&parent->sem);