Index: uspace/drv/uhci-hcd/root_hub.c
===================================================================
--- uspace/drv/uhci-hcd/root_hub.c	(revision 6cd7b17d7b8173031c30f078ffcbd87ec20b2e01)
+++ uspace/drv/uhci-hcd/root_hub.c	(revision 687efaa9ee025f3d8c5d59617915bae3b1889ca0)
@@ -35,39 +35,11 @@
 #include <errno.h>
 #include <stdio.h>
-
 #include <usb_iface.h>
-
 #include <usb/debug.h>
 
 #include "root_hub.h"
+
+extern device_ops_t child_ops;
 /*----------------------------------------------------------------------------*/
-static int usb_iface_get_hc_handle(device_t *dev, devman_handle_t *handle)
-{
-  assert(dev);
-  assert(dev->parent != NULL);
-
-  device_t *parent = dev->parent;
-
-  if (parent->ops && parent->ops->interfaces[USB_DEV_IFACE]) {
-    usb_iface_t *usb_iface
-        = (usb_iface_t *) parent->ops->interfaces[USB_DEV_IFACE];
-    assert(usb_iface != NULL);
-    if (usb_iface->get_hc_handle) {
-      int rc = usb_iface->get_hc_handle(parent, handle);
-      return rc;
-    }
-  }
-
-  return ENOTSUP;
-}
-/*----------------------------------------------------------------------------*/
-static usb_iface_t usb_iface = {
-  .get_hc_handle = usb_iface_get_hc_handle
-};
-
-static device_ops_t rh_ops = {
-	.interfaces[USB_DEV_IFACE] = &usb_iface
-};
-
 int setup_root_hub(device_t **device, device_t *hc)
 {
@@ -108,5 +80,5 @@
 	hub->name = name;
 	hub->parent = hc;
-	hub->ops = &rh_ops;
+	hub->ops = &child_ops;
 
 	*device = hub;
Index: uspace/lib/usb/src/recognise.c
===================================================================
--- uspace/lib/usb/src/recognise.c	(revision 6cd7b17d7b8173031c30f078ffcbd87ec20b2e01)
+++ uspace/lib/usb/src/recognise.c	(revision 687efaa9ee025f3d8c5d59617915bae3b1889ca0)
@@ -70,5 +70,5 @@
 };
 
-static device_ops_t child_ops = {
+device_ops_t child_ops = {
 	.interfaces[USB_DEV_IFACE] = &usb_iface
 };
