diff options
author | Johan Hovold <johan@hovoldconsulting.com> | 2016-04-23 18:47:26 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-04-25 11:08:30 -0700 |
commit | 1e1565e5fee47362baee92506749d80167a1456e (patch) | |
tree | aa5dddbd45fd29f5a244d70298aeec2dfef8a22f /drivers | |
parent | 36602a2981c85de7b0b8600eb12cbad3d80eacd9 (diff) |
greybus: interface: add active state flag
Add active state flag to avoid deactivating an interface which is
already off.
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/greybus/interface.c | 7 | ||||
-rw-r--r-- | drivers/staging/greybus/interface.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/staging/greybus/interface.c b/drivers/staging/greybus/interface.c index 2553312dc332..e0c38f158435 100644 --- a/drivers/staging/greybus/interface.c +++ b/drivers/staging/greybus/interface.c @@ -409,6 +409,8 @@ int gb_interface_activate(struct gb_interface *intf) if (ret) return ret; + intf->active = true; + return 0; } @@ -419,7 +421,12 @@ int gb_interface_activate(struct gb_interface *intf) */ void gb_interface_deactivate(struct gb_interface *intf) { + if (!intf->active) + return; + gb_interface_route_destroy(intf); + + intf->active = false; } /* diff --git a/drivers/staging/greybus/interface.h b/drivers/staging/greybus/interface.h index 61399e7ea102..c9c1c92ece46 100644 --- a/drivers/staging/greybus/interface.h +++ b/drivers/staging/greybus/interface.h @@ -43,6 +43,7 @@ struct gb_interface { bool disconnected; bool ejected; + bool active; bool enabled; }; #define to_gb_interface(d) container_of(d, struct gb_interface, dev) |