Index: uspace/drv/bus/usb/uhci/hc.c
===================================================================
--- uspace/drv/bus/usb/uhci/hc.c	(revision 8eb70957e5ae3e8ac37461ddbda50c33fb460222)
+++ uspace/drv/bus/usb/uhci/hc.c	(revision c913f71eb6852c8e23cc4333e1aea829429afbe8)
@@ -323,15 +323,27 @@
 static int device_online(device_t *device)
 {
-	// FIXME: Implement me!
-
-	return ENOTSUP;
-}
-
-static int device_offline(device_t *device)
-{
+	int err;
 	hc_t *instance = bus_to_hc(device->bus);
 	assert(instance);
 
+	/* Allow creation of new endpoints and transfers. */
+	usb_log_info("Device(%d): Going online.", device->address);
+	fibril_mutex_lock(&device->guard);
+	device->online = true;
+	fibril_mutex_unlock(&device->guard);
+
+	if ((err = ddf_fun_online(device->fun))) {
+		return err;
+	}
+
+	return EOK;
+}
+
+static int device_offline(device_t *device)
+{
 	int err;
+	hc_t *instance = bus_to_hc(device->bus);
+	assert(instance);
+
 	/* Tear down all drivers working with the device. */
 	if ((err = ddf_fun_offline(device->fun))) {
