Index: uspace/lib/usb/src/pipes.c
===================================================================
--- uspace/lib/usb/src/pipes.c	(revision d48fcc00df46e4e3afbc3f5b4f3a2ca8ae0495cc)
+++ uspace/lib/usb/src/pipes.c	(revision e9ce69699966fcb5fe2228f76d75715aad6e3200)
@@ -242,4 +242,7 @@
  * necessary.
  *
+ * @deprecated
+ * Obsoleted with introduction of usb_pipe_start_long_transfer
+ *
  * @param pipe Endpoint pipe to start the session on.
  * @return Error code.
@@ -247,5 +250,6 @@
 int usb_pipe_start_session(usb_pipe_t *pipe)
 {
-	return pipe_add_ref(pipe);
+	usb_log_warning("usb_pipe_start_session() was deprecated.\n");
+	return EOK;
 }
 
@@ -253,4 +257,7 @@
 /** Ends a session on the endpoint pipe.
  *
+ * @deprecated
+ * Obsoleted with introduction of usb_pipe_end_long_transfer
+ *
  * @see usb_pipe_start_session
  *
@@ -260,5 +267,5 @@
 int usb_pipe_end_session(usb_pipe_t *pipe)
 {
-	pipe_drop_ref(pipe);
+	usb_log_warning("usb_pipe_end_session() was deprecated.\n");
 	return EOK;
 }
@@ -280,4 +287,30 @@
 }
 
+/** Prepare pipe for a long transfer.
+ *
+ * By a long transfer is mean transfer consisting of several
+ * requests to the HC.
+ * Calling such function is optional and it has positive effect of
+ * improved performance because IPC session is initiated only once.
+ *
+ * @param pipe Pipe over which the transfer will happen.
+ * @return Error code.
+ */
+int usb_pipe_start_long_transfer(usb_pipe_t *pipe)
+{
+	return pipe_add_ref(pipe);
+}
+
+/** Terminate a long transfer on a pipe.
+ *
+ * @see usb_pipe_start_long_transfer
+ *
+ * @param pipe Pipe where to end the long transfer.
+ */
+void usb_pipe_end_long_transfer(usb_pipe_t *pipe)
+{
+	pipe_drop_ref(pipe);
+}
+
 /**
  * @}
