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 /firmware/target | |
parent | f140930714df1b2d01d9e1d00d2a1097793f2a6d (diff) |
as3525v2-usb: don't disable data transfers !
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28030 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-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 7c0ca5fce8..4b0293563a 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; |