Index: uspace/drv/bus/usb/usbmid/main.c
===================================================================
--- uspace/drv/bus/usb/usbmid/main.c	(revision 609f3f73e73c30384f7aee36d623ba59bb49b83b)
+++ uspace/drv/bus/usb/usbmid/main.c	(revision 5ff5dc587b62bc1f03ece3bd7934c0aa959ff139)
@@ -142,5 +142,9 @@
 static int usbmid_function_online(ddf_fun_t *fun)
 {
-	/* TODO: What if this is the control function? */
+	usb_device_t *usb_dev = ddf_dev_data_get(ddf_fun_get_dev(fun));
+	usb_mid_t *usb_mid = usb_device_data_get(usb_dev);
+	if (fun == usb_mid->ctl_fun)
+		return ENOTSUP;
+
 	return ddf_fun_online(fun);
 }
@@ -148,5 +152,9 @@
 static int usbmid_function_offline(ddf_fun_t *fun)
 {
-	/* TODO: What if this is the control function? */
+	usb_device_t *usb_dev = ddf_dev_data_get(ddf_fun_get_dev(fun));
+	usb_mid_t *usb_mid = usb_device_data_get(usb_dev);
+	if (fun == usb_mid->ctl_fun)
+		return ENOTSUP;
+
 	return ddf_fun_offline(fun);
 }
