summaryrefslogtreecommitdiff
path: root/drivers/staging/dwc2
diff options
context:
space:
mode:
authorPaul Zimmerman <Paul.Zimmerman@synopsys.com>2013-06-24 22:34:23 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-25 02:56:10 +0400
commit81a589555f4951d4b01fb66c0dc2092fa1b6c4ac (patch)
tree90def25fce86bef67b67c3fd5f7b3d41c262a7ee /drivers/staging/dwc2
parent9d2ea4dec6da969017103da89859e843b5121b20 (diff)
downloadlinux-81a589555f4951d4b01fb66c0dc2092fa1b6c4ac.tar.xz
staging: dwc2: fix thinko in dwc2_hc_set_even_odd_frame()
I screwed up the sense of this if() statement while porting our vendor driver to create the dwc2 driver. This caused frame overrun errors on periodic transfers when there were other transfers active in the same (micro)frame. With this fix, the dwc2 driver now works on the Raspberry Pi platform even with the USB Ethernet controller enabled, where before that would cause all USB devices to stop working. Thanks to Ray Jui and Jerry Lin at Broadcom for tracking this down. Reported-by: Ray Jui <rjui@broadcom.com> Signed-off-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/dwc2')
-rw-r--r--drivers/staging/dwc2/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/dwc2/core.c b/drivers/staging/dwc2/core.c
index ac8ed15064dc..e3a0e770301d 100644
--- a/drivers/staging/dwc2/core.c
+++ b/drivers/staging/dwc2/core.c
@@ -1148,7 +1148,7 @@ static void dwc2_hc_set_even_odd_frame(struct dwc2_hsotg *hsotg,
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
/* 1 if _next_ frame is odd, 0 if it's even */
- if (dwc2_hcd_get_frame_number(hsotg) & 0x1)
+ if (!(dwc2_hcd_get_frame_number(hsotg) & 0x1))
*hcchar |= HCCHAR_ODDFRM;
}
}