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>
{
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)
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)
bool active;
bool enabled;
bool mode_switch;
+ bool dme_read;
struct work_struct mode_switch_work;
struct completion mode_switch_completion;