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) | |||
360 | } | 360 | } |
361 | 361 | ||
362 | logf("EP%d: %d -> %d", endpoint, ep->sent, ep->length); | 362 | logf("EP%d: %d -> %d", endpoint, ep->sent, ep->length); |
363 | 363 | ||
364 | if(ep->sent == 0) | 364 | if(ep->sent == 0) |
365 | length = MIN(ep->length, ep->fifo_size); | 365 | length = MIN(ep->length, ep->fifo_size); |
366 | else | 366 | else |
@@ -456,7 +456,7 @@ static void EPDMA_handler(int number) | |||
456 | /* Disable DMA */ | 456 | /* Disable DMA */ |
457 | REG_USB_CNTL(1) = 0; | 457 | REG_USB_CNTL(1) = 0; |
458 | 458 | ||
459 | __dcache_invalidate_all(); | 459 | commit_discard_dcache(); // XXX range? |
460 | 460 | ||
461 | select_endpoint(endpoint); | 461 | select_endpoint(endpoint); |
462 | /* Read out last packet manually */ | 462 | /* Read out last packet manually */ |
@@ -846,8 +846,7 @@ static void usb_drv_send_internal(struct usb_endpoint* ep, void* ptr, int length | |||
846 | { | 846 | { |
847 | if(ep->use_dma) | 847 | if(ep->use_dma) |
848 | { | 848 | { |
849 | //dma_cache_wback_inv((unsigned long)ptr, length); | 849 | commit_discard_dcache_range(ptr, length); |
850 | __dcache_writeback_all(); | ||
851 | REG_USB_ADDR(0) = PHYSADDR((unsigned long)ptr); | 850 | REG_USB_ADDR(0) = PHYSADDR((unsigned long)ptr); |
852 | REG_USB_COUNT(0) = length; | 851 | REG_USB_COUNT(0) = length; |
853 | REG_USB_CNTL(0) = (USB_CNTL_INTR_EN | USB_CNTL_MODE_1 | | 852 | 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) | |||
921 | ep->busy = true; | 920 | ep->busy = true; |
922 | if(ep->use_dma) | 921 | if(ep->use_dma) |
923 | { | 922 | { |
924 | //dma_cache_wback_inv((unsigned long)ptr, length); | 923 | discard_dcache_range(ptr, length); |
925 | __dcache_writeback_all(); | ||
926 | REG_USB_ADDR(1) = PHYSADDR((unsigned long)ptr); | 924 | REG_USB_ADDR(1) = PHYSADDR((unsigned long)ptr); |
927 | REG_USB_COUNT(1) = length; | 925 | REG_USB_COUNT(1) = length; |
928 | REG_USB_CNTL(1) = (USB_CNTL_INTR_EN | USB_CNTL_MODE_1 | | 926 | REG_USB_CNTL(1) = (USB_CNTL_INTR_EN | USB_CNTL_MODE_1 | |