Index: uspace/drv/usbmid/explore.c
===================================================================
--- uspace/drv/usbmid/explore.c	(revision 871579827dc035beaf1288f0f9b5b5390cb24eb1)
+++ uspace/drv/usbmid/explore.c	(revision 6dd929cc1feb451d38f45065e8ed2de43c83c6bc)
@@ -202,4 +202,20 @@
 	if (interface_descriptors_count == (size_t) -1) {
 		usb_log_error("Problem parsing configuration descriptor.\n");
+		free(config_descriptor_raw);
+		free(interface_descriptors);
+		return false;
+	}
+
+	ddf_fun_t *ctl_fun = ddf_fun_create(dev->dev, fun_exposed, "ctl");
+	if (ctl_fun == NULL) {
+		usb_log_error("Failed to create control function.\n");
+		free(config_descriptor_raw);
+		free(interface_descriptors);
+		return false;
+	}
+	rc = ddf_fun_bind(ctl_fun);
+	if (rc != EOK) {
+		usb_log_error("Failed to bind control function: %s.\n",
+		    str_error(rc));
 		free(config_descriptor_raw);
 		free(interface_descriptors);
