Index: uspace/lib/usb/include/usb/devdrv.h
===================================================================
--- uspace/lib/usb/include/usb/devdrv.h	(revision 749f18c561ed54bf02c7f4d5c42a49ff44a8a5a7)
+++ uspace/lib/usb/include/usb/devdrv.h	(revision 054ed846de9c6f3dabfc1f854569a8bf0abe0484)
@@ -47,4 +47,9 @@
 	 */
 	usb_endpoint_mapping_t *pipes;
+	/** Current interface.
+	 * Usually, drivers operate on single interface only.
+	 * This item contains the value of the interface or -1 for any.
+	 */
+	int interface_no;
 	/** Generic DDF device backing this one. */
 	ddf_dev_t *ddf_dev;
Index: uspace/lib/usb/src/devdrv.c
===================================================================
--- uspace/lib/usb/src/devdrv.c	(revision 749f18c561ed54bf02c7f4d5c42a49ff44a8a5a7)
+++ uspace/lib/usb/src/devdrv.c	(revision 054ed846de9c6f3dabfc1f854569a8bf0abe0484)
@@ -109,5 +109,5 @@
 {
 	int rc;
-	int my_interface = usb_device_get_assigned_interface(dev->ddf_dev);
+	dev->interface_no = usb_device_get_assigned_interface(dev->ddf_dev);
 
 	size_t pipe_count = count_other_pipes(drv);
@@ -134,5 +134,5 @@
 
 		dev->pipes[i].description = drv->endpoints[i];
-		dev->pipes[i].interface_no = my_interface;
+		dev->pipes[i].interface_no = dev->interface_no;
 	}
 
