projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'u-boot-imx/master'
[oweals/u-boot.git]
/
drivers
/
usb
/
musb
/
musb_udc.c
diff --git
a/drivers/usb/musb/musb_udc.c
b/drivers/usb/musb/musb_udc.c
index fc43cf4f09d76db4d6852ee253e7eef04665f357..e0b4217dc3f5060c1fe8d2489f452722d804b003 100644
(file)
--- a/
drivers/usb/musb/musb_udc.c
+++ b/
drivers/usb/musb/musb_udc.c
@@
-57,6
+57,8
@@
#include "musb_core.h"
#if defined(CONFIG_USB_OMAP3)
#include "omap3.h"
#include "musb_core.h"
#if defined(CONFIG_USB_OMAP3)
#include "omap3.h"
+#elif defined(CONFIG_USB_AM35X)
+#include "am35x.h"
#elif defined(CONFIG_USB_DAVINCI)
#include "davinci.h"
#endif
#elif defined(CONFIG_USB_DAVINCI)
#include "davinci.h"
#endif
@@
-160,8
+162,6
@@
static void musb_db_regs(void)
static void musb_peri_softconnect(void)
{
u8 power, devctl;
static void musb_peri_softconnect(void)
{
u8 power, devctl;
- u8 intrusb;
- u16 intrrx, intrtx;
/* Power off MUSB */
power = readb(&musbr->power);
/* Power off MUSB */
power = readb(&musbr->power);
@@
-169,9
+169,9
@@
static void musb_peri_softconnect(void)
writeb(power, &musbr->power);
/* Read intr to clear */
writeb(power, &musbr->power);
/* Read intr to clear */
-
intrusb =
readb(&musbr->intrusb);
-
intrrx =
readw(&musbr->intrrx);
-
intrtx =
readw(&musbr->intrtx);
+ readb(&musbr->intrusb);
+ readw(&musbr->intrrx);
+ readw(&musbr->intrtx);
udelay(1000 * 1000); /* 1 sec */
udelay(1000 * 1000); /* 1 sec */
@@
-640,8
+640,17
@@
static void musb_peri_ep0(void)
static void musb_peri_rx_ep(unsigned int ep)
{
static void musb_peri_rx_ep(unsigned int ep)
{
- u16 peri_rxcount = readw(&musbr->ep[ep].epN.rxcount);
+ u16 peri_rxcount;
+ u8 peri_rxcsr = readw(&musbr->ep[ep].epN.rxcsr);
+ if (!(peri_rxcsr & MUSB_RXCSR_RXPKTRDY)) {
+ if (debug_level > 0)
+ serial_printf("ERROR : %s %d without MUSB_RXCSR_RXPKTRDY set\n",
+ __PRETTY_FUNCTION__, ep);
+ return;
+ }
+
+ peri_rxcount = readw(&musbr->ep[ep].epN.rxcount);
if (peri_rxcount) {
struct usb_endpoint_instance *endpoint;
u32 length;
if (peri_rxcount) {
struct usb_endpoint_instance *endpoint;
u32 length;