diff --git a/drivers/usb/usb_ohci.c b/drivers/usb/usb_ohci.c
index 76c6390..660b4b3 100644
--- a/drivers/usb/usb_ohci.c
+++ b/drivers/usb/usb_ohci.c
@@ -856,8 +856,7 @@
 	td->index = index;
 	td->data = (__u32)data;
 #ifdef OHCI_FILL_TRACE
-	if ((usb_pipetype(urb_priv->pipe) == PIPE_BULK) &&
-						usb_pipeout(urb_priv->pipe)) {
+	if (usb_pipebulk(urb_priv->pipe) && usb_pipeout(urb_priv->pipe)) {
 		for (i = 0; i < len; i++)
 		printf("td->data[%d] %#2x ", i, ((unsigned char *)td->data)[i]);
 		printf("\n");
@@ -983,7 +982,7 @@
 	tdBE   = m32_swap(td->hwBE);
 	tdCBP  = m32_swap(td->hwCBP);
 
-	if (!(usb_pipetype(lurb_priv->pipe) == PIPE_CONTROL &&
+	if (!(usb_pipecontrol(lurb_priv->pipe) &&
 	    ((td->index == 0) || (td->index == lurb_priv->length - 1)))) {
 		if (tdBE != 0) {
 			if (td->hwCBP == 0)
@@ -1096,8 +1095,7 @@
 	dbg("dl_done_list: processing TD %x, len %x\n",
 		lurb_priv->td_cnt, lurb_priv->length);
 
-	if (ed->state != ED_NEW &&
-		(usb_pipetype(lurb_priv->pipe) != PIPE_INTERRUPT)) {
+	if (ed->state != ED_NEW && (!usb_pipeint(lurb_priv->pipe))) {
 		edHeadP = m32_swap(ed->hwHeadP) & 0xfffffff0;
 		edTailP = m32_swap(ed->hwTailP);
 
@@ -1287,7 +1285,7 @@
 #else
 	wait_ms(1);
 #endif
-	if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) {
+	if (usb_pipeint(pipe)) {
 		info("Root-Hub submit IRQ: NOT implemented");
 		return 0;
 	}
@@ -1538,7 +1536,7 @@
 
 	/* allow more time for a BULK device to react - some are slow */
 #define BULK_TO	 5000	/* timeout in milliseconds */
-	if (usb_pipetype(pipe) == PIPE_BULK)
+	if (usb_pipebulk(pipe))
 		timeout = BULK_TO;
 	else
 		timeout = 100;
@@ -1591,7 +1589,7 @@
 #endif
 
 	/* free TDs in urb_priv */
-	if (usb_pipetype(pipe) != PIPE_INTERRUPT)
+	if (!usb_pipeint(pipe))
 		urb_free_priv(urb);
 	return 0;
 }
