Merge "Add additional status flags to UsbDataStatus"
This commit is contained in:
committed by
Android (Google) Code Review
commit
f5b9f2de69
@@ -5817,6 +5817,8 @@ package android.hardware.usb {
|
||||
field public static final int DATA_STATUS_DISABLED_CONTAMINANT = 4; // 0x4
|
||||
field public static final int DATA_STATUS_DISABLED_DEBUG = 32; // 0x20
|
||||
field public static final int DATA_STATUS_DISABLED_DOCK = 8; // 0x8
|
||||
field public static final int DATA_STATUS_DISABLED_DOCK_DEVICE_MODE = 128; // 0x80
|
||||
field public static final int DATA_STATUS_DISABLED_DOCK_HOST_MODE = 64; // 0x40
|
||||
field public static final int DATA_STATUS_DISABLED_FORCE = 16; // 0x10
|
||||
field public static final int DATA_STATUS_DISABLED_OVERHEAT = 2; // 0x2
|
||||
field public static final int DATA_STATUS_ENABLED = 1; // 0x1
|
||||
|
||||
@@ -46,6 +46,8 @@ import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_CONTAMINAN
|
||||
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
|
||||
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_FORCE;
|
||||
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DEBUG;
|
||||
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DOCK_HOST_MODE;
|
||||
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DOCK_DEVICE_MODE;
|
||||
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY;
|
||||
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_BC_1_2;
|
||||
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_MISSING_RP;
|
||||
@@ -676,6 +678,15 @@ public final class UsbPort {
|
||||
statusString.append("disabled-debug, ");
|
||||
}
|
||||
|
||||
if ((usbDataStatus & DATA_STATUS_DISABLED_DOCK_HOST_MODE) ==
|
||||
DATA_STATUS_DISABLED_DOCK_HOST_MODE) {
|
||||
statusString.append("disabled-host-dock, ");
|
||||
}
|
||||
|
||||
if ((usbDataStatus & DATA_STATUS_DISABLED_DOCK_DEVICE_MODE) ==
|
||||
DATA_STATUS_DISABLED_DOCK_DEVICE_MODE) {
|
||||
statusString.append("disabled-device-dock, ");
|
||||
}
|
||||
return statusString.toString().replaceAll(", $", "");
|
||||
}
|
||||
|
||||
|
||||
@@ -219,7 +219,11 @@ public final class UsbPortStatus implements Parcelable {
|
||||
public static final int DATA_STATUS_DISABLED_CONTAMINANT = 1 << 2;
|
||||
|
||||
/**
|
||||
* USB data is disabled due to docking event.
|
||||
* This flag indicates that some or all data modes are disabled
|
||||
* due to docking event, and the specific sub-statuses viz.,
|
||||
* {@link #DATA_STATUS_DISABLED_DOCK_HOST_MODE},
|
||||
* {@link #DATA_STATUS_DISABLED_DOCK_DEVICE_MODE}
|
||||
* can be checked for individual modes.
|
||||
*/
|
||||
public static final int DATA_STATUS_DISABLED_DOCK = 1 << 3;
|
||||
|
||||
@@ -234,6 +238,18 @@ public final class UsbPortStatus implements Parcelable {
|
||||
*/
|
||||
public static final int DATA_STATUS_DISABLED_DEBUG = 1 << 5;
|
||||
|
||||
/**
|
||||
* USB host mode is disabled due to docking event.
|
||||
* {@link #DATA_STATUS_DISABLED_DOCK} will be set as well.
|
||||
*/
|
||||
public static final int DATA_STATUS_DISABLED_DOCK_HOST_MODE = 1 << 6;
|
||||
|
||||
/**
|
||||
* USB device mode is disabled due to docking event.
|
||||
* {@link #DATA_STATUS_DISABLED_DOCK} will be set as well.
|
||||
*/
|
||||
public static final int DATA_STATUS_DISABLED_DOCK_DEVICE_MODE = 1 << 7;
|
||||
|
||||
/**
|
||||
* Unknown whether a power brick is connected.
|
||||
*/
|
||||
@@ -329,6 +345,8 @@ public final class UsbPortStatus implements Parcelable {
|
||||
DATA_STATUS_DISABLED_OVERHEAT,
|
||||
DATA_STATUS_DISABLED_CONTAMINANT,
|
||||
DATA_STATUS_DISABLED_DOCK,
|
||||
DATA_STATUS_DISABLED_DOCK_HOST_MODE,
|
||||
DATA_STATUS_DISABLED_DOCK_DEVICE_MODE,
|
||||
DATA_STATUS_DISABLED_FORCE,
|
||||
DATA_STATUS_DISABLED_DEBUG
|
||||
})
|
||||
@@ -357,6 +375,20 @@ public final class UsbPortStatus implements Parcelable {
|
||||
mSupportedRoleCombinations = supportedRoleCombinations;
|
||||
mContaminantProtectionStatus = contaminantProtectionStatus;
|
||||
mContaminantDetectionStatus = contaminantDetectionStatus;
|
||||
|
||||
// Older implementations that only set the DISABLED_DOCK_MODE will have the other two
|
||||
// set at the HAL interface level, so the "dock mode only" state shouldn't be visible here.
|
||||
// But the semantics are ensured here.
|
||||
int disabledDockModes = (usbDataStatus &
|
||||
(DATA_STATUS_DISABLED_DOCK_HOST_MODE | DATA_STATUS_DISABLED_DOCK_DEVICE_MODE));
|
||||
if (disabledDockModes != 0) {
|
||||
// Set DATA_STATUS_DISABLED_DOCK when one of DATA_STATUS_DISABLED_DOCK_*_MODE is set
|
||||
usbDataStatus |= DATA_STATUS_DISABLED_DOCK;
|
||||
} else {
|
||||
// Clear DATA_STATUS_DISABLED_DOCK when none of DATA_STATUS_DISABLED_DOCK_*_MODE is set
|
||||
usbDataStatus &= ~DATA_STATUS_DISABLED_DOCK;
|
||||
}
|
||||
|
||||
mUsbDataStatus = usbDataStatus;
|
||||
mPowerTransferLimited = powerTransferLimited;
|
||||
mPowerBrickConnectionStatus = powerBrickConnectionStatus;
|
||||
@@ -472,7 +504,8 @@ public final class UsbPortStatus implements Parcelable {
|
||||
* {@link #DATA_STATUS_UNKNOWN}, {@link #DATA_STATUS_ENABLED},
|
||||
* {@link #DATA_STATUS_DISABLED_OVERHEAT}, {@link #DATA_STATUS_DISABLED_CONTAMINANT},
|
||||
* {@link #DATA_STATUS_DISABLED_DOCK}, {@link #DATA_STATUS_DISABLED_FORCE},
|
||||
* {@link #DATA_STATUS_DISABLED_DEBUG}
|
||||
* {@link #DATA_STATUS_DISABLED_DEBUG}, {@link #DATA_STATUS_DISABLED_DOCK_HOST_MODE},
|
||||
* {@link #DATA_STATUS_DISABLED_DOCK_DEVICE_MODE}
|
||||
*/
|
||||
public @UsbDataStatus int getUsbDataStatus() {
|
||||
return mUsbDataStatus;
|
||||
|
||||
@@ -80,38 +80,46 @@ public final class UsbPortAidl implements UsbPortHal {
|
||||
/**
|
||||
* USB data status is not known.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_UNKNOWN = 0;
|
||||
public static final int AIDL_USB_DATA_STATUS_UNKNOWN = 0;
|
||||
|
||||
/**
|
||||
* USB data is enabled.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_ENABLED = 1;
|
||||
public static final int AIDL_USB_DATA_STATUS_ENABLED = 1;
|
||||
|
||||
/**
|
||||
* USB data is disabled as the port is too hot.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_DISABLED_OVERHEAT = 2;
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_OVERHEAT = 2;
|
||||
|
||||
/**
|
||||
* USB data is disabled due to contaminated port.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_DISABLED_CONTAMINANT = 3;
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_CONTAMINANT = 3;
|
||||
|
||||
/**
|
||||
* USB data is disabled due to docking event.
|
||||
* USB data(both host mode and device mode) is disabled due to docking event.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_DISABLED_DOCK = 4;
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_DOCK = 4;
|
||||
|
||||
/**
|
||||
* USB data is disabled by
|
||||
* {@link UsbPort#enableUsbData UsbPort.enableUsbData}.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_DISABLED_FORCE = 5;
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_FORCE = 5;
|
||||
|
||||
/**
|
||||
* USB data is disabled for debug.
|
||||
*/
|
||||
public static final int USB_DATA_STATUS_DISABLED_DEBUG = 6;
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_DEBUG = 6;
|
||||
/**
|
||||
* USB host mode disabled due to docking event.
|
||||
*/
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_DOCK_HOST_MODE = 7;
|
||||
/**
|
||||
* USB device mode disabled due to docking event.
|
||||
*/
|
||||
public static final int AIDL_USB_DATA_STATUS_DISABLED_DOCK_DEVICE_MODE = 8;
|
||||
|
||||
public @UsbHalVersion int getUsbHalVersion() throws RemoteException {
|
||||
synchronized (mLock) {
|
||||
@@ -529,24 +537,43 @@ public final class UsbPortAidl implements UsbPortHal {
|
||||
int usbDataStatus = UsbPortStatus.DATA_STATUS_UNKNOWN;
|
||||
for (int i = 0; i < usbDataStatusHal.length; i++) {
|
||||
switch (usbDataStatusHal[i]) {
|
||||
case USB_DATA_STATUS_ENABLED:
|
||||
case AIDL_USB_DATA_STATUS_ENABLED:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_ENABLED;
|
||||
break;
|
||||
case USB_DATA_STATUS_DISABLED_OVERHEAT:
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_OVERHEAT:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_OVERHEAT;
|
||||
break;
|
||||
case USB_DATA_STATUS_DISABLED_CONTAMINANT:
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_CONTAMINANT:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_CONTAMINANT;
|
||||
break;
|
||||
case USB_DATA_STATUS_DISABLED_DOCK:
|
||||
/* Indicates both host and gadget mode being disabled. */
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_DOCK:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_HOST_MODE;
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_DEVICE_MODE;
|
||||
break;
|
||||
case USB_DATA_STATUS_DISABLED_FORCE:
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_FORCE:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_FORCE;
|
||||
break;
|
||||
case USB_DATA_STATUS_DISABLED_DEBUG:
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_DEBUG:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DEBUG;
|
||||
break;
|
||||
/*
|
||||
* Set DATA_STATUS_DISABLED_DOCK when DATA_STATUS_DISABLED_DOCK_HOST_MODE
|
||||
* is set.
|
||||
*/
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_DOCK_HOST_MODE:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_HOST_MODE;
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
|
||||
break;
|
||||
/*
|
||||
* Set DATA_STATUS_DISABLED_DOCK when DATA_STATUS_DISABLED_DEVICE_DOCK
|
||||
* is set.
|
||||
*/
|
||||
case AIDL_USB_DATA_STATUS_DISABLED_DOCK_DEVICE_MODE:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_DEVICE_MODE;
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
|
||||
break;
|
||||
default:
|
||||
usbDataStatus |= UsbPortStatus.DATA_STATUS_UNKNOWN;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user