Merge "usb: gadget: gsi: Handle EVT_HOST_READY event in STATE_INITIALIZED state"
This commit is contained in:
commit
f11f09118e
1 changed files with 25 additions and 0 deletions
|
@ -593,6 +593,31 @@ static void ipa_work_handler(struct work_struct *w)
|
||||||
d_port->sm_state = STATE_CONNECT_IN_PROGRESS;
|
d_port->sm_state = STATE_CONNECT_IN_PROGRESS;
|
||||||
log_event_dbg("%s: ST_INIT_EVT_CONN_IN_PROG",
|
log_event_dbg("%s: ST_INIT_EVT_CONN_IN_PROG",
|
||||||
__func__);
|
__func__);
|
||||||
|
} else if (event == EVT_HOST_READY) {
|
||||||
|
/*
|
||||||
|
* When in a composition such as RNDIS + ADB,
|
||||||
|
* RNDIS host sends a GEN_CURRENT_PACKET_FILTER msg
|
||||||
|
* to enable/disable flow control eg. during RNDIS
|
||||||
|
* adaptor disable/enable from device manager.
|
||||||
|
* In the case of the msg to disable flow control,
|
||||||
|
* connect IPA channels and enable data path.
|
||||||
|
* EVT_HOST_READY is posted to the state machine
|
||||||
|
* in the handler for this msg.
|
||||||
|
*/
|
||||||
|
usb_gadget_autopm_get(d_port->gadget);
|
||||||
|
log_event_dbg("%s: get = %d", __func__,
|
||||||
|
atomic_read(&gad_dev->power.usage_count));
|
||||||
|
/* allocate buffers used with each TRB */
|
||||||
|
ret = gsi_alloc_trb_buffer(gsi);
|
||||||
|
if (ret) {
|
||||||
|
log_event_err("%s: gsi_alloc_trb_failed\n",
|
||||||
|
__func__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ipa_connect_channels(d_port);
|
||||||
|
ipa_data_path_enable(d_port);
|
||||||
|
d_port->sm_state = STATE_CONNECTED;
|
||||||
|
log_event_dbg("%s: ST_INIT_EVT_HOST_READY", __func__);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case STATE_CONNECT_IN_PROGRESS:
|
case STATE_CONNECT_IN_PROGRESS:
|
||||||
|
|
Loading…
Add table
Reference in a new issue