component: allow missing unbind callback
authorMarco Felsch <m.felsch@pengutronix.de>
Thu, 27 Feb 2020 10:45:47 +0000 (11:45 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Mar 2020 13:13:33 +0000 (14:13 +0100)
The component framework reuses the devres managed functions. There is no
need to specify an unbind() callback if the driver only wants to release
the devres managed resources. The bind/unbind is like the probe/remove
pair. The bind/probe is necessary and the unbind/remove is optional.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://lore.kernel.org/r/20200227104547.30085-1-m.felsch@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/component.c

index c7879f5..e977041 100644 (file)
@@ -528,7 +528,8 @@ static void component_unbind(struct component *component,
 {
        WARN_ON(!component->bound);
 
-       component->ops->unbind(component->dev, master->dev, data);
+       if (component->ops && component->ops->unbind)
+               component->ops->unbind(component->dev, master->dev, data);
        component->bound = false;
 
        /* Release all resources claimed in the binding of this component */