Index: uspace/drv/bus/usb/ehci/hc.c
===================================================================
--- uspace/drv/bus/usb/ehci/hc.c	(revision dd8ab1cacb307cb1ac01aa4918c789d13e112e56)
+++ uspace/drv/bus/usb/ehci/hc.c	(revision 4c6de4fedd187a7892fc56495e5fedb52f123582)
@@ -96,7 +96,9 @@
  * @param[in] hw_res Device's resources.
  *
+ * @param[out] irq
+ *
  * @return Error code.
  */
-int ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res)
+int ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq)
 {
 	assert(code);
@@ -146,5 +148,6 @@
 	    RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]);
 
-	return hw_res->irqs.irqs[0];
+	*irq = hw_res->irqs.irqs[0];
+	return EOK;
 }
 
Index: uspace/drv/bus/usb/ehci/hc.h
===================================================================
--- uspace/drv/bus/usb/ehci/hc.h	(revision dd8ab1cacb307cb1ac01aa4918c789d13e112e56)
+++ uspace/drv/bus/usb/ehci/hc.h	(revision 4c6de4fedd187a7892fc56495e5fedb52f123582)
@@ -88,5 +88,5 @@
 void hc_dequeue_endpoint(hc_t *instance, const endpoint_t *ep);
 
-int ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res);
+int ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq);
 
 void ehci_hc_interrupt(hcd_t *hcd, uint32_t status);
Index: uspace/drv/bus/usb/ohci/hc.c
===================================================================
--- uspace/drv/bus/usb/ohci/hc.c	(revision dd8ab1cacb307cb1ac01aa4918c789d13e112e56)
+++ uspace/drv/bus/usb/ohci/hc.c	(revision 4c6de4fedd187a7892fc56495e5fedb52f123582)
@@ -103,5 +103,5 @@
  * @return Error code.
  */
-int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res)
+int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq)
 {
 	assert(code);
@@ -141,5 +141,6 @@
 	    RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]);
 
-	return hw_res->irqs.irqs[0];
+	*irq = hw_res->irqs.irqs[0];
+	return EOK;
 }
 
Index: uspace/drv/bus/usb/ohci/hc.h
===================================================================
--- uspace/drv/bus/usb/ohci/hc.h	(revision dd8ab1cacb307cb1ac01aa4918c789d13e112e56)
+++ uspace/drv/bus/usb/ohci/hc.h	(revision 4c6de4fedd187a7892fc56495e5fedb52f123582)
@@ -86,5 +86,5 @@
 extern void hc_dequeue_endpoint(hc_t *, const endpoint_t *);
 
-int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res);
+int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq);
 
 extern void ohci_hc_interrupt(hcd_t *, uint32_t);
Index: uspace/drv/bus/usb/uhci/hc.c
===================================================================
--- uspace/drv/bus/usb/uhci/hc.c	(revision dd8ab1cacb307cb1ac01aa4918c789d13e112e56)
+++ uspace/drv/bus/usb/uhci/hc.c	(revision 4c6de4fedd187a7892fc56495e5fedb52f123582)
@@ -103,8 +103,9 @@
  * @param[out] code IRQ code structure.
  * @param[in] hw_res Device's resources.
+ * @param[out] irq
  *
  * @return Error code.
  */
-int uhci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res)
+int uhci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq)
 {
 	assert(code);
@@ -142,5 +143,6 @@
 	    RNGABSPTR(regs), RNGSZ(regs), hw_res->irqs.irqs[0]);
 
-	return hw_res->irqs.irqs[0];
+	*irq = hw_res->irqs.irqs[0];
+	return EOK;
 }
 
Index: uspace/drv/bus/usb/uhci/hc.h
===================================================================
--- uspace/drv/bus/usb/uhci/hc.h	(revision dd8ab1cacb307cb1ac01aa4918c789d13e112e56)
+++ uspace/drv/bus/usb/uhci/hc.h	(revision 4c6de4fedd187a7892fc56495e5fedb52f123582)
@@ -127,5 +127,5 @@
 extern void hc_fini(hc_t *);
 
-extern int uhci_hc_gen_irq_code(irq_code_t *, const hw_res_list_parsed_t *);
+extern int uhci_hc_gen_irq_code(irq_code_t *, const hw_res_list_parsed_t *, int *);
 
 extern void uhci_hc_interrupt(hcd_t *, uint32_t);
