At a lot of places in the code the PIPE_INTERRUPT flags and friends are used wrong. The wrong bits are compared to this flag resulting in wrong conditions. Also there are macros that should be used for PIPE_* flags. This patch tries to fix them all, however, I was not able to test the changes, because I do not have any of these boards. Review required! Signed-off-by: Remy Bohmer --- board/MAI/AmigaOneG3SE/usb_uhci.c | 2 +- board/mpl/common/usb_uhci.c | 2 +- cpu/arm920t/s3c24x0/usb_ohci.c | 8 ++++---- cpu/leon3/usb_uhci.c | 2 +- cpu/mips/au1x00_usb_ohci.c | 9 +++++---- cpu/mpc5xxx/usb_ohci.c | 8 ++++---- cpu/ppc4xx/usb_ohci.c | 8 ++++---- drivers/usb/isp116x-hcd.c | 4 ++-- drivers/usb/r8a66597-hcd.c | 2 +- 9 files changed, 23 insertions(+), 22 deletions(-) Index: u-boot-git-22092008/board/mpl/common/usb_uhci.c =================================================================== --- u-boot-git-22092008.orig/board/mpl/common/usb_uhci.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/board/mpl/common/usb_uhci.c 2008-10-07 14:28:06.000000000 +0200 @@ -792,7 +792,7 @@ int uhci_submit_rh_msg(struct usb_device unsigned short wIndex; unsigned short wLength; - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { printf("Root-Hub submit IRQ: NOT implemented\n"); #if 0 uhci->rh.urb = urb; Index: u-boot-git-22092008/cpu/arm920t/s3c24x0/usb_ohci.c =================================================================== --- u-boot-git-22092008.orig/cpu/arm920t/s3c24x0/usb_ohci.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/cpu/arm920t/s3c24x0/usb_ohci.c 2008-10-07 14:28:06.000000000 +0200 @@ -654,7 +654,7 @@ static void td_fill (ohci_t *ohci, unsig 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"); @@ -756,7 +756,7 @@ static void dl_transfer_length(td_t * td 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) @@ -1025,7 +1025,7 @@ pkt_print(dev, pipe, buffer, transfer_le #else wait_ms(1); #endif - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { info("Root-Hub submit IRQ: NOT implemented"); return 0; } @@ -1259,7 +1259,7 @@ int submit_common_msg(struct usb_device /* 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; Index: u-boot-git-22092008/cpu/leon3/usb_uhci.c =================================================================== --- u-boot-git-22092008.orig/cpu/leon3/usb_uhci.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/cpu/leon3/usb_uhci.c 2008-10-07 14:28:06.000000000 +0200 @@ -901,7 +901,7 @@ int uhci_submit_rh_msg(struct usb_device unsigned short wIndex; unsigned short wLength; - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { printf("Root-Hub submit IRQ: NOT implemented\n"); return 0; } Index: u-boot-git-22092008/cpu/mips/au1x00_usb_ohci.c =================================================================== --- u-boot-git-22092008.orig/cpu/mips/au1x00_usb_ohci.c 2008-10-07 14:27:58.000000000 +0200 +++ u-boot-git-22092008/cpu/mips/au1x00_usb_ohci.c 2008-10-07 14:28:26.000000000 +0200 @@ -654,7 +654,8 @@ static void td_fill (ohci_t *ohci, unsig td->index = index; td->data = (__u32)data; #ifdef OHCI_FILL_TRACE - if (1 || ((usb_pipetype(urb_priv->pipe) == PIPE_BULK) && usb_pipeout(urb_priv->pipe))) { + if (1 || (usb_pipebulk(urb_priv->pipe) && + usb_pipeout(urb_priv->pipe))) { for (i = 0; i < len; i++) printf("td->data[%d] %#2x\n",i, ((unsigned char *)(td->data+0x80000000))[i]); } @@ -758,7 +759,7 @@ static void dl_transfer_length(td_t * td 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) @@ -1015,7 +1016,7 @@ pkt_print(dev, pipe, buffer, transfer_le #else wait_ms(1); #endif - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { info("Root-Hub submit IRQ: NOT implemented"); return 0; } @@ -1249,7 +1250,7 @@ int submit_common_msg(struct usb_device /* 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; Index: u-boot-git-22092008/cpu/mpc5xxx/usb_ohci.c =================================================================== --- u-boot-git-22092008.orig/cpu/mpc5xxx/usb_ohci.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/cpu/mpc5xxx/usb_ohci.c 2008-10-07 14:28:06.000000000 +0200 @@ -660,7 +660,7 @@ static void td_fill (ohci_t *ohci, unsig 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"); @@ -761,7 +761,7 @@ static void dl_transfer_length(td_t * td tdCBP = ohci_cpu_to_le32 (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) @@ -1023,7 +1023,7 @@ static int ohci_submit_rh_msg(struct usb urb_priv.actual_length = 0; pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe)); #endif - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { info("Root-Hub submit IRQ: NOT implemented"); return 0; } @@ -1248,7 +1248,7 @@ int submit_common_msg(struct usb_device /* 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; Index: u-boot-git-22092008/drivers/usb/isp116x-hcd.c =================================================================== --- u-boot-git-22092008.orig/drivers/usb/isp116x-hcd.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/drivers/usb/isp116x-hcd.c 2008-10-07 14:28:06.000000000 +0200 @@ -687,7 +687,7 @@ retry_same: /* Start the data transfer */ /* Allow more time for a BULK device to react - some are slow */ - if (usb_pipetype(pipe) == PIPE_BULK) + if (usb_pipebulk(pipe)) timeout = 5000; else timeout = 100; @@ -822,7 +822,7 @@ static int isp116x_submit_rh_msg(struct u16 wIndex; u16 wLength; - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { INFO("Root-Hub submit IRQ: NOT implemented"); return 0; } Index: u-boot-git-22092008/drivers/usb/r8a66597-hcd.c =================================================================== --- u-boot-git-22092008.orig/drivers/usb/r8a66597-hcd.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/drivers/usb/r8a66597-hcd.c 2008-10-07 14:28:06.000000000 +0200 @@ -654,7 +654,7 @@ static int r8a66597_submit_rh_msg(struct R8A66597_DPRINT("%s\n", __func__); - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { printf("Root-Hub submit IRQ: NOT implemented"); return 0; } Index: u-boot-git-22092008/board/MAI/AmigaOneG3SE/usb_uhci.c =================================================================== --- u-boot-git-22092008.orig/board/MAI/AmigaOneG3SE/usb_uhci.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/board/MAI/AmigaOneG3SE/usb_uhci.c 2008-10-07 14:28:06.000000000 +0200 @@ -801,7 +801,7 @@ int uhci_submit_rh_msg(struct usb_device unsigned short wIndex; unsigned short wLength; - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { printf("Root-Hub submit IRQ: NOT implemented\n"); #if 0 uhci->rh.urb = urb; Index: u-boot-git-22092008/cpu/ppc4xx/usb_ohci.c =================================================================== --- u-boot-git-22092008.orig/cpu/ppc4xx/usb_ohci.c 2008-10-07 14:16:58.000000000 +0200 +++ u-boot-git-22092008/cpu/ppc4xx/usb_ohci.c 2008-10-07 14:28:06.000000000 +0200 @@ -660,7 +660,7 @@ static void td_fill (ohci_t *ohci, unsig 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"); @@ -761,7 +761,7 @@ static void dl_transfer_length(td_t * td tdCBP = ohci_cpu_to_le32 (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) @@ -1023,7 +1023,7 @@ static int ohci_submit_rh_msg(struct usb urb_priv.actual_length = 0; pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe)); #endif - if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) { + if (usb_pipeint(pipe)) { info("Root-Hub submit IRQ: NOT implemented"); return 0; } @@ -1248,7 +1248,7 @@ int submit_common_msg(struct usb_device /* 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; --