diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/usb-jz4760.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/usb-jz4760.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c b/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c index 3c7bb80f2c..275fd3fd2b 100644 --- a/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c @@ -360,7 +360,7 @@ static void EPIN_handler(unsigned int endpoint) } logf("EP%d: %d -> %d", endpoint, ep->sent, ep->length); - + if(ep->sent == 0) length = MIN(ep->length, ep->fifo_size); else @@ -456,7 +456,7 @@ static void EPDMA_handler(int number) /* Disable DMA */ REG_USB_CNTL(1) = 0; - __dcache_invalidate_all(); + commit_discard_dcache(); // XXX range? select_endpoint(endpoint); /* Read out last packet manually */ @@ -846,8 +846,7 @@ static void usb_drv_send_internal(struct usb_endpoint* ep, void* ptr, int length { if(ep->use_dma) { - //dma_cache_wback_inv((unsigned long)ptr, length); - __dcache_writeback_all(); + commit_discard_dcache_range(ptr, length); REG_USB_ADDR(0) = PHYSADDR((unsigned long)ptr); REG_USB_COUNT(0) = length; REG_USB_CNTL(0) = (USB_CNTL_INTR_EN | USB_CNTL_MODE_1 | @@ -921,8 +920,7 @@ int usb_drv_recv(int endpoint, void* ptr, int length) ep->busy = true; if(ep->use_dma) { - //dma_cache_wback_inv((unsigned long)ptr, length); - __dcache_writeback_all(); + discard_dcache_range(ptr, length); REG_USB_ADDR(1) = PHYSADDR((unsigned long)ptr); REG_USB_COUNT(1) = length; REG_USB_CNTL(1) = (USB_CNTL_INTR_EN | USB_CNTL_MODE_1 | |