DWC3 scratch buffer functions
This commit is contained in:
parent
a509d162ec
commit
5769e98844
|
@ -97,7 +97,9 @@ void dwc3_core_exit(struct dwc3 *dwc){
|
||||||
|
|
||||||
|
|
||||||
int dwc3_alloc_scratch_buffers(struct dwc3 *dwc){
|
int dwc3_alloc_scratch_buffers(struct dwc3 *dwc){
|
||||||
uint32_t length;
|
uint32_t len;
|
||||||
|
uintptr_t phy_addr, vir_addr;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (!dwc->has_hibernation)
|
if (!dwc->has_hibernation)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -105,15 +107,52 @@ int dwc3_alloc_scratch_buffers(struct dwc3 *dwc){
|
||||||
if (!dwc->nr_scratch)
|
if (!dwc->nr_scratch)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
len = dwc->nr_scratch * DWC3_SCRATCHBUF_SIZE;
|
||||||
|
ret = naive_mmap(&vir_addr, &phy_addr, len, true);
|
||||||
|
|
||||||
|
if(ret != 0){
|
||||||
|
USB_LOG_ERR("could not allocate DWC3 scratch buffers!\n");
|
||||||
|
ret = -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
dwc->scratchbuf = (void *)vir_addr;
|
||||||
|
dwc->scratch_addr = phy_addr;
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int dwc3_setup_scratch_buffers(struct dwc3 *dwc){
|
int dwc3_setup_scratch_buffers(struct dwc3 *dwc){
|
||||||
return 0;
|
uint32_t param;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!dwc->has_hibernation)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (!dwc->nr_scratch)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
param = lower_32_bits(dwc->scratch_addr);
|
||||||
|
|
||||||
|
ret = dwc3_send_gadget_generic_command(dwc,
|
||||||
|
DWC3_DGCMD_SET_SCRATCHPAD_ADDR_LO, param);
|
||||||
|
|
||||||
|
if(ret != 0)
|
||||||
|
goto err_cmd;
|
||||||
|
|
||||||
|
param = upper_32_bits(dwc->scratch_addr);
|
||||||
|
|
||||||
|
ret = dwc3_send_gadget_generic_command(dwc,
|
||||||
|
DWC3_DGCMD_SET_SCRATCHPAD_ADDR_HI, param);
|
||||||
|
|
||||||
|
if(ret != 0)
|
||||||
|
goto err_cmd;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
err_cmd:
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue