commit | 28185511575e3a670c6dc2499b33ef992e4fc2f0 | [log] [tgz] |
---|---|---|
author | mukesh agrawal <quiche@chromium.org> | Fri Oct 18 16:57:09 2013 -0700 |
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | Tue Oct 22 05:17:52 2013 +0000 |
tree | dd553a47c0f8c8ea068c906b8b25f9670e020c1c | |
parent | 5c8ed24136949e8cbadd378f1e124a5ac4bb9f30 [diff] |
shill: re-enable cellular modems after resume On Haswell systems (peppy, falco), the ModemManager object for the PPP dongle does not disappear during suspend/resume. This causes problems, because we recently started disabling the modems on the way into suspend [1]. Without this patch, the modems stay disabled after resume. In order to facilitate restarting the modem, we refactor the SetEnabled* methods in Device. This lets Cellular::OnAfterResume avoid some checks which causes problems in the (likely) case where we suspend the host before the modem is completely disabled. Also: we now have StartTermination call StopPPP. This ensures tha we StopPPP before trying to disconnect the bearer. In some experiments with a Huawei E303 modem, this reduced the time required to disconnect the bearer by 2 seconds. Known issue: if you suspend/resume faster than the bearer disconnects (less than 3 seconds), then you don't get back online. [1] crosreview.com/171374 BUG=chromium:295917 TEST=manual Manual test ----------- - suspend/resume, spending 15 seconds in suspend - observe that time to get online is < 1 min - repeat 4 more times, observe the same result Change-Id: I851a58e3319fb8c808a751b505f0f0730f3ea2ee Reviewed-on: https://chromium-review.googlesource.com/173754 Reviewed-by: Ben Chan <benchan@chromium.org> Commit-Queue: mukesh agrawal <quiche@chromium.org> Tested-by: mukesh agrawal <quiche@chromium.org>