summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin
diff options
context:
space:
mode:
authorMayank Rana <mrana@codeaurora.org>2016-05-11 17:57:45 -0700
committerJeevan Shriram <jshriram@codeaurora.org>2016-05-18 13:41:23 -0700
commitabda04c3112ad517d83b99967fa557a28423bccb (patch)
tree8206c79f26bc41acf16fc23723d0a5b6751d75dc /tools/perf/scripts/python/bin
parentf1178fd569a3a1f20bc90abba06b82d6fe25b794 (diff)
usb: gadget: gsi: Use drain_workqueue instead of flush_workqueue
USB GSI function driver uses usb_ipa_w work to queue different events like EVT_CONNECTED, EVT_DISCONNECTED and more. ipa_event_handler() uses those events as inputs to make necessary decision about performing connect and disconnect with IPA driver. It is required that before USB GSI driver calls ipa_usb_deinit_teth_prot(), it has invoked IPA disconnect API ipa_usb_xdci_disconnect() if it has called ipa_usb_xdci_connect() API. Current code is making sure that any running usb_ipa_w work is being completed before calling ipa_usb_deinit_teth_prot() but if work is not scheduled and pending, ipa_usb_xdci_connect() is not called (i.e. later when usb_ipw_w work is scheduled, EVT_DISCONNECTED is being processed but gsi_unbind() has changed sm_state as STATE_UNINITIALIZED which results into no-ops.) which results into USB and IPA driver go out of sync in terms of expected state machine. Hence calling ipa_usb_init_teth_prot() on next USB cable connect from gsi_bind_config() fails which results into no USB GSI functionality. Fix this issue by using drain_workqueue() instead of flush_workqueue() which makes sure that re-queue work is flushed. CRs-Fixed: 1005018 Change-Id: I64ff559b85f901688a4abd0110ebb32a5317e34d Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions