Merge "usb: gadget: gsi: Handle EVT_HOST_READY event in STATE_INITIALIZED state"

This commit is contained in:
Linux Build Service Account 2016-08-26 14:48:37 -07:00 committed by Gerrit - the friendly Code Review server
commit f11f09118e

View file

@ -593,6 +593,31 @@ static void ipa_work_handler(struct work_struct *w)
d_port->sm_state = STATE_CONNECT_IN_PROGRESS;
log_event_dbg("%s: ST_INIT_EVT_CONN_IN_PROG",
__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;
case STATE_CONNECT_IN_PROGRESS: