Index: uspace/drv/uhci/main.c
===================================================================
--- uspace/drv/uhci/main.c	(revision bb95594617f5944369191a642bdaf9e18608eace)
+++ uspace/drv/uhci/main.c	(revision 947d78839aee48678e3102bf15a647260383d50d)
@@ -27,4 +27,5 @@
  */
 #include <usb/hcdhubd.h>
+#include <usb/debug.h>
 #include <errno.h>
 #include "uhci.h"
@@ -36,4 +37,5 @@
 static int uhci_add_device(device_t *device)
 {
+	usb_dprintf(NAME, 1, "uhci_add_device() called\n");
 	device->ops = &uhci_ops;
 
@@ -41,4 +43,5 @@
 	 * We need to announce the presence of our root hub.
 	 */
+	usb_dprintf(NAME, 2, "adding root hub\n");
 	usb_hcd_add_root_hub(device);
 
@@ -61,4 +64,5 @@
 	 */
 	sleep(5);
+	usb_dprintf_enable(NAME, 5);
 
 	return driver_main(&uhci_driver);
Index: uspace/drv/vhc/debug.c
===================================================================
--- uspace/drv/vhc/debug.c	(revision bb95594617f5944369191a642bdaf9e18608eace)
+++ uspace/drv/vhc/debug.c	(revision 947d78839aee48678e3102bf15a647260383d50d)
@@ -35,31 +35,8 @@
 #include <stdio.h>
 #include <ipc/ipc.h>
+#include <usb/debug.h>
 
 #include "vhcd.h"
 
-/** Current debug level. */
-int debug_level = 0;
-
-/** Debugging printf.
- * This function is intended for single-line messages as it
- * automatically prints debugging prefix at the beginning of the
- * line.
- *
- * @see printf
- * @param level Debugging level.
- */
-void dprintf(int level, const char *format, ...)
-{
-	if (level > debug_level) {
-		return;
-	}
-	
-	printf("%s(%d): ", NAME, level);
-	va_list args;
-	va_start(args, format);
-	vprintf(format, args);
-	va_end(args);
-	printf("\n");
-}
 
 /** Debug print informing of invalid call.
Index: uspace/drv/vhc/hcd.c
===================================================================
--- uspace/drv/vhc/hcd.c	(revision bb95594617f5944369191a642bdaf9e18608eace)
+++ uspace/drv/vhc/hcd.c	(revision 947d78839aee48678e3102bf15a647260383d50d)
@@ -111,5 +111,5 @@
 	printf("%s: virtual USB host controller driver.\n", NAME);
 
-	debug_level = 10;
+	usb_dprintf_enable(NAME, 10);
 
 	fid_t fid = fibril_create(hc_manager_fibril, NULL);
Index: uspace/drv/vhc/vhcd.h
===================================================================
--- uspace/drv/vhc/vhcd.h	(revision bb95594617f5944369191a642bdaf9e18608eace)
+++ uspace/drv/vhc/vhcd.h	(revision 947d78839aee48678e3102bf15a647260383d50d)
@@ -36,4 +36,6 @@
 #define VHCD_VHCD_H_
 
+#include <usb/debug.h>
+
 #define NAME "vhc"
 #define NAME_DEV "hcd-virt-dev"
@@ -43,6 +45,6 @@
 #define DEVMAP_PATH_DEV NAMESPACE "/" NAME_DEV
 
-extern int debug_level;
-void dprintf(int, const char *, ...);
+#define dprintf(level, format, ...) \
+	usb_dprintf(NAME, (level), format "\n", ##__VA_ARGS__)
 void dprintf_inval_call(int, ipc_call_t, ipcarg_t);
 
