mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 05:05:20 -05:00
revert part of r26176 to avoid large static allocation
we still need to convert uncached addresses to physical addresses git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26177 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
bae0756acf
commit
2e188a4dad
2 changed files with 12 additions and 3 deletions
|
|
@ -626,6 +626,15 @@ void usb_drv_cancel_all_transfers(void)
|
|||
restore_irq(flags);
|
||||
}
|
||||
|
||||
static void *virt_to_bus(void *addr)
|
||||
{
|
||||
unsigned int x = (long)addr;
|
||||
|
||||
x -= (x & 0x40000000) >> 2; /* fix uncached address */
|
||||
|
||||
return (void*)x;
|
||||
}
|
||||
|
||||
int usb_drv_recv(int ep, void *ptr, int len)
|
||||
{
|
||||
struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc;
|
||||
|
|
@ -651,7 +660,7 @@ int usb_drv_recv(int ep, void *ptr, int len)
|
|||
uc_desc->status |= USB_DMA_DESC_ZERO_LEN;
|
||||
uc_desc->data_ptr = 0;
|
||||
} else {
|
||||
uc_desc->data_ptr = ptr;
|
||||
uc_desc->data_ptr = virt_to_bus(ptr);
|
||||
}
|
||||
USB_OEP_DESC_PTR(ep) = (int)&dmadescs[ep][1];
|
||||
USB_OEP_STS(ep) = USB_EP_STAT_OUT_RCVD; /* clear status */
|
||||
|
|
@ -703,7 +712,7 @@ void ep_send(int ep, void *ptr, int len)
|
|||
if (len == 0)
|
||||
uc_desc->status |= USB_DMA_DESC_ZERO_LEN;
|
||||
|
||||
uc_desc->data_ptr = ptr;
|
||||
uc_desc->data_ptr = virt_to_bus(ptr);
|
||||
|
||||
USB_IEP_DESC_PTR(ep) = (int)&dmadescs[ep][0];
|
||||
USB_IEP_STS(ep) = 0xffffffff; /* clear status */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue