Merge 24Q3 to AOSP main
Bug: 357762254 Merged-In: Ib3cc0c6ad576e7cda26b7f50cdc61d52e6349c78 Change-Id: Icc7a517d0cb2b6688ecc25d5af3a3c11e16e7c09
This commit is contained in:
commit
1096924af1
15 changed files with 94 additions and 62 deletions
|
@ -387,9 +387,8 @@ endif
|
|||
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
|
||||
|
||||
# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load
|
||||
BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140/fips140.ko
|
||||
BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140.ko
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k)))
|
||||
KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA))
|
||||
|
||||
# Kernel modules that are listed in vendor_kernel_boot.modules.load
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
|
||||
|
|
|
@ -877,10 +877,12 @@ on property:ro.build.fingerprint=*
|
|||
write /sys/module/debug_kinfo/parameters/build_info ${ro.build.fingerprint}
|
||||
|
||||
# Bluetooth
|
||||
on post-fs-data
|
||||
on early-boot
|
||||
chown bluetooth system /sys/devices/platform/175b0000.serial/serial0/serial0-0/bluetooth/hci0/rfkill0/state
|
||||
chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill0/state
|
||||
chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill2/state
|
||||
|
||||
on post-fs-data
|
||||
chown bluetooth system /proc/bluetooth/sleep/btwake
|
||||
chown bluetooth system /proc/bluetooth/sleep/lpm
|
||||
chown bluetooth system /proc/bluetooth/sleep/btwrite
|
||||
|
|
|
@ -41,12 +41,15 @@
|
|||
</exception>
|
||||
-->
|
||||
|
||||
<exception package="com.google.android.GoogleCamera">
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
</exception>
|
||||
|
||||
<exception
|
||||
package="com.google.android.apps.camera.services">
|
||||
<!-- Camera -->
|
||||
<permission name="android.permission.CAMERA" fixed="false"/>
|
||||
<!-- Camera Connectivity -->
|
||||
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>
|
||||
|
@ -76,6 +79,8 @@
|
|||
<permission name="android.permission.ACTIVITY_RECOGNITION" fixed="false"/>
|
||||
<!-- Notifications -->
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
<!-- Used by Bluetooth Module to collect bluetooth info -->
|
||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||
</exception>
|
||||
|
||||
<exception
|
||||
|
|
40
device.mk
40
device.mk
|
@ -16,7 +16,7 @@
|
|||
|
||||
include device/google/gs-common/device.mk
|
||||
include device/google/gs-common/gs_watchdogd/watchdog.mk
|
||||
include device/google/gs-common/ramdump/ramdump.mk
|
||||
include device/google/gs-common/ramdump_and_coredump/ramdump_and_coredump.mk
|
||||
include device/google/gs-common/soc/soc.mk
|
||||
include device/google/gs-common/soc/freq.mk
|
||||
include device/google/gs-common/modem/modem.mk
|
||||
|
@ -37,9 +37,11 @@ include device/google/gs-common/sota_app/factoryota.mk
|
|||
include device/google/gs-common/misc_writer/misc_writer.mk
|
||||
include device/google/gs-common/gyotaku_app/gyotaku.mk
|
||||
include device/google/gs-common/bootctrl/bootctrl_aidl.mk
|
||||
include device/google/gs-common/betterbug/betterbug.mk
|
||||
ifneq ($(filter cheetah felix panther, $(TARGET_PRODUCT)),)
|
||||
include device/google/gs-common/bcmbt/dump/dumplog.mk
|
||||
endif
|
||||
include device/google/gs-common/fingerprint/fingerprint.mk
|
||||
|
||||
TARGET_BOARD_PLATFORM := gs201
|
||||
|
||||
|
@ -81,6 +83,11 @@ PRODUCT_SOONG_NAMESPACES += \
|
|||
|
||||
LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
|
||||
|
||||
ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true)
|
||||
# Set the environment variable to enable the Secretkeeper HAL service.
|
||||
SECRETKEEPER_ENABLED := true
|
||||
endif
|
||||
|
||||
# OEM Unlock reporting
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
|
||||
ro.oem_unlock_supported=1
|
||||
|
@ -201,6 +208,11 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
|||
telephony.active_modems.max_count=2
|
||||
|
||||
USE_LASSEN_OEMHOOK := true
|
||||
# The "power-anomaly-sitril" is added into PRODUCT_SOONG_NAMESPACES when
|
||||
# $(USE_LASSEN_OEMHOOK) is true and $(BOARD_WITHOUT_RADIO) is not true.
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google/tools/power-anomaly-sitril
|
||||
endif
|
||||
|
||||
# Use for GRIL
|
||||
USES_LASSEN_MODEM := true
|
||||
|
@ -258,9 +270,8 @@ PRODUCT_COPY_FILES += \
|
|||
frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
|
||||
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
|
||||
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
|
||||
frameworks/native/data/etc/android.software.vulkan.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
|
||||
frameworks/native/data/etc/android.software.contextualsearch.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.contextualsearch.xml \
|
||||
frameworks/native/data/etc/android.software.opengles.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
|
||||
frameworks/native/data/etc/android.software.vulkan.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
|
||||
frameworks/native/data/etc/android.software.opengles.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
|
||||
|
||||
ifeq ($(USE_SWIFTSHADER),true)
|
||||
PRODUCT_PACKAGES += \
|
||||
|
@ -512,10 +523,6 @@ PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000
|
|||
PRODUCT_PACKAGES += \
|
||||
com.android.future.usb.accessory
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.graphics.mapper@4.0-impl \
|
||||
android.hardware.graphics.allocator-V1-service
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.memtrack-service.pixel \
|
||||
libion_exynos \
|
||||
|
@ -763,6 +770,8 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
|||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
debug.stagefright.c2inputsurface=-1 \
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl
|
||||
|
||||
# 2. OpenMAX IL
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
||||
|
@ -1068,7 +1077,9 @@ PRODUCT_SOONG_NAMESPACES += \
|
|||
vendor/google_devices/gs201/proprietary/gchips/tpu/darwinn_logging_service \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/nnapi_stable_aidl \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/aidl \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/hal
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/hal \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/api \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/service
|
||||
# TPU firmware
|
||||
PRODUCT_PACKAGES += edgetpu-janeiro.fw
|
||||
|
||||
|
@ -1116,9 +1127,6 @@ include hardware/google/pixel/common/pixel-common-device.mk
|
|||
# Pixel Logger
|
||||
include hardware/google/pixel/PixelLogger/PixelLogger.mk
|
||||
|
||||
# sscoredump
|
||||
include hardware/google/pixel/sscoredump/device.mk
|
||||
|
||||
# RadioExt Version
|
||||
USES_RADIOEXT_V1_5 = true
|
||||
|
||||
|
@ -1158,3 +1166,11 @@ PRODUCT_PACKAGES += ufs_firmware_update.sh
|
|||
|
||||
# Touch service
|
||||
include device/google/gs-common/touch/twoshay/aidl_gs101.mk
|
||||
include device/google/gs-common/touch/twoshay/twoshay.mk
|
||||
|
||||
|
||||
# Allow longer timeout for incident report generation in bugreport
|
||||
# Overriding in /product partition instead of /vendor intentionally,
|
||||
# since it can't be overridden from /vendor.
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
dumpstate.strict_run=false
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.hardware.pixel.display</name>
|
||||
<version>10</version>
|
||||
<version>12</version>
|
||||
<interface>
|
||||
<name>IDisplay</name>
|
||||
<instance>default</instance>
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<!-- AIDL fragment -->
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default1</instance>
|
||||
</interface>
|
||||
<version>1</version>
|
||||
<fqname>IComponentStore/default1</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<version>1</version>
|
||||
<fqname>IComponentStore/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<manifest version="1.0" type="device">
|
||||
<!-- HIDL fragment -->
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
|
@ -8,4 +9,10 @@
|
|||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<!-- AIDL fragment -->
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<version>1</version>
|
||||
<fqname>IComponentStore/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" >
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
|
@ -120,7 +120,7 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="64x64" />
|
||||
<Limit name="block-count" range="1-2040" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
|
@ -134,7 +134,7 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="64x64" />
|
||||
<Limit name="block-count" range="1-2040" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
|
@ -217,7 +217,7 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
|
@ -233,7 +233,7 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="64x64" />
|
||||
<Limit name="block-count" range="1-2040" />
|
||||
<Limit name="blocks-per-second" min="1" max="243000" />
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<Decoders>
|
||||
<MediaCodec name="c2.google.av1.decoder" type="video/av01">
|
||||
<Limit name="size" min="96x96" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="36-32400" />
|
||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||
|
@ -34,7 +34,7 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01">
|
||||
<Limit name="size" min="96x96" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="36-32400" />
|
||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||
|
|
|
@ -117,24 +117,24 @@
|
|||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:342-360 med:343 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="342-351" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="558-1084" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:142-147 med:143 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="142-145" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="193-357" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:54-56 med:55 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="54-55" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="73-125" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:25-26 med:26 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="25-26" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="25-41" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="583-674" />
|
||||
<Limit name="measured-frame-rate-352x288" range="583-1019" />
|
||||
<!-- measured 90%:196-207 med:196 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="196-201" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="196-608" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:177-180 med:178 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="177-178" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="177-495" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:81-82 med:82 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="81-82" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="81-165" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:45-47 med:46 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="45-46" /> <!-- v90%=1.0 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="45-87" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1215-1823" />
|
||||
|
@ -145,7 +145,7 @@
|
|||
<Limit name="measured-frame-rate-320x180" range="847-1271" />
|
||||
<Limit name="measured-frame-rate-640x360" range="412-618" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="119-178" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="47-70" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="28-55" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="622-934" />
|
||||
|
|
|
@ -249,8 +249,8 @@
|
|||
<!-- Should the pinner service pin the Camera application? -->
|
||||
<bool name="config_pinnerCameraApp">true</bool>
|
||||
|
||||
<!-- Should the pinner service pin the Home application? -->
|
||||
<bool name="config_pinnerHomeApp">true</bool>
|
||||
<!-- Bytes that the PinnerService will pin for Home app -->
|
||||
<integer name="config_pinnerHomePinBytes">6291456</integer>
|
||||
|
||||
<!-- Bytes that the PinnerService will pin for WebView -->
|
||||
<integer name="config_pinnerWebviewPinBytes">20971520</integer>
|
||||
|
|
|
@ -92,21 +92,23 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
|||
"/sys/class/power_supply/maxfg/gmsr",
|
||||
"/sys/class/power_supply/maxfg_base/gmsr",
|
||||
},
|
||||
.FGModelLoadingPath = {
|
||||
"/sys/class/power_supply/maxfg/m5_model_state",
|
||||
"/sys/class/power_supply/maxfg_base/m5_model_state"
|
||||
},
|
||||
.FGLogBufferPath = {
|
||||
"/dev/logbuffer_maxfg_monitor",
|
||||
"/dev/logbuffer_max77779fg_monitor",
|
||||
"/dev/logbuffer_maxfg_base_monitor",
|
||||
"/dev/logbuffer_maxfg_secondary_monitor"
|
||||
},
|
||||
.TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count"
|
||||
};
|
||||
|
||||
const struct UeventListener::UeventPaths ueventPaths = {
|
||||
.AudioUevent = "/devices/virtual/amcs/amcs",
|
||||
.TypeCPartnerUevent = "PRODUCT_TYPE=",
|
||||
.FGLearningPath = {
|
||||
"/sys/class/power_supply/maxfg/fg_learning_events",
|
||||
"/sys/class/power_supply/maxfg_base/fg_learning_events"
|
||||
},
|
||||
.FwUpdatePath = "",
|
||||
.FGModelLoadingPath = {
|
||||
"/sys/class/power_supply/maxfg/m5_model_state",
|
||||
"/sys/class/power_supply/maxfg_base/m5_model_state"
|
||||
}
|
||||
.FwUpdatePath = ""
|
||||
};
|
||||
|
||||
int main() {
|
||||
|
|
|
@ -56,6 +56,7 @@ cc_binary {
|
|||
"libbinder_ndk",
|
||||
"libprotobuf-cpp-lite",
|
||||
"server_configurable_flags",
|
||||
"libaconfig_storage_read_api_cc",
|
||||
],
|
||||
static_libs: [
|
||||
"libpixelusb-aidl",
|
||||
|
|
|
@ -602,6 +602,11 @@ ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role
|
|||
fp = fopen(filename.c_str(), "w");
|
||||
if (fp != NULL) {
|
||||
int ret = fputs(convertRoletoString(in_role).c_str(), fp);
|
||||
if (ret == EAGAIN) {
|
||||
ALOGI("role switch busy, retry in %d ms", ROLE_SWAP_RETRY_MS);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(ROLE_SWAP_RETRY_MS));
|
||||
ret = fputs(convertRoletoString(in_role).c_str(), fp);
|
||||
}
|
||||
fclose(fp);
|
||||
if ((ret != EOF) && ReadFileToString(filename, &written)) {
|
||||
written = Trim(written);
|
||||
|
|
|
@ -56,6 +56,8 @@ constexpr char kGadgetName[] = "11210000.dwc3";
|
|||
#define VBUS_PATH NEW_UDC_PATH "dwc3_exynos_otg_b_sess"
|
||||
#define USB_DATA_PATH NEW_UDC_PATH "usb_data_enabled"
|
||||
|
||||
#define ROLE_SWAP_RETRY_MS 700
|
||||
|
||||
struct Usb : public BnUsb {
|
||||
Usb();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue