diff options
| author | Amaury Pouly <pamaury@rockbox.org> | 2010-09-07 21:01:16 +0000 |
|---|---|---|
| committer | Amaury Pouly <pamaury@rockbox.org> | 2010-09-07 21:01:16 +0000 |
| commit | 03d391d57a57bd9a96b5ffe16c82bf2813cd6c20 (patch) | |
| tree | 562401f8969f11d567ecf27915addabfd5d11de0 | |
| parent | f140930714df1b2d01d9e1d00d2a1097793f2a6d (diff) | |
| download | rockbox-03d391d57a57bd9a96b5ffe16c82bf2813cd6c20.zip rockbox-03d391d57a57bd9a96b5ffe16c82bf2813cd6c20.tar.gz rockbox-03d391d57a57bd9a96b5ffe16c82bf2813cd6c20.tar.bz2 rockbox-03d391d57a57bd9a96b5ffe16c82bf2813cd6c20.tar.xz | |
as3525v2-usb: don't disable data transfers !
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28030 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/target/arm/as3525/usb-drv-as3525v2.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/firmware/target/arm/as3525/usb-drv-as3525v2.c b/firmware/target/arm/as3525/usb-drv-as3525v2.c index 7c0ca5f..4b02935 100644 --- a/firmware/target/arm/as3525/usb-drv-as3525v2.c +++ b/firmware/target/arm/as3525/usb-drv-as3525v2.c @@ -292,7 +292,7 @@ static void reset_endpoints(void) wakeup_signal(&endpoints[ep][DIR_IN].complete); endpoints[ep][DIR_IN].wait = false; if(DIEPCTL(ep) & DEPCTL_epena) - DIEPCTL(ep) = DEPCTL_epdis | DEPCTL_snak; + DIEPCTL(ep) = DEPCTL_snak; else DIEPCTL(ep) = 0; } @@ -305,7 +305,7 @@ static void reset_endpoints(void) wakeup_signal(&endpoints[ep][DIR_OUT].complete); endpoints[ep][DIR_OUT].wait = false; if(DOEPCTL(ep) & DEPCTL_epena) - DOEPCTL(ep) = DEPCTL_epdis | DEPCTL_snak; + DOEPCTL(ep) = DEPCTL_snak; else DOEPCTL(ep) = 0; } @@ -331,7 +331,7 @@ static void cancel_all_transfers(bool cancel_ep0) endpoints[ep][DIR_IN].wait = false; endpoints[ep][DIR_IN].busy = false; wakeup_signal(&endpoints[ep][DIR_IN].complete); - DIEPCTL(ep) = (DIEPCTL(ep) & ~DEPCTL_usbactep) | DEPCTL_epdis | DEPCTL_snak; + DIEPCTL(ep) = (DIEPCTL(ep) & ~DEPCTL_usbactep) | DEPCTL_snak; } FOR_EACH_OUT_EP_EX(cancel_ep0, i, ep) { @@ -339,7 +339,7 @@ static void cancel_all_transfers(bool cancel_ep0) endpoints[ep][DIR_OUT].wait = false; endpoints[ep][DIR_OUT].busy = false; wakeup_signal(&endpoints[ep][DIR_OUT].complete); - DOEPCTL(ep) = (DOEPCTL(ep) & ~DEPCTL_usbactep) | DEPCTL_epdis | DEPCTL_snak; + DOEPCTL(ep) = (DOEPCTL(ep) & ~DEPCTL_usbactep) | DEPCTL_snak; } restore_irq(flags); @@ -708,7 +708,8 @@ int usb_drv_request_endpoint(int type, int dir) } unsigned long data = DEPCTL_setd0pid | (type << DEPCTL_eptype_bitp) - | (usb_drv_mps_by_type(type) << DEPCTL_mps_bitp); + | (usb_drv_mps_by_type(type) << DEPCTL_mps_bitp) + | DEPCTL_usbactep | DEPCTL_snak; unsigned long mask = ~(bitm(DEPCTL, eptype) | bitm(DEPCTL, mps)); if(dir == USB_DIR_IN) DIEPCTL(ep) = (DIEPCTL(ep) & mask) | data; |