diff options
Diffstat (limited to 'firmware/target/arm/as3525/usb-drv-as3525.c')
-rw-r--r-- | firmware/target/arm/as3525/usb-drv-as3525.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/firmware/target/arm/as3525/usb-drv-as3525.c b/firmware/target/arm/as3525/usb-drv-as3525.c index 4c72368a83..ca1d8cbb07 100644 --- a/firmware/target/arm/as3525/usb-drv-as3525.c +++ b/firmware/target/arm/as3525/usb-drv-as3525.c | |||
@@ -386,7 +386,7 @@ static void usb_phy_resume(void) | |||
386 | 386 | ||
387 | static void setup_desc_init(struct usb_dev_setup_buf *desc) | 387 | static void setup_desc_init(struct usb_dev_setup_buf *desc) |
388 | { | 388 | { |
389 | struct usb_dev_setup_buf *uc_desc = UNCACHED_ADDR(desc); | 389 | struct usb_dev_setup_buf *uc_desc = AS3525_UNCACHED_ADDR(desc); |
390 | 390 | ||
391 | uc_desc->status = USB_DMA_DESC_BS_HST_RDY; | 391 | uc_desc->status = USB_DMA_DESC_BS_HST_RDY; |
392 | uc_desc->resv = 0xffffffff; | 392 | uc_desc->resv = 0xffffffff; |
@@ -397,7 +397,7 @@ static void setup_desc_init(struct usb_dev_setup_buf *desc) | |||
397 | static void dma_desc_init(int ep, int dir) | 397 | static void dma_desc_init(int ep, int dir) |
398 | { | 398 | { |
399 | struct usb_dev_dma_desc *desc = &dmadescs[ep][dir]; | 399 | struct usb_dev_dma_desc *desc = &dmadescs[ep][dir]; |
400 | struct usb_dev_dma_desc *uc_desc = UNCACHED_ADDR(desc); | 400 | struct usb_dev_dma_desc *uc_desc = AS3525_UNCACHED_ADDR(desc); |
401 | 401 | ||
402 | endpoints[ep][dir].uc_desc = uc_desc; | 402 | endpoints[ep][dir].uc_desc = uc_desc; |
403 | 403 | ||
@@ -626,15 +626,6 @@ void usb_drv_cancel_all_transfers(void) | |||
626 | restore_irq(flags); | 626 | restore_irq(flags); |
627 | } | 627 | } |
628 | 628 | ||
629 | static void *virt_to_bus(void *addr) | ||
630 | { | ||
631 | unsigned int x = (long)addr; | ||
632 | |||
633 | x -= (x & 0x40000000) >> 2; /* fix uncached address */ | ||
634 | |||
635 | return (void*)x; | ||
636 | } | ||
637 | |||
638 | int usb_drv_recv(int ep, void *ptr, int len) | 629 | int usb_drv_recv(int ep, void *ptr, int len) |
639 | { | 630 | { |
640 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; | 631 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; |
@@ -660,7 +651,7 @@ int usb_drv_recv(int ep, void *ptr, int len) | |||
660 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; | 651 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; |
661 | uc_desc->data_ptr = 0; | 652 | uc_desc->data_ptr = 0; |
662 | } else { | 653 | } else { |
663 | uc_desc->data_ptr = virt_to_bus(ptr); | 654 | uc_desc->data_ptr = ptr; |
664 | } | 655 | } |
665 | USB_OEP_DESC_PTR(ep) = (int)&dmadescs[ep][1]; | 656 | USB_OEP_DESC_PTR(ep) = (int)&dmadescs[ep][1]; |
666 | USB_OEP_STS(ep) = USB_EP_STAT_OUT_RCVD; /* clear status */ | 657 | USB_OEP_STS(ep) = USB_EP_STAT_OUT_RCVD; /* clear status */ |
@@ -677,7 +668,7 @@ char *make_hex(char *data, int len) | |||
677 | { | 668 | { |
678 | int i; | 669 | int i; |
679 | if (!((int)data & 0x40000000)) | 670 | if (!((int)data & 0x40000000)) |
680 | data = UNCACHED_ADDR(data); /* don't pollute the cache */ | 671 | data = AS3525_UNCACHED_ADDR(data); /* don't pollute the cache */ |
681 | 672 | ||
682 | if (len > 512) | 673 | if (len > 512) |
683 | len = 512; | 674 | len = 512; |
@@ -712,7 +703,7 @@ void ep_send(int ep, void *ptr, int len) | |||
712 | if (len == 0) | 703 | if (len == 0) |
713 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; | 704 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; |
714 | 705 | ||
715 | uc_desc->data_ptr = virt_to_bus(ptr); | 706 | uc_desc->data_ptr = ptr; |
716 | 707 | ||
717 | USB_IEP_DESC_PTR(ep) = (int)&dmadescs[ep][0]; | 708 | USB_IEP_DESC_PTR(ep) = (int)&dmadescs[ep][0]; |
718 | USB_IEP_STS(ep) = 0xffffffff; /* clear status */ | 709 | USB_IEP_STS(ep) = 0xffffffff; /* clear status */ |
@@ -785,7 +776,7 @@ static void handle_in_ep(int ep) | |||
785 | 776 | ||
786 | static void handle_out_ep(int ep) | 777 | static void handle_out_ep(int ep) |
787 | { | 778 | { |
788 | struct usb_ctrlrequest *req = (void*)UNCACHED_ADDR(&setup_desc->data1); | 779 | struct usb_ctrlrequest *req = (void*)AS3525_UNCACHED_ADDR(&setup_desc->data1); |
789 | int ep_sts = USB_OEP_STS(ep) & ~USB_OEP_STS_MASK(ep); | 780 | int ep_sts = USB_OEP_STS(ep) & ~USB_OEP_STS_MASK(ep); |
790 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; | 781 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; |
791 | 782 | ||