From d8be49089fbbce0485625bbac906488dac35266d Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Thu, 20 Mar 2014 11:14:08 -0700 Subject: UsbDeviceManager: A better fix for race condition when starting USB accessory mode On some devices, the USB "set configuration" command is propogated to the framework after the "start accessory" event is received. However, on other devices like the 2011 ADK board, no "set configuration" command is sent at all until we have reenumerated in acccessory mode. To fix the original problem without breaking other devices, we can simply remove assumptions about if or when "set configuration" will be received. Now we simply remain switch USB configuration to accessory mode when we receive the "start accessory" command, and remain there until the existing 10 second timeout expires. Bug: 13393825 Change-Id: I4c9e3423185bd7252a907e4568d9e3ff06044b7d --- services/java/com/android/server/usb/UsbDeviceManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/services/java/com/android/server/usb/UsbDeviceManager.java b/services/java/com/android/server/usb/UsbDeviceManager.java index 8a5e291..bb61e49 100644 --- a/services/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/java/com/android/server/usb/UsbDeviceManager.java @@ -538,7 +538,6 @@ public class UsbDeviceManager { if (mConfigured && enteringAccessoryMode) { // successfully entered accessory mode - mAccessoryModeRequestTime = 0; if (mAccessoryStrings != null) { mCurrentAccessory = new UsbAccessory(mAccessoryStrings); -- cgit v1.1