diff options
| author | Anson Jacob <ansonjacob.aj@gmail.com> | 2016-08-12 20:38:10 -0400 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-09-23 16:13:04 +0200 |
| commit | 02a5ca9d203e207d9b3705996f365c448099c91f (patch) | |
| tree | 56e87bcee0e0712a1460334d80996a54d0b9c7d2 /include | |
| parent | 4568b50d355c7140ba0added8fed5380c85efec2 (diff) | |
usb: gadget: f_accessory: Fix for UsbAccessory clean unbind.
Reapplying fix by Darren Whobrey (Change 69674)
Fixes issues: 20545, 59667 and 61390.
With prior version of f_accessory.c, UsbAccessories would not
unbind cleanly when application is closed or i/o stopped
while the usb cable is still connected. The accessory gadget
driver would be left in an invalid state which was not reset
on subsequent binding or opening. A reboot was necessary to clear.
In some phones this issues causes the phone to reboot upon
unplugging the USB cable.
Main problem was that acc_disconnect was being called on I/O error
which reset disconnected and online.
Minor fix required to properly track setting and unsetting of
disconnected and online flags. Also added urb Q wakeup's on unbind
to help unblock waiting threads.
Tested on Nexus 7 grouper. Expected behaviour now observed:
closing accessory causes blocked i/o to interrupt with IOException.
Accessory can be restarted following closing of file handle
and re-opening.
This is a generic fix that applies to all devices.
Change-Id: I4e08b326730dd3a2820c863124cee10f7cb5501e
Signed-off-by: Darren Whobrey <d.whobrey@mildai.org>
Signed-off-by: Anson Jacob <ansonjacob.aj@gmail.com>
Signed-off-by: Joe Maples <joe@frap129.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
