forked from yystopf/xiuos
Add dwc3_init
This commit is contained in:
parent
637408e192
commit
a509d162ec
|
@ -92,6 +92,10 @@ int dwc3_core_init(struct dwc3 *dwc){
|
|||
}
|
||||
|
||||
|
||||
void dwc3_core_exit(struct dwc3 *dwc){
|
||||
}
|
||||
|
||||
|
||||
int dwc3_alloc_scratch_buffers(struct dwc3 *dwc){
|
||||
uint32_t length;
|
||||
|
||||
|
@ -119,11 +123,20 @@ int dwc3_alloc_event_buffers(struct dwc3 *dwc, uint32_t length){
|
|||
}
|
||||
|
||||
|
||||
void dwc3_free_event_buffers(struct dwc3 *dwc){
|
||||
}
|
||||
|
||||
|
||||
|
||||
int dwc3_event_buffers_setup(struct dwc3 *dwc){
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void dwc3_event_buffers_cleanup(struct dwc3 *dwc){
|
||||
}
|
||||
|
||||
|
||||
|
||||
int dwc3_core_init_mode(struct dwc3 *dwc){
|
||||
return 0;
|
||||
|
@ -137,12 +150,51 @@ void dwc3_set_mode(struct dwc3 *dwc, uint32_t mode){
|
|||
|
||||
|
||||
|
||||
int dwc3_init(struct dwc3 *dwc){
|
||||
return 0;
|
||||
int dwc3_init(struct dwc3 *dwc)
|
||||
{
|
||||
int ret;
|
||||
|
||||
dwc3_cache_hwparams(dwc);
|
||||
|
||||
ret = dwc3_alloc_event_buffers(dwc, DWC3_EVENT_BUFFERS_SIZE);
|
||||
if (ret) {
|
||||
USB_LOG_ERR("failed to allocate event buffers\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ret = dwc3_core_init(dwc);
|
||||
if (ret) {
|
||||
USB_LOG_ERR("failed to initialize core\n");
|
||||
goto core_fail;
|
||||
}
|
||||
|
||||
ret = dwc3_event_buffers_setup(dwc);
|
||||
if (ret) {
|
||||
USB_LOG_ERR("failed to setup event buffers\n");
|
||||
goto event_fail;
|
||||
}
|
||||
|
||||
ret = dwc3_core_init_mode(dwc);
|
||||
if (ret)
|
||||
goto mode_fail;
|
||||
|
||||
return 0;
|
||||
|
||||
mode_fail:
|
||||
dwc3_event_buffers_cleanup(dwc);
|
||||
|
||||
event_fail:
|
||||
dwc3_core_exit(dwc);
|
||||
|
||||
core_fail:
|
||||
dwc3_free_event_buffers(dwc);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, uint32_t param){
|
||||
uint32_t timeout = 500;
|
||||
uint32_t reg;
|
||||
|
|
|
@ -888,14 +888,21 @@ void dwc3_cache_hwparams(struct dwc3 *dwc);
|
|||
|
||||
int dwc3_core_init(struct dwc3 *dwc);
|
||||
|
||||
void dwc3_core_exit(struct dwc3 *dwc);
|
||||
|
||||
int dwc3_alloc_scratch_buffers(struct dwc3 *dwc);
|
||||
|
||||
int dwc3_setup_scratch_buffers(struct dwc3 *dwc);
|
||||
|
||||
int dwc3_alloc_event_buffers(struct dwc3 *dwc, uint32_t length);
|
||||
|
||||
void dwc3_free_event_buffers(struct dwc3 *dwc);
|
||||
|
||||
int dwc3_event_buffers_setup(struct dwc3 *dwc);
|
||||
|
||||
void dwc3_event_buffers_cleanup(struct dwc3 *dwc);
|
||||
|
||||
|
||||
int dwc3_core_init_mode(struct dwc3 *dwc);
|
||||
|
||||
void dwc3_set_mode(struct dwc3 *dwc, uint32_t mode);
|
||||
|
|
Loading…
Reference in New Issue