Merge Android 14

Bug: 298295554
Merged-In: Ia42c74a3fab73b984823796b61b0e66f7662ac53
Change-Id: I08cb8a2b2050c04b370de78fd0d422730cc60171
This commit is contained in:
Xin Li 2023-10-05 15:33:08 -07:00
commit 1fba35369d
52 changed files with 1470 additions and 1217 deletions

3
OWNERS
View file

@ -1 +1,4 @@
per-file powerhint.json = jychen@google.com,jenhaochen@google.com,wvw@google.com,joaodias@google.com
# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common:master:/OWNERS

View file

@ -20,6 +20,7 @@ AUDIO_TABLE_FOLDER := felix
PRODUCT_COPY_FILES += \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_bluetooth_legacy_hal.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_le_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_le_offload_disabled.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_platform_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_configuration.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/sound_trigger_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_configuration.xml \
@ -43,6 +44,7 @@ PRODUCT_COPY_FILES += $(call copy-files,$(wildcard $(SPK_FIRMWARE_FULL_PATH)/*)
# Audio tuning
PRODUCT_COPY_FILES += \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/bluenote/recording.gatf:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/recording.gatf \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/bluenote/smartfeature.gstf:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/smartfeature.gstf \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/BLUETOOTH.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/BLUETOOTH.dat \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSFREE.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSFREE.dat \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSET.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSET.dat \

View file

@ -295,7 +295,7 @@
<device_handle>
<handler libname="audio_bt_aoc.so"/>
<handler libname="audio_usb_aoc.so" argu="MaxSamplingRate=96000,UnsupportedFormat=S24_LE"/>
<handler libname="audio_usb_aoc.so" argu="MaxSamplingRate=192000,UnsupportedFormat=S24_LE,MaxCapPacketInterval=125,MaxCapSampleRate=192000,MaxCapBitWidth=32,MaxCapChannel=2,EnableHifi192kMultichannel=0"/>
</device_handle>
<external_module>

View file

@ -166,6 +166,18 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT BLE Headset" type="AUDIO_DEVICE_OUT_BLE_HEADSET" role="sink"
encodedFormats="AUDIO_FORMAT_LC3">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT BLE Speaker" type="AUDIO_DEVICE_OUT_BLE_SPEAKER" role="sink"
encodedFormats="AUDIO_FORMAT_LC3">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BLE Headset Mic" type="AUDIO_DEVICE_IN_BLE_HEADSET" role="source">
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
@ -183,34 +195,38 @@
<route type="mix" sink="Earpiece"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT BLE Headset"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT BLE Speaker"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic,BLE Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic,BLE Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic,BLE Headset Mic"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
<route type="mix" sink="echo_ref_input" sources="Echo Ref In"/>
</routes>

View file

@ -173,11 +173,11 @@
<route type="mix" sink="USB Headset Out"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
@ -188,9 +188,9 @@
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
<route type="mix" sink="echo_ref_input" sources="Echo Ref In"/>
</routes>

View file

@ -169,11 +169,11 @@
<route type="mix" sink="USB Headset Out"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
@ -184,9 +184,9 @@
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
<route type="mix" sink="echo_ref_input" sources="Echo Ref In"/>
</routes>

View file

@ -0,0 +1,249 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (C) 2020 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.
-->
<audioPolicyConfiguration version="7.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<globalConfiguration speaker_drc_enabled="false" call_screen_mode_supported="true" />
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Speaker</item>
<item>Speaker Safe</item>
<item>Earpiece</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>Telephony Tx</item>
<item>Voice Call And Telephony Rx</item>
<item>Echo Ref In</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep buffer" role="source" flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO_HAPTIC_AB" />
</mixPort>
<mixPort name="raw" role="source" flags="AUDIO_OUTPUT_FLAG_RAW AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="incall playback" role="source"
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
<mixPort name="voice call tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="hotword input" role="sink" flags="AUDIO_INPUT_FLAG_HW_HOTWORD" maxActiveCount="0" >
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="incall capture" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="voice call rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="fast input" role="sink" flags="AUDIO_INPUT_FLAG_RAW AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="hifi_input" role="sink" />
<mixPort name="echo_ref_input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
</devicePort>
<devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
</devicePort>
<devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
</devicePort>
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
</devicePort>
<!-- AUDIO_DEVICE_IN_VOICE_CALL and AUDIO_DEVICE_IN_TELEPHONY_RX are in the same value -->
<devicePort tagName="Voice Call And Telephony Rx" type="AUDIO_DEVICE_IN_VOICE_CALL" role="source">
</devicePort>
<devicePort tagName="Echo Ref In" type="AUDIO_DEVICE_IN_ECHO_REFERENCE" role="source">
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
<route type="mix" sink="Earpiece"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
<route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
<route type="mix" sink="echo_ref_input" sources="Echo Ref In"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
<xi:include href="bluetooth_audio_policy_configuration_7_0.xml"/>
<!-- Usb Audio HAL -->
<module name="usbv2" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="audio_policy_volumes.xml"/>
<xi:include href="default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

View file

@ -175,6 +175,7 @@
<ctl name="BT_RX Mixer NoHost1" value="0"/>
<ctl name="BT_RX Mixer VOIP" value="0"/>
<ctl name="BT_RX Mixer IMSV" value="0"/>
<ctl name="BT_RX Mixer RAW" value="0"/>
<ctl name="INCALL_RX Mixer EP1" value="0"/>
<ctl name="INCALL_RX Mixer EP2" value="0"/>
@ -409,6 +410,10 @@
<ctl name="USB_RX Mixer RAW" value="1"/>
</path>
<path name="raw-playbackP bt">
<ctl name="BT_RX Mixer RAW" value="1"/>
</path>
<path name="raw-playbackP hearing-aid">
</path>
@ -423,6 +428,10 @@
<ctl name="USB_RX Mixer EP1" value="1"/>
</path>
<path name="mmap-playbackP bt">
<ctl name="BT_RX Mixer EP1" value="1"/>
</path>
<path name="mmap-playbackP hearing-aid">
</path>
@ -620,6 +629,10 @@
<ctl name="EP3 TX Mixer USB_TX" value="1"/>
</path>
<path name="low-latency-recordC bt-mic">
<ctl name="EP3 TX Mixer BT_TX" value="1"/>
</path>
<path name="mmap-recordC">
<ctl name="EP2 TX Mixer INTERNAL_MIC_TX" value="1"/>
</path>
@ -628,6 +641,10 @@
<ctl name="EP2 TX Mixer USB_TX" value="1"/>
</path>
<path name="mmap-recordC bt-mic">
<ctl name="EP2 TX Mixer BT_TX" value="1"/>
</path>
<!-- codec setting -->>
<!-- Rx device -->
<path name="handset">

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!---
This is an example to configure LE Audio hardware offload supported capability settings
codecConfigurationList:
Supported codec capability along with its parameter setting
strategyConfigurationList:
ASE Configuration strategies
configurationList:
For each configuration, there are two attributes
- codecConfiguration
- strategyConfiguration
scenarioList:
There would be only one `scenarios` group
For each scenario, the are two attributes
- encode
- decode
If a scenario is unidirectional, mark another direction as `invalid`
The configuration should be chosen from `configurationList`
-->
<leAudioOffloadSetting>
<scenarioList>
<!-- encode only -->
<scenario encode="OneChanMono_16_1" decode="invalid"/>
<scenario encode="TwoChanStereo_16_1" decode="invalid"/>
<scenario encode="OneChanStereo_16_1" decode="invalid"/>
<scenario encode="OneChanMono_16_2" decode="invalid"/>
<scenario encode="TwoChanStereo_16_2" decode="invalid"/>
<scenario encode="OneChanStereo_16_2" decode="invalid"/>
<scenario encode="OneChanMono_24_2" decode="invalid"/>
<scenario encode="TwoChanStereo_24_2" decode="invalid"/>
<scenario encode="OneChanStereo_24_2" decode="invalid"/>
<scenario encode="OneChanMono_48_4" decode="invalid"/>
<scenario encode="TwoChanStereo_48_4" decode="invalid"/>
<scenario encode="OneChanStereo_48_4" decode="invalid"/>
<!-- encode and decode -->
<scenario encode="OneChanStereo_16_1" decode="OneChanStereo_16_1"/>
<scenario encode="OneChanStereo_16_1" decode="OneChanMono_16_1"/>
<scenario encode="TwoChanStereo_16_1" decode="OneChanMono_16_1"/>
<scenario encode="OneChanMono_16_1" decode="OneChanMono_16_1"/>
<scenario encode="OneChanStereo_16_2" decode="OneChanStereo_16_2"/>
<scenario encode="OneChanStereo_16_2" decode="OneChanMono_16_2"/>
<scenario encode="TwoChanStereo_16_2" decode="OneChanMono_16_2"/>
<scenario encode="OneChanMono_16_2" decode="OneChanMono_16_2"/>
<scenario encode="TwoChanStereo_32_2" decode="OneChanMono_32_2"/>
<scenario encode="OneChanMono_32_2" decode="OneChanMono_32_2"/>
</scenarioList>
<configurationList>
<configuration name="OneChanMono_16_1" codecConfiguration="LC3_16k_1" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_16_1" codecConfiguration="LC3_16k_1" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanStereo_16_1" codecConfiguration="LC3_16k_1" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
<configuration name="OneChanMono_16_2" codecConfiguration="LC3_16k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_16_2" codecConfiguration="LC3_16k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanStereo_16_2" codecConfiguration="LC3_16k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
<configuration name="OneChanMono_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanStereo_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
<configuration name="OneChanMono_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanMono_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanStereo_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
</configurationList>
<codecConfigurationList>
<codecConfiguration name="LC3_16k_1" codec="LC3" samplingFrequency="16000" frameDurationUs="7500" octetsPerCodecFrame="30"/>
<codecConfiguration name="LC3_16k_2" codec="LC3" samplingFrequency="16000" frameDurationUs="10000" octetsPerCodecFrame="40"/>
<codecConfiguration name="LC3_24k_2" codec="LC3" samplingFrequency="24000" frameDurationUs="10000" octetsPerCodecFrame="60"/>
<codecConfiguration name="LC3_32k_2" codec="LC3" samplingFrequency="32000" frameDurationUs="10000" octetsPerCodecFrame="80"/>
<codecConfiguration name="LC3_48k_4" codec="LC3" samplingFrequency="48000" frameDurationUs="10000" octetsPerCodecFrame="120"/>
</codecConfigurationList>
<strategyConfigurationList>
<strategyConfiguration name="STEREO_ONE_CIS_PER_DEVICE" audioLocation="STEREO" connectedDevice="2" channelCount="1"/>
<strategyConfiguration name="STEREO_TWO_CISES_PER_DEVICE" audioLocation="STEREO" connectedDevice="1" channelCount="2"/>
<strategyConfiguration name="MONO_ONE_CIS_PER_DEVICE" audioLocation="MONO" connectedDevice="1" channelCount="1"/>
</strategyConfigurationList>
</leAudioOffloadSetting>

View file

@ -1,56 +0,0 @@
<manifest version="1.0" type="device">
<hal format="hidl">
<name>android.hardware.bluetooth</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.bt_channel_avoidance</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBTChannelAvoidance</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.sar</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothSar</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.ext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.ccc</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothCcc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.ewp</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothEwp</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View file

@ -11,9 +11,6 @@ on post-fs-data
chown system system /sys/devices/platform/odm/odm:fp_fpc1020/irq
chown system system /sys/devices/platform/odm/odm:fp_fpc1020/wakeup_enable
on fs
exec_background - system shell -- /vendor/bin/trusty_apploader /vendor/firmware/1540.app
# Permissions for hwcomposer
on fs
chown system system /sys/class/backlight/panel1-backlight/als_table
@ -56,24 +53,6 @@ on property:vendor.device.modules.ready=1
chown system input /dev/touch_offload_fts_ext
chmod 660 /dev/touch_offload_fts
chmod 660 /dev/touch_offload_fts_ext
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/force_active
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/fw_ver
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_base
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_diff
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_raw
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/self_test
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_base
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_diff
chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_raw
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/force_active
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/fw_ver
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/ms_base
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/ms_diff
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/ms_raw
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/self_test
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/ss_base
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/ss_diff
chown system system /sys/devices/virtual/goog_touch_interface/gti.1/ss_raw
# Start the twoshay touch service
start twoshay
@ -105,7 +84,7 @@ on early-boot
wait_for_prop vendor.common.modules.ready 1
start insmod_sh_felix
service insmod_sh_felix /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.felix.cfg
service insmod_sh_felix /vendor/bin/insmod.sh /vendor/etc/init.insmod.felix.cfg
class main
user root
group root system
@ -127,6 +106,10 @@ on property:vendor.mfgapi.touchpanel.permission=1
on property:persist.device_config.vendor_system_native_boot.thermal_proactive_skin=1
setprop vendor.thermal.config "thermal_info_config_proactive_skin.json"
on property:vendor.thermal.link_ready=1
write /dev/thermal/tz-by-name/skin_therm/trip_point_1_temp 61000
write /dev/thermal/tz-by-name/skin_therm/trip_point_2_temp 63000
# Bluetooth
on post-fs-data
chown bluetooth system /proc/bluetooth/timesync
@ -138,6 +121,9 @@ on post-fs-data
on init && property:ro.bootmode=normal
write /sys/devices/platform/hall_sensor/enable 0
on init && property:ro.bootmode=unknown
write /sys/devices/platform/hall_sensor/enable 0
on init && property:ro.bootmode=factory
write /sys/devices/platform/hall_sensor/enable 0
@ -161,14 +147,6 @@ on post-fs-data
setprop wifi.direct.interface p2p-dev-wlan0
setprop wifi.aware.interface aware_nmi0
# Override SF and RE uclamps to 0 on boot after being set elsewhere, for adpf cpu hints
on property:sys.boot_completed=1
trigger override-sf-uclamp
on override-sf-uclamp
write /proc/vendor_sched/rt_uclamp_min 0
write /proc/vendor_sched/sf_uclamp_min 0
# For Japan sku, always enforce camera shutter sound
# Since this property is read by the audio server in system service,
# it should be written by the system init.

View file

@ -31,7 +31,10 @@ include device/google/felix/audio/felix/audio-tables.mk
include device/google/gs201/device-shipping-common.mk
$(call soong_config_set,fp_hal_feature,pixel_product, product_a)
include device/google/felix/vibrator/cs40l26/device.mk
include device/google/gs101/bluetooth/bluetooth.mk
include device/google/gs-common/bcmbt/bluetooth.mk
include device/google/gs-common/display/dump_second_display.mk
include device/google/gs-common/touch/gti/gti.mk
include device/google/gs-common/touch/stm/stm6.mk
ifeq ($(filter factory_felix, $(TARGET_PRODUCT)),)
include device/google/felix/uwb/uwb_calibration.mk
endif
@ -121,13 +124,6 @@ PRODUCT_COPY_FILES += \
device/google/felix/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
# Bluetooth HAL
DEVICE_MANIFEST_FILE += \
device/google/felix/bluetooth/manifest_bluetooth.xml
PRODUCT_SOONG_NAMESPACES += \
vendor/broadcom/bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.1-service.bcmbtlinux \
bt_vendor.conf
PRODUCT_COPY_FILES += \
device/google/felix/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf
PRODUCT_PROPERTY_OVERRIDES += \
@ -156,6 +152,22 @@ PRODUCT_PROPERTY_OVERRIDES += \
ro.audio.spatializer_transaural_enabled_default=false \
persist.vendor.audio.spatializer.speaker_enabled=true
# Bluetooth SAR test tool
PRODUCT_PACKAGES_DEBUG += \
sar_test
# Bluetooth hci_inject test tool
PRODUCT_PACKAGES_DEBUG += \
hci_inject
# Bluetooth
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.a2dp_aac.vbr_supported=true
# default BDADDR for EVB only
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.bluetooth.evb_bdaddr="22:22:22:33:44:55"
# Keymaster HAL
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service
@ -186,10 +198,6 @@ PRODUCT_PROPERTY_OVERRIDES += \
# ro.hardware.keystore=software \
# ro.hardware.gatekeeper=software
# default BDADDR for EVB only
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.bluetooth.evb_bdaddr="22:22:22:33:44:55"
# PowerStats HAL
PRODUCT_SOONG_NAMESPACES += \
device/google/felix/powerstats/felix \
@ -197,7 +205,7 @@ PRODUCT_SOONG_NAMESPACES += \
# Increment the SVN for any official public releases
PRODUCT_VENDOR_PROPERTIES += \
ro.vendor.build.svn=1
ro.vendor.build.svn=24
# Vibrator HAL
PRODUCT_VENDOR_PROPERTIES +=\
@ -219,23 +227,8 @@ PRODUCT_PRODUCT_PROPERTIES += \
# DCK properties based on target
PRODUCT_PROPERTY_OVERRIDES += \
ro.gms.dck.eligible_wcc=3
# Bluetooth SAR test tool
PRODUCT_PACKAGES_DEBUG += \
sar_test
# Bluetooth hci_inject test tool
PRODUCT_PACKAGES_DEBUG += \
hci_inject
# Bluetooth
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.a2dp_aac.vbr_supported=true
# Bluetooth HAL
PRODUCT_PACKAGES += \
bt_vendor.conf
ro.gms.dck.eligible_wcc=3 \
ro.gms.dck.se_capability=1
# Graphics
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_frame_rate_override=true
@ -281,8 +274,8 @@ else
device/google/felix/location/scd_user.conf.f10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf
endif
# WiFi
PRODUCT_PACKAGES += \
UwbOverlayF10 \
WifiOverlay2023Mid_F10
# MIPI Coex Configs
@ -298,10 +291,6 @@ DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/felix/device_framework
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
# Enable adpf cpu hint session for SurfaceFlinger
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
debug.sf.enable_adpf_cpu_hint=true
# Increase thread priority for nodes stop
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.increase_thread_priority_nodes_stop=true
@ -312,7 +301,9 @@ PRODUCT_PROPERTY_OVERRIDES += \
# Camera
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.camera.adjust_backend_min_freq_for_1p_front_video_1080p_30fps=1 \
persist.vendor.camera.extended_launch_boost=1 \
persist.vendor.camera.multicam_streaming_boost=1 \
persist.vendor.camera.optimized_tnr_freq=1 \
persist.vendor.camera.raise_buf_allocation_priority=1 \
persist.vendor.camera.start_cpu_throttling_at_moderate_thermal=1 \
@ -338,3 +329,38 @@ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
device/google/gs201/init.hardware.wlc.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.wlc.rc
endif
# Bluetooth LE Audio
PRODUCT_PRODUCT_PROPERTIES += \
ro.bluetooth.leaudio_offload.supported=true \
persist.bluetooth.leaudio_offload.disabled=false \
ro.bluetooth.leaudio_switcher.supported=true \
bluetooth.profile.bap.unicast.client.enabled=true \
bluetooth.profile.csip.set_coordinator.enabled=true \
bluetooth.profile.hap.client.enabled=true \
bluetooth.profile.mcp.server.enabled=true \
bluetooth.profile.ccp.server.enabled=true \
bluetooth.profile.vcp.controller.enabled=true \
# Override BQR mask to enable LE Audio Choppy report
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.bqr.event_mask=262238
else
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.bqr.event_mask=94
endif
# Bluetooth LE Audio CIS handover to SCO
# Set the property only if the controller doesn't support CIS and SCO
# simultaneously. More details in b/242908683.
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.leaudio.notify.idle.during.call=true
# LE Audio Offload Capabilities Setting
PRODUCT_COPY_FILES += \
device/google/felix/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml
# Bluetooth EWP test tool
PRODUCT_PACKAGES_DEBUG += \
ewp_tool

View file

@ -1,18 +1,10 @@
<compatibility-matrix version="1.0" type="framework" level="7">
<hal format="aidl" optional="true">
<name>com.google.hardware.pixel.display</name>
<version>7</version>
<version>8</version>
<interface>
<name>IDisplay</name>
<instance>secondary</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.ccc</name>
<version>1.1</version>
<interface>
<name>IBluetoothCcc</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View file

@ -20,6 +20,13 @@ BOARD_USES_GENERIC_AUDIO := true
USES_DEVICE_GOOGLE_FELIX := true
BOARD_KERNEL_CMDLINE += swiotlb=noforce
# Enable load module in parallel
BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true
# The modules which need to be loaded in sequential
BOARD_KERNEL_CMDLINE += exynos_drm.load_sequential=1
BOARD_KERNEL_CMDLINE += panel-samsung-ana6707-f10.load_sequential=1
#Display
USES_IDISPLAY_INTF_SEC := true

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2023, 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.
*/
-->
<irq-device-map>
<device name="rtc-alarm0">
<subsystem>Alarm</subsystem>
</device>
<device name="dhdpcie_host_wake">
<subsystem>Wifi</subsystem>
</device>
<device name="cp2ap_wakeup">
<subsystem>Cellular_data</subsystem>
</device>
<device name="MAILBOX_AOCF12APx1100">
<subsystem>Sound_trigger</subsystem>
</device>
<device name="MAILBOX_AOCA322APx100">
<subsystem>Sensor</subsystem>
</device>
</irq-device-map>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2023, 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>
<!-- Weather clock smartspace scaling to apply for the weather clock on tablets -->
<item name="weather_clock_smartspace_scale" type="dimen" format="float">0.85</item>
<dimen name="weather_clock_smartspace_translateX">-40dp</dimen>
<dimen name="weather_clock_smartspace_translateY">-26dp</dimen>
</resources>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2023, 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>
<!-- Weather clock smartspace scaling to apply for the weather clock on tablets -->
<dimen name="weather_clock_smartspace_translateX">-8dp</dimen>
<dimen name="weather_clock_smartspace_translateY">-16dp</dimen>
</resources>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2023, 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>
<!-- Weather clock smartspace positioning to apply for the weather clock on tablets -->
<dimen name="weather_clock_smartspace_translateX">-15dp</dimen>
<dimen name="weather_clock_smartspace_translateY">-26dp</dimen>
</resources>

View file

@ -19,4 +19,17 @@
<item>G9FPL</item>
<item>G0B96</item>
</string-array>
<bool name="tag_intent_app_pref_supported">true</bool>
<!-- NFC Antenna Location API -->
<integer name="device_width">160</integer>
<integer name="device_height">140</integer>
<bool name="device_foldable">true</bool>
<integer-array name="antenna_x">
<item>90</item>
<item>30</item>
</integer-array>
<integer-array name="antenna_y">
<item>103</item>
<item>103</item>
</integer-array>
</resources>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2023 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>
<!-- Lock pattern view size, align sysui biometric_auth_pattern_view_size -->
<dimen name="biometric_auth_pattern_view_size">290dp</dimen>
</resources>

View file

@ -4,7 +4,8 @@ GOOGLE_CONFIG_FP_STATUS=1
FPC_CONFIG_TRUSTY_CLEAN_TA=1
else
# Non factory build, use fingerprint AIDL version
GOOGLE_CONFIG_POWER_NODE=/dev/input/event1
GOOGLE_CONFIG_POWER_NODE=/dev/input/event2
GOOGLE_CONFIG_DP_COUNT=2
GOOGLE_CONFIG_FP_STATUS=1
GOOGLE_CONFIG_TOUCH_TO_UNLOCK_ANYTIME=1
endif

View file

@ -10,8 +10,7 @@ modprobe|bcmdhd4389.ko
modprobe|snd-soc-cs35l41-i2c.ko
modprobe|fst2.ko
modprobe|ftm5.ko
modprobe|cl_dsp.ko
modprobe|input-cs40l26-i2c.ko
modprobe|cs40l26-i2c.ko
modprobe|snd-soc-cs40l26.ko
# All device specific modules loaded

View file

@ -35,7 +35,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
SuplOtdoaCapable2="true"
SuplOtdoaCapable2="false"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
@ -88,6 +88,7 @@
EnableOnChipStopNotification="2"
PowerMode="3"
MinGpsWeekNumber="2216"
OnChipAccMask="50"
/>
<gll_features

View file

@ -34,7 +34,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
SuplOtdoaCapable2="true"
SuplOtdoaCapable2="false"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
@ -87,6 +87,7 @@
EnableOnChipStopNotification="0"
PowerMode="3"
MinGpsWeekNumber="2216"
OnChipAccMask="50"
/>
<gll_features

View file

@ -1,5 +1,18 @@
{
"Nodes": [
{
"Name": "GPUMinFreq",
"Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
"Values": [
"848000",
"762000",
"572000",
"471000",
"302000",
"202000"
],
"ResetOnInit": true
},
{
"Name": "MemFreq",
"Path": "/sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/min_freq",
@ -114,19 +127,6 @@
],
"ResetOnInit": true
},
{
"Name": "GPUMinFreq",
"Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
"Values": [
"848000",
"762000",
"572000",
"471000",
"302000",
"202000"
],
"ResetOnInit": true
},
{
"Name": "GPUDvfsPeriod",
"Path": "/sys/devices/platform/28000000.mali/dvfs_period",
@ -155,6 +155,16 @@
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUDVFSHeadroom",
"Path": "/proc/vendor_sched/dvfs_headroom",
"Values": [
"1280",
"1100 1078 1024"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "MIFTargetLoad",
"Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
@ -169,7 +179,7 @@
"Name": "CAMUClampBoost",
"Path": "/proc/vendor_sched/cam_uclamp_min",
"Values": [
"612",
"764",
"0"
],
"ResetOnInit": true
@ -178,7 +188,7 @@
"Name": "TAUClampBoost",
"Path": "/proc/vendor_sched/ta_uclamp_min",
"Values": [
"612",
"764",
"1"
],
"ResetOnInit": true
@ -196,8 +206,8 @@
"Name": "MLUclampBoost",
"Path": "/proc/vendor_sched/nnapi_uclamp_min",
"Values": [
"180",
"650"
"225",
"813"
],
"DefaultIndex": 0,
"ResetOnInit": true
@ -345,6 +355,7 @@
"Path": "/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam/min_freq",
"Values": [
"664000",
"233000",
"67000"
],
"ResetOnInit": true
@ -364,6 +375,7 @@
"Path": "/sys/devices/platform/17000060.devfreq_tnr/devfreq/17000060.devfreq_tnr/min_freq",
"Values": [
"664000",
"233000",
"67000"
],
"ResetOnInit": true
@ -560,6 +572,16 @@
"0,1,2,3,4,5,6,7"
],
"Type": "Property"
},
{
"Name": "Dex2oatGroup",
"Path": "/proc/vendor_sched/dex2oat_ug",
"Values": [
"1",
"0"
],
"DefaultIndex": 0,
"ResetOnInit": true
}
],
"Actions": [
@ -632,7 +654,7 @@
"PowerHint": "LAUNCH",
"Node": "TAUClampBoost",
"Duration": 5000,
"Value": "612"
"Value": "764"
},
{
"PowerHint": "LAUNCH",
@ -699,6 +721,18 @@
"Duration": 2000,
"Value": "9999999"
},
{
"PowerHint": "CPU_LOAD_RESET",
"Node": "GPUMinFreq",
"Duration": 50,
"Value": "302000"
},
{
"PowerHint": "CPU_LOAD_RESET",
"Node": "MemFreq",
"Duration": 33,
"Value": "1014000"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "MemFreq",
@ -745,7 +779,7 @@
"PowerHint": "CAMERA_LAUNCH",
"Node": "CAMUClampBoost",
"Duration": 1000,
"Value": "612"
"Value": "764"
},
{
"PowerHint": "CAMERA_LAUNCH",
@ -1143,6 +1177,12 @@
"Duration": 0,
"Value": "1100 1078 1024"
},
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CPUDVFSHeadroom",
"Duration": 0,
"Value": "1100 1078 1024"
},
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CPUMidClusterMaxFreq",
@ -1317,6 +1357,24 @@
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "CAMERA_MULTI_CAM_STREAMING",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_MULTI_CAM_STREAMING",
"Node": "CPUMidClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_MULTI_CAM_STREAMING",
"Node": "CPULittleClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_VIDEO_RECORDING",
"Type": "MaskHint",
@ -1349,6 +1407,18 @@
"Duration": 0,
"Value": "302000"
},
{
"PowerHint": "CAMERA_ADJUST_BACKEND_MIN_FREQ",
"Node": "INTCAMFreq",
"Duration": 0,
"Value": "233000"
},
{
"PowerHint": "CAMERA_ADJUST_BACKEND_MIN_FREQ",
"Node": "TNRFreq",
"Duration": 0,
"Value": "233000"
},
{
"PowerHint": "CAMERA_TNR_LOW",
"Node": "TNRMaxFreq",
@ -1487,6 +1557,72 @@
"Duration": 0,
"Value": "1"
},
{
"PowerHint": "LOW_POWER",
"Node": "BigControlTempSet",
"Duration": 0,
"Value": "80000"
},
{
"PowerHint": "LOW_POWER",
"Node": "MidControlTempSet",
"Duration": 0,
"Value": "80000"
},
{
"PowerHint": "LOW_POWER",
"Node": "LittleControlTempSet",
"Duration": 0,
"Value": "80000"
},
{
"PowerHint": "LOW_POWER",
"Node": "G3dControlTempSet",
"Duration": 0,
"Value": "80000"
},
{
"PowerHint": "LOW_POWER",
"Node": "TpuControlTempSet",
"Duration": 0,
"Value": "80000"
},
{
"PowerHint": "LOW_POWER",
"Node": "AurControlTempSet",
"Duration": 0,
"Value": "80000"
},
{
"PowerHint": "LOW_POWER",
"Node": "BigSwitchOnTempSet",
"Duration": 0,
"Value": "60000"
},
{
"PowerHint": "LOW_POWER",
"Node": "MidSwitchOnTempSet",
"Duration": 0,
"Value": "60000"
},
{
"PowerHint": "LOW_POWER",
"Node": "LittleSwitchOnTempSet",
"Duration": 0,
"Value": "60000"
},
{
"PowerHint": "LOW_POWER",
"Node": "G3dSwitchOnTempSet",
"Duration": 0,
"Value": "60000"
},
{
"PowerHint": "LOW_POWER",
"Node": "TpuSwitchOnTempSet",
"Duration": 0,
"Value": "60000"
},
{
"PowerHint": "REFRESH_120FPS",
"Node": "TAUClampBoost",
@ -1552,12 +1688,6 @@
"Duration": 0,
"Value": "572000"
},
{
"PowerHint": "ADPF_FIRST_FRAME",
"Node": "GPUMinFreq",
"Duration": 50,
"Value": "302000"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
"Node": "PMU_POLL",
@ -1648,6 +1778,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
"Node": "Dex2oatGroup",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_MODERATE",
"Node": "PMU_POLL",
@ -1738,6 +1874,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_MODERATE",
"Node": "Dex2oatGroup",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_SEVERE",
"Node": "PMU_POLL",
@ -1828,6 +1970,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_SEVERE",
"Node": "Dex2oatGroup",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_CRITICAL",
"Node": "PMU_POLL",
@ -1918,6 +2066,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_CRITICAL",
"Node": "Dex2oatGroup",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_EMERGENCY",
"Node": "PMU_POLL",
@ -2026,6 +2180,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_EMERGENCY",
"Node": "Dex2oatGroup",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "FACE_UNLOCK_BOOST",
"Node": "CPUBigClusterMaxFreq",
@ -2096,7 +2256,7 @@
"PowerHint": "ML_ACC",
"Node": "MLUclampBoost",
"Duration": 2000,
"Value": "650"
"Value": "813"
},
{
"PowerHint": "ML_ACC",
@ -2118,8 +2278,8 @@
"PID_Do": 500.0,
"PID_Du": 0.0,
"UclampMin_On": true,
"UclampMin_Init": 185,
"UclampMin_High": 384,
"UclampMin_Init": 232,
"UclampMin_High": 480,
"UclampMin_Low": 2,
"SamplingWindow_P": 1,
"SamplingWindow_I": 0,
@ -2142,8 +2302,8 @@
"PID_Do": 500.0,
"PID_Du": 0.0,
"UclampMin_On": true,
"UclampMin_Init": 129,
"UclampMin_High": 384,
"UclampMin_Init": 162,
"UclampMin_High": 480,
"UclampMin_Low": 2,
"SamplingWindow_P": 1,
"SamplingWindow_I": 0,
@ -2166,8 +2326,8 @@
"PID_Do": 500.0,
"PID_Du": 0.0,
"UclampMin_On": true,
"UclampMin_Init": 129,
"UclampMin_High": 384,
"UclampMin_Init": 162,
"UclampMin_High": 480,
"UclampMin_Low": 2,
"SamplingWindow_P": 1,
"SamplingWindow_I": 0,
@ -2193,9 +2353,9 @@
"SamplingWindow_I": 1,
"SamplingWindow_D": 1,
"UclampMin_On": true,
"UclampMin_Init": 200,
"UclampMin_High": 157,
"UclampMin_Low": 157,
"UclampMin_Init": 250,
"UclampMin_High": 197,
"UclampMin_Low": 197,
"ReportingRateLimitNs": 1,
"EarlyBoost_On": false,
"EarlyBoost_TimeFactor": 0.0,
@ -2217,9 +2377,9 @@
"SamplingWindow_I": 1,
"SamplingWindow_D": 1,
"UclampMin_On": true,
"UclampMin_Init": 200,
"UclampMin_High": 42,
"UclampMin_Low": 42,
"UclampMin_Init": 250,
"UclampMin_High": 53,
"UclampMin_Low": 53,
"ReportingRateLimitNs": 1,
"EarlyBoost_On": false,
"EarlyBoost_TimeFactor": 0.0,
@ -2241,7 +2401,7 @@
"SamplingWindow_I": 1,
"SamplingWindow_D": 1,
"UclampMin_On": true,
"UclampMin_Init": 200,
"UclampMin_Init": 250,
"UclampMin_High": 0,
"UclampMin_Low": 0,
"ReportingRateLimitNs": 1,

View file

@ -28,6 +28,7 @@
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include <log/log.h>
#include <sys/stat.h>
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DisplayStateResidencyDataProvider;
@ -39,7 +40,9 @@ void addDisplay(std::shared_ptr<PowerStats> p) {
// Add display residency stats for inner display
std::vector<std::string> inner_states = {
"Off",
"LP: 1840x2208@1",
"LP: 1840x2208@30",
"On: 1840x2208@1",
"On: 1840x2208@10",
"On: 1840x2208@60",
"On: 1840x2208@120",
@ -138,6 +141,18 @@ void addGPU(std::shared_ptr<PowerStats> p) {
stateCoeffs));
}
std::string getNfcPath() {
struct stat buffer;
int size = 128;
char path[size];
for (int i = 0; i < 10; i++) {
std::snprintf(path, size,
"/sys/devices/platform/10970000.hsi2c/i2c-%d/i2c-st21nfc/power_stats", i);
if (!stat(path, &buffer)) break;
}
return std::string(path);
}
int main() {
LOG(INFO) << "Pixel PowerStats HAL AIDL Service is starting.";
@ -158,7 +173,7 @@ int main() {
addWifi(p);
addTPU(p);
addUfs(p);
addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-4/i2c-st21nfc/power_stats");
addNFC(p, getNfcPath());
addUwb(p);
addPowerDomains(p);
addDevfreq(p);

View file

@ -0,0 +1,18 @@
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "//device/google/felix:device_google_felix_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: [
"//device/google/felix:device_google_felix_license",
],
}
runtime_resource_overlay {
name: "UwbOverlayF10",
theme: "UwbOverlayF10",
certificate: "platform",
sdk_version: "current",
product_specific: true
}

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 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.
-->
<!-- Pixel specific uwb overlays -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.uwb.resources.pixel"
android:versionCode="1"
android:versionName="1.0">
<application android:hasCode="false" />
<overlay
android:targetPackage="com.android.uwb.resources"
android:targetName="UwbCustomization"
android:isStatic="true"
android:priority="0"/>
</manifest>

View file

@ -0,0 +1,3 @@
# People who can approve changes for submission
include platform/packages/modules/Uwb:/OWNERS
victorliu@google.com

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2022 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>
<!-- When true, the filter engine will alter UWB values to improve accuracy. -->
<bool name="enable_filters">true</bool>
<!-- Enables the AoA conversion primer. This is needed on hardware that does not convert AoA
to spherical coordinates, including hardware that does not support elevation.-->
<bool name="enable_primer_aoa">true</bool>
</resources>

View file

@ -56,6 +56,7 @@
<!-- True if the firmware supports connected MAC randomization -->
<bool name="config_wifi_connected_mac_randomization_supported">true</bool>
<bool name="config_wifiAllowNonPersistentMacRandomizationOnOpenSsids">true</bool>
<!-- True if the firmware supports p2p MAC randomization -->
<bool name="config_wifi_p2p_mac_randomization_supported">true</bool>
@ -152,4 +153,18 @@
<!-- Enable WPA2 to WPA3 auto-upgrade offload to capable Driver/Firmware -->
<bool translatable="false" name="config_wifiSaeUpgradeOffloadEnabled">true</bool>
<!-- Boolean indicating whether DTIM multiplier configuration is enabled. DTIM multiplier value
is when the system is in the suspended mode -->
<bool translatable="false" name="config_wifiDtimMultiplierConfigEnabled">true</bool>
<!-- Enable the feature of adjusting link layer stats polling interval based on
device mobility state and client mode RSSI monitoring. -->
<bool translatable="false" name="config_wifiAdjustPollRssiIntervalEnabled">true</bool>
<!-- Boolean indicating whether the framework updates country from scan results when there is
no telephony country code. This is applied to all generic cases and might require the
regulatory approval (for example, FCC pre-approval is required according to "594280 D01
Software Configuration Control v02r01").-->
<bool translatable="false" name ="config_wifiUpdateCountryCodeFromScanResultGeneric">true</bool>
</resources>

View file

@ -11,7 +11,7 @@
system_ext/lib64/libmediaadaptor.so \
system_ext/priv-app/ShannonRcs/ShannonRcs.apk \
system_ext/priv-app/ShannonIms/ShannonIms.apk \
system_ext/priv-app/QualifiedNetworksService/QualifiedNetworksService.apk \
system_ext/priv-app/PixelQualifiedNetworksService/PixelQualifiedNetworksService.apk \
system_ext/priv-app/UwbVendorService/UwbVendorService.apk \
"
;;

View file

@ -24,7 +24,7 @@ endif
ifneq ($(filter felix,$(TARGET_DEVICE)),)
include $(CLEAR_VARS)
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE := QualifiedNetworksService
LOCAL_MODULE := PixelQualifiedNetworksService
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_SYSTEM_EXT_MODULE := true
@ -48,7 +48,7 @@ LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_OWNER := samsung
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE
@ -64,7 +64,7 @@ LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_OWNER := samsung
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE
@ -80,7 +80,7 @@ LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_OWNER := qorvo
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE

View file

@ -17,7 +17,7 @@ PRODUCT_SOONG_NAMESPACES += \
# AOSP packages required by the blobs
PRODUCT_PACKAGES := \
QualifiedNetworksService \
PixelQualifiedNetworksService \
ShannonIms \
ShannonRcs \
UwbVendorService \

View file

@ -1,30 +0,0 @@
# Copyright (C) 2009 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.
LOCAL_PATH := $(call my-dir)
# HAL module implemenation stored in
# hw/<SENSORS_HARDWARE_MODULE_ID>.<ro.hardware>.so
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SHARED_LIBRARIES := liblog libcutils libhardware
LOCAL_SRC_FILES := sensors_dummy.c
LOCAL_MODULE := sensors.felix
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../NOTICE
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_SHARED_LIBRARY)

View file

@ -1,409 +0,0 @@
/*
* Copyright (C) 2009 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.
*/
/* this implements a sensors hardware library for the Android emulator.
* the following code should be built as a shared library that will be
* placed into /system/lib/hw/sensors.goldfish.so
*
* it will be loaded by the code in hardware/libhardware/hardware.c
* which is itself called from com_android_server_SensorService.cpp
*/
#define SENSORS_SERVICE_NAME "sensors"
#define LOG_TAG "Dummy_Sensors"
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <log/log.h>
#include <cutils/sockets.h>
#include <hardware/sensors.h>
#include <pthread.h>
#if 0
#define D(...) ALOGD(__VA_ARGS__)
#else
#define D(...) ((void)0)
#endif
#define E(...) ALOGE(__VA_ARGS__)
/** SENSOR IDS AND NAMES
**/
#define MAX_NUM_SENSORS 8
#define SUPPORTED_SENSORS ((1<<MAX_NUM_SENSORS)-1)
#define ID_BASE SENSORS_HANDLE_BASE
#define ID_ACCELERATION (ID_BASE+0)
#define ID_MAGNETIC_FIELD (ID_BASE+1)
#define ID_ORIENTATION (ID_BASE+2)
#define ID_TEMPERATURE (ID_BASE+3)
#define ID_PROXIMITY (ID_BASE+4)
#define ID_LIGHT (ID_BASE+5)
#define ID_PRESSURE (ID_BASE+6)
#define ID_HUMIDITY (ID_BASE+7)
#define SENSORS_ACCELERATION (1 << ID_ACCELERATION)
#define SENSORS_MAGNETIC_FIELD (1 << ID_MAGNETIC_FIELD)
#define SENSORS_ORIENTATION (1 << ID_ORIENTATION)
#define SENSORS_TEMPERATURE (1 << ID_TEMPERATURE)
#define SENSORS_PROXIMITY (1 << ID_PROXIMITY)
#define SENSORS_LIGHT (1 << ID_LIGHT)
#define SENSORS_PRESSURE (1 << ID_PRESSURE)
#define SENSORS_HUMIDITY (1 << ID_HUMIDITY)
#define ID_CHECK(x) ((unsigned)((x) - ID_BASE) < MAX_NUM_SENSORS)
#define SENSORS_LIST \
SENSOR_(ACCELERATION,"acceleration") \
SENSOR_(MAGNETIC_FIELD,"magnetic-field") \
SENSOR_(ORIENTATION,"orientation") \
SENSOR_(TEMPERATURE,"temperature") \
SENSOR_(PROXIMITY,"proximity") \
SENSOR_(LIGHT, "light") \
SENSOR_(PRESSURE, "pressure") \
SENSOR_(HUMIDITY, "humidity")
static const struct {
const char* name;
int id; } _sensorIds[MAX_NUM_SENSORS] =
{
#define SENSOR_(x,y) { y, ID_##x },
SENSORS_LIST
#undef SENSOR_
};
static const char*
_sensorIdToName( int id )
{
int nn;
for (nn = 0; nn < MAX_NUM_SENSORS; nn++)
if (id == _sensorIds[nn].id)
return _sensorIds[nn].name;
return "<UNKNOWN>";
}
static int
_sensorIdFromName( const char* name )
{
int nn;
if (name == NULL)
return -1;
for (nn = 0; nn < MAX_NUM_SENSORS; nn++)
if (!strcmp(name, _sensorIds[nn].name))
return _sensorIds[nn].id;
return -1;
}
/* return the current time in nanoseconds */
static int64_t now_ns(void) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return (int64_t)ts.tv_sec * 1000000000 + ts.tv_nsec;
}
/** SENSORS POLL DEVICE
**
** This one is used to read sensor data from the hardware.
** We implement this by simply reading the data from the
** emulator through the QEMUD channel.
**/
typedef struct SensorDevice {
struct sensors_poll_device_1 device;
sensors_event_t sensors[MAX_NUM_SENSORS];
uint32_t pendingSensors;
int64_t timeStart;
int64_t timeOffset;
uint32_t active_sensors;
int fd;
pthread_mutex_t lock;
} SensorDevice;
/* Grab the file descriptor to the emulator's sensors service pipe.
* This function returns a file descriptor on success, or -errno on
* failure, and assumes the SensorDevice instance's lock is held.
*
* This is needed because set_delay(), poll() and activate() can be called
* from different threads, and poll() is blocking.
*
* 1) On a first thread, de-activate() all sensors first, then call poll(),
* which results in the thread blocking.
*
* 2) On a second thread, slightly later, call set_delay() then activate()
* to enable the acceleration sensor.
*
* The system expects this to unblock the first thread which will receive
* new sensor events after the activate() call in 2).
*
* This cannot work if both threads don't use the same connection.
*
* TODO(digit): This protocol is brittle, implement another control channel
* for set_delay()/activate()/batch() when supporting HAL 1.3
*/
static int sensor_device_get_fd_locked(SensorDevice* dev) {
/* Create connection to service on first call */
if (dev->fd < 0) {
int ret = -errno;
E("%s: Could not open connection to service: %s", __FUNCTION__,
strerror(-ret));
return ret;
}
return dev->fd;
}
/* Pick up one pending sensor event. On success, this returns the sensor
* id, and sets |*event| accordingly. On failure, i.e. if there are no
* pending events, return -EINVAL.
*
* Note: The device's lock must be acquired.
*/
static int sensor_device_pick_pending_event_locked(SensorDevice* d,
sensors_event_t* event)
{
uint32_t mask = SUPPORTED_SENSORS & d->pendingSensors;
if (mask) {
uint32_t i = 31 - __builtin_clz(mask);
pthread_mutex_lock(&d->lock);
d->pendingSensors &= ~(1U << i);
*event = d->sensors[i];
event->sensor = i;
event->version = sizeof(*event);
pthread_mutex_unlock(&d->lock);
D("%s: %d [%f, %f, %f]", __FUNCTION__,
i,
event->data[0],
event->data[1],
event->data[2]);
return i;
}
E("No sensor to return!!! pendingSensors=0x%08x", d->pendingSensors);
// we may end-up in a busy loop, slow things down, just in case.
usleep(1000);
return -EINVAL;
}
static int sensor_device_close(struct hw_device_t* dev0)
{
SensorDevice* dev = (void*)dev0;
// Assume that there are no other threads blocked on poll()
if (dev->fd >= 0) {
close(dev->fd);
dev->fd = -1;
}
pthread_mutex_destroy(&dev->lock);
free(dev);
return 0;
}
/* Return an array of sensor data. This function blocks until there is sensor
* related events to report. On success, it will write the events into the
* |data| array, which contains |count| items. The function returns the number
* of events written into the array, which shall never be greater than |count|.
* On error, return -errno code.
*
* Note that according to the sensor HAL [1], it shall never return 0!
*
* [1] http://source.android.com/devices/sensors/hal-interface.html
*/
static int sensor_device_poll(struct sensors_poll_device_t *dev0,
sensors_event_t* data, int count)
{
return -EIO;
}
static int sensor_device_activate(struct sensors_poll_device_t *dev0,
int handle,
int enabled)
{
SensorDevice* dev = (void*)dev0;
D("%s: handle=%s (%d) enabled=%d", __FUNCTION__,
_sensorIdToName(handle), handle, enabled);
/* Sanity check */
if (!ID_CHECK(handle)) {
E("%s: bad handle ID", __FUNCTION__);
return -EINVAL;
}
/* Exit early if sensor is already enabled/disabled. */
uint32_t mask = (1U << handle);
uint32_t sensors = enabled ? mask : 0;
pthread_mutex_lock(&dev->lock);
uint32_t active = dev->active_sensors;
uint32_t new_sensors = (active & ~mask) | (sensors & mask);
uint32_t changed = active ^ new_sensors;
if (changed)
dev->active_sensors = new_sensors;
pthread_mutex_unlock(&dev->lock);
return 0;
}
static int sensor_device_default_flush(
struct sensors_poll_device_1* dev0,
int handle) {
SensorDevice* dev = (void*)dev0;
D("%s: handle=%s (%d)", __FUNCTION__,
_sensorIdToName(handle), handle);
/* Sanity check */
if (!ID_CHECK(handle)) {
E("%s: bad handle ID", __FUNCTION__);
return -EINVAL;
}
pthread_mutex_lock(&dev->lock);
dev->sensors[handle].version = META_DATA_VERSION;
dev->sensors[handle].type = SENSOR_TYPE_META_DATA;
dev->sensors[handle].sensor = 0;
dev->sensors[handle].timestamp = 0;
dev->sensors[handle].meta_data.what = META_DATA_FLUSH_COMPLETE;
dev->pendingSensors |= (1U << handle);
pthread_mutex_unlock(&dev->lock);
return 0;
}
static int sensor_device_set_delay(struct sensors_poll_device_t *dev0,
int handle __unused,
int64_t ns)
{
return 0;
}
static int sensor_device_default_batch(
struct sensors_poll_device_1* dev,
int sensor_handle,
int flags,
int64_t sampling_period_ns,
int64_t max_report_latency_ns) {
return sensor_device_set_delay(dev, sensor_handle, sampling_period_ns);
}
/** MODULE REGISTRATION SUPPORT
**
** This is required so that hardware/libhardware/hardware.c
** will dlopen() this library appropriately.
**/
/*
* the following is the list of all supported sensors.
* this table is used to build sSensorList declared below
* according to which hardware sensors are reported as
* available from the emulator (see get_sensors_list below)
*
* note: numerical values for maxRange/resolution/power for
* all sensors but light, pressure and humidity were
* taken from the reference AK8976A implementation
*/
static const struct sensor_t sSensorListInit[] = {
{ .name = "Accelerometer",
.vendor = "The Android Open Source Project",
.version = 1,
.handle = ID_ACCELERATION,
.type = SENSOR_TYPE_ACCELEROMETER,
.maxRange = 2.8f,
.resolution = 1.0f/4032.0f,
.power = 3.0f,
.minDelay = 10000,
.maxDelay = 60 * 1000 * 1000,
.fifoReservedEventCount = 0,
.fifoMaxEventCount = 0,
.stringType = 0,
.requiredPermission = 0,
.flags = SENSOR_FLAG_CONTINUOUS_MODE,
.reserved = {}
},
};
static struct sensor_t sSensorList[1];
static int sensors__get_sensors_list(struct sensors_module_t* module __unused,
struct sensor_t const** list)
{
*list = sSensorList;
return 0;
}
static int
open_sensors(const struct hw_module_t* module,
const char* name,
struct hw_device_t* *device)
{
int status = -EINVAL;
D("%s: name=%s", __FUNCTION__, name);
if (!strcmp(name, SENSORS_HARDWARE_POLL)) {
SensorDevice *dev = malloc(sizeof(*dev));
memset(dev, 0, sizeof(*dev));
dev->device.common.tag = HARDWARE_DEVICE_TAG;
dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_3;
dev->device.common.module = (struct hw_module_t*) module;
dev->device.common.close = sensor_device_close;
dev->device.poll = sensor_device_poll;
dev->device.activate = sensor_device_activate;
dev->device.setDelay = sensor_device_set_delay;
// Version 1.3-specific functions
dev->device.batch = sensor_device_default_batch;
dev->device.flush = sensor_device_default_flush;
dev->fd = -1;
pthread_mutex_init(&dev->lock, NULL);
*device = &dev->device.common;
status = 0;
}
return status;
}
static struct hw_module_methods_t sensors_module_methods = {
.open = open_sensors
};
struct sensors_module_t HAL_MODULE_INFO_SYM = {
.common = {
.tag = HARDWARE_MODULE_TAG,
.version_major = 1,
.version_minor = 0,
.id = SENSORS_HARDWARE_MODULE_ID,
.name = "Dummy SENSORS Module",
.author = "The Android Open Source Project",
.methods = &sensors_module_methods,
},
.get_sensors_list = sensors__get_sensors_list
};

View file

@ -79,26 +79,15 @@
"Coefficient":[-1.0],
"Multiplier":1
},
{
"Name":"CLOSE-SUB1",
"Type":"UNKNOWN",
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "outer_disp_therm"],
"Coefficient":[-0.15, -0.45, 0.2, 1.5],
"Offset":-670,
"Multiplier":0.001
},
{
"Name":"CLOSE-SUB2",
"Type":"UNKNOWN",
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "outer_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[0.3, 0.3, -0.1, 0.4, 0.1],
"Offset":2500,
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "gnss_tcxo_therm"],
"Coefficient":[0.259, 0.652, -0.161, 0.03],
"Offset":8450,
"Multiplier":0.001
},
{
@ -151,8 +140,8 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"MAXIMUM",
"Combination":["CLOSE-SUB1", "CLOSE-SUB2", "CLOSE-SUB3", "CLOSE-SUB4", "CLOSE-SUB5"],
"Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0],
"Combination":["CLOSE-SUB2", "CLOSE-SUB3", "CLOSE-SUB4", "CLOSE-SUB5"],
"Coefficient":[1.0, 1.0, 1.0, 1.0],
"Multiplier":0.001
},
{
@ -182,9 +171,9 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "quiet_therm", "skin_therm", "usb_pwr_therm", "inner_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[-0.15, -1.05, 0.1, 0.25, 1.85, 0.05],
"Offset":-990,
"Combination":["skin_therm", "usb_pwr_therm", "inner_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[0.385, 0.075, 0.348, 0.302],
"Offset":-4950,
"Multiplier":0.001
},
{
@ -215,9 +204,9 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "usb_pwr_therm2", "inner_disp_therm"],
"Coefficient":[0.15, 1.05, -0.65, 1, -0.55],
"Offset":3540,
"Combination":["quiet_therm", "skin_therm", "usb_pwr_therm"],
"Coefficient":[0.429, 0.314, 0.205],
"Offset":2600,
"Multiplier":0.001
},
{

View file

@ -85,26 +85,15 @@
"Coefficient":[-1.0],
"Multiplier":1
},
{
"Name":"CLOSE-SUB1",
"Type":"UNKNOWN",
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "outer_disp_therm"],
"Coefficient":[-0.15, -0.45, 0.2, 1.5],
"Offset":-670,
"Multiplier":0.001
},
{
"Name":"CLOSE-SUB2",
"Type":"UNKNOWN",
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "outer_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[0.3, 0.3, -0.1, 0.4, 0.1],
"Offset":2500,
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "gnss_tcxo_therm"],
"Coefficient":[0.259, 0.652, -0.161, 0.03],
"Offset":8450,
"Multiplier":0.001
},
{
@ -157,8 +146,8 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"MAXIMUM",
"Combination":["CLOSE-SUB1", "CLOSE-SUB2", "CLOSE-SUB3", "CLOSE-SUB4", "CLOSE-SUB5"],
"Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0],
"Combination":["CLOSE-SUB2", "CLOSE-SUB3", "CLOSE-SUB4", "CLOSE-SUB5"],
"Coefficient":[1.0, 1.0, 1.0, 1.0],
"Multiplier":0.001
},
{
@ -188,9 +177,9 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "quiet_therm", "skin_therm", "usb_pwr_therm", "inner_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[-0.15, -1.05, 0.1, 0.25, 1.85, 0.05],
"Offset":-990,
"Combination":["skin_therm", "usb_pwr_therm", "inner_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[0.385, 0.075, 0.348, 0.302],
"Offset":-4950,
"Multiplier":0.001
},
{
@ -221,9 +210,9 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "usb_pwr_therm2", "inner_disp_therm"],
"Coefficient":[0.15, 1.05, -0.65, 1, -0.55],
"Offset":3540,
"Combination":["quiet_therm", "skin_therm", "usb_pwr_therm"],
"Coefficient":[0.429, 0.314, 0.205],
"Offset":2600,
"Multiplier":0.001
},
{
@ -249,13 +238,13 @@
{
"Name":"VIRTUAL-SKIN",
"Type":"SKIN",
"Version":"0.5",
"Version":"6.2",
"VirtualSensor":true,
"TriggerSensor":"skin_therm",
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-CLOSE", "VIRTUAL-SKIN-OPEN"],
"Coefficient":[1.0, 1.0],
"HotThreshold":["NAN", 39.0, 43.0, 45.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 39.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
@ -281,7 +270,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"SendPowerHint":true,
@ -296,7 +285,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 52.5, "NAN"],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 55.0, "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 0.0, 1.9, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
@ -312,7 +301,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 37.0, 39.0, 41.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 39.0, 41.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
@ -373,7 +362,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
@ -438,7 +427,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 25.0, 39.0, 41.0, 45.0, 46.5, 54.0],
"HotThreshold":["NAN", 25.0, 39.0, 41.0, 45.0, 46.5, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.9, 1.4, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
@ -977,5 +966,25 @@
"PowerSampleDelay":60000,
"PowerSampleCount":1
}
]
],
"Stats": {
"Sensors": {
"RecordWithDefaultThreshold": ["VIRTUAL-SKIN"],
"RecordWithThreshold": [
{
"Name": "VIRTUAL-SKIN",
"Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
},
{
"Name": "VIRTUAL-USB-THROTTLING",
"Thresholds": [2.0]
}
]
},
"CoolingDevices": {
"RecordVotePerSensor": {
"DefaultThresholdEnableAll": true
}
}
}
}

View file

@ -85,26 +85,15 @@
"Coefficient":[-1.0],
"Multiplier":1
},
{
"Name":"CLOSE-SUB1",
"Type":"UNKNOWN",
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "outer_disp_therm"],
"Coefficient":[-0.15, -0.45, 0.2, 1.5],
"Offset":-670,
"Multiplier":0.001
},
{
"Name":"CLOSE-SUB2",
"Type":"UNKNOWN",
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "outer_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[0.3, 0.3, -0.1, 0.4, 0.1],
"Offset":2500,
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "gnss_tcxo_therm"],
"Coefficient":[0.259, 0.652, -0.161, 0.03],
"Offset":8450,
"Multiplier":0.001
},
{
@ -157,8 +146,8 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"MAXIMUM",
"Combination":["CLOSE-SUB1", "CLOSE-SUB2", "CLOSE-SUB3", "CLOSE-SUB4", "CLOSE-SUB5"],
"Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0],
"Combination":["CLOSE-SUB2", "CLOSE-SUB3", "CLOSE-SUB4", "CLOSE-SUB5"],
"Coefficient":[1.0, 1.0, 1.0, 1.0],
"Multiplier":0.001
},
{
@ -188,9 +177,9 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "quiet_therm", "skin_therm", "usb_pwr_therm", "inner_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[-0.15, -1.05, 0.1, 0.25, 1.85, 0.05],
"Offset":-990,
"Combination":["skin_therm", "usb_pwr_therm", "inner_disp_therm", "gnss_tcxo_therm"],
"Coefficient":[0.385, 0.075, 0.348, 0.302],
"Offset":-4950,
"Multiplier":0.001
},
{
@ -221,9 +210,9 @@
"Hidden":true,
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":["neutral_therm", "skin_therm", "usb_pwr_therm", "usb_pwr_therm2", "inner_disp_therm"],
"Coefficient":[0.15, 1.05, -0.65, 1, -0.55],
"Offset":3540,
"Combination":["quiet_therm", "skin_therm", "usb_pwr_therm"],
"Coefficient":[0.429, 0.314, 0.205],
"Offset":2600,
"Multiplier":0.001
},
{
@ -249,13 +238,13 @@
{
"Name":"VIRTUAL-SKIN",
"Type":"SKIN",
"Version":"0.5",
"Version":"6.2",
"VirtualSensor":true,
"TriggerSensor":"skin_therm",
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-CLOSE", "VIRTUAL-SKIN-OPEN"],
"Coefficient":[1.0, 1.0],
"HotThreshold":["NAN", 37.0, 41.0, 45.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 41.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
@ -281,7 +270,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 37.0, 41.0, 45.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 41.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"SendPowerHint":true,
@ -296,7 +285,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 52.5, "NAN"],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 55.0, "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 0.0, 1.9, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
@ -312,7 +301,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 37.0, 39.0, 41.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 39.0, 41.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
@ -373,7 +362,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 51.0, 54.0],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
@ -438,7 +427,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
"HotThreshold":["NAN", 25.0, 39.0, 41.0, 45.0, 46.5, 54.0],
"HotThreshold":["NAN", 25.0, 39.0, 41.0, 45.0, 46.5, 57.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.9, 1.4, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=4
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x00
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x34
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x34
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x7E7E687E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x34
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x7E7E687E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x34
@ -57,11 +51,11 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x9E9E7C9E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x34
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x9E9E7C9E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x34
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x00
restricted_channels=0
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=4
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x00
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x28
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x28
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x3E3E303E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x16
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x3E3E303E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x16
@ -57,11 +51,11 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x8E8E748E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x28
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x8E8E748E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x28
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x00
restricted_channels=0
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=4
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x00
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x28
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x28
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x3E3E303E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x16
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x3E3E303E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x16
@ -57,11 +51,11 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x8E8E748E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x28
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x8E8E748E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x28
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x00
restricted_channels=0
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=12
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x01
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x28
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x28
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x5E5E4C5E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x27
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x5E5E4C5E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x27
@ -57,11 +51,11 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x5E5E4C5E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x27
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x5E5E4C5E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x27
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x01
restricted_channels=0x20
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=4
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x00
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x28
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x28
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x3E3E303E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x16
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x3E3E303E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x16
@ -57,11 +51,11 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x8E8E748E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x28
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x8E8E748E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x28
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x00
restricted_channels=0xFFFF
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=12
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x00
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x28
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x28
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x3E3E303E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x16
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x3E3E303E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x16
@ -57,11 +51,11 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x8E8E748E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x28
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x8E8E748E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x28
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x00
restricted_channels=0x20
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,21 +1,15 @@
[CCC]version=2
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]version=3
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=4
ant0.ch5.prf16.ant_delay=16449
[CCC]wifi_coex_min_spacing=0x08
[CCC]ch5.antenna_selection=ant0
[CCC]ch9.antenna_selection=ant2
[CCC]alternate_pulse_shape=0x00
ant0.ch5.prf16.ant_delay=16459
ant0.ch5.prf16.tx_power=0xFFFFD4FF
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0x28
ant0.ch5.prf64.ant_delay=16449
ant0.ch5.prf64.ant_delay=16459
ant0.ch5.prf64.tx_power=0xFFFFD4FF
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0x28
@ -38,11 +32,11 @@ ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0xFFFFFFFF
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0x26
ant1.ch9.prf16.ant_delay=16451
ant1.ch9.prf16.ant_delay=16436
ant1.ch9.prf16.tx_power=0x3E3E303E
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0x16
ant1.ch9.prf64.ant_delay=16451
ant1.ch9.prf64.ant_delay=16436
ant1.ch9.prf64.tx_power=0x3E3E303E
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0x16
@ -57,14 +51,14 @@ ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16451
ant2.ch9.prf16.tx_power=0x8E8E748E
ant2.ch9.prf16.ant_delay=16437
ant2.ch9.prf16.tx_power=0x5E5E4C5E
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0x28
ant2.ch9.prf64.ant_delay=16451
ant2.ch9.prf64.tx_power=0x8E8E748E
ant2.ch9.prf16.pg_delay=0x27
ant2.ch9.prf64.ant_delay=16437
ant2.ch9.prf64.tx_power=0x5E5E4C5E
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0x28
ant2.ch9.prf64.pg_delay=0x27
ant2.port=1
ant2.selector_gpio=6
ant2.selector_gpio_value=0
@ -76,11 +70,11 @@ ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.ant_delay=16459
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.ant_delay=16459
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
@ -111,6 +105,7 @@ smart_tx_power=1
auto_sleep_margin=20000
alternate_pulse_shape=0x00
restricted_channels=0
[HAL]aoa_restricted_channels=0x20
[HAL]aoa_capability=2
[HAL]ant_sets.ch5.range.rx_ant_set_nonranging=6
[HAL]ant_sets.ch5.range.rx_ant_set_ranging=6

View file

@ -1,3 +1,4 @@
chasewu@google.com
chrispaulo@google.com
michaelwr@google.com
nathankulczak@google.com
taikuo@google.com

View file

@ -8,3 +8,4 @@ p2p_add_cli_chan=1
disable_scan_offload=1
p2p_go_vht=1
p2p_pref_chan=124:149, 115:36
p2p_6ghz_disable=1