summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525')
-rw-r--r--firmware/target/arm/as3525/usb-drv-as3525v2.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/firmware/target/arm/as3525/usb-drv-as3525v2.c b/firmware/target/arm/as3525/usb-drv-as3525v2.c
index 165c0e4723..c18c579456 100644
--- a/firmware/target/arm/as3525/usb-drv-as3525v2.c
+++ b/firmware/target/arm/as3525/usb-drv-as3525v2.c
@@ -485,7 +485,7 @@ static void handle_ep_in_int(int ep)
485 /* works even for EP0 */ 485 /* works even for EP0 */
486 int size = (DIEPTSIZ(ep) & DEPTSIZ_xfersize_bits); 486 int size = (DIEPTSIZ(ep) & DEPTSIZ_xfersize_bits);
487 int transfered = endpoint->len - size; 487 int transfered = endpoint->len - size;
488 logf("len=%d reg=%ld xfer=%d", endpoint->len, size, transfered); 488 logf("len=%d reg=%d xfer=%d", endpoint->len, size, transfered);
489 /* handle EP0 state if necessary, 489 /* handle EP0 state if necessary,
490 * this is a ack if length is 0 */ 490 * this is a ack if length is 0 */
491 if(ep == 0) 491 if(ep == 0)
@@ -748,8 +748,8 @@ static int usb_drv_transfer(int ep, void *ptr, int len, bool dir_in, bool blocki
748 logf("usb-drv: xfer EP%d, len=%d, dir_in=%d, blocking=%d", ep, 748 logf("usb-drv: xfer EP%d, len=%d, dir_in=%d, blocking=%d", ep,
749 len, dir_in, blocking); 749 len, dir_in, blocking);
750 750
751 /* mask the usb interrupt to avoid any race */ 751 /* disable interrupts to avoid any race */
752 VIC_INT_EN_CLEAR = INTERRUPT_USB; 752 int oldlevel = disable_irq_save();
753 753
754 volatile unsigned long *epctl = dir_in ? &DIEPCTL(ep) : &DOEPCTL(ep); 754 volatile unsigned long *epctl = dir_in ? &DIEPCTL(ep) : &DOEPCTL(ep);
755 volatile unsigned long *eptsiz = dir_in ? &DIEPTSIZ(ep) : &DOEPTSIZ(ep); 755 volatile unsigned long *eptsiz = dir_in ? &DIEPTSIZ(ep) : &DOEPTSIZ(ep);
@@ -792,8 +792,8 @@ static int usb_drv_transfer(int ep, void *ptr, int len, bool dir_in, bool blocki
792 792
793 DEPCTL |= DEPCTL_epena | DEPCTL_cnak; 793 DEPCTL |= DEPCTL_epena | DEPCTL_cnak;
794 794
795 /* unmask the usb interrupt */ 795 /* restore interrupts */
796 VIC_INT_ENABLE = INTERRUPT_USB; 796 restore_irq(oldlevel);
797 797
798 if(blocking) 798 if(blocking)
799 { 799 {