+ if (device->powered_pending == FALSE)
+ return -EALREADY;
+
+ device->powered_pending = FALSE;
+
+ device->reconnect = FALSE;
+
+ clear_scan_trigger(device);
+
+ g_hash_table_remove_all(device->networks);
+
+ err = device->driver->disable(device);
+ if (err < 0)
+ return err;
+
+ device->powered = FALSE;
+
+ __connman_technology_disable_device(device);
+
+ return 0;
+}
+
+static int set_powered(struct connman_device *device, connman_bool_t powered)
+{
+ DBG("device %p powered %d", device, powered);
+
+ if (powered == TRUE)
+ return __connman_device_enable(device);
+ else
+ return __connman_device_disable(device);