Index: uspace/drv/bus/usb/ohci/ohci_rh.c
===================================================================
--- uspace/drv/bus/usb/ohci/ohci_rh.c	(revision 3933937812f0887c305a2bdd7669b15a4a5ee052)
+++ uspace/drv/bus/usb/ohci/ohci_rh.c	(revision 52f188220a78b5c472cef657c7f5cd279b0f8d06)
@@ -43,4 +43,8 @@
 static usbvirt_device_ops_t ops;
 
+/** Initialize internal USB HUB class descriptor.
+ * @param instance OHCI root hub.
+ * Use register based info to create accurate descriptor.
+ */
 static void ohci_rh_hub_desc_init(ohci_rh_t *instance)
 {
@@ -83,5 +87,13 @@
 
 }
-
+/** Initialize OHCI root hub.
+ * @param instance Place to initialize.
+ * @param regs OHCI device registers.
+ * @param name Device name.
+ * return Error code, EOK on success.
+ *
+ * Selects preconfigured port powering mode, sets up descriptor, and
+ * initializes internal virtual hub.
+ */
 int ohci_rh_init(ohci_rh_t *instance, ohci_regs_t *regs, const char *name)
 {
@@ -137,8 +149,16 @@
 
 	ohci_rh_hub_desc_init(instance);
+	instance->unfinished_interrupt_transfer = NULL;
 	return virthub_base_init(&instance->base, name, &ops, instance,
 	    NULL, &instance->hub_descriptor.header, HUB_STATUS_CHANGE_PIPE);
 }
 
+/** Schedule USB request.
+ * @param instance OCHI root hub instance.
+ * @param batch USB requst batch to schedule.
+ * @return Always EOK.
+ * Most requests complete even before this function returns,
+ * status change requests might be postponed until there is something to report.
+ */
 int ohci_rh_schedule(ohci_rh_t *instance, usb_transfer_batch_t *batch)
 {
@@ -165,6 +185,14 @@
 }
 
+/** Handle OHCI RHSC interrupt.
+ * @param instance OHCI root hub isntance.
+ * @return Always EOK.
+ *
+ * Interrupt means there is a change of status to report. It may trigger
+ * processing of a postponed request.
+ */
 int ohci_rh_interrupt(ohci_rh_t *instance)
 {
+	//TODO atomic swap needed
 	usb_transfer_batch_t *batch = instance->unfinished_interrupt_transfer;
 	instance->unfinished_interrupt_transfer = NULL;
@@ -484,4 +512,5 @@
 };
 
+/** Virtual OHCI root hub ops */
 static usbvirt_device_ops_t ops = {
         .control = control_transfer_handlers,
