summaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/interface.c
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-07-20 16:40:21 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2016-07-20 10:16:54 -0700
commit27b9e257dd57fba0d63d996bf050fcbd94d998d7 (patch)
tree16c564521263aa4f9a1c29fa60e181a0dc5e70bf /drivers/staging/greybus/interface.c
parenta212b7586712208804d3d51efa9fdf6e23b2480a (diff)
downloadop-kernel-dev-27b9e257dd57fba0d63d996bf050fcbd94d998d7.zip
op-kernel-dev-27b9e257dd57fba0d63d996bf050fcbd94d998d7.tar.gz
greybus: interface: do not read DME during reactivation
It will soon be possible to reactivate an interface that has been powered down after already having been activated. In that case there's no need to re-read the DME attributes as part of activation as the values are already cached. Reviewed-by: Sandeep Patil <sspatil@google.com> Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Reviewed-by: Alex Elder <elder@linaro.org> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by: Patrick Titiano <ptitiano@baylibre.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/interface.c')
-rw-r--r--drivers/staging/greybus/interface.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/staging/greybus/interface.c b/drivers/staging/greybus/interface.c
index e21491b..9fe6764 100644
--- a/drivers/staging/greybus/interface.c
+++ b/drivers/staging/greybus/interface.c
@@ -95,6 +95,10 @@ static int gb_interface_read_dme(struct gb_interface *intf)
{
int ret;
+ /* DME attributes have already been read */
+ if (intf->dme_read)
+ return 0;
+
ret = gb_interface_dme_attr_get(intf, DME_DDBL1_MANUFACTURERID,
&intf->ddbl1_manufacturer_id);
if (ret)
@@ -111,7 +115,13 @@ static int gb_interface_read_dme(struct gb_interface *intf)
intf->quirks |= GB_INTERFACE_QUIRK_NO_INIT_STATUS;
}
- return gb_interface_read_ara_dme(intf);
+ ret = gb_interface_read_ara_dme(intf);
+ if (ret)
+ return ret;
+
+ intf->dme_read = true;
+
+ return 0;
}
static int gb_interface_route_create(struct gb_interface *intf)
OpenPOWER on IntegriCloud