summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Wei <jameswei@google.com>2021-01-05 14:09:40 +0530
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-16 21:11:35 +0000
commit4bc03ff22aff9fac1fb2c27a22d973868c171507 (patch)
tree2b07266a9047d5e5944b56bd36ed3d4b9e6943bb
parente6e4df19f8b392120cc314010f93ee1bc5079982 (diff)
downloadbase-4bc03ff22aff9fac1fb2c27a22d973868c171507.tar.gz
USB: Increase debounce time for DISCONNECT processing (revised)
Original patch: aosp/1539944 Bug: 207057578 Test: See details in b/209342433 Change-Id: I7ff58a1a9755939ccb26dad61969902ec91f2225 Signed-off-by: James Wei <jameswei@google.com> (cherry picked from commit 06626cef7a9bc8a437aeb912a09484b2b0c922dc) Merged-In: I7ff58a1a9755939ccb26dad61969902ec91f2225 (cherry picked from commit 615d5d653e036cbb6e09b0be35bdd6520aed9017) Merged-In: I7ff58a1a9755939ccb26dad61969902ec91f2225
-rw-r--r--services/usb/java/com/android/server/usb/UsbDeviceManager.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
index 661dcbb7f489..9f31647e038e 100644
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@@ -175,7 +175,11 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
// Delay for debouncing USB disconnects.
// We often get rapid connect/disconnect events when enabling USB functions,
// which need debouncing.
- private static final int UPDATE_DELAY = 1000;
+ private static final int DEVICE_STATE_UPDATE_DELAY_EXT = 3000;
+ private static final int DEVICE_STATE_UPDATE_DELAY = 1000;
+
+ // Delay for debouncing USB disconnects on Type-C ports in host mode
+ private static final int HOST_STATE_UPDATE_DELAY = 1000;
// Timeout for entering USB request mode.
// Request is cancelled if host does not configure device within 10 seconds.
@@ -636,7 +640,9 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
msg.arg1 = connected;
msg.arg2 = configured;
// debounce disconnects to avoid problems bringing up USB tethering
- sendMessageDelayed(msg, (connected == 0) ? UPDATE_DELAY : 0);
+ sendMessageDelayed(msg,
+ (connected == 0) ? (mScreenLocked ? DEVICE_STATE_UPDATE_DELAY
+ : DEVICE_STATE_UPDATE_DELAY_EXT) : 0);
}
public void updateHostState(UsbPort port, UsbPortStatus status) {
@@ -651,7 +657,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
removeMessages(MSG_UPDATE_PORT_STATE);
Message msg = obtainMessage(MSG_UPDATE_PORT_STATE, args);
// debounce rapid transitions of connect/disconnect on type-c ports
- sendMessageDelayed(msg, UPDATE_DELAY);
+ sendMessageDelayed(msg, HOST_STATE_UPDATE_DELAY);
}
private void setAdbEnabled(boolean enable) {