taoyao: Incorporating taoyao specific configs

This commit is contained in:
Richard Carvalho
2025-04-28 13:41:50 -03:00
parent ac7150df4c
commit c5bc3fe2df
46 changed files with 3591 additions and 144 deletions

View File

@@ -18,3 +18,10 @@ install_symlink {
installed_location: "firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini",
symlink_target: "/vendor/etc/wifi/WCNSS_qcom_cfg.ini",
}
install_symlink {
name: "firmware_WCNSS_qcom_cfg_qca6750.ini_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/qca6750/WCNSS_qcom_cfg.ini",
symlink_target: "/vendor/etc/wifi/qca6750/WCNSS_qcom_cfg.ini",
}

8
AndroidProducts.mk Normal file
View File

@@ -0,0 +1,8 @@
#
# Copyright (C) 2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_taoyao.mk

View File

@@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0
#
COMMON_PATH := device/xiaomi/sm8350-common
DEVICE_PATH := device/xiaomi/taoyao
BOARD_VENDOR := xiaomi
@@ -51,9 +51,10 @@ TARGET_PROVIDES_AUDIO_EXTNS := true
# Bootloader
TARGET_NO_BOOTLOADER := true
TARGET_BOOTLOADER_BOARD_NAME := taoyao
# Camera
TARGET_CAMERA_SERVICE_EXT_LIB := //$(COMMON_PATH):libcameraservice_extension.xiaomi_sm8350
TARGET_CAMERA_SERVICE_EXT_LIB := //$(DEVICE_PATH):libcameraservice_extension.xiaomi_sm8350
# Display
TARGET_SCREEN_DENSITY ?= 440
@@ -64,7 +65,7 @@ SOONG_CONFIG_dolby_vision += enabled
SOONG_CONFIG_dolby_vision_enabled := true
# Filesystem
TARGET_FS_CONFIG_GEN := $(COMMON_PATH)/config.fs
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
# GPS
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default
@@ -76,12 +77,13 @@ DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
hardware/xiaomi/vintf/xiaomi_framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml \
$(COMMON_PATH)/hidl/vendor_framework_compatibility_matrix.xml \
$(COMMON_PATH)/hidl/xiaomi_framework_compatibility_matrix.xml
$(DEVICE_PATH)/hidl/vendor_framework_compatibility_matrix.xml \
$(DEVICE_PATH)/hidl/xiaomi_framework_compatibility_matrix.xml
DEVICE_MANIFEST_FILE := \
$(COMMON_PATH)/hidl/manifest_lahaina.xml \
$(COMMON_PATH)/hidl/manifest_xiaomi.xml
$(DEVICE_PATH)/hidl/manifest_lahaina.xml \
$(DEVICE_PATH)/hidl/manifest_taoyao.xml \
$(DEVICE_PATH)/hidl/manifest_xiaomi.xml
# Kernel
BOARD_KERNEL_BASE := 0x00000000
@@ -94,8 +96,8 @@ BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
TARGET_KERNEL_ADDITIONAL_FLAGS := TARGET_PRODUCT=$(PRODUCT_DEVICE)
TARGET_KERNEL_NO_GCC := true
TARGET_KERNEL_SOURCE := kernel/xiaomi/sm8350
TARGET_KERNEL_CONFIG := vendor/lahaina-qgki_defconfig vendor/debugfs.config vendor/xiaomi_QGKI.config
TARGET_KERNEL_SOURCE := kernel/xiaomi/taoyao
TARGET_KERNEL_CONFIG := vendor/taoyao-qgki_defconfig
BOARD_KERNEL_CMDLINE += androidboot.console=ttyMSM0
BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom
@@ -111,12 +113,22 @@ BOARD_KERNEL_CMDLINE += iptable_raw.raw_before_defrag=1
BOARD_KERNEL_CMDLINE += ip6table_raw.raw_before_defrag=1
BOARD_KERNEL_CMDLINE += androidboot.init_fatal_reboot_target=recovery
# Kernel modules
BOOT_KERNEL_MODULES := \
focaltech_touch.ko \
goodix_core.ko \
hwid.ko \
msm_drm.ko \
xiaomi_touch.ko
BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(BOOT_KERNEL_MODULES)
# Lineage Health
TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS := false
# Partitions
BOARD_FLASH_BLOCK_SIZE := 131072
BOARD_BOOTIMAGE_PARTITION_SIZE := 201326592
BOARD_DTBOIMG_PARTITION_SIZE := 25165824
BOARD_SUPER_PARTITION_SIZE := 9126805504
BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296
BOARD_USES_METADATA_PARTITION := true
@@ -147,17 +159,17 @@ TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
TARGET_BOARD_PLATFORM := lahaina
# Power
TARGET_POWERHAL_MODE_EXT := $(COMMON_PATH)/power/power-mode.cpp
TARGET_POWER_LIBPERFMGR_MODE_EXTENSION_LIB := //$(COMMON_PATH):libperfmgr-ext-xiaomi
TARGET_POWERHAL_MODE_EXT := $(DEVICE_PATH)/power/power-mode.cpp
TARGET_POWER_LIBPERFMGR_MODE_EXTENSION_LIB := //$(DEVICE_PATH):libperfmgr-ext-xiaomi
# PowerShare
TARGET_POWERSHARE_PATH := /sys/class/qcom-battery/reverse_chg_mode
# Properties
TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop
TARGET_SYSTEM_PROP += $(COMMON_PATH)/system.prop
TARGET_SYSTEM_EXT_PROP += $(COMMON_PATH)/system_ext.prop
TARGET_VENDOR_PROP += $(COMMON_PATH)/vendor.prop
TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/system_ext.prop
TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
# QCOM
BOARD_USES_QCOM_HARDWARE := true
@@ -165,7 +177,7 @@ BOARD_USES_QCOM_HARDWARE := true
# Recovery
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
TARGET_RECOVERY_FSTAB := $(COMMON_PATH)/rootdir/etc/fstab.qcom
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom
TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
@@ -180,9 +192,9 @@ VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
include device/lineage/sepolicy/libperfmgr/sepolicy.mk
include device/qcom/sepolicy_vndr/SEPolicy.mk
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/public
BOARD_VENDOR_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/vendor
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/public
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
SELINUX_IGNORE_NEVERALLOWS := true
# Verified Boot
@@ -217,4 +229,4 @@ WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
WPA_SUPPLICANT_VERSION := VER_0_8_X
# Inherit proprietary blobs
include vendor/xiaomi/sm8350-common/BoardConfigVendor.mk
include vendor/xiaomi/taoyao/BoardConfigVendor.mk

View File

@@ -1,4 +1,20 @@
Copyright (C) 2020 - The LineageOS Project
Device configuration for Xiaomi 12 Lite
=========================================
Common device tree for Xiaomi SM8350 based devices
==============
The Xiaomi 12 Lite (codenamed _"taoyao"_) is a mid-range smartphone from Xiaomi.
It was released in September 2021.
## Device specifications
Basic | Spec Sheet
-------:|:-------------------------
CPU | Kryo 670, Up to 2.4 GHz, Octa-core CPU
Chipset | Qualcomm Snapdragon 778G 5G (SM7325-2-AB)
GPU | Adreno 642L
Memory | 8 GB, LPDDR4X
Storage | 128/256 GB, UFS 2.2
Shipped Android Version | 11
Battery | Non-removable 4250 mAh
Display | 2400 x 1080 pixels, 6.55 inches
Camera | 64 MP main, 8 MP ultra-wide angle, 5 MP telemacro, 20 MP front

View File

@@ -0,0 +1,16 @@
#
# FPC1020 Touch sensor driver
#
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version 2
# as published by the Free Software Foundation.
#
device.internal = 1
keyboard.layout = uinput-goodix
keyboard.builtIn = 1
keyboard.orientationAware = 1

View File

@@ -0,0 +1,32 @@
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 102 HOME
key 528 FOCUS
key 766 CAMERA

View File

@@ -0,0 +1,19 @@
#
# FPC1020 Touch sensor driver
#
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version 2
# as published by the Free Software Foundation.
#
#single click
key 353 DPAD_CENTER VIRTUAL
#double click
key 306 BUTTON_C VIRTUAL
# HOME --> DPAD_CENTER
key 102 DPAD_CENTER VIRTUAL
#key 105 DPAD_LEFT VIRTUAL
#key 106 DPAD_RIGHT VIRTUAL

View File

@@ -6,7 +6,6 @@
# Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
TARGET_SUPPORTS_OMX_SERVICE := false
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Enable virtual A/B OTA
@@ -16,7 +15,7 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_ven
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
# Inherit proprietary targets
$(call inherit-product, vendor/xiaomi/sm8350-common/sm8350-common-vendor.mk)
$(call inherit-product, vendor/xiaomi/taoyao/taoyao-vendor.mk)
# Setup dalvik vm configs
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
@@ -166,7 +165,8 @@ PRODUCT_PACKAGES += \
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint-service.xiaomi
android.hardware.biometrics.fingerprint-service.xiaomi \
libudfpshandler
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
@@ -243,9 +243,15 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/bin/init.qcom.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.sh \
$(LOCAL_PATH)/rootdir/bin/vendor_modprobe.sh:$(TARGET_COPY_OUT_VENDOR)/bin/vendor_modprobe.sh
# Input
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/idc/uinput-goodix.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput-goodix.idc \
$(LOCAL_PATH)/configs/keylayout/uinput-goodix.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-goodix.kl \
$(LOCAL_PATH)/configs/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl
# IFAA manager
PRODUCT_PACKAGES += \
IFAAService
IFAAService
# IPACM
PRODUCT_PACKAGES += \
@@ -261,6 +267,7 @@ PRODUCT_COPY_FILES += \
# Kernel
PRODUCT_ENABLE_UFFD_GC := false
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false
# Lineage Health
PRODUCT_PACKAGES += \
@@ -314,6 +321,9 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml \
frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml
# OMX
TARGET_SUPPORTS_OMX_SERVICE := false
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
@@ -321,6 +331,12 @@ DEVICE_PACKAGE_OVERLAYS += \
PRODUCT_ENFORCE_RRO_TARGETS := *
PRODUCT_PACKAGES += \
CarrierConfigOverlay \
NfcOverlay \
SettingsProviderOverlay \
WifiOverlay
# Partitions
PRODUCT_PACKAGES += \
vendor_bt_firmware_mountpoint \
@@ -352,13 +368,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
libvndfwk_detect_jni.qti.vendor # Needed by CNE app
# RIL
PRODUCT_PACKAGES += \
CarrierConfigOverlay
# Sensors
PRODUCT_PACKAGES += \
android.hardware.sensors-service.xiaomi-multihal
android.hardware.sensors-service.xiaomi-multihal \
sensors.xiaomi.v2
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
@@ -371,6 +384,9 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
@@ -458,7 +474,6 @@ PRODUCT_PACKAGES += \
android.hardware.wifi-service \
hostapd \
libwifi-hal-qcom \
WifiOverlay \
wpa_cli \
wpa_supplicant \
wpa_supplicant.conf
@@ -466,7 +481,12 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg_qca6750.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/qca6750/WCNSS_qcom_cfg.ini \
$(LOCAL_PATH)/wifi/fstman.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/fstman.ini \
$(LOCAL_PATH)/wifi/icm.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/icm.conf \
$(LOCAL_PATH)/wifi/passpointProfile.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/passpointProfile.conf \
$(LOCAL_PATH)/wifi/vendor_cmd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/vendor_cmd.xml
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
@@ -477,4 +497,5 @@ PRODUCT_COPY_FILES += \
# WiFi firmware symlinks
PRODUCT_PACKAGES += \
firmware_WCNSS_qcom_cfg.ini_symlink
firmware_WCNSS_qcom_cfg.ini_symlink \
firmware_WCNSS_qcom_cfg_qca6750.ini_symlink

View File

@@ -18,7 +18,7 @@ from extract_utils.main import (
)
namespace_imports = [
'device/xiaomi/sm8350-common',
'device/xiaomi/taoyao',
'hardware/qcom-caf/sm8350',
'hardware/qcom-caf/wlan',
'hardware/xiaomi',
@@ -45,6 +45,7 @@ lib_fixups: lib_fixups_user_type = {
'vendor.xiaomi.hardware.misys@2.0',
'vendor.xiaomi.hardware.misys@3.0',
'vendor.xiaomi.hardware.misys@4.0',
'vendor.xiaomi.hardware.campostproc@1.0',
): lib_fixup_vendor_suffix,
}
@@ -68,14 +69,30 @@ blob_fixups: blob_fixups_user_type = {
.add_needed('libcrypto_shim.so'),
'vendor/lib64/android.hardware.secure_element@1.0-impl.so': blob_fixup()
.remove_needed('android.hidl.base@1.0.so'),
('vendor/etc/camera/pureShot_parameter.xml', 'vendor/etc/camera/pureView_parameter.xml'): blob_fixup()
.regex_replace(r'=(\d+)>', r'="\1">'),
'vendor/lib64/hw/camera.qcom.so': blob_fixup()
.binary_regex_replace(b'\x73\x74\x5F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x6C\x69\x63', b'\x63\x61\x6D\x65\x72\x61\x5F\x63\x6E\x66\x2E\x74\x78\x74')
.replace_needed('libmegface.so', 'libmegface_xiaomi.so')
.add_needed('libprocessgroup_shim.so'),
'vendor/lib64/libMegviiFacepp-0.5.2.so': blob_fixup()
.replace_needed('libmegface.so', 'libmegface_xiaomi.so'),
'vendor/lib64/hw/camera.xiaomi.so': blob_fixup()
.sig_replace('29 07 00 94', '1F 20 03 D5'),
'vendor/lib64/hw/com.qti.chi.override.so': blob_fixup()
.add_needed('libprocessgroup_shim.so')
.binary_regex_replace(b'system/lib64/libion.so', b'vendor/lib64/libion.so'),
'vendor/etc/camera/taoyao_motiontuning.xml': blob_fixup()
.regex_replace('xml=version', 'xml version'),
} # fmt: skip
module = ExtractUtilsModule(
'sm8350-common',
'taoyao',
'xiaomi',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
add_firmware_proprietary_file=True,
)
if __name__ == '__main__':

12
hidl/manifest_taoyao.xml Normal file
View File

@@ -0,0 +1,12 @@
<manifest version="1.0" type="device">
<hal format="hidl">
<name>vendor.qti.hardware.sensorscalibrate</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISensorsCalibrate</name>
<instance>default</instance>
</interface>
<fqname>@1.0::ISensorsCalibrate/default</fqname>
</hal>
</manifest>

View File

@@ -11,4 +11,21 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.xiaomi.hardware.citsensorservice</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ICitSensorService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.xiaomi.hardware.dtool</name>
<version>1.0</version>
<interface>
<name>IDtool</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

24
lineage_taoyao.mk Normal file
View File

@@ -0,0 +1,24 @@
#
# Copyright (C) 2023 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# Inherit from taoyao device
$(call inherit-product, device/xiaomi/taoyao/device.mk)
# Inherit from common PixelOS configuration
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
TARGET_BOOT_ANIMATION_RES := 1080
TARGET_HAS_UDFPS := true
TARGET_INCLUDE_ACCORD := false
# Device identifier. This must come after all inclusions.
PRODUCT_NAME := lineage_taoyao
PRODUCT_DEVICE := taoyao
PRODUCT_MANUFACTURER := Xiaomi
PRODUCT_BRAND := Xiaomi
PRODUCT_MODEL := 2203129G
PRODUCT_GMS_CLIENTID_BASE := android-xiaomi

View File

@@ -1,2 +1,5 @@
# Bluetooth
bluetooth.device.default_name=Xiaomi 12 Lite
# Qcom
ro.vendor.qti.va_odm.support=1

View File

@@ -236,6 +236,7 @@
May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDoze">17</integer>
<item type="dimen" name="config_screenBrightnessDozeFloat">-2.0</item>
<!-- Doze: should the TYPE_PICK_UP_GESTURE sensor be used as a pulse signal. -->
<bool name="config_dozePulsePickup">true</bool>
@@ -317,4 +318,397 @@
<!-- PowerOffAlarmService -->
<bool name="config_powerOffAlarmEnabled">true</bool>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_ambientThresholdLevels. The brightening threshold is calculated as
lux * (1.0f + CONSTRAINT_VALUE). When the current lux is higher than this threshold,
the screen brightness is recalculated. See the config_ambientThresholdLevels
description for how the constraint value is chosen. -->
<integer-array name="config_ambientBrighteningThresholds">
<item>2</item>
<item>5</item>
<item>10</item>
<item>30</item>
<item>100</item>
<item>400</item>
<item>600</item>
<item>1000</item>
</integer-array>
<!-- Array of hysteresis constraint values for darkening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_ambientThresholdLevels. The darkening threshold is calculated as
lux * (1.0f - CONSTRAINT_VALUE). When the current lux is lower than this threshold,
the screen brightness is recalculated. See the config_ambientThresholdLevels
description for how the constraint value is chosen. -->
<integer-array name="config_ambientDarkeningThresholds">
<item>800</item>
<item>800</item>
<item>500</item>
<item>500</item>
<item>500</item>
<item>500</item>
<item>500</item>
<item>500</item>
</integer-array>
<!-- Array of ambient lux threshold values. This is used for determining hysteresis constraint
values by calculating the index to use for lookup and then setting the constraint value
to the corresponding value of the array. The new brightening hysteresis constraint value
is the n-th element of config_ambientBrighteningThresholds, and the new darkening
hysteresis constraint value is the n-th element of config_ambientDarkeningThresholds.
The (zero-based) index is calculated as follows: (MAX is the largest index of the array)
condition calculated index
value < level[0] 0
level[n] <= value < level[n+1] n+1
level[MAX] <= value MAX+1 -->
<array name="config_ambientThresholdLevels">
<item>2</item>
<item>10</item>
<item>30</item>
<item>100</item>
<item>800</item>
<item>2000</item>
<item>4000</item>
</array>
<!-- Array of desired screen brightness in nits corresponding to the lux values
in the config_autoBrightnessLevels array. As with config_screenBrightnessMinimumNits and
config_screenBrightnessMaximumNits, the display brightness is defined as the measured
brightness of an all-white image.
If this is defined then:
- config_autoBrightnessLcdBacklightValues should not be defined
- config_screenBrightnessNits must be defined
- config_screenBrightnessBacklight must be defined
This array should have size one greater than the size of the config_autoBrightnessLevels
array. The brightness values must be non-negative and non-decreasing. This must be
overridden in platform specific overlays -->
<array name="config_autoBrightnessDisplayValuesNits">
<item>3.5</item>
<item>4.3</item>
<item>5.0</item>
<item>17.0</item>
<item>24.0</item>
<item>31.0</item>
<item>34.0</item>
<item>46.0</item>
<item>59.0</item>
<item>76.0</item>
<item>81.0</item>
<item>82.0</item>
<item>82.0</item>
<item>82.0</item>
<item>83.0</item>
<item>83.0</item>
<item>83.0</item>
<item>84.0</item>
<item>84.0</item>
<item>85.0</item>
<item>85.0</item>
<item>85.0</item>
<item>85.0</item>
<item>86.0</item>
<item>86.0</item>
<item>87.0</item>
<item>89.0</item>
<item>90.0</item>
<item>91.0</item>
<item>93.0</item>
<item>94.0</item>
<item>96.0</item>
<item>97.0</item>
<item>99.0</item>
<item>100.0</item>
<item>101.0</item>
<item>104.0</item>
<item>105.0</item>
<item>106.0</item>
<item>108.0</item>
<item>109.0</item>
<item>111.0</item>
<item>112.0</item>
<item>114.0</item>
<item>116.0</item>
<item>137.0</item>
<item>157.0</item>
<item>180.0</item>
<item>205.0</item>
<item>226.0</item>
<item>257.0</item>
<item>280.0</item>
<item>295.0</item>
<item>369.0</item>
<item>400.0</item>
<item>416.7</item>
<item>433.3</item>
<item>450.0</item>
<item>466.7</item>
<item>483.3</item>
<item>500.0</item>
<item>512.5</item>
<item>525.0</item>
<item>537.5</item>
<item>550.0</item>
<item>562.5</item>
<item>575.0</item>
<item>587.5</item>
<item>600.0</item>
<item>610.0</item>
<item>620.0</item>
<item>630.0</item>
<item>640.0</item>
<item>650.0</item>
<item>660.0</item>
<item>670.0</item>
<item>680.0</item>
<item>690.0</item>
<item>700.0</item>
<item>705.0</item>
<item>710.0</item>
<item>715.0</item>
<item>720.0</item>
<item>725.0</item>
<item>730.0</item>
<item>735.0</item>
<item>740.0</item>
<item>745.0</item>
<item>750.0</item>
<item>755.0</item>
<item>760.0</item>
<item>765.0</item>
<item>770.0</item>
<item>775.0</item>
<item>800.0</item>
<item>816.7</item>
<item>833.3</item>
<item>850.0</item>
<item>866.7</item>
<item>883.3</item>
<item>900.0</item>
<item>914.3</item>
<item>928.6</item>
<item>942.9</item>
<item>957.1</item>
<item>971.4</item>
<item>985.7</item>
<item>1000.0</item>
</array>
<!-- Array of light sensor lux values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
(1-based arrays)
Point 1: (0, value[1]): lux <= 0
Point 2: (level[1], value[2]): 0 < lux <= level[1]
Point 3: (level[2], value[3]): level[2] < lux <= level[3]
...
Point N+1: (level[N], value[N+1]): level[N] < lux
The control points must be strictly increasing. Each control point
corresponds to an entry in the brightness backlight values arrays.
For example, if lux == level[1] (first element of the levels array)
then the brightness will be determined by value[2] (second element
of the brightness values array).
Spline interpolation is used to determine the auto-brightness
backlight values for lux levels between these control points.
Must be overridden in platform specific overlays -->
<array name="config_autoBrightnessLevels">
<item>1</item>
<item>2</item>
<item>5</item>
<item>9</item>
<item>13</item>
<item>17</item>
<item>21</item>
<item>26</item>
<item>30</item>
<item>40</item>
<item>83</item>
<item>104</item>
<item>200</item>
<item>400</item>
<item>500</item>
<item>600</item>
<item>700</item>
<item>800</item>
<item>1000</item>
<item>1200</item>
<item>1500</item>
<item>1800</item>
<item>2000</item>
<item>2165</item>
<item>2680</item>
<item>3000</item>
<item>3540</item>
<item>4000</item>
</array>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_screenThresholdLevels. The brightening threshold is calculated as
screenBrightness * (1.0f + CONSTRAINT_VALUE). When the new screen brightness is higher
than this threshold, it is applied. See the config_screenThresholdLevels description for
how the constraint value is chosen. -->
<integer-array name="config_screenBrighteningThresholds">
<item>0</item>
</integer-array>
<!-- Array of hysteresis constraint values for darkening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_screenThresholdLevels. The darkening threshold is calculated as
screenBrightness * (1.0f - CONSTRAINT_VALUE). When the new screen brightness is lower than
this threshold, it is applied. See the config_screenThresholdLevels description for how
the constraint value is chosen. -->
<integer-array name="config_screenDarkeningThresholds">
<item>0</item>
</integer-array>
<!-- Array of output values for LCD backlight corresponding to the lux values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
The brightness values must be between 0 and 255 and be non-decreasing.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLcdBacklightValues">
<item>4</item>
<item>4</item>
<item>4</item>
<item>8</item>
<item>15</item>
<item>20</item>
<item>26</item>
<item>35</item>
<item>45</item>
<item>46</item>
<item>46</item>
<item>46</item>
<item>60</item>
<item>60</item>
<item>60</item>
<item>64</item>
<item>66</item>
<item>70</item>
<item>73</item>
<item>80</item>
<item>88</item>
<item>110</item>
<item>130</item>
<item>135</item>
<item>145</item>
<item>180</item>
<item>200</item>
<item>240</item>
<item>255</item>
</integer-array>
<integer-array name="config_dynamicHysteresisBrightLevels">
<item>2000</item>
<item>2000</item>
<item>1000</item>
<item>1000</item>
<item>500</item>
<item>500</item>
<item>500</item>
<item>500</item>
</integer-array>
<integer-array name="config_dynamicHysteresisDarkLevels">
<item>800</item>
<item>800</item>
<item>800</item>
<item>800</item>
<item>800</item>
<item>500</item>
<item>500</item>
<item>500</item>
</integer-array>
<integer-array name="config_dynamicHysteresisLuxLevels">
<item>2</item>
<item>10</item>
<item>30</item>
<item>100</item>
<item>800</item>
<item>2000</item>
<item>4000</item>
</integer-array>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor
when adapting to brighter or darker environments. This parameter controls how quickly
brightness changes occur in response to an observed change in light level that exceeds the
hysteresis threshold. -->
<integer name="config_autoBrightnessBrighteningLightDebounce">1000</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">1000</integer>
<!-- Fast brightness animation ramp rate in brightness units per second-->
<integer name="config_brightness_ramp_rate_fast">180</integer>
<!-- Slow brightness animation ramp rate in brightness units per second-->
<integer name="config_brightness_ramp_rate_slow">60</integer>
<!-- The maximum range of gamma adjustment possible using the screen
auto-brightness adjustment setting. -->
<fraction name="config_autoBrightnessAdjustmentMaxGamma">300.0%</fraction>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">1</integer>
<item type="dimen" name="config_screenBrightnessDimFloat">-2.0</item>
<!-- The bounding path of the cutout region of the main built-in display.
Must either be empty if there is no cutout region, or a string that is parsable by
{@link android.util.PathParser}.
The path is assumed to be specified in display coordinates with pixel units and in
the display's native orientation, with the origin of the coordinate system at the
center top of the display.
To facilitate writing device-independent emulation overlays, the marker `@dp` can be
appended after the path string to interpret coordinates in dp instead of px units.
Note that a physical cutout should be configured in pixels for the best results.
Example for a 10px x 10px square top-center cutout:
<string ...>M -5,0 L -5,10 L 5,10 L 5,0 Z</string>
Example for a 10dp x 10dp square top-center cutout:
<string ...>M -5,0 L -5,10 L 5,10 L 5,0 Z @dp</string>
@see https://www.w3.org/TR/SVG/paths.html#PathData -->
<string translatable="false" name="config_mainBuiltInDisplayCutout">
M -60,0 L -60,120 L 60,120 L 60,0 Z
</string>
<!-- Whether the display cutout region of the main built-in display should be forced to
black in software (to avoid aliasing or emulate a cutout that is not physically existent). -->
<bool name="config_fillMainBuiltInDisplayCutout">false</bool>
<!-- The default peak refresh rate. -->
<integer name="config_defaultPeakRefreshRate">90</integer>
<!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
<integer name="config_shutdownBatteryTemperature">580</integer>
<bool name="config_wifi_wap3_sap_mode_enabled">true</bool>
<!-- Note: This setting is deprecated, please use
config_screenBrightnessSettingDefaultFloat instead -->
<integer name="config_screenBrightnessSettingDefault">67</integer>
<!-- Note: This setting is deprecated, please use
config_screenBrightnessSettingMinimumFloat instead -->
<integer name="config_screenBrightnessSettingMinimum">1</integer>
<!-- Note: This config is deprecated, use BluetoothProperties instead.
Idle current for bluetooth controller. 0 by default -->
<integer name="config_bluetooth_idle_cur_ma">6</integer>
<!-- Note: This config is deprecated, use BluetoothProperties instead.
Operating volatage for bluetooth controller. 0 by default -->
<integer name="config_bluetooth_operating_voltage_mv">3700</integer>
<!-- Note: This config is deprecated, use BluetoothProperties instead.
Rx current for bluetooth controller. 0 by default -->
<integer name="config_bluetooth_rx_cur_ma">28</integer>
<!-- Note: This config is deprecated, use BluetoothProperties instead.
Tx current for bluetooth controller. 0 by default -->
<integer name="config_bluetooth_tx_cur_ma">36</integer>
</resources>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- The default height of the status bar used in {@link SystemBarUtils#getStatusBarHeight} to
calculate the status bar height. -->
<dimen name="status_bar_height">44dp</dimen>
</resources>

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<device name="Android">
<item name="ambient.on.display0">0.1</item>
<item name="screen.on.display0">0.1</item>
<item name="screen.full.display0">0.1</item>
<item name="bluetooth.active">0.1</item>
<item name="bluetooth.on">0.1</item>
<item name="wifi.on">0.1</item>
<item name="wifi.active">0.1</item>
<item name="wifi.scan">0.1</item>
<item name="audio">0.1</item>
<item name="video">0.1</item>
<item name="camera.flashlight">0.1</item>
<item name="camera.avg">0.1</item>
<item name="gps.on">0.1</item>
<item name="radio.active">0.1</item>
<item name="radio.scanning">0.1</item>
<array name="radio.on">
<value>0.2</value>
<value>0.1</value>
</array>
<array name="cpu.active">
<value>0.1</value>
</array>
<array name="cpu.clusters.cores">
<value>1</value>
</array>
<array name="cpu.speeds.cluster0">
<value>400000</value>
</array>
<array name="cpu.active.cluster0">
<value>0.1</value>
</array>
<item name="cpu.idle">0.1</item>
<array name="memory.bandwidths">
<value>22.7</value>
</array>
<item name="battery.capacity">1000</item>
<item name="wifi.controller.idle">0</item>
<item name="wifi.controller.rx">0</item>
<item name="wifi.controller.tx">0</item>
<array name="wifi.controller.tx_levels" />
<item name="wifi.controller.voltage">0</item>
<array name="wifi.batchedscan">
<value>.0002</value>
<value>.002</value>
<value>.02</value>
<value>.2</value>
<value>2</value>
</array>
<modem>
<sleep>0</sleep>
<idle>0</idle>
<active rat="DEFAULT">
<receive>0</receive>
<transmit level="0">0</transmit>
<transmit level="1">0</transmit>
<transmit level="2">0</transmit>
<transmit level="3">0</transmit>
<transmit level="4">0</transmit>
</active>
</modem>
<item name="modem.controller.voltage">0</item>
<array name="gps.signalqualitybased">
<value>0</value>
<value>0</value>
</array>
<item name="gps.voltage">0</item>
</device>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2006, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<resources>
<dimen name="rounded_corner_content_padding">16dp</dimen>
</resources>

View File

@@ -20,44 +20,6 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Doze: does this device support STATE_DOZE? -->
<bool name="doze_display_state_supported">true</bool>
<!-- Doze: does this device support STATE_DOZE_SUSPEND? -->
<bool name="doze_suspend_display_state_supported">false</bool>
<!-- Type of a sensor that provides a low-power estimate of the desired display
brightness, suitable to listen to while the device is asleep (e.g. during
always-on display) -->
<string name="doze_brightness_sensor_type" translatable="false">xiaomi.sensor.aod</string>
<!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
to brightness values; -1 means keeping the current brightness. -->
<integer-array name="config_doze_brightness_sensor_to_brightness">
<item>-1</item> <!-- 0.0: Never used -->
<item>-1</item> <!-- 1.0: Never used -->
<item>-1</item> <!-- 2.0: Never used -->
<item>-1</item> <!-- 3.0: Never used -->
<item>24</item> <!-- 4.0: Bright environment -->
<item>4</item> <!-- 5.0: Dark environment -->
</integer-array>
<!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
to an opacity value for a black scrim that is overlayed in AOD1.
Valid range is from 0 (transparent) to 255 (opaque).
-1 means keeping the current opacity. -->
<integer-array name="config_doze_brightness_sensor_to_scrim_opacity">
<item>-1</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
</integer-array>
<!-- Preferred max refresh rate at keyguard, if supported by the display. -->
<integer name="config_keyguardMaxRefreshRate">60</integer>
<!-- Preferred max refresh rate at AOD & Ambient Display, if supported by the display. -->
<integer name="config_aodMaxRefreshRate">60</integer>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022-2024 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default paddings for content around the corners. -->
<dimen name="status_bar_padding_start">24dp</dimen>
<!-- Margin on the left side of the carrier text on Keyguard -->
<dimen name="keyguard_carrier_text_margin">0dp</dimen>
<!-- Bottom margin size when fingerprint in display is active -->
<dimen name="keyguard_indication_margin_bottom">12dp</dimen>
<!-- Pixel pitch of the device. um/px -->
<item name="pixel_pitch" format="float" type="dimen">63.2</item>
</resources>

View File

@@ -57,4 +57,10 @@
<!-- Whether to show vendor security patch level -->
<bool name="config_show_vendor_patch_level" translatable="false">false</bool>
<!-- Whether to show Smooth Display feature in Settings Options -->
<bool name="config_show_smooth_display">true</bool>
<!-- The radius of the enrollment progress bar, in dp -->
<integer name="config_udfpsEnrollProgressBar" translatable="false">71</integer>
</resources>

File diff suppressed because it is too large Load Diff

19
proprietary-firmware.txt Normal file
View File

@@ -0,0 +1,19 @@
## All proprietary files from this list are from taoyao V816.0.14.0.ULIMIXM
abl.img;AB
aop.img;AB
bluetooth.img;AB
cpucp.img;AB
devcfg.img;AB
dsp.img;AB
featenabler.img;AB
hyp.img;AB
imagefv.img;AB
keymaster.img;AB
modem.img;AB
qupfw.img;AB
shrm.img;AB
tz.img;AB
uefisecapp.img;AB
xbl_config.img;AB
xbl.img;AB

View File

@@ -142,6 +142,10 @@ on boot
chown system system /sys/class/thermal/thermal_message/charger_temp
chown cameraserver cameraserver /sys/class/thermal/thermal_message/flash_state
# Display feature sysfs node
chown system system /sys/class/mi_display/disp-DSI-0/disp_param
chmod 0664 /sys/class/mi_display/disp-DSI-0/disp_param
# Set xiaomi touch permissions
chown system system /dev/xiaomi-touch
chmod 0660 /dev/xiaomi-touch

View File

@@ -13,9 +13,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Xiaomi sm8350 specific carrier overlays -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.carrierconfig.xiaomi_sm8350"
package="com.android.carrierconfig.taoyao"
android:versionCode="1"
android:versionName="1.0">
<application android:hasCode="false" />

View File

@@ -2,10 +2,10 @@
<carrier_config_list>
<carrier_config>
<boolean name="apn_expand_bool" value="true" />
<boolean name="world_phone_bool" value="true" />
<boolean name="world_phone_bool" value="false" />
<boolean name="allow_adding_apns_bool" value="true" />
<boolean name="hide_preferred_network_type_bool" value="false" />
<boolean name="show_cdma_choices_bool" value="true" />
<boolean name="show_cdma_choices_bool" value="false" />
<boolean name="allow_video_call_in_low_battery" value="true" />
<boolean name="config_enable_display_14digit_imei" value="false" />
<boolean name="video_call_use_ext" value="true" />
@@ -28,7 +28,7 @@
<boolean name="rtt_upgrade_supported_bool" value="false" />
<boolean name="rtt_downgrade_supported_bool" value="false" />
<boolean name="show_rtt_visibility_setting_bool" value="false" />
<boolean name="ignore_rtt_mode_setting_bool" value="false" />
<boolean name="ignore_rtt_mode_setting_bool" value="false"/>
<int name="default_rtt_mode_int" value="0" />
<boolean name="config_update_service_status" value="false" />
<boolean name="config_update_volte_icon" value="false" />

View File

@@ -0,0 +1,6 @@
runtime_resource_overlay {
name: "NfcOverlay",
theme: "NfcOverlay",
sdk_version: "current",
product_specific: true
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2019 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.nfc.taoyao"
android:versionCode="1"
android:versionName="1.0">
<application android:hasCode="false" />
<overlay
android:targetPackage="com.android.nfc"
android:isStatic="true"
android:priority="0"/>
</manifest>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 Paranoid Android
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<!-- List of SKUs where Secure NFC functionality is supported -->
<string-array name="config_skuSupportsSecureNfc">
<item>taoyao</item>
</string-array>
</resources>

View File

@@ -0,0 +1,6 @@
runtime_resource_overlay {
name: "SettingsProviderOverlay",
theme: "SettingsProviderOverlay",
sdk_version: "current",
product_specific: true
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2019 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.providers.settings.taoyao"
android:versionCode="1"
android:versionName="1.0">
<application android:hasCode="false" />
<overlay
android:targetPackage="com.android.providers.settings"
android:isStatic="true"
android:priority="0"/>
</manifest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
<string name="def_device_name_simple" translatable="false">Xiaomi 12 Lite</string>
</resources>

View File

@@ -13,15 +13,14 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Pixel specific wifi overlays -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.wifi.resources.xiaomi_sm8350"
package="com.android.wifi.resources.taoyao"
android:versionCode="1"
android:versionName="1.0">
<application android:hasCode="false" />
<overlay
android:targetPackage="com.android.wifi.resources"
android:targetName="WifiCustomization"
android:isStatic="true"
android:priority="0"/>
</manifest>

View File

@@ -79,4 +79,17 @@
channels this should be empty. Values is a comma separated channel string and/or channel
range string like '1-6,11'. -->
<string translatable="false" name="config_wifiSoftap2gChannelList"></string>
<!-- Do not translate. Default access point SSID used for tethering -->
<string name="wifi_tether_configure_ssid_default" translatable="false">Xiaomi 12 Lite</string>
<bool name="config_vendor_softap_beacon_protection_supported">true</bool>
<bool name="config_vendor_softap_ocv_supported">true</bool>
<bool name="config_wifi6ghzSupport">false</bool>
<bool name="config_wifiMultiStaRestrictedConcurrencyEnabled">false</bool>
<bool name="config_wifiSoftapHeMuBeamformerSupported">false</bool>
<bool name="config_wifiSoftapHeTwtSupported">false</bool>
<bool name="config_wifi_framework_enable_quick_connect">true</bool>
<integer name="config_wifi_partial_scan_results_fetching_period_ms">1000</integer>
<string name="config_wifi_tcp_buffers">524288,1048576,2097152,524288,1048576,4194304</string>
</resources>

4
sensors/hals.conf Normal file
View File

@@ -0,0 +1,4 @@
sensors.elliptic@2.0.so
sensors.ssc.so
sensors.touch.detect.so
sensors.xiaomi.v2.so

View File

@@ -17,6 +17,7 @@ set_prop(hal_fingerprint_default, vendor_fp_prop)
set_prop(hal_fingerprint_default, vendor_fp_info_prop)
# Sysfs
allow hal_fingerprint_default sysfs:file w_file_perms;
allow hal_fingerprint_default sysfs_rtc:dir r_dir_perms;
allow hal_fingerprint_default sysfs_rtc:file rw_file_perms;
allow hal_fingerprint_default vendor_sysfs_spss:dir r_dir_perms;
@@ -31,5 +32,6 @@ allow hal_fingerprint_default vendor_sysfs_graphics:file rw_file_perms;
allow hal_fingerprint_default tee_device:chr_file rw_file_perms;
allow hal_fingerprint_default uhid_device:chr_file rw_file_perms;
allow hal_fingerprint_default vendor_fingerprint_device:chr_file rw_file_perms;
allow hal_fingerprint_default vendor_touchfeature_device:chr_file rw_file_perms;
allow hal_fingerprint_default input_device:dir r_dir_perms;
allow hal_fingerprint_default input_device:chr_file rw_file_perms;

View File

@@ -8,13 +8,16 @@
#include <aidl/android/hardware/biometrics/fingerprint/BnFingerprint.h>
#include <android-base/logging.h>
#include <android-base/unique_fd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <fstream>
#include <poll.h>
#include <thread>
#include "UdfpsHandler.h"
#include "xiaomi_touch.h"
// Fingerprint hwmodule commands
#define COMMAND_NIT 10
@@ -22,13 +25,12 @@
#define PARAM_NIT_NONE 0
// Touchscreen and HBM
#define FOD_HBM_PATH "/sys/devices/platform/soc/soc:qcom,dsi-display-primary/fod_hbm"
#define FOD_STATUS_PATH "/sys/devices/virtual/touch/tp_dev/fod_status"
#define FOD_UI_PATH "/sys/devices/platform/soc/soc:qcom,dsi-display-primary/fod_ui"
#define DISP_PARAM_PATH "/sys/devices/virtual/mi_display/disp_feature/disp-DSI-0/disp_param"
#define FOD_PRESS_STATUS_PATH "/sys/class/touch/touch_dev/fod_press_status"
#define FOD_HBM_OFF 0
#define FOD_HBM_ON 1
#define FOD_HBM_MODE "9"
#define FOD_HBM_OFF "0"
#define FOD_HBM_ON "1"
#define FOD_STATUS_OFF 0
#define FOD_STATUS_ON 1
@@ -36,6 +38,12 @@
#define PARAM_FOD_PRESSED 1
#define PARAM_FOD_RELEASED 0
#define TOUCH_DEV_PATH "/dev/xiaomi-touch"
#define TOUCH_ID 0
#define TOUCH_MAGIC 'T'
#define TOUCH_IOC_SET_CUR_VALUE _IO(TOUCH_MAGIC, SET_CUR_VALUE)
#define TOUCH_IOC_GET_CUR_VALUE _IO(TOUCH_MAGIC, GET_CUR_VALUE)
using ::aidl::android::hardware::biometrics::fingerprint::AcquiredInfo;
template <typename T>
@@ -67,43 +75,30 @@ class XiaomiUdfpsHandler : public UdfpsHandler {
public:
void init(fingerprint_device_t* device) {
mDevice = device;
touchUniqueFd = android::base::unique_fd(open(TOUCH_DEV_PATH, O_RDWR));
std::thread([this]() {
int fodUiFd = open(FOD_UI_PATH, O_RDONLY);
int fodPressStatusFd = open(FOD_PRESS_STATUS_PATH, O_RDONLY);
if (fodUiFd < 0) {
LOG(ERROR) << "failed to open fodUiFd, err: " << fodUiFd;
return;
}
if (fodPressStatusFd < 0) {
LOG(ERROR) << "failed to open fodPressStatusFd, err: " << fodPressStatusFd;
return;
}
struct pollfd fds[2] = {
{fodUiFd, .events = POLLERR | POLLPRI, .revents = 0},
struct pollfd fds[1] = {
{fodPressStatusFd, .events = POLLERR | POLLPRI, .revents = 0},
};
while (true) {
int rc = poll(fds, 2, -1);
int rc = poll(fds, 1, -1);
if (rc < 0) {
if (fds[0].revents & POLLERR) {
LOG(ERROR) << "failed to poll fodUiFd, err: " << rc;
}
if (fds[1].revents & POLLERR) {
LOG(ERROR) << "failed to poll fodPressStatusFd, err: " << rc;
}
continue;
}
if (fds[0].revents & (POLLERR | POLLPRI)) {
bool nitState = readBool(fodUiFd);
mDevice->extCmd(mDevice, COMMAND_NIT, nitState ? PARAM_NIT_UDFPS : PARAM_NIT_NONE);
}
if (fds[1].revents & (POLLERR | POLLPRI)) {
bool pressState = readBool(fodPressStatusFd);
mDevice->extCmd(mDevice, COMMAND_FOD_PRESS_STATUS, pressState ? PARAM_FOD_PRESSED : PARAM_FOD_RELEASED);
}
@@ -112,34 +107,47 @@ class XiaomiUdfpsHandler : public UdfpsHandler {
}
void onFingerDown(uint32_t /*x*/, uint32_t /*y*/, float /*minor*/, float /*major*/) {
set(FOD_STATUS_PATH, FOD_STATUS_ON);
LOG(INFO) << __func__;
setFingerDown(true);
}
void onFingerUp() {
set(FOD_STATUS_PATH, FOD_STATUS_OFF);
LOG(INFO) << __func__;
setFingerDown(false);
}
void onAcquired(int32_t result, int32_t vendorCode) {
LOG(INFO) << __func__ << " result: " << result << " vendorCode: " << vendorCode;
if (static_cast<AcquiredInfo>(result) == AcquiredInfo::GOOD) {
set(FOD_HBM_PATH, FOD_HBM_OFF);
set(FOD_STATUS_PATH, FOD_STATUS_OFF);
setFingerDown(false);
} else if (vendorCode == 21) {
/*
* vendorCode = 21 waiting for finger
* vendorCode = 22 finger down
* vendorCode = 23 finger up
*/
set(FOD_STATUS_PATH, FOD_STATUS_ON);
setFodStatus(FOD_STATUS_ON);
}
}
void cancel() {
set(FOD_STATUS_PATH, FOD_STATUS_OFF);
set(FOD_HBM_PATH, FOD_HBM_OFF);
LOG(INFO) << __func__;
setFingerDown(false);
setFodStatus(FOD_STATUS_OFF);
}
private:
fingerprint_device_t* mDevice;
android::base::unique_fd touchUniqueFd;
void setFodStatus(int value) {
int buf[MAX_BUF_SIZE] = {TOUCH_ID, TOUCH_FOD_ENABLE, value};
ioctl(touchUniqueFd.get(), TOUCH_IOC_SET_CUR_VALUE, &buf);
}
void setFingerDown(bool pressed) {
mDevice->extCmd(mDevice, COMMAND_NIT, pressed ? PARAM_NIT_UDFPS : PARAM_NIT_NONE);
int buf[MAX_BUF_SIZE] = {TOUCH_ID, THP_FOD_DOWNUP_CTL, pressed ? 1 : 0};
ioctl(touchUniqueFd.get(), TOUCH_IOC_SET_CUR_VALUE, &buf);
set(DISP_PARAM_PATH, std::string(FOD_HBM_MODE) + " " + (pressed ? FOD_HBM_ON : FOD_HBM_OFF));
}
};
static UdfpsHandler* create() {

62
udfps/xiaomi_touch.h Normal file
View File

@@ -0,0 +1,62 @@
/*
* Copyright (C) 2022 The LineageOS Project
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#define VALUE_TYPE_SIZE 6
#define VALUE_GRIP_SIZE 9
#define MAX_BUF_SIZE 256
#define BTN_INFO 0x152
#define MAX_TOUCH_ID 10
#define RAW_BUF_NUM 4
#define THP_CMD_BASE 1000
enum suspend_state {
XIAOMI_TOUCH_RESUME = 0,
XIAOMI_TOUCH_SUSPEND,
XIAOMI_TOUCH_LP1,
XIAOMI_TOUCH_LP2,
};
enum MODE_CMD {
SET_CUR_VALUE = 0,
GET_CUR_VALUE,
GET_DEF_VALUE,
GET_MIN_VALUE,
GET_MAX_VALUE,
GET_MODE_VALUE,
RESET_MODE,
SET_LONG_VALUE,
};
enum MODE_TYPE {
TOUCH_GAME_MODE = 0,
TOUCH_ACTIVE_MODE = 1,
TOUCH_UP_THRESHOLD = 2,
TOUCH_TOLERANCE = 3,
TOUCH_AIM_SENSITIVITY = 4,
TOUCH_TAP_STABILITY = 5,
TOUCH_EXPERT_MODE = 6,
TOUCH_EDGE_FILTER = 7,
TOUCH_PANEL_ORIENTATION = 8,
TOUCH_REPORT_RATE = 9,
TOUCH_FOD_ENABLE = 10,
TOUCH_AOD_ENABLE = 11,
TOUCH_RESIST_RF = 12,
TOUCH_IDLE_TIME = 13,
TOUCH_DOUBLETAP_MODE = 14,
TOUCH_GRIP_MODE = 15,
TOUCH_FODICON_ENABLE = 16,
TOUCH_NONUI_MODE = 17,
TOUCH_DEBUG_LEVEL = 18,
TOUCH_POWER_STATUS = 19,
TOUCH_MODE_NUM = 20,
THP_LOCK_SCAN_MODE = THP_CMD_BASE + 0,
THP_FOD_DOWNUP_CTL = THP_CMD_BASE + 1,
THP_SELF_CAP_SCAN = THP_CMD_BASE + 2,
THP_REPORT_POINT_SWITCH = THP_CMD_BASE + 3,
THP_HAL_INIT_READY = THP_CMD_BASE + 4,
};

View File

@@ -164,6 +164,10 @@ persist.vendor.dpm.idletimer.mode=default
persist.vendor.dpm.nsrm.bkg.evt=3955
persist.vendor.dpmhalservice.enable=1
# Fingerprint
persist.vendor.fingerprint.type=udfps_optical
persist.vendor.fingerprint.sensor_location=540|2149|103
# FRP
ro.frp.pst=/dev/block/bootdevice/by-name/frp
@@ -269,6 +273,7 @@ persist.vendor.sensors.debug.hal=0
persist.vendor.sensors.allow_non_default_discovery=true
persist.vendor.sensors.on_change_sample_period=true
persist.vendor.sensors.sync_request=true
ro.vendor.sensors.xiaomi.udfps=true
# Storage
ro.incremental.enable=yes

View File

@@ -19,6 +19,7 @@ gNeighborScanChannelMinTime=20
FastRoamEnabled=1
RoamRssiDiff=5
gRoamIntraBand=0
gChannelBondingMode24GHz=1
gChannelBondingMode5GHz=1
gEnableDFSChnlScan=1
gAllowDFSChannelRoam=1
@@ -32,7 +33,7 @@ gEnableTxBFin20MHz=1
gEnableTxSUBeamformer=1
gRrmEnable=1
gEnablefwprint=0
gEnablefwlog=0
gEnablefwlog=1
gVhtAmpduLenExponent=7
gVhtMpduLen=2
isP2pDeviceAddrAdministrated=0
@@ -143,10 +144,8 @@ gStaKeepAlivePeriod = 30
etsi13_srd_chan_in_master_mode=7
#####Roaming
# TheCrazyLex@PA Prefer connecting to 5Ghz AP
# even if its RSSI is lower by 3dBm than the 2.4Ghz AP
gRoamPrefer5GHz=1
gSelect5GHzMargin=3
# Sets RSSI preference for 5GHz over 2.4GHz AP
gSelect5GHzMargin=5
# Candidate AP minimum RSSI for beacon miss roam trigger
# Code default is -70
@@ -203,15 +202,14 @@ gindoor_channel_support=1
#Enable max link speed
gReportMaxLinkSpeed=2
# Disable rx wakelock
rx_wakelock_timeout=0
# Skip tpe consideration
skip_tpe_consideration=1
gEnableNanSupport=1
genable_nan_datapath=1
nan_separate_iface_support=1
gEnableSelfRecovery=1
#####################################Xiaomi ADD: END
END

View File

@@ -0,0 +1,596 @@
# This file allows user to override the factory
# defaults for the WLAN Driver
# Enable IMPS or not
gEnableImps=1
# Enable BMPS or not
gEnableBmps=1
# Use XiaoMi's change instead
# Enable PCI gen switch
#g_enable_pci_gen=1
# Phy Mode (auto, b, g, n, etc)
# Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac
# 1 = 11abg, 2 = 11b, 3 = 11g, 5 = 11g only, 6 = 11n only
# 7 = 11b only 8 = 11ac only.
gDot11Mode=0
# UAPSD service interval for VO,VI, BE, BK traffic
InfraUapsdVoSrvIntv=0
InfraUapsdViSrvIntv=0
InfraUapsdBeSrvIntv=0
InfraUapsdBkSrvIntv=0
# Flag to allow STA send AddTspec even when ACM is Off
gAddTSWhenACMIsOff=1
#Flag to enable HostARPOffload feature or not
hostArpOffload=1
#Flag to enable HostNSOffload feature or not
hostNSOffload=1
# 802.11n Protection flag
gEnableApProt=1
#Enable OBSS protection
gEnableApOBSSProt=1
#Enable/Disable UAPSD for SoftAP
gEnableApUapsd=1
# Maximum Tx power
# gTxPowerCap=30
# Fragmentation Threshold
# gFragmentationThreshold=2346
# RTS threshold
RTSThreshold=1048576
# Intra-BSS forward
gDisableIntraBssFwd=0
# WMM Enable/Disable
WmmIsEnabled=0
# 802.11d support
g11dSupportEnabled=0
# 802.11h support
g11hSupportEnabled=1
# DFS Master Capability
gEnableDFSMasterCap=1
# ESE Support and fast transition
EseEnabled=0
ImplicitQosIsEnabled=0
gNeighborScanTimerPeriod=200
gNeighborLookupThreshold=76
gNeighborScanChannelMinTime=20
# Legacy (non-ESE, non-802.11r) Fast Roaming Support
# To enable, set FastRoamEnabled=1
# To disable, set FastRoamEnabled=0
FastRoamEnabled=1
# Check if the AP to which we are roaming is better than current AP in
# terms of RSSI. Checking is disabled if set to Zero.Otherwise it will
# use this value as to how better the RSSI of the new/roamable AP should
# be for roaming
RoamRssiDiff=5
# To enable, set gRoamIntraBand=1 (Roaming within band)
# To disable, set gRoamIntraBand=0 (Roaming across band)
gRoamIntraBand=0
#Short Guard Interval Enable/disable
gShortGI20Mhz=1
gShortGI40Mhz=1
#Auto Shutdown wlan : Value in Seconds. 0 means disabled. Max 1 day = 86400 sec
gWlanAutoShutdown = 0
#Channel Bonding
gChannelBondingMode24GHz=1
gChannelBondingMode5GHz=1
#Say gGoKeepAlivePeriod(5 seconds) and gGoLinkMonitorPeriod(10 seconds).
#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link
#is idle for last 10 seconds.) For both active and power save clients.
#Power save clients: DUT set TIM bit from 10th second onwards and till client
#honors TIM bit. If doesn't honor for 5 seconds then DUT remove client.
#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not
#success still we try on 11th second if not tries on 12th and so on till 15th
#second. Hence before disconnection DUT will send 5 NULL frames. Hence in any
#case DUT will detect client got removed in (10+5) seconds.
#i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..
#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and
#it is period where we send NULL frame.
#gApLinkMonitorPeriod = 10
#gGoLinkMonitorPeriod = 10
#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame
#are succeed to send or not. Hence total effective detection time is
# (gGoLinkMonitorPeriod + gGoKeepAlivePeriod) /
# (gApLinkMonitorPeriod + gApKeepAlivePeriod)
gGoKeepAlivePeriod = 20
gApKeepAlivePeriod = 20
#If set to 0, will not scan DFS channels
gEnableDFSChnlScan=1
# Enable DFS channel roam
# 0: DISABLE, 1: ENABLED_NORMAL, 2: ENABLED_ACTIVE
gAllowDFSChannelRoam=1
gVhtChannelWidth=2
#Data Inactivity Timeout when in powersave (in ms)
gDataInactivityTimeout=200
# Set txchainmask and rxchainmask
# These parameters are used only if gEnable2x2 is 0
# Valid values are 1,2
# Set gSetTxChainmask1x1=1 or gSetRxChainmask1x1=1 to select chain0.
# Set gSetTxChainmask1x1=2 or gSetRxChainmask1x1=2 to select chain1.
gSetTxChainmask1x1=1
gSetRxChainmask1x1=1
# Scan Timing Parameters
# gPassiveMaxChannelTime=110
# gPassiveMinChannelTime=60
gActiveMaxChannelTime=40
#If set to 0, MCC is not allowed.
gEnableMCCMode=1
# MCC to SCC Switch mode:
# 0-Disable
# 1-Enable
# 2-Force SCC if same band, with SAP restart
# 3-Force SCC if same band, without SAP restart by sending (E)CSA
# 4-Force SCC if same band (or) use SAP mandatory channel for DBS,
# without SAP restart by sending (E)CSA
gWlanMccToSccSwitchMode = 3
# 1=enable STBC; 0=disable STBC
gEnableRXSTBC=1
# 1=enable tx STBC; 0=disable
gEnableTXSTBC=1
# 1=enable rx LDPC; 0=disable
gEnableRXLDPC=1
#Enable/Disable Tx beamforming
gTxBFEnable=1
#Enable/Disable Tx beamformee in SAP mode
gEnableTxBFeeSAP=1
# Enable Tx beamforming in VHT20MHz
# Valid values are 0,1. If commented out, the default value is 0.
# 0=disable, 1=enable
gEnableTxBFin20MHz=1
#Enable/Disable SU Tx beamformer support.
gEnableTxSUBeamformer=1
gEnableFastRoamInConcurrency=1
# 802.11K support
gRrmEnable=1
#Enable firmware uart print
gEnablefwprint=0
# Firmware log mode
# Valid values are 0,1,2
# 0=Disable, 1=WMI, 2=DIAG
gEnablefwlog=1
# Maximum Receive AMPDU size (VHT only. Valid values:
# 0->8k 1->16k 2->32k 3->64k 4->128k)
gVhtAmpduLenExponent=7
# Maximum MPDU length (VHT only. Valid values:
# 0->3895 octets, 1->7991 octets, 2->11454 octets)
gVhtMpduLen=2
# Maximum number of wow filters required
#gMaxWoWFilters=22
# WOW Enable/Disable.
# 0 - Disable both magic pattern match and pattern byte match.
# 1 - Enable magic pattern match on all interfaces.
# 2 - Enable pattern byte match on all interfaces.
# 3 - Enable both magic pattern and pattern byte match on all interfaces.
# Default value of gEnableWoW is 3.
# gEnableWoW=0
# Enable or Disable MCC Adaptive Scheduler at the FW
# 1=Enable (default), 0=Disable
gEnableMCCAdaptiveScheduler=1
#Enable or Disable p2p device address administered
isP2pDeviceAddrAdministrated=0
# Remove Overlap channel restriction
gEnableOverLapCh=0
#Enable VHT on 2.4Ghz
gEnableVhtFor24GHzBand=1
#Maximum number of offload peers supported
# gMaxOffloadPeers=2
# controlling the following offload patterns
# through ini parameter. Default value is 1
# to disable set it to zero. ssdp = 0
# Setup multicast pattern for mDNS 224.0.0.251,
# SSDP 239.255.255.250 and LLMNR 224.0.0.252
ssdp=0
#Enable Memory Deep Sleep
gEnableMemDeepSleep=1
# RA filtering rate limit param, the current value would not
# help if the lifetime in RA is less than 3*60=3min. Then
# we need to change it, though it is uncommon.
# gRAFilterEnable=0
gRArateLimitInterval=600
# Maximum number of concurrent connections
gMaxConcurrentActiveSessions=3
# Disable/Enable GreenAP
# 0 to disable, 1 to enable, default: 1
gEnableGreenAp=0
gPNOScanSupport=1
#Enable/Disable LPASS support
# 0 to disable, 1 to enable
gEnableLpassSupport=1
# Whether userspace country code setting shld have priority
gCountryCodePriority=1
# Enable(1)/Disable(0) SIFS burst
gEnableSifsBurst=1
# Enable or Disable Multi-user MIMO
# 1=Enable (default), 0=Disable
gEnableMuBformee=1
# Inactivity time (in ms) to end TX Service Period while in IBSS power save mode
gIbssTxSpEndInactivityTime=10
# Enable TDLS External Control. That is, user space application has to
# first configure a peer MAC in wlan driver towards which TDLS is desired.
# Device will establish TDLS only towards those configured peers whenever
# TDLS criteria (throughput and RSSI threshold) is met and teardown TDLS
# when teardown criteria (idle packet count and RSSI) is met. However,
# device will accept TDLS connection if it is initiated from any other peer,
# even if that peer is not configured.
# 0 - disable
# 1 - enable
# For TDLS External Control, Implicit Trigger must also be enabled.
gTDLSExternalControl=1
# Enable support for TDLS off-channel operation
# 0 - disable
# 1 - enable
# TDLS off-channel operation will be invoked when there is only one
# TDLS connection.
gEnableTDLSOffChannel=1
# Enable or Disable Random MAC (Spoofing)
# 1=Enable (default), 0=Disable
gEnableMacAddrSpoof=1
################ Datapath feature set Begin ################
# Bus bandwidth threshold values in terms of number of packets
gBusBandwidthHighThreshold=2000
gBusBandwidthMediumThreshold=500
gBusBandwidthLowThreshold=150
# Bus bandwidth compute timeout value in ms
gBusBandwidthComputeInterval=100
# VHT Tx/Rx MCS values
# Valid values are 0,1,2. If commented out, the default value is 0.
# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
gVhtRxMCS=2
gVhtTxMCS=2
# VHT Tx/Rx MCS values for 2x2
# Valid values are 0,1,2. If commented out, the default value is 0.
# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
gEnable2x2=1
gVhtRxMCS2x2=2
gVhtTxMCS2x2=2
#IPA config is a bit mask and following are the configurations.
#bit0 IPA Enable
#bit1 IPA PRE Filter enable
#bit2 IPv6 enable
#bit3 IPA Resource Manager (RM) enable
#bit4 IPA Clock scaling enable
#bit5 IPA uC ENABLE
#bit6 IPA uC STA ENABLE
#bit8 IPA Real Time Debugging
gIPAConfig=0x7d
gIPADescSize=800
# Set IPA bandwidth levels in mbps
gIPALowBandwidthMbps=100
gIPAMediumBandwidthMbps=400
gIPAHighBandwidthMbps=800
# Set CPU mask for RPS Rx queue
rpsRxQueueCpuMapList=07
# Enable/Disable RX full reorder offload
gReorderOffloadSupported=1
# Enable CE classification
# 1 - enable(default) 0 - disable
gCEClassifyEnable=1
# Enable Rx handling options
# Rx_thread=1 RPS=2(default for ROME) NAPI=4(default for ihelium)
rx_mode=20
# Enable(Tx) fastpath for data traffic.
# 1 - enable(default) 0 - disable
gEnableFastPath=1
# This flag enables IP, TCP and UDP checksum offload
# 1 - enable(default) 0 - disable
gEnableIpTcpUdpChecksumOffload=1
# Enable TCP Segmentation Offload
# 1 - enable 0 - disable
TSOEnable=1
# Enable Generic Receive Offload
# 1 - enable(default) 0 - disable
GROEnable=1
# Enable HT MPDU Density
# 4 for 2 micro sec
ght_mpdu_density=4
# Enable flow steering to enable multiple CEs for Rx flows.
# Multiple Rx CEs<==>Multiple Rx IRQs<==>probably different CPUs.
# Parallel Rx paths.
# 1 - enable 0 - disable(default)
gEnableFlowSteering=1
# Time in microseconds after which a NAPI poll must yield
ce_service_max_yield_time=500
#Maximum number of HTT messages to be processed per NAPI poll
ce_service_max_rx_ind_flush=1
# Maximum number of MSDUs the firmware will pack in one HTT_T2H_MSG_TYPE_RX_IN_ORD_PADDR_IND
maxMSDUsPerRxInd=8
# Use XiaoMi's change instead
# Enable NUD tracking feature
# 1 - enable 0 - disable(default)
# gEnableNUDTracking=1
################ Datapath feature set End ################
################ NAN feature set start ###################
# Enable NAN discovery (NAN 1.0)
# 1 - enable 0 - disable(default)
gEnableNanSupport=1
# Enable NAN Datapath
genable_nan_datapath=1
################ NAN feature set end #####################
adaptive_dwell_mode_enabled=1
hostscan_adaptive_dwell_mode=1
adapt_dwell_lpf_weight=80
adapt_dwell_wifi_act_threshold=10
MAWCEnabled=0
# Enable/Disable rtt sta mac randomization
enable_rtt_mac_randomization=1
#Enable/Disable SNR monitoring
gEnableSNRMonitoring=1
# Enable Runtime PM
gRuntimePM=2
gRuntimePMDelay=500
# Rx thread affinity mask in UL case
RX_THREAD_UL_CPU_AFFINITY_MASK=0xc0
AutoChannelSelectWeight=0x00fafafa
bcast_twt=1
dp_tx_ring_size=3072
gWmiCreditCount=1
# Enable RX buffer pool
dp_rx_buff_prealloc_pool=1
#Enable RX FISA
dp_rx_fisa_enable=1
dp_rx_flow_search_table_size=128
legacy_mode_csum_disable=0
#Enable Rx refill pool
dp_rx_refill_buff_pool=1
# Enable Software latency manager
gEnableSWLM=1
# Place FST in CMEM
dp_rx_fst_in_cmem=1
# Use QMI path to get LL and station stats
send_ll_and_get_station_stats_over_qmi=1
#enable 6GHz support for RTT/LOWI
oem_6g_support_disable=0
#####################################Xiaomi ADD: START
# Set 2.4g channel scan time to 40
active_max_channel_time_2g=0
# gActiveMaxChannelTime=40
# WLM flags setting for ultralow level, bit9 for BMPS disabled
# bit 0: Avoid scan request from HLOS if setting
# bit 1: Skip DFS channel SCAN if setting
# bit 19/20: 1 to set PCIE in L1SS state(low power mode), 0 to set PCIE in L0 state(active mode)
wlm_latency_flags_ultralow=0x180003
#APF: Android Packet Filter
gActiveMcBcBpfMode=1
# Assoc failure timeout value
# Code default is 2000
assoc_failure_timeout=5000
# Enable NUD tracking feature
# 0 - disable(default),1 - trigger disconnect, 2 - trigger roaming,
# 3 - trigger roaming, but if roam fails, disconnection
gEnableNUDTracking=3
#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame
#are succeed to send or not. Hence total effective detection time is
# (gGoLinkMonitorPeriod + gGoKeepAlivePeriod) /
# (gApLinkMonitorPeriod + gApKeepAlivePeriod)
# gGoKeepAlivePeriod = 20
# gApKeepAlivePeriod = 20
#Enable Keep alive with non-zero period value
gStaKeepAlivePeriod = 30
# Enable ETSI SRD channels by Xiaomi. Qualcom default value is disable
# * BIT 0:- Enable/Disable SRD channels for SAP.
# * BIT 1:- Enable/Disable SRD channels for P2P-GO.
# * BIT 2:- Enable/Disable SRD channels for NAN.
# Code default value is 6.
etsi13_srd_chan_in_master_mode=7
#####Roaming
# Sets RSSI preference for 5GHz over 2.4GHz AP
gSelect5GHzMargin=5
# Candidate AP minimum RSSI for beacon miss roam trigger
# Code default is -70
candidate_min_rssi_for_beacon_miss=-83
# Dense traffic threshold in kBps
# Code default is 400
gtraffic_threshold=50
#Idle Monitor Roaming: START
# Code default is flase to disable idle roaming
enable_idle_roam=1
idle_roam_min_rssi=-65
#Idle Monitor Roaming: END
#enable/disable FT open feature
# Code default is 1
enable_ftopen=0
# Stop auto-creating twt session
twt_congestion_timeout=0
# Disable triggers of data rssi threshold for roam.
# Sometimes have big gap between data rssi and beacon rssi,
# this triggers will Interfere and delay the normal roam.
roam_data_rssi_threshold_triggers=0
#VTS SAR test fail as sar version is not match
gEnableSARV1toSARV2=1
# This ini is used to give higher priority for 5g scc than dbs.
# It is bitmap per enum policy_mgr_con_mode.
# For example in GO+STA(5G) mode, when TPUT is onfigured as wlan system
# preference option, If 5G SCC needs higher priority than dbs, set it as 8.
g_prefer_5g_scc_to_dbs=8
# set modulated DTIM interval
gEnableModulatedDTIM=3
gMaxLIModulatedDTIM=3
# Enable modulated DTIM only for System suspend wow.
# For RTPM wow, the device will stay in DTIM 1 (non-modulated DTIM).
enable_mod_dtim_on_system_suspend=1
# Reduce the expiry time for avoid list and black list in drv.
avoid_list_expiry_time=3
black_list_expiry_time=5
# Improve threshold to move the Ap from avoid to blacklist
bad_bssid_counter_thresh=7
# Enable the sending of ICMP requests to the
# FW at an interval of 200 milliseconds
send_icmp_req_to_fw=200
icmp_req_to_fw_mark_interval=200
# Enable SoftAP on indoor channel, but Xiaomi's patch in driver only
# allow this when STA was connected on the same indoor channel.
gindoor_channel_support=1
#Enable max link speed
gReportMaxLinkSpeed=2
# Skip tpe consideration
skip_tpe_consideration=1
# Disable PCI gen switch
g_enable_pci_gen=0
# Configure ILP HW block
# 0: disable
# 1: perf settings
# 2: max power saving
# 3: balanced settings
g_enable_ilp=1
# Set sta preference to connect in 80HZ
# gStaPrefer80MHzOver160MHz=1
# Station's in-activity time can be extended
# with the APs of specify OUIs.
# 00e04c:Realtek
gActionOUIITOExtension=00e04c 00 01
bss_color_collision_det_sta=1
gEnableSelfRecovery=1
#####################################Xiaomi ADD: END
END
# Note: Configuration parser would not read anything past the END marker

24
wifi/fstman.ini Normal file
View File

@@ -0,0 +1,24 @@
[fst_manager]
ctrl_iface=/data/vendor/wifi/hostapd/global
groups=bond0
[bond0]
interfaces=wlan0,wigig0
mux_type=bonding
mux_ifname=bond0
mux_managed=1
mac_address_by=wlan0
rate_upgrade_master=wlan0
txqueuelen=100
rate_upgrade_acl_file=/data/vendor/wifi/fst_rate_upgrade.accept
[wlan0]
priority=100
default_llt=3600
[wigig0]
priority=110
wpa_group=GCMP
wpa_pairwise=GCMP
hw_mode=ad
channel=2

116
wifi/icm.conf Normal file
View File

@@ -0,0 +1,116 @@
# Copyright (c) 2017, 2019 The Linux Foundation. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# icm configuration file
#number of devices
num_devices=1
# Number of Radios
num_radios=1
# Communication interface with driver
# options: ioctl OR cfg
walflag=cfg
# enable daemon
# 0 - disable
# 1 - enable
daemon=0
# enable server_mode
# 0 - disable
# 1 - enable
server_mode=0
# debug level
# 1 - minor
# 2 - default
# 3 - major
# 4 - critical
debug_level=2
# debug mask
# 0x01 - ICM main module
# 0x02 - ICM SCAN module
# 0x04 - ICM_SELELCTOR module
# 0x08 - ICM_UTIL module
# 0x10 - ICM Test module
# 0xFF - Default
debug_module_bitmap=255
# socket interface type
# 0 - TCP socket
# 1 - UDP socket
sock_type=1
#### Below this, configuration are per interface starting with id_* ####
# radio interface name
id_0_radio_ifname=phy0
#id_1_radio_ifname=phy1
#id_2_radio_ifname=wifi2
# device interface name
id_0_dev_ifname=softap0
#id_1_dev_ifname=p2p0
#id_2_dev_ifname=ath2
# operating band
# 0 - 2.4 GHz band
# 1 - 5 GHz band
id_0_band=0
id_1_band=1
#id_2_band=1
# PHY specification
# 0 - 11A
# 1 - 11B
# 2 - 11G
# 3 - FH
# 4 - TURBO_A
# 5 - TURBO_G
# 6 - 11NA
# 7 - 11NG
# 8 - 11AC
id_0_phy_spec=7
id_1_phy_spec=6
#id_2_physpec=8
# channel width
# 0 - HT20
# 1 - HT40MINUS
# 2 - HT40PLUS
# 3 - HT40
id_0_channel_width=0
id_1_channel_width=2
#id_2_channel_width=0
# channel
id_0_channel=6
id_1_channel=44
#id_2_channel=36

View File

@@ -4,3 +4,7 @@ persistent_reconnect=1
bss_max_count=400
p2p_go_he=1
p2p_6ghz_disable=1
p2p_chan_list_dfs_disable=0
p2p_chan_list_only_sta_dfs_enable=0
p2p_pref_list_dfs_disable=0
p2p_go_dfs_disable=0

View File

@@ -0,0 +1 @@
Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PXtib3VuZGFyeX0NCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KDQotLXtib3VuZGFyeX0NCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC1wYXNzcG9pbnQtcHJvZmlsZQ0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0DQoNClBFMW5iWFJVY21WbElIaHRiRzV6UFNKemVXNWpiV3c2Wkcxa1pHWXhMaklpUGp4V1pYSkVWRVErTVM0eVBDOVdaWEpFVkVRK1BFNXYNClpHVStQRTV2WkdWT1lXMWxQbEJsY2xCeWIzWnBaR1Z5VTNWaWMyTnlhWEIwYVc5dVBDOU9iMlJsVG1GdFpUNDhVbFJRY205d1pYSjANCmFXVnpQanhVZVhCbFBqeEVSRVpPWVcxbFBuVnlianAzWm1FNmJXODZhRzkwYzNCdmRESmtiM1F3TFhCbGNuQnliM1pwWkdWeWMzVmkNCmMyTnlhWEIwYVc5dU9qRXVNRHd2UkVSR1RtRnRaVDQ4TDFSNWNHVStQQzlTVkZCeWIzQmxjblJwWlhNK1BFNXZaR1UrUEU1dlpHVk8NCllXMWxQbWt3TURFOEwwNXZaR1ZPWVcxbFBqeE9iMlJsUGp4T2IyUmxUbUZ0WlQ1SWIyMWxVMUE4TDA1dlpHVk9ZVzFsUGp4T2IyUmwNClBqeE9iMlJsVG1GdFpUNUdjbWxsYm1Sc2VVNWhiV1U4TDA1dlpHVk9ZVzFsUGp4V1lXeDFaVDVsZUdGdVpITWdVMlZqZFhKbElGZHANCkxVWnBQQzlXWVd4MVpUNDhMMDV2WkdVK1BFNXZaR1UrUEU1dlpHVk9ZVzFsUGtaUlJFNDhMMDV2WkdWT1lXMWxQanhXWVd4MVpUNWwNCmVHRnVaSE11WTI5dFBDOVdZV3gxWlQ0OEwwNXZaR1UrUEM5T2IyUmxQanhPYjJSbFBqeE9iMlJsVG1GdFpUNURjbVZrWlc1MGFXRnMNClBDOU9iMlJsVG1GdFpUNDhUbTlrWlQ0OFRtOWtaVTVoYldVK1VtVmhiRzA4TDA1dlpHVk9ZVzFsUGp4V1lXeDFaVDVsZUdGdVpITXUNClkyOXRQQzlXWVd4MVpUNDhMMDV2WkdVK1BFNXZaR1UrUEU1dlpHVk9ZVzFsUGtWNGNHbHlZWFJwYjI1RVlYUmxQQzlPYjJSbFRtRnQNClpUNDhWbUZzZFdVK01qQXpNUzB3T0MweE1sUXdNRG93TURvd01GbzhMMVpoYkhWbFBqd3ZUbTlrWlQ0OFRtOWtaVDQ4VG05a1pVNWgNCmJXVStWWE5sY201aGJXVlFZWE56ZDI5eVpEd3ZUbTlrWlU1aGJXVStQRTV2WkdVK1BFNXZaR1ZPWVcxbFBsVnpaWEp1WVcxbFBDOU8NCmIyUmxUbUZ0WlQ0OFZtRnNkV1UrUlZoQkxWZzZOREE1TmtSRE0wTTJPVVE1TkRoR05EZzFOREJHTkVFMFFrVkRRVUpET1RBOEwxWmgNCmJIVmxQand2VG05a1pUNDhUbTlrWlQ0OFRtOWtaVTVoYldVK1VHRnpjM2R2Y21ROEwwNXZaR1ZPWVcxbFBqeFdZV3gxWlQ1VU0xSjMNClRtNU9SRmxVVW5GTmFrSkRUVzEwYmxwRlRteFBTR2QzVVZFOVBUd3ZWbUZzZFdVK1BDOU9iMlJsUGp4T2IyUmxQanhPYjJSbFRtRnQNClpUNUZRVkJOWlhSb2IyUThMMDV2WkdWT1lXMWxQanhPYjJSbFBqeE9iMlJsVG1GdFpUNUZRVkJVZVhCbFBDOU9iMlJsVG1GdFpUNDgNClZtRnNkV1UrTWpFOEwxWmhiSFZsUGp3dlRtOWtaVDQ4VG05a1pUNDhUbTlrWlU1aGJXVStTVzV1WlhKTlpYUm9iMlE4TDA1dlpHVk8NCllXMWxQanhXWVd4MVpUNU5VeTFEU0VGUUxWWXlQQzlXWVd4MVpUNDhMMDV2WkdVK1BDOU9iMlJsUGp3dlRtOWtaVDQ4TDA1dlpHVSsNClBDOU9iMlJsUGp3dlRtOWtaVDQ4TDAxbmJYUlVjbVZsUGc9PQ0KLS17Ym91bmRhcnl9DQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0DQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCg0KTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUnlla05EUVhCbFowRjNTVUpCWjBsUlEwUjJaMVp3UWtOUw0KY2tkb1pGZHlTbGRhU0VoVGFrRk9RbWRyY1docmFVYzVkekJDUVZGVlJrRkVRbWdLVFZGemQwTlJXVVJXVVZGSFJYZEtWbFY2UlZaTg0KUWsxSFFURlZSVU5vVFUxU1IyeHVZVlZPYkdOdVVXZFRWelZxVFZKcmQwWjNXVVJXVVZGTVJYaENNd3BrTTJOMVdrZHNibUZYVG14ag0KYmxGMVdUSTVkRTFUUVhkSVoxbEVWbEZSUkVWNFpFVmhWMlJ3VVRKV2VXUkRRa2hpUnpscFdWZDNaMVZ0T1haa1EwSkVDbEZVUVdWRw0KZHpCM1RtcEZlRTFVUVhkTlJFRjNUVVJDWVVaM01IcE5WRVY0VFZSQmQwMUVRWGROUkVKaFRVZEZlRU42UVVwQ1owNVdRa0ZaVkVGcw0KVmxRS1RWSlZkMFYzV1VSV1VWRkxSWGQ0UldGWFpIQlJNbFo1WkVOQ1NtSnRUWGhIVkVGWVFtZE9Wa0pCYzFSRlNHUXpaSGsxYTJGWA0KWkhCWk1sWjVaRU0xYWdwaU1qQjRTVVJCWlVKblRsWkNRVTFVUmpCU2NGb3liRVJhV0Vvd1NVVmtjMkl5U21oaVEwSlRZakk1TUVsRg0KVGtKTlNVbENTV3BCVGtKbmEzRm9hMmxIQ2psM01FSkJVVVZHUVVGUFEwRlJPRUZOU1VsQ1EyZExRMEZSUlVFMGFuWm9SVmhNWlhGTA0KVkZSdk1XVnhWVXRMVUVNelpWRjVZVXRzTjJoTVQyeHNjMElLUTFORVRVRmFUMjVVYWtNelZTOWtSSGhIYTBGV05UTnBhbE5NWkdoMw0KV2tGQlNVVktlbk0wWW1jM0wyWjZWSFI0VW5WTVYxcHpZMFp6TTFsdVJtODVOd3B1YURaV1ptVTJNMU5MVFVreWRHRjJaV2QzTlVKdA0KVmk5VGJEQm1ka0ptTkhFM04zVkxUbVF3WmpOd05HMVdiVVpoUnpWalNYcEtUSFl3TjBFMlJuQjBDalF6UXk5a2VFTXZMMEZJTW1oaw0KYlc5U1FrSlpUWEZzTVVkT1dGSnZjalZJTkdsa2NUbEtiM29yUld0SldVbDJWVmczVVRab1RDdG9jV3R3VFdaVU4xQUtWREU1YzJScw0KTm1kVGVtVlNiblIzYVRWdE0wOUdRbkZQWVhOMkszcGlUVlZhUW1aSVYzbHRaVTF5TDNrM2RuSlVRekJNVlhFM1pFSk5kRzlOTVU4dg0KTkFwblpGYzNhbFpuTDNSU2RtOVRVMmxwWTA1dmVFSk9Nek56YUdKNVZFRndUMEkyYW5SVGFqRmxkRmdyYW10TlQzWktkMGxFUVZGQg0KUW04eVRYZFpWRUZQQ2tKblRsWklVVGhDUVdZNFJVSkJUVU5CV1ZsM1JIZFpSRlpTTUZSQlVVZ3ZRa0ZWZDBGM1JVSXZla0ZrUW1kTw0KVmtoUk5FVkdaMUZWUVRrMVVVNVdZbElLVkV4MGJUaExVR2xIZUhaRWJEZEpPVEJXVlhkSWQxbEVWbEl3YWtKQ1ozZEdiMEZWUVRrMQ0KVVU1V1lsSlVUSFJ0T0V0UWFVZDRka1JzTjBrNU1GWlZkd3BFVVZsS1MyOWFTV2gyWTA1QlVVVkdRbEZCUkdkblJVSkJUWFZqVGpadw0KU1VWNFNVc3JkREZGYmtVNVUzTlFWR1p5WjFReFpWaHJTVzk1VVZrdlJYTnlDbWhOUVhSMVpGaElMM1pVUWtneGFreDFSekpqWlc1VQ0KYm0xRGJYSkZZbGhxWTB0RGFIcFZlVWx0V2s5TmExaEVhWEYzT0dOMmNFOXdMekpRVmpWQlpHY0tNRFpQTDI1V2MwbzRaRmRQTkRGUQ0KTUdwdFVEWlFObVppZEVkaVpsbHRZbGN3VnpWQ2FtWkpkSFJsY0ROVGNDdGtWMDlKY2xkalFrRkpLekIwUzBsS1JncFFibXhWYTJsaA0KV1RSSlFrbHhSR1oyT0U1YU5WbENZbVZ5VDJkUGVsYzJjMUpDWXpSTU1HNWhORlZWSzB0eWF6SlZPRGcyVlVGaU0weDFha1ZXTUd4eg0KQ2xsVFJWa3hVVk4wWlVSM2MwOXZRbkp3SzNWMlJsSlVjREpKYmtKMVZHaHpOSEJHYzJsMk9XdDFXR05zVm5wRVFVZDVVMm8wWkhwdw0KTXpCa09IUmlVV3NLUTBGVmR6ZERNamxETnpsR2RqRkROWEZtVUhKdFFVVlRjbU5wU1hod1p6QllOREJMVUUxaWNERmFWMVppWkRROQ0KQ2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLDQotLXtib3VuZGFyeX0tLQ0K

967
wifi/vendor_cmd.xml Normal file
View File

@@ -0,0 +1,967 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
# Copyright (c) 2020, The Linux Foundation. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<WCN_VenTool>
<!-- QCA_NL80211_VENDOR_SUBCMD_TEST = 1 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ROAMING = 9 -->
<VendorCmd name="ROAMING" ID="9">
<Attribute name="ROAMING_POLICY" ID="5" TYPE="U32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY = 10 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY = 11 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_NAN = 12 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_STATS_EXT = 13 -->
<VendorCmd name="STATS_EXT" ID="13">
<Attribute name="DATA" ID="1" TYPE="BLOB"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_SET = 14 -->
<VendorCmd name="SET_LL_STATS" ID="14">
<Attribute name="SET_CONFIG_MPDU_SIZE_THRESHOLD" ID="1" TYPE="U32"/>
<Attribute name="SET_CONFIG_AGGRESSIVE_STATS_GATHERING" ID="2" TYPE="U32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET = 15 -->
<VendorCmd name="LLSTATS_GET" ID="15">
<Attribute name="REQ_ID" ID="1" TYPE="u32"/>
<Attribute name="REQ_MASK" ID="2" TYPE="u32"/>
<Attribute name="REQ_INFO" ID="3" TYPE="string"/>
<VendorRsp name="LLSTATS_GET" ID="15" ATTR_MAX="76">
<Attribute name="LLSTATS_TYPE" ID="76" TYPE="u32"/>
<Attribute name="MORE_DATA" ID="71" TYPE="u32"/>
<Switch name="LLSTATS_TYPE">
<Case value="1" name="LLSTATS_TYPE_RADIO">
<Attribute name="NUM_CHANNELS" ID="59" TYPE="u32"/>
<Attribute name="RADIO_ID" ID="49" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME" ID="50" TYPE="u32"/>
<Attribute name="RADIO_TX_TIME" ID="51" TYPE="u32"/>
<Attribute name="RADIO_RX_TIME" ID="52" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME_SCAN" ID="53" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME_NBD" ID="54" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME_GSCAN" ID="55" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME_ROAM_SCAN" ID="56" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME_PNO_SCAN" ID="57" TYPE="u32"/>
<Attribute name="RADIO_ON_TIME_HS20" ID="58" TYPE="u32"/>
<Attribute name="NUM_RADIOS" ID="66" TYPE="u32"/>
<Attribute name="CH_INFO" ID="67" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="CHANNEL_INFO_WIDTH" ID="60" TYPE="u32"/>
<Attribute name="CHANNEL_INFO_CENTER_FREQ" ID="61" TYPE="u32"/>
<Attribute name="CHANNEL_INFO_CENTER_FREQ0" ID="62" TYPE="u32"/>
<Attribute name="CHANNEL_INFO_CENTER_FREQ1" ID="63" TYPE="u32"/>
<Attribute name="CHANNEL_ON_TIME" ID="64" TYPE="u32"/>
<Attribute name="CHANNEL_CCA_BUSY_TIME" ID="65" TYPE="u32"/>
</Attribute>
</Case>
<Case value="2" name="LLSTATS_TYPE_IFACE">
<Attribute name="MODE" ID="9" TYPE="u32"/>
<Attribute name="MAC_ADDR" ID="10" TYPE="mac_addr"/>
<Attribute name="STATE" ID="11" TYPE="u32"/>
<Attribute name="ROAMING" ID="12" TYPE="u32"/>
<Attribute name="CAPABILITIES" ID="13" TYPE="u32"/>
<Attribute name="SSID" ID="14" TYPE="string" LENGTH="33"/>
<Attribute name="BSSID" ID="15" TYPE="mac_addr"/>
<Attribute name="AP_COUNTRY_STR" ID="16" TYPE="string" LENGTH="3"/>
<Attribute name="COUNTRY_STR" ID="17" TYPE="string" LENGTH="2"/>
<Attribute name="BEACON_RX" ID="2" TYPE="u32"/>
<Attribute name="MGMT_RX" ID="3" TYPE="u32"/>
<Attribute name="MGMT_ACTION_RX" ID="4" TYPE="u32"/>
<Attribute name="MGMT_ACTION_TX" ID="5" TYPE="u32"/>
<Attribute name="RSSI_MGMT" ID="6" TYPE="u32"/>
<Attribute name="RSSI_DATA" ID="7" TYPE="u32"/>
<Attribute name="RSSI_ACK" ID="8" TYPE="u32"/>
<Attribute name="AVERAGE_TSF_OFFSET" ID="72" TYPE="u32"/>
<Attribute name="LEAKY_AP_DETECTED" ID="73" TYPE="u32"/>
<Attribute name="LEAKY_AP_AVG_NUM_FRAMES_LEAKED" ID="74" TYPE="u32"/>
<Attribute name="LEAKY_AP_GUARD_TIME" ID="75" TYPE="u32"/>
<Attribute name="WMM_INFO" ID="70" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="AC" ID="18" TYPE="u32"/>
<Attribute name="AC_TX_MPDU" ID="19" TYPE="u32"/>
<Attribute name="AC_RX_MPDU" ID="20" TYPE="u32"/>
<Attribute name="AC_TX_MCAST" ID="21" TYPE="u32"/>
<Attribute name="AC_RX_MCAST" ID="22" TYPE="u32"/>
<Attribute name="AC_RX_AMPDU" ID="23" TYPE="u32"/>
<Attribute name="AC_TX_AMPDU" ID="24" TYPE="u32"/>
<Attribute name="AC_MPDU_LOST" ID="25" TYPE="u32"/>
<Attribute name="AC_RETRIES" ID="26" TYPE="u32"/>
<Attribute name="AC_RETRIES_SHORT" ID="27" TYPE="u32"/>
<Attribute name="AC_RETRIES_LONG" ID="28" TYPE="u32"/>
<Attribute name="AC_CONTENTION_TIME_MIN" ID="29" TYPE="u32"/>
<Attribute name="AC_CONTENTION_TIME_MAX" ID="30" TYPE="u32"/>
<Attribute name="AC_CONTENTION_TIME_AVG" ID="31" TYPE="u32"/>
<Attribute name="AC_CONTENTION_NUM_SAMPLES" ID="32" TYPE="u32"/>
</Attribute>
<Attribute name="NUM_PEERS" ID="33" TYPE="u32"/>
</Case>
<Case value="3" name="LLSTATS_TYPE_PEERS">
<Attribute name="NUM_PEERS" ID="33" TYPE="u32"/>
<Attribute name="PEER_INFO" ID="68" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="TYPE" ID="34" TYPE="u32"/>
<Attribute name="MAC_ADDRESS" ID="35" TYPE="mac_addr"/>
<Attribute name="CAPABILITIES" ID="36" TYPE="u32"/>
<Attribute name="NUM_RATES" ID="37" TYPE="u32"/>
<Attribute name="RATE_INFO" ID="69" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="PREAMBLE" ID="38" TYPE="u32"/>
<Attribute name="NSS" ID="39" TYPE="u32"/>
<Attribute name="BW" ID="40" TYPE="u32"/>
<Attribute name="MCS_INDEX" ID="41" TYPE="u32"/>
<Attribute name="BIT_RATE" ID="42" TYPE="u32"/>
<Attribute name="TX_MPDU" ID="43" TYPE="u32"/>
<Attribute name="RX_MPDU" ID="44" TYPE="u32"/>
<Attribute name="MPDU_LOST" ID="45" TYPE="u32"/>
<Attribute name="RETRIES" ID="46" TYPE="u32"/>
<Attribute name="RETRIES_SHORT" ID="47" TYPE="u32"/>
<Attribute name="RETRIES_LONG" ID="48" TYPE="u32"/>
</Attribute>
</Attribute>
</Case>
</Switch>
</VendorRsp>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_CLR = 16 -->
<VendorCmd name="CLEAR_LL_STATS" ID="16">
<Attribute name="LL_STATS_CLR_CONFIG_REQ_MASK" ID="1" TYPE="U32"/>
<Attribute name="LL_STATS_CLR_CONFIG_STOP_REQ" ID="2" TYPE="U32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_RADIO_RESULTS = 17 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_IFACE_RESULTS = 18 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_PEERS_RESULTS = 19 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_START = 20 -->
<VendorCmd name="EXTSCAN_START" ID="20">
<Attribute name="REQUEST_ID" ID="1" TYPE="u32"/>
<Attribute name="BASE_PERIOD" ID="14" TYPE="u32"/>
<Attribute name="MAX_AP_PER_SCAN" ID="15" TYPE="u32"/>
<Attribute name="REPORT_THRESHOLD_PERCENT" ID="16" TYPE="u8"/>
<Attribute name="REPORT_THRESHOLD_NUM_SCANS" ID="35" TYPE="u8"/>
<Attribute name="NUM_BUCKETS" ID="17" TYPE="u8"/>
<Attribute name="BUCKET_SPEC" ID="18" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="SPEC_INDEX" ID="8" TYPE="u8"/>
<Attribute name="BAND" ID="9" TYPE="u8"/>
<Attribute name="PERIOD" ID="10" TYPE="u32"/>
<Attribute name="REPORT_EVENTS" ID="11" TYPE="u8"/>
<Attribute name="NUM_CHANNEL_SPECS" ID="12" TYPE="u32"/>
<Attribute name="MAX_PERIOD" ID="32" TYPE="u32"/>
<Attribute name="EXPONENT" ID="33" TYPE="u32"/>
<Attribute name="STEP_COUNT" ID="34" TYPE="u32"/>
<Attribute name="CHANNEL_SPEC" ID="13" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="CHANNEL" ID="4" TYPE="u32"/>
<Attribute name="DWELL_TIME" ID="5" TYPE="u32"/>
<Attribute name="PASSIVE" ID="6" TYPE="u32"/>
</Attribute>
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_STOP = 21 -->
<VendorCmd name="EXTSCAN_STOP" ID="21">
<Attribute name="REQUEST_ID" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_GET_VALID_CHANNELS = 22 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_GET_CAPABILITIES = 23 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_GET_CACHED_RESULTS = 24 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SCAN_RESULTS_AVAILABLE = 25 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_FULL_SCAN_RESULT = 26 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SCAN_EVENT = 27 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_AP_FOUND = 28 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_BSSID_HOTLIST = 29 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_BSSID_HOTLIST = 30 -->
<VendorCmd name="EXTSCAN_RESET_BSSID_HOTLIST" ID="30">
<Attribute name="CONFIG_PARAM_REQUEST_ID" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SIGNIFICANT_CHANGE = 31 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_SIGNIFICANT_CHANGE = 32 -->
<VendorCmd name="EXTSCAN_SET_SIGNIFICANT_CHANGE" ID="32">
<Attribute name="CONFIG_PARAM_REQUEST_ID" ID="1" TYPE="u32"/>
<Attribute name="CONFIG_PARAM_RSSI_SAMPLE_SIZE" ID="27" TYPE="u32"/>
<Attribute name="CONFIG_PARAM_LOST_AP_SAMPLE_SIZE" ID="28" TYPE="u32"/>
<Attribute name="CONFIG_PARAM_MIN_BREACHING" ID="29" TYPE="u32"/>
<Attribute name="CONFIG_PARAM_NUM_AP" ID="30" TYPE="u32"/>
<Attribute name="CONFIG_PARAM_AP_THRESHOLD_PARAM" ID="26" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="AP_THRESHOLD_PARAM_BSSID" ID="21" TYPE="mac_addr"/>
<Attribute name="AP_THRESHOLD_PARAM_RSSI_LOW" ID="22" TYPE="u32"/>
<Attribute name="AP_THRESHOLD_PARAM_RSSI_HIGH" ID="23" TYPE="u32"/>
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SIGNIFICANT_CHANGE = 33 -->
<VendorCmd name="EXTSCAN_PNO_RESET_SIGNIFICANT_CHANGE" ID="33">
<Attribute name="CONFIG_PARAM_REQUEST_ID" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_TDLS_ENABLE = 34 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_TDLS_DISABLE = 35 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS = 36 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_TDLS_STATE = 37 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES = 38 -->
<VendorCmd name="GET_SUPPORTED_FEATURES" ID="38"/>
<!-- QCA_NL80211_VENDOR_SUBCMD_SCANNING_MAC_OUI = 39 -->
<VendorCmd name="SCANNING_MAC_OUI" ID="39">
<Attribute name="OUI" ID="1" TYPE="BLOB"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_NO_DFS_FLAG = 40 -->
<VendorCmd name="NO_DFS_FLAG" ID="40">
<Attribute name="SET_NO_DFS_FLAG" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_AP_LOST = 41 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX = 42 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_SET_KEY = 50 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH = 51 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_APFIND = 52 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_OCB_SET_SCHED = 53 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DO_ACS = 54 -->
<VendorCmd name="ACS" ID="54">
<Attribute name="HW_MODE" ID="3" TYPE="u8"/>
<Attribute name="HT_ENABLED" ID="4" TYPE="FLAG"/>
<Attribute name="HT40_ENABLED" ID="5" TYPE="FLAG"/>
<Attribute name="VHT_ENABLED" ID="6" TYPE="FLAG"/>
<Attribute name="CHWIDTH" ID="7" TYPE="u16"/>
<Attribute name="CH_LIST" ID="8" TYPE="BLOB"/>
<Attribute name="FREQ_LIST" ID="11" TYPE="BLOB"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_FEATURES = 55 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DFS_OFFLOAD_CAC_STARTED = 56 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DFS_OFFLOAD_CAC_FINISHED = 57 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DFS_OFFLOAD_CAC_ABORTED = 58 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DFS_OFFLOAD_CAC_NOP_FINISHED = 59 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DFS_OFFLOAD_RADAR_DETECTED = 60 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO = 61 -->
<VendorCmd name="GET_WIFI_INFO" ID="61">
<Attribute name="DRIVER_VERSION" ID="1" TYPE="u8"/>
<Attribute name="FIRMWARE_VERSION" ID="2" TYPE="u8"/>
<Attribute name="RADIO_INDEX" ID="3" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_START = 62 -->
<VendorCmd name="WIFI_LOGGER_START" ID="62">
<Attribute name="RING_ID" ID="1" TYPE="u32"/>
<Attribute name="VBV_LVL" ID="2" TYPE="u32"/>
<Attribute name="IS_IW_CMD" ID="3" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP = 63 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ROAM = 64 -->
<VendorCmd name="ROAM" ID="64">
<Attribute name="ROAMING_SUBCMD" ID="1" TYPE="u32"/>
<Attribute name="ROAMING_REQ_ID" ID="2" TYPE="u32"/>
<Switch name="ROAMING_SUBCMD">
<Case value="1" name="SUBCMD_SSID_WHITE_LIST">
<Attribute name="WHITE_LIST_SSID_NUM_NETWORKS" ID="3" TYPE="u32"/>
<Attribute name="WHITE_LIST_SSID_LIST" ID="4" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="WHITE_LIST_SSID" ID="5" TYPE="string"/>
</Attribute>
</Case>
<Case value="2" name="SUBCMD_SET_EXTSCAN_ROAM_PARAMS">
<Attribute name="A_BAND_BOOST_THRESHOLD" ID="6" TYPE="u32"/>
<Attribute name="A_BAND_PENALTY_THRESHOLD" ID="7" TYPE="u32"/>
<Attribute name="A_BAND_BOOST_FACTOR" ID="8" TYPE="u32"/>
<Attribute name="A_BAND_PENALTY_FACTOR" ID="9" TYPE="u32"/>
<Attribute name="A_BAND_MAX_BOOST" ID="10" TYPE="u32"/>
<Attribute name="LAZY_ROAM_HISTERESYS" ID="11" TYPE="u32"/>
<Attribute name="ALERT_ROAM_RSSI_TRIGGER" ID="12" TYPE="u32"/>
</Case>
<Case value="3" name="SUBCMD_SET_LAZY_ROAM">
<Attribute name="SET_LAZY_ROAM_ENABLE" ID="13" TYPE="u32"/>
</Case>
<Case value="4" name="SUBCMD_SET_BSSID_PREFS">
<Attribute name="SET_LAZY_ROAM_NUM_BSSID" ID="15" TYPE="u32"/>
<Attribute name="SET_BSSID_PREFS" ID="14" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="SET_LAZY_ROAM_BSSID" ID="16" TYPE="mac_addr"/>
<Attribute name="SET_LAZY_ROAM_RSSI_MODIFIER" ID="17" TYPE="u32"/>
</Attribute>
</Case>
<Case value="6" name="SUBCMD_SET_BLACKLIST_BSSID">
<Attribute name="SET_BSSID_PARAMS_NUM_BSSID" ID="19" TYPE="u32"/>
<Attribute name="SET_BSSID_PARAMS" ID="18" TYPE="NESTED" ATTR_MAX="76">
<Attribute name="SET_BSSID_PARAMS_BSSID" ID="20" TYPE="mac_addr"/>
</Attribute>
</Case>
</Switch>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_SSID_HOTLIST = 65 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SSID_HOTLIST = 66 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_FOUND = 67 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_LOST = 68 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_PNO_SET_LIST = 69 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_PNO_SET_PASSPOINT_LIST = 70 -->
<VendorCmd name="EXTSCAN_PNO_SET_PASSPOINT_LIST" ID="70">
<Attribute name="PNO_PASSPOINT_LIST_PARAM_NUM" ID="1" TYPE="u32"/>
<Attribute name="PASSPOINT_LIST_PARAM_NETWORK_ARRAY" ID="2" TYPE="NESTED" ATTR_MAX="23">
<Attribute name="PNO_PASSPOINT_NETWORK_PARAM_ID" ID="3" TYPE="u32"/>
<Attribute name="PNO_PASSPOINT_NETWORK_PARAM_REALM" ID="4" TYPE="string"/>
<Attribute name="PASSPOINT_NETWORK_PARAM_ROAM_CNSRTM_ID" ID="5" TYPE="blob"/>
<Attribute name="PNO_PASSPOINT_NETWORK_PARAM_ROAM_PLMN" ID="6" TYPE="blob"/>
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_PNO_RESET_PASSPOINT_LIST = 71 -->
<VendorCmd name="EXTSCAN_PNO_RESET_PASSPOINT_LIST" ID="71">
<Attribute name="CONFIG_PARAM_REQUEST_ID" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_PNO_NETWORK_FOUND = 72 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_PNO_PASSPOINT_NETWORK_FOUND = 73 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION = 74 -->
<VendorCmd name="SET_WIFI_CONFIG" ID="74">
<Attribute name="CONFIG_DYNAMIC_DTIM" ID="1" TYPE="u32"/>
<Attribute name="CONFIG_STATS_AVG_FACTOR" ID="2" TYPE="u32"/>
<Attribute name="CONFIG_GUARD_TIME" ID="3" TYPE="u32"/>
<Attribute name="CONFIG_FINE_TIME_MEASUREMENT" ID="4" TYPE="u32"/>
<Attribute name="CONFIG_TX_RATE" ID="5" TYPE="u16"/>
<Attribute name="CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS" ID="6" TYPE="u32"/>
<Attribute name="CONFIG_CHANNEL_AVOIDANCE_IND" ID="7" TYPE="u8"/>
<Attribute name="CONFIG_TX_MPDU_AGGREGATION" ID="8" TYPE="u8"/>
<Attribute name="CONFIG_RX_MPDU_AGGREGATION" ID="9" TYPE="u8"/>
<Attribute name="CONFIG_NON_AGG_RETRY" ID="10" TYPE="u8"/>
<Attribute name="CONFIG_AGG_RETRY" ID="11" TYPE="u8"/>
<Attribute name="CONFIG_MGMT_RETRY" ID="12" TYPE="u8"/>
<Attribute name="CONFIG_CTRL_RETRY" ID="13" TYPE="u8"/>
<Attribute name="CONFIG_PROPAGATION_DELAY" ID="14" TYPE="u8"/>
<Attribute name="CONFIG_TX_FAIL_COUNT" ID="15" TYPE="u32"/>
<Attribute name="CONFIG_SCAN_DEFAULT_IES" ID="16" TYPE="BLOB"/>
<Attribute name="CONFIG_GENERIC_COMMAND" ID="17" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_VALUE" ID="18" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_DATA" ID="19" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_LENGTH" ID="20" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_FLAGS" ID="21" TYPE="u32"/>
<Attribute name="CONFIG_ACCESS_POLICY" ID="22" TYPE="u32"/>
<Attribute name="CONFIG_ACCESS_POLICY_IE_LIST" ID="23" TYPE="BLOB"/>
<Attribute name="CONFIG_IFINDEX" ID="24" TYPE="u32"/>
<Attribute name="CONFIG_QPOWER" ID="25" TYPE="u8"/>
<Attribute name="CONFIG_IGNORE_ASSOC_DISALLOWED" ID="26" TYPE="u8"/>
<Attribute name="CONFIG_ANT_DIV_ENA" ID="27" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_CHAIN" ID="28" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SELFTEST" ID="29" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SELFTEST_INTVL" ID="30" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_VOICE" ID="31" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_VIDEO" ID="32" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_BESTEFFORT" ID="33" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_BACKGROUND" ID="34" TYPE="u32"/>
<Attribute name="CONFIG_RX_BLOCKSIZE_PEER_MAC" ID="35" TYPE="BLOB"/>
<Attribute name="CONFIG_RX_BLOCKSIZE_WINLIMIT" ID="36" TYPE="u32"/>
<Attribute name="CONFIG_BEACON_MISS_THRESHOLD_24" ID="37" TYPE="u8"/>
<Attribute name="CONFIG_BEACON_MISS_THRESHOLD_5" ID="38" TYPE="u8"/>
<Attribute name="CONFIG_SUB20_CHAN_WIDTH" ID="39" TYPE="u32"/>
<Attribute name="CONFIG_PROPAGATION_ABS_DELAY" ID="40" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_PROBE_PERIOD" ID="41" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_STAY_PERIOD" ID="42" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SNR_DIFF" ID="43" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_PROBE_DWELL_TIME" ID="44" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_MGMT_SNR_WEIGHT" ID="45" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_DATA_SNR_WEIGHT" ID="46" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_ACK_SNR_WEIGHT" ID="47" TYPE="u32"/>
<Attribute name="CONFIG_LISTEN_INTERVAL" ID="48" TYPE="u32"/>
<Attribute name="CONFIG_RESTRICT_OFFCHANNEL" ID="49" TYPE="u8"/>
<Attribute name="CONFIG_LRO" ID="50" TYPE="u8"/>
<Attribute name="CONFIG_SCAN_ENABLE" ID="51" TYPE="u8"/>
<Attribute name="CONFIG_TOTAL_BEACON_MISS_COUNT" ID="52" TYPE="u8"/>
<Attribute name="CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS_BTC" ID="53" TYPE="u32"/>
<Attribute name="CONFIG_DISABLE_FILSCONFIG_DISABLE_FILS" ID="54" TYPE="u8"/>
<Attribute name="CONFIG_LATENCY_LEVEL" ID="55" TYPE="u16"/>
<Attribute name="CONFIG_RSN_IE" ID="56" TYPE="u8"/>
<Attribute name="CONFIG_GTX" ID="57" TYPE="u8"/>
<Attribute name="CONFIG_DISCONNECT_IES" ID="58" TYPE="BLOB"/>
<Attribute name="CONFIG_ELNA_BYPASS" ID="59" TYPE="u8"/>
<Attribute name="CONFIG_BEACON_REPORT_FAIL" ID="60" TYPE="u8"/>
<Attribute name="CONFIG_ROAM_REASON" ID="61" TYPE="u8"/>
<Attribute name="CONFIG_PHY_MODE" ID="62" TYPE="u32"/>
<Attribute name="CONFIG_CHANNEL_WIDTH" ID="63" TYPE="u8"/>
<Attribute name="CONFIG_DYNAMIC_BW" ID="64" TYPE="u8"/>
<Attribute name="CONFIG_TX_MSDU_AGGREGATION" ID="65" TYPE="u8"/>
<Attribute name="CONFIG_RX_MSDU_AGGREGATION" ID="66" TYPE="u8"/>
<Attribute name="CONFIG_LDPC" ID="67" TYPE="u8"/>
<Attribute name="CONFIG_TX_STBC" ID="68" TYPE="u8"/>
<Attribute name="CONFIG_RX_STBC" ID="69" TYPE="u8"/>
<Attribute name="CONFIG_NSS" ID="70" TYPE="u8"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION = 75 -->
<VendorCmd name="GET_WIFI_CONFIG" ID="75">
<Attribute name="CONFIG_DYNAMIC_DTIM" ID="1" TYPE="u32"/>
<Attribute name="CONFIG_STATS_AVG_FACTOR" ID="2" TYPE="u32"/>
<Attribute name="CONFIG_GUARD_TIME" ID="3" TYPE="u32"/>
<Attribute name="CONFIG_FINE_TIME_MEASUREMENT" ID="4" TYPE="u32"/>
<Attribute name="CONFIG_TX_RATE" ID="5" TYPE="u16"/>
<Attribute name="CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS" ID="6" TYPE="u32"/>
<Attribute name="CONFIG_CHANNEL_AVOIDANCE_IND" ID="7" TYPE="u8"/>
<Attribute name="CONFIG_TX_MPDU_AGGREGATION" ID="8" TYPE="u8"/>
<Attribute name="CONFIG_RX_MPDU_AGGREGATION" ID="9" TYPE="u8"/>
<Attribute name="CONFIG_NON_AGG_RETRY" ID="10" TYPE="u8"/>
<Attribute name="CONFIG_AGG_RETRY" ID="11" TYPE="u8"/>
<Attribute name="CONFIG_MGMT_RETRY" ID="12" TYPE="u8"/>
<Attribute name="CONFIG_CTRL_RETRY" ID="13" TYPE="u8"/>
<Attribute name="CONFIG_PROPAGATION_DELAY" ID="14" TYPE="u8"/>
<Attribute name="CONFIG_TX_FAIL_COUNT" ID="15" TYPE="u32"/>
<Attribute name="CONFIG_SCAN_DEFAULT_IES" ID="16" TYPE="BLOB"/>
<Attribute name="CONFIG_GENERIC_COMMAND" ID="17" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_VALUE" ID="18" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_DATA" ID="19" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_LENGTH" ID="20" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_FLAGS" ID="21" TYPE="u32"/>
<Attribute name="CONFIG_ACCESS_POLICY" ID="22" TYPE="u32"/>
<Attribute name="CONFIG_ACCESS_POLICY_IE_LIST" ID="23" TYPE="BLOB"/>
<Attribute name="CONFIG_IFINDEX" ID="24" TYPE="u32"/>
<Attribute name="CONFIG_QPOWER" ID="25" TYPE="u8"/>
<Attribute name="CONFIG_IGNORE_ASSOC_DISALLOWED" ID="26" TYPE="u8"/>
<Attribute name="CONFIG_ANT_DIV_ENA" ID="27" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_CHAIN" ID="28" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SELFTEST" ID="29" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SELFTEST_INTVL" ID="30" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_VOICE" ID="31" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_VIDEO" ID="32" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_BESTEFFORT" ID="33" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_BACKGROUND" ID="34" TYPE="u32"/>
<Attribute name="CONFIG_RX_BLOCKSIZE_PEER_MAC" ID="35" TYPE="BLOB"/>
<Attribute name="CONFIG_RX_BLOCKSIZE_WINLIMIT" ID="36" TYPE="u32"/>
<Attribute name="CONFIG_BEACON_MISS_THRESHOLD_24" ID="37" TYPE="u8"/>
<Attribute name="CONFIG_BEACON_MISS_THRESHOLD_5" ID="38" TYPE="u8"/>
<Attribute name="CONFIG_SUB20_CHAN_WIDTH" ID="39" TYPE="u32"/>
<Attribute name="CONFIG_PROPAGATION_ABS_DELAY" ID="40" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_PROBE_PERIOD" ID="41" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_STAY_PERIOD" ID="42" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SNR_DIFF" ID="43" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_PROBE_DWELL_TIME" ID="44" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_MGMT_SNR_WEIGHT" ID="45" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_DATA_SNR_WEIGHT" ID="46" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_ACK_SNR_WEIGHT" ID="47" TYPE="u32"/>
<Attribute name="CONFIG_LISTEN_INTERVAL" ID="48" TYPE="u32"/>
<Attribute name="CONFIG_RESTRICT_OFFCHANNEL" ID="49" TYPE="u8"/>
<Attribute name="CONFIG_LRO" ID="50" TYPE="u8"/>
<Attribute name="CONFIG_SCAN_ENABLE" ID="51" TYPE="u8"/>
<Attribute name="CONFIG_TOTAL_BEACON_MISS_COUNT" ID="52" TYPE="u8"/>
<Attribute name="CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS_BTC" ID="53" TYPE="u32"/>
<Attribute name="CONFIG_DISABLE_FILSCONFIG_DISABLE_FILS" ID="54" TYPE="u8"/>
<Attribute name="CONFIG_LATENCY_LEVEL" ID="55" TYPE="u16"/>
<Attribute name="CONFIG_RSN_IE" ID="56" TYPE="u8"/>
<Attribute name="CONFIG_GTX" ID="57" TYPE="u8"/>
<Attribute name="CONFIG_DISCONNECT_IES" ID="58" TYPE="BLOB"/>
<Attribute name="CONFIG_ELNA_BYPASS" ID="59" TYPE="u8"/>
<Attribute name="CONFIG_BEACON_REPORT_FAIL" ID="60" TYPE="u8"/>
<Attribute name="CONFIG_ROAM_REASON" ID="61" TYPE="u8"/>
<Attribute name="CONFIG_PHY_MODE" ID="62" TYPE="u32"/>
<Attribute name="CONFIG_CHANNEL_WIDTH" ID="63" TYPE="u8"/>
<Attribute name="CONFIG_DYNAMIC_BW" ID="64" TYPE="u8"/>
<Attribute name="CONFIG_TX_MSDU_AGGREGATION" ID="65" TYPE="u8"/>
<Attribute name="CONFIG_RX_MSDU_AGGREGATION" ID="66" TYPE="u8"/>
<Attribute name="CONFIG_LDPC" ID="67" TYPE="u8"/>
<Attribute name="CONFIG_TX_STBC" ID="68" TYPE="u8"/>
<Attribute name="CONFIG_RX_STBC" ID="69" TYPE="u8"/>
<Attribute name="CONFIG_NSS" ID="70" TYPE="u8"/>
<VendorRsp name="GET_WIFI_CONFIG" ID="75" ATTR_MAX="71">
<Attribute name="CONFIG_DYNAMIC_DTIM" ID="1" TYPE="u32"/>
<Attribute name="CONFIG_STATS_AVG_FACTOR" ID="2" TYPE="u32"/>
<Attribute name="CONFIG_GUARD_TIME" ID="3" TYPE="u32"/>
<Attribute name="CONFIG_FINE_TIME_MEASUREMENT" ID="4" TYPE="u32"/>
<Attribute name="CONFIG_TX_RATE" ID="5" TYPE="u16"/>
<Attribute name="CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS" ID="6" TYPE="u32"/>
<Attribute name="CONFIG_CHANNEL_AVOIDANCE_IND" ID="7" TYPE="u8"/>
<Attribute name="CONFIG_TX_MPDU_AGGREGATION" ID="8" TYPE="u8"/>
<Attribute name="CONFIG_RX_MPDU_AGGREGATION" ID="9" TYPE="u8"/>
<Attribute name="CONFIG_NON_AGG_RETRY" ID="10" TYPE="u8"/>
<Attribute name="CONFIG_AGG_RETRY" ID="11" TYPE="u8"/>
<Attribute name="CONFIG_MGMT_RETRY" ID="12" TYPE="u8"/>
<Attribute name="CONFIG_CTRL_RETRY" ID="13" TYPE="u8"/>
<Attribute name="CONFIG_PROPAGATION_DELAY" ID="14" TYPE="u8"/>
<Attribute name="CONFIG_TX_FAIL_COUNT" ID="15" TYPE="u32"/>
<Attribute name="CONFIG_SCAN_DEFAULT_IES" ID="16" TYPE="BLOB"/>
<Attribute name="CONFIG_GENERIC_COMMAND" ID="17" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_VALUE" ID="18" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_DATA" ID="19" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_LENGTH" ID="20" TYPE="u32"/>
<Attribute name="CONFIG_GENERIC_FLAGS" ID="21" TYPE="u32"/>
<Attribute name="CONFIG_ACCESS_POLICY" ID="22" TYPE="u32"/>
<Attribute name="CONFIG_ACCESS_POLICY_IE_LIST" ID="23" TYPE="BLOB"/>
<Attribute name="CONFIG_IFINDEX" ID="24" TYPE="u32"/>
<Attribute name="CONFIG_QPOWER" ID="25" TYPE="u8"/>
<Attribute name="CONFIG_IGNORE_ASSOC_DISALLOWED" ID="26" TYPE="u8"/>
<Attribute name="CONFIG_ANT_DIV_ENA" ID="27" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_CHAIN" ID="28" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SELFTEST" ID="29" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SELFTEST_INTVL" ID="30" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_VOICE" ID="31" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_VIDEO" ID="32" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_BESTEFFORT" ID="33" TYPE="u32"/>
<Attribute name="CONFIG_RX_REORDER_TIMEOUT_BACKGROUND" ID="34" TYPE="u32"/>
<Attribute name="CONFIG_RX_BLOCKSIZE_PEER_MAC" ID="35" TYPE="BLOB"/>
<Attribute name="CONFIG_RX_BLOCKSIZE_WINLIMIT" ID="36" TYPE="u32"/>
<Attribute name="CONFIG_BEACON_MISS_THRESHOLD_24" ID="37" TYPE="u8"/>
<Attribute name="CONFIG_BEACON_MISS_THRESHOLD_5" ID="38" TYPE="u8"/>
<Attribute name="CONFIG_SUB20_CHAN_WIDTH" ID="39" TYPE="u32"/>
<Attribute name="CONFIG_PROPAGATION_ABS_DELAY" ID="40" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_PROBE_PERIOD" ID="41" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_STAY_PERIOD" ID="42" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_SNR_DIFF" ID="43" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_PROBE_DWELL_TIME" ID="44" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_MGMT_SNR_WEIGHT" ID="45" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_DATA_SNR_WEIGHT" ID="46" TYPE="u32"/>
<Attribute name="CONFIG_ANT_DIV_ACK_SNR_WEIGHT" ID="47" TYPE="u32"/>
<Attribute name="CONFIG_LISTEN_INTERVAL" ID="48" TYPE="u32"/>
<Attribute name="CONFIG_RESTRICT_OFFCHANNEL" ID="49" TYPE="u8"/>
<Attribute name="CONFIG_LRO" ID="50" TYPE="u8"/>
<Attribute name="CONFIG_SCAN_ENABLE" ID="51" TYPE="u8"/>
<Attribute name="CONFIG_TOTAL_BEACON_MISS_COUNT" ID="52" TYPE="u8"/>
<Attribute name="CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS_BTC" ID="53" TYPE="u32"/>
<Attribute name="CONFIG_DISABLE_FILSCONFIG_DISABLE_FILS" ID="54" TYPE="u8"/>
<Attribute name="CONFIG_LATENCY_LEVEL" ID="55" TYPE="u16"/>
<Attribute name="CONFIG_RSN_IE" ID="56" TYPE="u8"/>
<Attribute name="CONFIG_GTX" ID="57" TYPE="u8"/>
<Attribute name="CONFIG_DISCONNECT_IES" ID="58" TYPE="BLOB"/>
<Attribute name="CONFIG_ELNA_BYPASS" ID="59" TYPE="u8"/>
<Attribute name="CONFIG_BEACON_REPORT_FAIL" ID="60" TYPE="u8"/>
<Attribute name="CONFIG_ROAM_REASON" ID="61" TYPE="u8"/>
<Attribute name="CONFIG_PHY_MODE" ID="62" TYPE="u32"/>
<Attribute name="CONFIG_CHANNEL_WIDTH" ID="63" TYPE="u8"/>
<Attribute name="CONFIG_DYNAMIC_BW" ID="64" TYPE="u8"/>
<Attribute name="CONFIG_TX_MSDU_AGGREGATION" ID="65" TYPE="u8"/>
<Attribute name="CONFIG_RX_MSDU_AGGREGATION" ID="66" TYPE="u8"/>
<Attribute name="CONFIG_LDPC" ID="67" TYPE="u8"/>
<Attribute name="CONFIG_TX_STBC" ID="68" TYPE="u8"/>
<Attribute name="CONFIG_RX_STBC" ID="69" TYPE="u8"/>
<Attribute name="CONFIG_NSS" ID="70" TYPE="u8"/>
</VendorRsp>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_LOGGER_FEATURE_SET = 76 -->
<VendorCmd name="GET_LOGGER_FEATURE_SET" ID="76"/>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_RING_DATA = 77 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_CAPABILITIES = 78 -->
<VendorCmd name="TDLS_GET_CAP" ID="78"/>
<!-- QCA_NL80211_VENDOR_SUBCMD_OFFLOADED_PACKETS = 79 -->
<VendorCmd name="OFFLOADED_PACKETS" ID="79">
<Attribute name="SENDING_CONTROL" ID="1" TYPE="u32"/>
<Attribute name="REQUEST_ID" ID="2" TYPE="u32"/>
<Attribute name="IP_PACKET_DATA" ID="3" TYPE="blob"/>
<Attribute name="SRC_MAC_ADDR" ID="4" TYPE="mac_addr"/>
<Attribute name="DST_MAC_ADDR" ID="5" TYPE="mac_addr"/>
<Attribute name="PERIOD" ID="6" TYPE="u32"/>
<Attribute name="ETHER_PROTO_TYPE" ID="7" TYPE="u16"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_MONITOR_RSSI = 80 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_NDP = 81 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ND_OFFLOAD = 82 -->
<VendorCmd name="ND_OFFLOAD" ID="82">
<Attribute name="ND_OFFLOAD_FLAG" ID="1" TYPE="u8"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_PACKET_FILTER = 83 -->
<VendorCmd name="PACKET_FILTER" ID="83">
<Attribute name="SET_RESET_PACKET_FILTER" ID="1" TYPE="u32"/>
<Switch name="SET_RESET_PACKET_FILTER">
<Case value="1" name="SET_PACKET_FILTER">
<Attribute name="PACKET_FILTER_SIZE" ID="4" TYPE="u32"/>
<Attribute name="PACKET_FILTER_PROGRAM" ID="6" TYPE="blob"/>
<Attribute name="PACKET_FILTER_ID" ID="3" TYPE="u32"/>
<Attribute name="PACKET_FILTER_CURRENT_OFFSET" ID="5" TYPE="u32"/>
</Case>
<Case value="2" name="GET_PACKET_FILTER"/>
<Case value="3" name="WRITE_PACKET_FILTER">
<Attribute name="PACKET_FILTER_PROGRAM" ID="6" TYPE="blob"/>
<Attribute name="PACKET_FILTER_PROG_LENGTH" ID="7" TYPE="u32"/>
<Attribute name="PACKET_FILTER_CURRENT_OFFSET" ID="5" TYPE="u32"/>
</Case>
<Case value="4" name="READ_PACKET_FILTER">
<Attribute name="PACKET_FILTER_SIZE" ID="4" TYPE="u32"/>
<Attribute name="PACKET_FILTER_CURRENT_OFFSET" ID="5" TYPE="u32"/>
</Case>
<Case value="5" name="ENABLE_PACKET_FILTER"/>
<Case value="6" name="DISABLE_PACKET_FILTER"/>
</Switch>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_BUS_SIZE = 84 -->
<VendorCmd name="GET_BUS_SIZE" ID="84">
<Attribute name="DRV_INFO_BUS_SIZE" ID="1" TYPE="u16"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS = 85 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DATA_OFFLOAD = 91 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_OCB_SET_CONFIG = 92 -->
<VendorCmd name="OCB_SET_CONFIG" ID="92">
<Attribute name="CHANNEL_COUNT" ID="1" TYPE="u32"/>
<Attribute name="SCHEDULE_SIZE" ID="2" TYPE="u32"/>
<Attribute name="CHANNEL_ARRAY" ID="3" TYPE="blob"/>
<Attribute name="SCHEDULE_ARRAY" ID="4" TYPE="blob"/>
<Attribute name="NDL_CHANNEL_ARRAY" ID="5" TYPE="blob"/>
<Attribute name="NDL_ACTIVE_STATE_ARRAY" ID="6" TYPE="blob"/>
<Attribute name="FLAGS" ID="7" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_OCB_SET_UTC_TIME = 93 -->
<VendorCmd name="OCB_SET_UTC_TIME" ID="93">
<Attribute name="UTC_TIME_VALUE" ID="1" TYPE="blob"/>
<Attribute name="UTC_TIME_ERROR" ID="2" TYPE="blob"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_OCB_START_TIMING_ADVERT = 94 -->
<VendorCmd name="OCB_START_TIMING_ADVERT" ID="94">
<Attribute name="CHANNEL_FREQ" ID="1" TYPE="u32"/>
<Attribute name="REPEAT_RATE" ID="2" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_OCB_STOP_TIMING_ADVERT = 95 -->
<VendorCmd name="OCB_STOP_TIMING_ADVERT" ID="95">
<Attribute name="CHANNEL_FREQ" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_OCB_GET_TSF_TIMER = 96 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS = 97 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DCC_CLEAR_STATS = 98 -->
<VendorCmd name="DCC_CLEAR_STATS" ID="98">
<Attribute name="BITMAP" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL = 99 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DCC_STATS_EVENT = 100 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES = 101 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GW_PARAM_CONFIG = 102 -->
<VendorCmd name="GW_PARAM_CONFIG" ID="102">
<Attribute name="PARAM_MAC_ADDR" ID="1" TYPE="mac_addr"/>
<Attribute name="PARAM_IPV4_ADDR" ID="2" TYPE="blob"/>
<Attribute name="PARAM_IPV6_ADDR" ID="3" TYPE="blob"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_PREFERRED_FREQ_LIST = 103 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_PROBABLE_OPER_CHANNEL = 104 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SETBAND = 105 -->
<VendorCmd name="SETBAND" ID="105">
<Attribute name="SETBAND_VALUE" ID="12" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_TRIGGER_SCAN = 106 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SCAN_DONE = 107 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_OTA_TEST = 108 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE = 109 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE_DECR_DB = 115 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY = 116 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_STA_CONNECT_ROAM_POLICY = 117 -->
<VendorCmd name="STA_CONNECT_ROAM_POLICY" ID="117">
<Attribute name="STA_DFS_MODE" ID="1" TYPE="u8"/>
<Attribute name="STA_SKIP_UNSAFE_CHANNEL" ID="2" TYPE="u8"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG = 118 -->
<VendorCmd name="SET_SAP_CONFIG" ID="118">
<Attribute name="SAP_CONFIG_CHANNEL" ID="1" TYPE="u32"/>
<Attribute name="MANDATORY_FREQUENCY_LIST" ID="2" TYPE="blob"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_TSF = 119 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_WISA = 120 -->
<VendorCmd name="WISA" ID="120">
<Attribute name="WISA_MODE" ID="1" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_STATION = 121 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_P2P_LISTEN_OFFLOAD_START = 122 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_P2P_LISTEN_OFFLOAD_STOP = 123 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SAP_CONDITIONAL_CHAN_SWITCH = 124 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GPIO_CONFIG_COMMAND = 125 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_HW_CAPABILITY = 126 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_EXT = 127 -->
<VendorCmd name="LL_STATS_EXT" ID="127">
<Attribute name="CFG_PERIOD" ID="1" TYPE="u32"/>
<Attribute name="CFG_THRESHOLD" ID="2" TYPE="u32"/>
<Attribute name="GLOBAL" ID="9" TYPE="u32"/>
<Attribute name="TX_BITMAP" ID="13" TYPE="u32"/>
<Attribute name="RX_BITMAP" ID="14" TYPE="u32"/>
<Attribute name="CCA_BSS_BITMAP" ID="15" TYPE="u32"/>
<Attribute name="SIGNAL_BITMAP" ID="16" TYPE="u32"/>
<Attribute name="TX_MSDU" ID="21" TYPE="u32"/>
<Attribute name="TX_MPDU" ID="22" TYPE="u32"/>
<Attribute name="TX_PPDU" ID="23" TYPE="u32"/>
<Attribute name="TX_BYTES" ID="24" TYPE="u32"/>
<Attribute name="TX_DROP" ID="25" TYPE="u32"/>
<Attribute name="TX_DROP_BYTES" ID="26" TYPE="u32"/>
<Attribute name="TX_RETRY" ID="27" TYPE="u32"/>
<Attribute name="TX_NO_ACK" ID="28" TYPE="u32"/>
<Attribute name="TX_NO_BACK" ID="29" TYPE="u32"/>
<Attribute name="TX_AGGR" ID="33" TYPE="u32"/>
<Attribute name="TX_SUCC_MCS" ID="34" TYPE="u32"/>
<Attribute name="TX_FAIL_MCS" ID="35" TYPE="u32"/>
<Attribute name="TX_DELAY" ID="37" TYPE="u32"/>
<Attribute name="RX_MPDU" ID="38" TYPE="u32"/>
<Attribute name="RX_MPDU_BYTES" ID="39" TYPE="u32"/>
<Attribute name="RX_PPDU" ID="40" TYPE="u32"/>
<Attribute name="RX_PPDU_BYTES" ID="41" TYPE="u32"/>
<Attribute name="RX_MPDU_LOST" ID="42" TYPE="u32"/>
<Attribute name="RX_MPDU_RETRY" ID="43" TYPE="u32"/>
<Attribute name="RX_MPDU_DUP" ID="44" TYPE="u32"/>
<Attribute name="RX_MPDU_DISCARD" ID="45" TYPE="u32"/>
<Attribute name="RX_MCS" ID="48" TYPE="u32"/>
<Attribute name="RX_AGGR" ID="49" TYPE="u32"/>
<Attribute name="PEER_PS_TIMES" ID="50" TYPE="u32"/>
<Attribute name="PEER_PS_DURATION" ID="51" TYPE="u32"/>
<Attribute name="RX_PROBE_REQ" ID="52" TYPE="u32"/>
<Attribute name="RX_MGMT" ID="53" TYPE="u32"/>
<Attribute name="IDLE_TIME" ID="54" TYPE="u32"/>
<Attribute name="TX_TIME" ID="55" TYPE="u32"/>
<Attribute name="RX_BUSY" ID="57" TYPE="u32"/>
<Attribute name="RX_BAD" ID="58" TYPE="u32"/>
<Attribute name="TX_BAD" ID="59" TYPE="u32"/>
<Attribute name="NO_AVAIL" ID="60" TYPE="u32"/>
<Attribute name="IN_BSS_TIME" ID="61" TYPE="u32"/>
<Attribute name="OUT_BSS_TIME" ID="62" TYPE="u32"/>
<Attribute name="ANT_SNR" ID="65" TYPE="u32"/>
<Attribute name="ANT_NF" ID="66" TYPE="u32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_LOC_GET_CAPA = 128 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_FTM_START_SESSION = 129 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_FTM_ABORT_SESSION = 130 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_FTM_MEAS_RESULT = 131 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_FTM_SESSION_DONE = 132 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_FTM_CFG_RESPONDER = 133 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_AOA_MEAS = 134 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_AOA_ABORT_MEAS = 135 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_AOA_MEAS_RESULT = 136 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ENCRYPTION_TEST = 137 -->
<VendorCmd name="ENCRYPT" ID="137">
<Attribute name="FLAG" ID="1" TYPE="FLAG"/>
<Attribute name="CIPHER" ID="2" TYPE="u32"/>
<Attribute name="KEYID" ID="3" TYPE="u8"/>
<Attribute name="TK" ID="4" TYPE="BLOB"/>
<Attribute name="PN" ID="5" TYPE="BLOB"/>
<Attribute name="DATA" ID="6" TYPE="BLOB"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI = 138 -->
<VendorCmd name="GET_CHAIN_RSSI" ID="138">
<Attribute name="MAC_ADDR" ID="6" TYPE="mac_addr"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SECTOR_CFG = 139 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SECTOR_CFG = 140 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SELECTED_SECTOR = 141 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SELECTED_SECTOR = 142 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_CONFIGURE_TDLS = 143 -->
<VendorCmd name="CONFIG_TDLS_MODE" ID="143">
<Attribute name="MODE" ID="1" TYPE="u32"/>
<Attribute name="TX_STATS" ID="2" TYPE="u32"/>
<Attribute name="TX_THRESHOLD" ID="3" TYPE="u32"/>
<Attribute name="DISC_PERIOD" ID="4" TYPE="u32"/>
<Attribute name="MAX_DISC_ATTEMPT" ID="5" TYPE="u32"/>
<Attribute name="IDLE_TIMEOUT" ID="6" TYPE="u32"/>
<Attribute name="IDLE_PACKET_THRE" ID="7" TYPE="u32"/>
<Attribute name="SETUP_RSSI_THRE" ID="8" TYPE="s32"/>
<Attribute name="TEARDOWN_RSSI_THRE" ID="9" TYPE="s32"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_HE_CAPABILITIES = 144 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ABORT_SCAN = 145 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS = 146 -->
<VendorCmd name="SAR_SET" ID="146">
<Attribute name="ENABLE" ID="1" TYPE="u32"/>
<Attribute name="NUM_SPECS" ID="2" TYPE="u32"/>
<Attribute name="SAR_SPEC" ID="3" TYPE="NESTED" ATTR_MAX="8">
<Attribute name="BAND" ID="4" TYPE="u32"/>
<Attribute name="CHAIN" ID="5" TYPE="u32"/>
<Attribute name="MOD" ID="6" TYPE="u32"/>
<Attribute name="POW" ID="7" TYPE="u32"/>
<Attribute name="POW_IDX" ID="8" TYPE="u32"/>
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS = 147 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_CHIP_PWRSAVE_FAILURE = 148 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_SET = 149 -->
<VendorCmd name="NUD_STATS_SET" ID="149">
<Attribute name="STATS_SET_START" ID="1" TYPE="FLAG"/>
<Attribute name="STATS_GW_IPV4" ID="2" TYPE="u32"/>
<Attribute name="STATS_SET_DATA_PKT_INFO" ID="3" TYPE="NESTED">
<Attribute name="STATS_PKT_INFO_TYPE" ID="1" TYPE="u32" />
<Attribute name="STATS_DNS_DOMAIN_NAME" ID="2" TYPE="string" />
<Attribute name="STATS_SRC_PORT" ID="3" TYPE="u32" />
<Attribute name="STATS_DEST_PORT" ID="4" TYPE="u32" />
<Attribute name="STATS_DEST_IPV4" ID="5" TYPE="u32" />
<Attribute name="STATS_DEST_IPV6" ID="6" TYPE="blob" />
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_GET = 150 -->
<VendorCmd name="NUD_STATS_GET" ID="150">
<VendorRsp name="NUD_STATS_GET" ID="150" ATTR_MAX="12">
<Attribute name="NUD_STATS_ARP_REQ_COUNT_FROM_NETDEV" ID="1" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_REQ_COUNT_TO_LOWER_MAC" ID="2" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_REQ_RX_COUNT_BY_LOWER_MAC" ID="3" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_REQ_COUNT_TX_SUCCESS" ID="4" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_RSP_RX_COUNT_BY_LOWER_MAC" ID="5" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_RSP_RX_COUNT_BY_UPPER_MAC" ID="6" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_RSP_COUNT_TO_NETDEV" ID="7" TYPE="U16"/>
<Attribute name="NUD_STATS_ARP_RSP_COUNT_OUT_OF_ORDER_DROP" ID="8" TYPE="U16"/>
<Attribute name="NUD_STATS_AP_LINK_ACTIVE" ID="9" TYPE="FLAG"/>
<Attribute name="NUD_STATS_IS_DAD" ID="10" TYPE="FLAG"/>
<Attribute name="NUD_STATS_DATA_PKT_STATS" ID="11" TYPE="NESTED" ATTR_MAX="12">
<Attribute name="TEMP" ID="1" TYPE="u16"/>
</Attribute>
</VendorRsp>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_FETCH_BSS_TRANSITION_STATUS = 151 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_TRACE_LEVEL = 152 -->
<VendorCmd name="SET_TRACE_LEVEL" ID="152">
<Attribute name="TRACE_LEVEL_PARAM" ID="1" TYPE="NESTED" ATTR_MAX="4">
<Attribute name="MODULE_ID" ID="2" TYPE="U32"/>
<Attribute name="TRACE_MASK" ID="3" TYPE="U32"/>
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_BRP_SET_ANT_LIMIT = 153 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_START = 154 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_STOP = 155 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ACTIVE_TOS = 156 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_HANG = 157 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CONFIG = 158 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_DIAG_STATS = 159 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CAP_INFO = 160 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_STATUS = 161 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_HTT_STATS = 162 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_RROP_INFO = 163 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS = 164 -->
<VendorCmd name="SAR_GET" ID="164">
<VendorRsp name="SAR_GET" ID="164" ATTR_MAX="8">
<Attribute name="ENABLE" ID="1" TYPE="u32"/>
<Attribute name="NUM_SPECS" ID="2" TYPE="u32"/>
<Attribute name="SAR_SPEC" ID="3" TYPE="NESTED" ATTR_MAX="8">
<Attribute name="BAND" ID="4" TYPE="u32"/>
<Attribute name="CHAIN" ID="5" TYPE="u32"/>
<Attribute name="MOD" ID="6" TYPE="u32"/>
<Attribute name="POW" ID="7" TYPE="u32"/>
</Attribute>
</VendorRsp>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_WLAN_MAC_INFO = 165 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_SET_QDEPTH_THRESH = 166 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD = 167 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_THERMAL_EVENT = 168 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION = 169 -->
<VendorCmd name="WIFI_CONFIG" ID="169">
<Attribute name="WMM_ENABLE" ID="1" TYPE="u8"/>
<Attribute name="ACCEPT_ADDBA_REQ" ID="2" TYPE="u8"/>
<Attribute name="SEND_ADDBA_REQ" ID="3" TYPE="u8"/>
<Attribute name="HE_FRAGMENTATION" ID="4" TYPE="u8"/>
<Attribute name="HE_MCS" ID="5" TYPE="u8"/>
<Attribute name="WEP_TKIP_IN_HE" ID="6" TYPE="u8"/>
<Attribute name="ADD_DEL_BA_SESSION" ID="7" TYPE="u8"/>
<Attribute name="ADDBA_BUFF_SIZE" ID="8" TYPE="u16"/>
<Attribute name="BA_TID" ID="9" TYPE="u8"/>
<Attribute name="ENABLE_NO_ACK" ID="10" TYPE="u8"/>
<Attribute name="NO_ACK_AC" ID="11" TYPE="u8"/>
<Attribute name="HE_LTF" ID="12" TYPE="u8"/>
<Attribute name="ENABLE_TX_BEAMFORMEE" ID="13" TYPE="u8"/>
<Attribute name="HE_TX_BEAMFORMEE_NSTS" ID="14" TYPE="u8"/>
<Attribute name="HE_MU_EDCA_AC" ID="15" TYPE="u8"/>
<Attribute name="HE_MU_EDCA_AIFSN" ID="16" TYPE="u8"/>
<Attribute name="HE_MU_EDCA_ECWMIN" ID="17" TYPE="u8"/>
<Attribute name="HE_MU_EDCA_ECWMAX" ID="18" TYPE="u8"/>
<Attribute name="HE_MU_EDCA_TIMER" ID="19" TYPE="u8"/>
<Attribute name="HE_MAC_PADDING_DUR" ID="20" TYPE="u8"/>
<Attribute name="OVERRIDE_MU_EDCA" ID="21" TYPE="u8"/>
<Attribute name="HE_OM_CTRL_SUPP" ID="22" TYPE="u8"/>
<Attribute name="TWT_SETUP" ID="23" TYPE="NESTED">
<Attribute name="BCAST" ID="1" TYPE="blob" LENGTH="1"/>
<Attribute name="REQ_TYPE" ID="2" TYPE="u8"/>
<Attribute name="TRIGGER" ID="3" TYPE="blob" LENGTH="1"/>
<Attribute name="FLOW_TYPE" ID="4" TYPE="u8"/>
<Attribute name="WAKE_INTVL_EXP" ID="6" TYPE="u8"/>
<Attribute name="PROTECTION" ID="7" TYPE="blob" LENGTH="1"/>
<Attribute name="WAKE_TIME" ID="8" TYPE="u32"/>
<Attribute name="WAKE_DURATION" ID="9" TYPE="u32"/>
<Attribute name="WAKE_INTVL_MANTISSA" ID="10" TYPE="u32"/>
</Attribute>
<Attribute name="TWT_TERMINATE" ID="24" TYPE="NESTED">
</Attribute>
<Attribute name="TWT_SUSPEND" ID="25" TYPE="u8"/>
<Attribute name="TWT_RESUME" ID="26" TYPE="u8"/>
<Attribute name="HE_OM_CTRL_BW" ID="27" TYPE="u8"/>
<Attribute name="HE_OM_CTRL_NSS" ID="28" TYPE="u8"/>
<Attribute name="HE_OM_CTRL_UL_MU_DISABLE" ID="29" TYPE="u8"/>
<Attribute name="CLEAR_HE_OM_CTRL_CONFIG" ID="30" TYPE="blob" LENGTH="1"/>
<Attribute name="HE_TX_SUPPDU" ID="31" TYPE="u8"/>
<Attribute name="HE_ACTION_TX_TB_PPDU" ID="32" TYPE="u8"/>
<Attribute name="HE_OMI_TX" ID="33" TYPE="NESTED">
<Attribute name="HE_OMI_RX_NSS" ID="1" TYPE="u8"/>
<Attribute name="HE_OMI_CH_BW" ID="2" TYPE="u8"/>
<Attribute name="HE_OMI_ULMU_DISABLE" ID="3" TYPE="u8"/>
<Attribute name="HE_OMI_TX_NSTS" ID="4" TYPE="u8"/>
<Attribute name="HE_OMI_ULMU_DATA_DISABLE" ID="5" TYPE="u8"/>
</Attribute>
<Attribute name="HE_HTC_HE_SUPP" ID="34" TYPE="u8"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_NAN_EXT = 171 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG = 173 -->
<VendorCmd name="CFR_CAPTURE_CFG" ID="173">
<Attribute name="CFR_VERSION," ID="7" TYPE="U8"/>
<Attribute name="CFR_ENABLE" ID="2" TYPE="FLAG"/>
<Attribute name="CFR_ENABLE_GROUP_BITMAP" ID="8" TYPE="U32"/>
<Attribute name="CFR_CAPTURE_TYPE" ID="11" TYPE="U32"/>
<Attribute name="CFR_GROUP_TABLE" ID="14" TYPE="NESTED" ATTR_MAX="25">
<Attribute name="CFR_GROUP_ENTRY" ID="15" TYPE="NESTED" ATTR_MAX="25">
<Attribute name="CFR_GROUP_NUMBER" ID="16" TYPE="u32"/>
<Attribute name="CFR_GROUP_MGMT_FILTER" ID="23" TYPE="u32"/>
<Attribute name="CFR_GROUP_TA" ID="17" TYPE="mac_addr"/>
<Attribute name="CFR_GROUP_TA_MASK" ID="19" TYPE="mac_addr"/>
</Attribute>
</Attribute>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_THROUGHPUT_CHANGE_EVENT = 174 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_COEX_CONFIG = 175 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_FW_STATE = 177 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_PEER_STATS_CACHE_FLUSH = 178 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_MPTA_HELPER_CONFIG = 179 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING = 180 -->
<VendorCmd name="BEACON_REPORTING" ID="180">
<Attribute name="BEACON_REPORTING_OP_TYPE" ID="1" TYPE="u8"/>
<Attribute name="BEACON_REPORTING_ACTIVE_REPORTING" ID="2" TYPE="FLAG"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_INTEROP_ISSUES_AP = 181 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_OEM_DATA = 182 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT = 183 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_ADD_STA_NODE = 184 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE = 185 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO = 186 -->
<VendorCmd name="GET_STA_INFO" ID="186">
<Attribute name="GET_STA_INFO_MAC" ID="1" TYPE="mac_addr"/>
<VendorRsp name="GET_STA_INFO" ID="186" ATTR_MAX="44">
<Attribute name="GET_STA_INFO_MAC" ID="1" TYPE="mac_addr"/>
<Attribute name="GET_STA_INFO_FLAGS" ID="2" TYPE="u32"/>
<Attribute name="GET_STA_INFO_GUARD_INTERVAL" ID="3" TYPE="u32"/>
<Attribute name="GET_STA_INFO_RX_RETRY_COUNT" ID="4" TYPE="u32"/>
<Attribute name="GET_STA_INFO_RX_BC_MC_COUNT" ID="5" TYPE="u32"/>
<Attribute name="GET_STA_INFO_TX_RETRY_SUCCEED" ID="6" TYPE="u32"/>
<Attribute name="GET_STA_INFO_TX_RETRY_EXHAUSTED" ID="7" TYPE="u32"/>
<Attribute name="GET_STA_INFO_TARGET_TX_TOTAL" ID="8" TYPE="u32"/>
<Attribute name="GET_STA_INFO_TARGET_TX_RETRY" ID="9" TYPE="u32"/>
<Attribute name="GET_STA_INFO_TARGET_TX_RETRY_EXHAUSTED" ID="10" TYPE="u32"/>
<Attribute name="GET_STA_INFO_RX_FRAMES_CRC_FAIL_COUNT" ID="20" TYPE="u32"/>
</VendorRsp>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS_EVENT = 187 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO = 188 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_DRIVER_DISCONNECT_REASON = 189 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_CONFIG_TSPEC = 190 -->
<VendorCmd name="CONFIG_TSPEC" ID="190">
<Attribute name="CONFIG_TSPEC_OPERATION" ID="1" TYPE="u8"/>
<Attribute name="CONFIG_TSPEC_TSID" ID="2" TYPE="u8"/>
<Attribute name="CONFIG_TSPEC_DIRECTION" ID="3" TYPE="u8"/>
<Attribute name="CONFIG_TSPEC_APSD" ID="4" TYPE="FLAG"/>
<Attribute name="CONFIG_TSPEC_USER_PRIORITY" ID="5" TYPE="u8"/>
<Attribute name="CONFIG_TSPEC_ACK_POLICY" ID="6" TYPE="u8"/>
<Attribute name="CONFIG_TSPEC_NOMINAL_MSDU_SIZE" ID="7" TYPE="u16"/>
<Attribute name="CONFIG_TSPEC_MAXIMUM_MSDU_SIZE" ID="8" TYPE="u16"/>
<Attribute name="CONFIG_TSPEC_MIN_SERVICE_INTERVAL" ID="9" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_MAX_SERVICE_INTERVAL" ID="10" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_INACTIVITY_INTERVAL" ID="11" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_SUSPENSION_INTERVAL" ID="12" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_MINIMUM_DATA_RATE" ID="13" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_MEAN_DATA_RATE" ID="14" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_PEAK_DATA_RATE" ID="15" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_BURST_SIZE" ID="16" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_MINIMUM_PHY_RATE" ID="17" TYPE="u32"/>
<Attribute name="CONFIG_TSPEC_SURPLUS_BANDWIDTH_ALLOWANCE" ID="18" TYPE="u16"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT = 191 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_GETBAND = 192 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_MEDIUM_ASSESS = 193 -->
<VendorCmd name="MEDIUM_ASSESS" ID="193">
<Attribute name="MEDIUM_ASSESS_TYPE" ID="1" TYPE="u8"/>
<Attribute name="MEDIUM_ASSESS_PERIOD" ID="2" TYPE="u32"/>
<Attribute name="MEDIUM_ASSESS_CONGESTION_REPORT_ENABLE" ID="9" TYPE="u8"/>
<Attribute name="MEDIUM_ASSESS_CONGESTION_REPORT_THRESHOLD" ID="10" TYPE="u8"/>
<Attribute name="MEDIUM_ASSESS_CONGESTION_REPORT_INTERVAL" ID="11" TYPE="u8"/>
</VendorCmd>
<!-- QCA_NL80211_VENDOR_SUBCMD_UPDATE_SSID = 194 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_WIFI_FW_STATS = 195 -->
<!-- QCA_NL80211_VENDOR_SUBCMD_MBSSID_TX_VDEV_STATUS = 196 -->
</WCN_VenTool>

View File

@@ -6,3 +6,7 @@ bss_max_count=400
interworking=1
config_methods=virtual_display virtual_push_button keypad
driver_param="no_rrm=1"
p2p_chan_list_dfs_disable=0
p2p_chan_list_only_sta_dfs_enable=0
p2p_pref_list_dfs_disable=0
p2p_go_dfs_disable=0