Browse Source

add initial cofiguration for tama platform

The tama platform is based on Qualcomm sdm845 SOC and is used by
the following devices

Xperia XZ2 ....................... akari
Xperia XZ2 Compact ............... apollo

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
avb-allow-disable-verity
Alin Jerpelea 3 years ago
parent
commit
ab5dc2360a
  1. 7
      Android.mk
  2. 104
      PlatformConfig.mk
  3. 13
      README.md
  4. 50
      bluetooth/bdroid_buildcfg.h
  5. BIN
      overlay/packages/apps/Settings/res/drawable-nodpi/fingerprint_sensor_location.png
  6. 21
      overlay/packages/apps/Settings/res/values/dimens.xml
  7. 21
      overlay/packages/apps/Settings/res/values/strings.xml
  8. 159
      platform.mk
  9. 40
      rootdir/Android.mk
  10. 10
      rootdir/recovery.wipe
  11. 197
      rootdir/vendor/etc/audio_platform_info.xml
  12. 193
      rootdir/vendor/etc/audio_tuning_mixer_tavil.txt
  13. 17
      rootdir/vendor/etc/fstab.tama
  14. 177
      rootdir/vendor/etc/init/init.tama.pwr.rc
  15. 33
      rootdir/vendor/etc/init/init.tama.rc
  16. 399
      rootdir/vendor/etc/media_codecs.xml
  17. 150
      rootdir/vendor/etc/media_codecs_performance.xml
  18. 393
      rootdir/vendor/etc/media_profiles_V1_0.xml
  19. 32
      rootdir/vendor/etc/msm_irqbalance.conf
  20. 54
      rootdir/vendor/etc/rqbalance_config.xml
  21. 4
      rootdir/vendor/etc/wifi/p2p_supplicant_overlay.conf
  22. 5
      rootdir/vendor/etc/wifi/wpa_supplicant_overlay.conf
  23. 500
      rootdir/vendor/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
  24. 173
      rootdir/vendor/ueventd.rc
  25. 31
      rootdir/vendor/usr/keylayout/gpio-keys.kl
  26. 49
      sepolicy_platform/file_contexts
  27. 24
      sepolicy_platform/genfs_contexts

7
Android.mk

@ -0,0 +1,7 @@
ifeq (tama,$(PRODUCT_PLATFORM))
LOCAL_PATH := $(call my-dir)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif

104
PlatformConfig.mk

@ -0,0 +1,104 @@
# Copyright 2014 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.
# Platform path
PLATFORM_COMMON_PATH := device/sony/tama
PRODUCT_PLATFORM_SOD := true
TARGET_BOARD_PLATFORM := sdm845
KERNEL_PATH := kernel/sony/msm-4.9
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a9
TARGET_USES_64_BIT_BINDER := true
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_TAGS_OFFSET := 0x01E00000
BOARD_RAMDISK_OFFSET := 0x02000000
BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1
# Serial console
#BOARD_KERNEL_CMDLINE += earlycon=msm_serial_dm,0xc170000 androidboot.console=msm_serial_dm,0xc170000
TARGET_RECOVERY_WIPE := $(PLATFORM_COMMON_PATH)/rootdir/recovery.wipe
TARGET_RECOVERY_FSTAB = $(PLATFORM_COMMON_PATH)/rootdir/vendor/etc/fstab.tama
TARGET_PD_SERVICE_ENABLED := true
# Wi-Fi definitions for Qualcomm solution
WIFI_DRIVER_BUILT := qca_cld3
WIFI_DRIVER_DEFAULT := qca_cld3
BOARD_HAS_QCOM_WLAN := true
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_qcwcn
BOARD_WLAN_DEVICE := qcwcn
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_qcwcn
HOSTAPD_VERSION := VER_0_8_X
WIFI_DRIVER_FW_PATH_AP := "ap"
WIFI_DRIVER_FW_PATH_P2P := "p2p"
WIFI_DRIVER_FW_PATH_STA := "sta"
WPA_SUPPLICANT_VERSION := VER_0_8_X
TARGET_USES_ICNSS_QMI := true
WIFI_DRIVER_STATE_CTRL_PARAM := "/sys/kernel/boot_wlan/boot_wlan"
WIFI_DRIVER_STATE_OFF := 0
WIFI_DRIVER_STATE_ON := 1
# BT definitions for Qualcomm solution
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_QCOM := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(PLATFORM_COMMON_PATH)/bluetooth
WCNSS_FILTER_USES_SIBS := true
# RIL
TARGET_PER_MGR_ENABLED := true
# SELinux
BOARD_SEPOLICY_DIRS += $(PLATFORM_COMMON_PATH)/sepolicy_platform
# Display
TARGET_HAS_HDR_DISPLAY := true
# FPC version select
TARGET_FPC_VERSION := N
# Build a separate vendor.img
TARGET_COPY_OUT_VENDOR := vendor
BOARD_VENDORIMAGE_PARTITION_SIZE := 1056714752
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
BOARD_AVB_ENABLE := true
TARGET_NO_RECOVERY := true
BOARD_USES_RECOVERY_AS_BOOT := true
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
include device/sony/common/CommonConfig.mk

13
README.md

@ -1 +1,12 @@
# device-sony-tama
Copyright (C) Sony Mobile Communications 2018
=============================================
This is the Android device configuration for tama platform.
tama devices:
Xperia XZ2 ....................... akari
Xperia XZ2 Compact ............... apollo
Build instructions
https://developer.sony.com/develop/open-devices/guides/aosp-build-instructions/

50
bluetooth/bdroid_buildcfg.h

@ -0,0 +1,50 @@
/*
* Copyright (C) 2014 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.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#if !defined(OS_GENERIC)
#include <cutils/properties.h>
#include <string.h>
static inline const char* getBTDefaultName()
{
char device[PROPERTY_VALUE_MAX];
property_get("ro.boot.hardware", device, "");
if (!strcmp("akari", device)) {
return "Xperia XZ2";
}
if (!strcmp("apollo", device)) {
return "Xperia XZ2 Compact";
}
return "Xperia";
}
#define BTM_DEF_LOCAL_NAME getBTDefaultName()
#endif // OS_GENERIC
// Wide-band speech support
#define BTM_WBS_INCLUDED TRUE
#define BTIF_HF_WBS_PREFERRED TRUE
// QCOM power management workaround
#define BT_CLEAN_TURN_ON_DISABLED TRUE
#endif

BIN
overlay/packages/apps/Settings/res/drawable-nodpi/fingerprint_sensor_location.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

21
overlay/packages/apps/Settings/res/values/dimens.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2015 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>
<item name="fingerprint_sensor_location_fraction_x" type="fraction">51.00%</item>
<item name="fingerprint_sensor_location_fraction_y" type="fraction">51.00%</item>
</resources>

21
overlay/packages/apps/Settings/res/values/strings.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2015 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Message shown in fingerprint enrollment dialog to locate the sensor -->
<string name="security_settings_fingerprint_enroll_find_sensor_message">
Locate the fingerprint sensor on the back of your phone.</string>
</resources>

159
platform.mk

@ -0,0 +1,159 @@
# Copyright (C) 2014 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.
# Platform path
PLATFORM_COMMON_PATH := device/sony/tama
$(call inherit-product, device/sony/common/common.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
SOMC_PLATFORM := tama
SOMC_KERNEL_VERSION := 4.9
SONY_ROOT := $(PLATFORM_COMMON_PATH)/rootdir
# Overlay
DEVICE_PACKAGE_OVERLAYS += \
$(PLATFORM_COMMON_PATH)/overlay
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS += \
boot \
system
# Audio
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/etc/audio_tuning_mixer_tavil.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer_tavil.txt \
$(SONY_ROOT)/vendor/etc/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
# Media
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(SONY_ROOT)/vendor/etc/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
$(SONY_ROOT)/vendor/etc/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
# Qualcom WiFi Overlay
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/etc/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
$(SONY_ROOT)/vendor/etc/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf
# Qualcom WiFi Configuration
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
# Keylayout
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/usr/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl
# MSM IRQ Balancer configuration file
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/etc/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf
# RQBalance-PowerHAL configuration
PRODUCT_COPY_FILES += \
$(SONY_ROOT)/vendor/etc/rqbalance_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/rqbalance_config.xml
# Platform specific init
PRODUCT_PACKAGES += \
init.tama \
init.tama.pwr \
ueventd
# Audio
PRODUCT_PACKAGES += \
audio.primary.sdm845
# GFX
PRODUCT_PACKAGES += \
copybit.sdm845 \
gralloc.sdm845 \
hwcomposer.sdm845 \
memtrack.sdm845
# GPS
PRODUCT_PACKAGES += \
gps.sdm845
# CAMERA
PRODUCT_PACKAGES += \
camera.sdm845
# QCOM Bluetooth
PRODUCT_PROPERTY_OVERRIDES += \
qcom.bluetooth.soc=cherokee
# Fluence
PRODUCT_PROPERTY_OVERRIDES += \
ro.qc.sdk.audio.fluencetype=fluence
# aDSP sensors
## max rate
PRODUCT_PROPERTY_OVERRIDES += \
ro.qti.sensors.max_accel_rate=false \
ro.qti.sensors.max_gyro_rate=false \
ro.qti.sensors.max_mag_rate=false \
ro.qti.sensors.max_geomag_rotv=50
## sensor type
PRODUCT_PROPERTY_OVERRIDES += \
ro.qti.sdk.sensors.gestures=false \
ro.qti.sensors.pedometer=false \
ro.qti.sensors.step_detector=true \
ro.qti.sensors.step_counter=true \
ro.qti.sensors.pam=false \
ro.qti.sensors.scrn_ortn=false \
ro.qti.sensors.smd=true \
ro.qti.sensors.game_rv=true \
ro.qti.sensors.georv=true \
ro.qti.sensors.cmc=false \
ro.qti.sensors.bte=false \
ro.qti.sensors.fns=false \
ro.qti.sensors.qmd=false \
ro.qti.sensors.amd=false \
ro.qti.sensors.rmd=false \
ro.qti.sensors.vmd=false \
ro.qti.sensors.gtap=false \
ro.qti.sensors.tap=false \
ro.qti.sensors.facing=false \
ro.qti.sensors.tilt=false \
ro.qti.sensors.tilt_detector=true \
ro.qti.sensors.dpc=false \
ro.qti.sensors.qheart=false \
ro.qti.sensors.wu=true \
ro.qti.sensors.proximity=true \
ro.qti.sensors.gravity=true \
ro.qti.sensors.laccel=true \
ro.qti.sensors.orientation=true \
ro.qti.sensors.rotvec=true \
ro.qti.sensors.fast_amd=false \
ro.qti.sensors.wrist_tilt=false \
ro.qti.sensors.pug=false \
ro.qti.sensors.iod=false \
ro.qti.sensors.als_scale=1000 \
ro.qfusion_use_report_period=false
# USB controller setup
PRODUCT_PROPERTY_OVERRIDES += \
sys.usb.controller=a600000.dwc3 \
sys.usb.rndis.func.name=gsi
#WiFi MAC address path
PRODUCT_PROPERTY_OVERRIDES += \
ro.wifi.addr_path=/data/misc/wifi/wlan_mac.bin
# setup dm-verity configs.
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/1d84000.ufshc/by-name/system
PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/soc/1d84000.ufshc/by-name/vendor
$(call inherit-product, build/target/product/verity.mk)

40
rootdir/Android.mk

@ -0,0 +1,40 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.$(TARGET_DEVICE)
LOCAL_SRC_FILES := vendor/etc/fstab.tama
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_STEM := fstab.$(TARGET_DEVICE)
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.tama
LOCAL_SRC_FILES := vendor/etc/init/init.tama.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_STEM := init.tama
LOCAL_MODULE_SUFFIX := .rc
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/init
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.tama.pwr
LOCAL_SRC_FILES := vendor/etc/init/init.tama.pwr.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_STEM := init.tama.pwr
LOCAL_MODULE_SUFFIX := .rc
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/init
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd
LOCAL_SRC_FILES := vendor/ueventd.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_STEM := ueventd
LOCAL_MODULE_SUFFIX := .rc
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
include $(BUILD_PREBUILT)

10
rootdir/recovery.wipe

@ -0,0 +1,10 @@
# All the partitions to be wiped (in order) under recovery.
/dev/block/bootdevice/by-name/system_a
/dev/block/bootdevice/by-name/system_b
/dev/block/bootdevice/by-name/vendor_a
/dev/block/bootdevice/by-name/vendor_b
/dev/block/bootdevice/by-name/userdata
# Wipe the boot partitions last so that all partitions will be wiped
# correctly even if the wiping process gets interrupted by a force boot.
/dev/block/bootdevice/by-name/boot_a
/dev/block/bootdevice/by-name/boot_b

197
rootdir/vendor/etc/audio_platform_info.xml

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2014, 2016-2017, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_platform_info>
<acdb_ids>
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="15"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="124"/>
<device name="SND_DEVICE_IN_VOICE_REC_QMIC_FLUENCE" acdb_id="131"/>
<device name="SND_DEVICE_IN_VOICE_REC_TMIC" acdb_id="131"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="132"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" acdb_id="150"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" acdb_id="150"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" acdb_id="151"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" acdb_id="152"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_SPEAKER" acdb_id="150"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_TTY_HCO_SPEAKER" acdb_id="150"/>
</acdb_ids>
<bit_width_configs>
<device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
</bit_width_configs>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="13"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="8"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="15"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="16"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="28"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="29"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="30"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="31"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="32"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="19"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="19"/>
<usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
<usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="out" id="5"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="in" id="34"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_RX" type="out" id="5"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="35"/>
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="7"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_EXT_DISP_SILENCE" type="out" id="27" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="16" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="16" />
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="33" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="33" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
<!-- In the below value string, the value indicates default mono -->
<!-- speaker. It can be set to either left or right -->
<param key="mono_speaker" value="right"/>
<!-- In the below value string, first parameter indicates size -->
<!-- followed by perf lock options -->
<param key="perf_lock_opts" value="4, 0x40400000, 0x1, 0x40C00000, 0x1"/>
<param key="native_audio_mode" value="src"/>
<param key="input_mic_max_count" value="4"/>
<param key="true_32_bit" value="true"/>
<!-- In the below value string, the value indicates sidetone gain in dB -->
<param key="usb_sidetone_gain" value="35"/>
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO_WB" backend="bt-sco-wb" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" backend="bt-sco" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_A2DP" backend="bt-a2dp" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_LINE" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_ANC_HEADSET" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_ANC_FB_HEADSET" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="SLIMBUS_0_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="SLIMBUS_0_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="SLIMBUS_0_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_FB_HEADSET" backend="speaker-and-headphones" interface="SLIMBUS_0_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_FB_HEADSET" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
<!-- SOMC out devices -->
<device name="SND_DEVICE_OUT_SONY_AFE_PROXY" backend="afe-proxy" interface="PROXY_PORT_RX"/>
<device name="SND_DEVICE_OUT_SONY_BT_A2DP" backend="bt-a2dp" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SONY_BT_SCO" backend="bt-sco" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SONY_BT_SCO_WB" backend="bt-sco-wb" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SONY_HANDSET" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_HDMI" backend="hdmi" interface="HDMI_RX"/>
<device name="SND_DEVICE_OUT_SONY_HEADPHONES" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC" backend="incall-music" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC_BT" backend="incall-music-bt" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC_BT_WB" backend="incall-music-bt-wb" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC_USB_HEADPHONES" backend="incall-music-usb-headphones" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC_USB_HEADSET" backend="incall-music-usb-headset" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC2" backend="incall-music2" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC2_BT" backend="incall-music2-bt" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC2_BT_WB" backend="incall-music2-bt-wb" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC2_USB_HEADPHONES" backend="incall-music2-usb-headphones" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_INCALL_MUSIC2_USB_HEADSET" backend="incall-music2-usb-headset" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_RINGTONE_SPEAKER" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_RINGTONE_SPEAKER_AND_BT_A2DP" backend="speaker-and-bt-a2dp" interface="SLIMBUS_0_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SONY_RINGTONE_SPEAKER_AND_HEADPHONES" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_SPEAKER" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_SPEAKER_AND_BT_A2DP" backend="speaker-and-bt-a2dp" interface="SLIMBUS_0_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SONY_SPEAKER_AND_HEADPHONES" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_SPEAKER_REVERSE" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_USB_HEADPHONES" backend="usb-headphones" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_SONY_USB_HEADSET" backend="usb-headset" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_HANDSET" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_HANDSET_HAC" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_HEADPHONES" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_SPEAKER" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_TTY_FULL_HEADPHONES" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_TTY_HCO_HANDSET" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_TTY_HCO_SPEAKER" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_TTY_VCO_HEADPHONES" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SONY_VOICE_TX" interface="SLIMBUS_0_RX"/>
<!-- SOMC media vibration out devices -->
<device name="SND_DEVICE_OUT_SONY_MEDIA_VIBRATOR" backend="media-vibrator" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SONY_MEDIA_VIBRATOR_A2DP" backend="media-vibrator" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SONY_MEDIA_HAPTICS_SPEAKER" backend="speaker-and-vibrator" interface="SLIMBUS_0_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SONY_MEDIA_HAPTICS_HEADPHONES" backend="headphones-and-vibrator" interface="SLIMBUS_0_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SONY_MEDIA_HAPTICS_USB_HEADPHONES" backend="usb-headphones-and-vibrator" interface="USB_AUDIO_RX-and-SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_SONY_MEDIA_HAPTICS_A2DP" backend="bt-a2dp-and-vibrator" interface="SLIMBUS_6_RX-and-SLIMBUS_7_RX"/>
<!-- SOMC in devices -->
<device name="SND_DEVICE_IN_SONY_BT_SCO_DSP_MIC" backend="bt-sco" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_DSP_MIC_VOIP" backend="bt-sco" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_DSP_MIC_WB" backend="bt-sco-wb" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_DSP_MIC_WB_VOIP" backend="bt-sco-wb" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_MIC" backend="bt-sco" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_MIC_VOIP" backend="bt-sco" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_MIC_WB" backend="bt-sco-wb" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_BT_SCO_MIC_WB_VOIP" backend="bt-sco-wb" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_SONY_CAMCORDER" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_CAPTURE_FM" backend="capture-fm" interface="SLIMBUS_8_TX"/>
<device name="SND_DEVICE_IN_SONY_CAPTURE_AHC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_EXTERNAL_STEREO_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_HANDSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_HANDSET_MIC_ASR" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_HANDSET_SECONDARY_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_HEADSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_HEADSET_MIC_ASR" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_MONO_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_SPEAKER_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_STEREO_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_USB_HEADSET_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_DMIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_HEADSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_RX" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_SPEAKER_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_TTY_FULL_HEADSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_TTY_HCO_HEADSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOICE_TTY_VCO_HANDSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOIP_DMIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOIP_SPEAKER_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_VOIP_HEADSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_INCALL_VOICE_RECORD" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_UNPROCESSED_HEADSET_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_UNPROCESSED_MIC" interface="SLIMBUS_0_TX"/>
<device name="SND_DEVICE_IN_SONY_UNPROCESSED_STEREO_MIC" interface="SLIMBUS_0_TX"/>
</backend_names>
</audio_platform_info>

193
rootdir/vendor/etc/audio_tuning_mixer_tavil.txt

@ -0,0 +1,193 @@
#ANC_TEST_P_PATH_MIC_STEREO Capture
acdb_dev_id:85
!Capture
Txdevice:0
enable
AIF1_CAP Mixer SLIM TX7:1
AIF1_CAP Mixer SLIM TX8:1
CDC_IF TX7 MUX:DEC7
ADC MUX7:DMIC
DMIC MUX7:DMIC4
CDC_IF TX8 MUX:DEC8
ADC MUX8:DMIC
DMIC MUX8:DMIC0
SLIM_0_TX Channels:Two
MultiMedia1 Mixer SLIM_0_TX:1
disable
MultiMedia1 Mixer SLIM_0_TX:0
AIF1_CAP Mixer SLIM TX7:0
AIF1_CAP Mixer SLIM TX8:0
CDC_IF TX7 MUX:ZERO
CDC_IF TX8 MUX:ZERO
DMIC MUX7:ZERO
DMIC MUX8:ZERO
#ANC_TEST_S_PATH_MIC_STEREO Capture
acdb_dev_id:88
!Capture
Txdevice:0
enable
AIF1_CAP Mixer SLIM TX7:1
AIF1_CAP Mixer SLIM TX8:1
CDC_IF TX7 MUX:DEC7
ADC MUX7:ANC_FB_TUNE1
ADC MUX10:DMIC
DMIC MUX10:DMIC0
CDC_IF TX8 MUX:DEC8
ADC MUX8:ANC_FB_TUNE2
ADC MUX12:DMIC
DMIC MUX12:DMIC0
ANC0 FB MUX:ANC_IN_EAR_SPKR
ANC OUT EAR SPKR Enable Switch:1
SLIM_0_TX Channels:Two
MultiMedia1 Mixer SLIM_0_TX:1
disable
MultiMedia1 Mixer SLIM_0_TX:0
AIF1_CAP Mixer SLIM TX7:0
AIF1_CAP Mixer SLIM TX8:0
CDC_IF TX7 MUX:ZERO
CDC_IF TX8 MUX:ZERO
ADC MUX7:DMIC
ADC MUX8:DMIC
DMIC MUX10:ZERO
DMIC MUX12:ZERO
ANC0 FB MUX:ZERO
ANC OUT EAR SPKR Enable Switch:0
#ANC_TEST_E_PATH_MIC_STEREO Capture
acdb_dev_id:91
!Capture
Txdevice:0
enable
AIF1_CAP Mixer SLIM TX7:1
AIF1_CAP Mixer SLIM TX8:1
CDC_IF TX7 MUX:DEC7
ADC MUX7:ANC_FB_TUNE1
ADC MUX10:DMIC
DMIC MUX10:DMIC4
CDC_IF TX8 MUX:DEC8
ADC MUX8:ANC_FB_TUNE2
ADC MUX12:DMIC
DMIC MUX12:DMIC4
ANC0 FB MUX:ANC_IN_EAR_SPKR
ANC OUT EAR SPKR Enable Switch:1
SLIM_0_TX Channels:Two
MultiMedia1 Mixer SLIM_0_TX:1
disable
MultiMedia1 Mixer SLIM_0_TX:0
AIF1_CAP Mixer SLIM TX7:0
AIF1_CAP Mixer SLIM TX8:0
CDC_IF TX7 MUX:ZERO
CDC_IF TX8 MUX:ZERO
ADC MUX7:DMIC
ADC MUX8:DMIC
DMIC MUX10:ZERO
DMIC MUX12:ZERO
ANC0 FB MUX:ZERO
ANC OUT EAR SPKR Enable Switch:0
#ANC_TEST_S_PATH_HANDSET_SPKR_ANC_MONO
acdb_dev_id:86
!Playback
Rxdevice:0
enable
ANC Function:ON
SLIM RX0 MUX:AIF1_PB
SLIM_0_RX Channels:One
RX INT7_1 MIX1 INP0:RX0
SpkrLeft SWR DAC_Port Switch:1
ANC Slot:7
ANC OUT EAR SPKR Enable Switch:1
ANC SPKR PA Enable Switch:1
SpkrLeft WSA PA Gain:G_6_DB
SLIMBUS_0_RX Audio Mixer MultiMedia1:1
disable
SLIMBUS_0_RX Audio Mixer MultiMedia1:0
SpkrLeft WSA PA Gain:G_0_DB
ANC SPKR PA Enable Switch:0
ANC OUT EAR SPKR Enable Switch:0
SpkrLeft SWR DAC_Port Switch:0
ANC Slot:0
SLIM RX0 MUX:ZERO
RX INT7_1 MIX1 INP0:ZERO
ANC Function:OFF
#ANC_TEST_E_PATH_HANDSET_SPKR_ANC_MONO
acdb_dev_id:89
!Playback
Rxdevice:0
enable
ANC Function:ON
SLIM RX0 MUX:AIF1_PB
SLIM_0_RX Channels:One
RX INT7_1 MIX1 INP0:RX0
SpkrLeft SWR DAC_Port Switch:1
ANC Slot:8
ANC OUT EAR SPKR Enable Switch:1
ANC SPKR PA Enable Switch:1
SpkrLeft WSA PA Gain:G_6_DB
SLIMBUS_0_RX Audio Mixer MultiMedia1:1
disable
SLIMBUS_0_RX Audio Mixer MultiMedia1:0
SpkrLeft WSA PA Gain:G_0_DB
ANC SPKR PA Enable Switch:0
ANC OUT EAR SPKR Enable Switch:0
SpkrLeft SWR DAC_Port Switch:0
ANC Slot:0
SLIM RX0 MUX:ZERO
RX INT7_1 MIX1 INP0:ZERO
ANC Function:OFF
#RAS_TEST_SPKR_PHONE_SPKR_STEREO
acdb_dev_id:136
!Playback
Rxdevice:0
enable
SLIM RX0 MUX:AIF1_PB
SLIM RX1 MUX:AIF1_PB
CDC_IF RX0 MUX:SLIM RX0
CDC_IF RX1 MUX:SLIM RX1
SLIM_0_RX Channels:Two
RX INT7_1 MIX1 INP0:RX0
RX INT8_1 MIX1 INP0:RX1
COMP7 Switch:1
COMP8 Switch:1
SpkrLeft COMP Switch:1
SpkrRight COMP Switch:1
SpkrLeft BOOST Switch:1
SpkrRight BOOST Switch:1
SpkrLeft VISENSE Switch:1
SpkrRight VISENSE Switch:1
SpkrLeft SWR DAC_Port Switch:1
SpkrRight SWR DAC_Port Switch:1
SLIMBUS_0_RX Audio Mixer MultiMedia1:1
disable
SLIM RX0 MUX:ZERO
SLIM RX1 MUX:ZERO
RX INT7_1 MIX1 INP0:ZERO
RX INT8_1 MIX1 INP0:ZERO
COMP7 Switch:0
COMP8 Switch:0
SpkrLeft COMP Switch:0
SpkrRight COMP Switch:0
SpkrLeft BOOST Switch:0
SpkrRight BOOST Switch:0
SpkrLeft VISENSE Switch:0
SpkrRight VISENSE Switch:0
SpkrLeft SWR DAC_Port Switch:0
SpkrRight SWR DAC_Port Switch:0
SLIMBUS_0_RX Audio Mixer MultiMedia1:0

17
rootdir/vendor/etc/fstab.tama

@ -0,0 +1,17 @@
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1 wait,recoveryonly,slotselect
/dev/block/bootdevice/by-name/oem /odm ext4 ro,barrier=1 wait,recoveryonly,slotselect
/dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc,errors=panic wait,check,formattable,fileencryption=ice,quota
/dev/block/bootdevice/by-name/frp /persistent emmc defaults defaults
/dev/block/bootdevice/by-name/dsp /dsp ext4 nosuid,nodev,barrier=1,data=ordered,nodelalloc,errors=panic wait,notrim,slotselect
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
/dev/block/bootdevice/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect
/dev/block/bootdevice/by-name/bluetooth /bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait,slotselect
/dev/block/bootdevice/by-name/persist /persist ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nodelalloc,errors=panic wait,notrim
/devices/soc/c084000.sdhci/mmc_host/mmc* auto auto nosuid,nodev voldmanaged=sdcard1:auto,encryptable=userdata
/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usb:auto
/dev/block/zram0 none swap defaults zramsize=536870912,notrim

177
rootdir/vendor/etc/init/init.tama.pwr.rc

@ -0,0 +1,177 @@
# Copyright 2014 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.
on init
# cpuquiet rqbalance permissions
chown system system /sys/devices/system/cpu/cpuquiet/nr_min_cpus
chown system system /sys/devices/system/cpu/cpuquiet/nr_power_max_cpus
chown system system /sys/devices/system/cpu/cpuquiet/nr_thermal_max_cpus
chown system system /sys/devices/system/cpu/cpuquiet/rqbalance/balance_level
chown system system /sys/devices/system/cpu/cpuquiet/rqbalance/nr_run_thresholds
chown system system /sys/devices/system/cpu/cpuquiet/rqbalance/nr_down_run_thresholds
chmod 0660 /sys/devices/system/cpu/cpuquiet/nr_min_cpus
chmod 0660 /sys/devices/system/cpu/cpuquiet/nr_power_max_cpus
chmod 0660 /sys/devices/system/cpu/cpuquiet/nr_thermal_max_cpus
chmod 0660 /sys/devices/system/cpu/cpuquiet/rqbalance/balance_level
chmod 0660 /sys/devices/system/cpu/cpuquiet/rqbalance/nr_run_thresholds
chmod 0660 /sys/devices/system/cpu/cpuquiet/rqbalance/nr_down_run_thresholds
on charger
# Disable thermal
write /sys/module/msm_thermal/core_control/enabled 0
# Bring CPUs online
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/devices/system/cpu/cpu4/online 1
write /sys/devices/system/cpu/cpu5/online 1
write /sys/devices/system/cpu/cpu6/online 1
write /sys/devices/system/cpu/cpu7/online 1
# Configure governor settings for little cluster
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave"
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
# Configure governor settings for big cluster
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "powersave"
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 825000
# Bring CPUs offline
write /sys/devices/system/cpu/cpu1/online 0
write /sys/devices/system/cpu/cpu2/online 0
write /sys/devices/system/cpu/cpu3/online 0
write /sys/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
# Enable thermal
write /sys/module/msm_thermal/core_control/enabled 1
on boot
# Setting b.L scheduler parameters
write /proc/sys/kernel/sched_upmigrate 95
write /proc/sys/kernel/sched_downmigrate 85
write /proc/sys/kernel/sched_group_upmigrate 100
write /proc/sys/kernel/sched_group_downmigrate 95
write /proc/sys/kernel/sched_select_prev_cpu_us 0
write /proc/sys/kernel/sched_freq_inc_notify 400000
write /proc/sys/kernel/sched_freq_dec_notify 400000
write /proc/sys/kernel/sched_spill_nr_run 5
write /proc/sys/kernel/sched_restrict_cluster_spill 1
# Disable thermal
write /sys/module/msm_thermal/core_control/enabled 0
# configure governor settings for little cluster
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "schedutil"
write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us 0
write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq 1209600
write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl 1
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 576000
# configure governor settings for big cluster
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "schedutil"
write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us 0
write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq 1574400
write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/pl 1
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 825000
write /sys/module/cpu_boost/parameters/input_boost_freq "0:1324800"
write /sys/module/cpu_boost/parameters/input_boost_ms 120
write /proc/sys/kernel/sched_boost 0
# re-enable thermal
write /sys/module/msm_thermal/core_control/enabled 1
# Bring up all cores online
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/devices/system/cpu/cpu4/online 1
write /sys/devices/system/cpu/cpu5/online 1
write /sys/devices/system/cpu/cpu6/online 1
write /sys/devices/system/cpu/cpu7/online 1
# Disable CPU Retention
write /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled N
write /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled N
write /sys/module/lpm_levels/L3/l3-dyn-ret/idle_enabled N
# Turn on sleep modes.
write /sys/module/lpm_levels/parameters/sleep_disabled 0
write /proc/sys/vm/swappiness 100
write /proc/sys/vm/watermark_scale_factor 120
# Enable accounting on CPUs hwmon and bus speed decision algos
write /sys/class/devfreq/soc:qcom,cpubw/governor "bw_hwmon"
write /sys/class/devfreq/soc:qcom,cpubw/polling_interval 50
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones "2288 4577 6500 8132 9155 10681"
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 50
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory 20
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length 10
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_ceil_mbps 0
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent 50
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay 20
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 0
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale 250
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps 1600
write /sys/class/devfreq/soc:qcom,llccbw/governor "bw_hwmon"
write /sys/class/devfreq/soc:qcom,llccbw/polling_interval 50
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/mbps_zones "1720 2929 4943 5931 6881"
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/sample_ms 4
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/io_percent 80
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/hist_memory 20
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/hyst_length 10
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_ceil_mbps 0
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_io_percent 80
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_delay 20
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/guard_band_mbps 0
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/up_scale 250
write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/idle_mbps 1600
#Enable mem_latency governor for DDR scaling
write /sys/class/devfreq/soc:qcom,memlat-cpu0/governor "mem_latency"
write /sys/class/devfreq/soc:qcom,memlat-cpu0/polling_interval 10
write /sys/class/devfreq/soc:qcom,memlat-cpu0/mem_latency/ratio_ceil 400
write /sys/class/devfreq/soc:qcom,memlat-cpu4/governor "mem_latency"
write /sys/class/devfreq/soc:qcom,memlat-cpu4/polling_interval 10
write /sys/class/devfreq/soc:qcom,memlat-cpu4/mem_latency/ratio_ceil 400
#Enable mem_latency governor for L3 scaling
write /sys/class/devfreq/soc:qcom,l3-cpu0/governor "mem_latency"
write /sys/class/devfreq/soc:qcom,l3-cpu0/polling_interval 10
write /sys/class/devfreq/soc:qcom,l3-cpu0/mem_latency/ratio_ceil 400
write /sys/class/devfreq/soc:qcom,l3-cpu4/governor "mem_latency"
write /sys/class/devfreq/soc:qcom,l3-cpu4/polling_interval 10
write /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil 400
#Enable userspace governor for L3 cdsp nodes
write /sys/class/devfreq/soc:qcom,l3-cdsp/governor "userspace"
chown -h system $l3cdsp/userspace/set_freq
#Gold L3 ratio ceil
write /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil 4000
write /sys/class/devfreq/soc:qcom,mincpubw/governor "compute"
write /sys/class/devfreq/soc:qcom,mincpubw/polling_interval 10

33
rootdir/vendor/etc/init/init.tama.rc

@ -0,0 +1,33 @@
# Copyright 2014 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.
on post-fs
rm /persist/bluetooth/.bt_nv.bin
rmdir /persist/bluetooth
on boot
# WLAN MAC
chown wifi wifi /sys/module/wlan/parameters/fwpath
chown wifi wifi /sys/kernel/boot_wlan/boot_wlan
# update foreground cpuset now that processors are up
write /dev/cpuset/foreground/cpus 0-7
write /dev/cpuset/foreground/boost/cpus 0-7
write /dev/cpuset/background/cpus 0
write /dev/cpuset/system-background/cpus 0-1
# Set the default IRQ affinity to the primary cluster. When a
# CPU is isolated/hotplugged, the IRQ affinity is adjusted
# to one of the CPU from the default IRQ affinity mask.
write /proc/irq/default_smp_affinity f

399
rootdir/vendor/etc/media_codecs.xml

@ -0,0 +1,399 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-2013 The Android Open Source Project
Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
Copyright (C) 2017 Sony Mobile Communications Inc.
Not a contribution.
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.
NOTE: This file has been modified by Sony Mobile Communications Inc.
Modifications are licensed under the License.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT Include EMPTY>
<!ATTLIST Include href CDATA #REQUIRED>
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
<!ELEMENT Decoders (MediaCodec|Include)*>
<!ELEMENT Encoders (MediaCodec|Include)*>
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<!--
845 Non-Secure decoder capabilities
_________________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_________________________________________|
| h264 | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| hevc | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| mpeg4-sw | 1920 1088 30 40 244800 |
| vp8 | 4096 2160 30 120 1036800 |
| | (4096) (2304) (24) (120) |
| vp9 | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| vc1 | 1920 1088 30 20 244800 |
| div4/5/6-sw | 1920 1088 30 10 244800 |
| h263-sw | 864 480 30 16 48600 |
| mpeg2 | 1920 1088 30 40 244800 |
|_____________|_________________________________________|
845 Secure decoder capabilities
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 4096 2160 60 40 2073600 |
| | (4096) (2304) (30) (40) |
| vp9 | 4096 2160 60 40 2073600 |
| | (4096) (2304) (30) (40) |
| hevc | 4096 2160 60 40 2073600 |
| | (4096) (2304) (30) (40) |
| mpeg2 | 1920 1088 30 40 244800 |
|__________|_________________________________________|
845 Non-Secure encoder capabilities (Secure not supported)
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| hevc | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| mpeg4-sw | 1280 720 30 6 108000 |
| vp8 | 4096 2160 30 120 1036800 |
| | (4096) (2304) (24) (120) |
| h263-sw | 864 480 30 2 48600 |
|__________|_________________________________________|
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Encoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="1036800" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<!-- Video Software -->
<!--
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-4000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
-->
</Encoders>
<Decoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="1036800" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="6" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divxsw" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divx4sw" type="video/divx4" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.vc1sw" type="video/x-ms-wmv" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<!-- Audio Hardware -->
<MediaCodec name="OMX.qcom.audio.decoder.wma" type="audio/x-ms-wma" >
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000,11025,16000,22050,32000,44100,48000" />
<Limit name="bitrate" range="8000-320000" />
</MediaCodec>
<!-- Audio Software -->
<MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" >
<Limit name="concurrent-instances" max="10" />
</MediaCodec>
<MediaCodec name="OMX.qti.audio.decoder.alac.sw" type="audio/alac" >
<Limit name="channel-count" max="6" />
<Limit name="sample-rate" ranges="8000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000" />
</MediaCodec>
<MediaCodec name="OMX.qti.audio.decoder.dsd" type="audio/dsd" >
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="2822400-2822400" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
</MediaCodecs>

150
rootdir/vendor/etc/media_codecs_performance.xml

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
Not a Contribution.
Copyright 2015 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.
u 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.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="106-234" />
<Limit name="measured-frame-rate-720x480" range="64-140" />
<Limit name="measured-frame-rate-1280x720" range="26-56" />
<Limit name="measured-frame-rate-1920x1080" range="20-44" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="126-278" />
<Limit name="measured-frame-rate-720x480" range="48-106" />
<Limit name="measured-frame-rate-1280x720" range="31-62" />
<Limit name="measured-frame-rate-1920x1080" range="17-37" />
<Limit name="measured-frame-rate-3840x2160" range="11-25" />
</MediaCodec>
<!--
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="94-206" />
<Limit name="measured-frame-rate-352x288" range="50-109" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="71-155" />
<Limit name="measured-frame-rate-352x288" range="41-89" />
<Limit name="measured-frame-rate-640x480" range="28-61" />
<Limit name="measured-frame-rate-1280x720" range="21-46" />
</MediaCodec>
-->
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="107-236" />
<Limit name="measured-frame-rate-640x360" range="67-147" />
<Limit name="measured-frame-rate-1280x720" range="21-46" />
<Limit name="measured-frame-rate-1920x1080" range="18-41" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="83-182" />
<Limit name="measured-frame-rate-720x480" range="35-76" />
<Limit name="measured-frame-rate-1280x720" range="20-45" />
<Limit name="measured-frame-rate-1920x1080" range="12-26" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="90-199" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="90-199" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="24-52" />
<Limit name="measured-frame-rate-640x360" range="17-37" />
<Limit name="measured-frame-rate-1280x720" range="14-30" />
<Limit name="measured-frame-rate-1920x1080" range="9-19" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="82-180" />
<Limit name="measured-frame-rate-640x360" range="31-68" />
<Limit name="measured-frame-rate-1280x720" range="8-18" />
<Limit name="measured-frame-rate-1920x1080" range="4-8" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="101-221" />
<Limit name="measured-frame-rate-720x480" range="98-217" />
<Limit name="measured-frame-rate-1280x720" range="98-216" />
<Limit name="measured-frame-rate-1920x1088" range="76-167" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="104-228" />
<Limit name="measured-frame-rate-720x480" range="100-219" />
<Limit name="measured-frame-rate-1280x720" range="101-222" />
<Limit name="measured-frame-rate-1920x1080" range="118-259" />
<Limit name="measured-frame-rate-3840x2160" range="30-66" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="189-415" />
<Limit name="measured-frame-rate-352x288" range="139-306" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="164-360" />
<Limit name="measured-frame-rate-480x360" range="270-540" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="82-180" />
<Limit name="measured-frame-rate-640x360" range="82-180" />
<Limit name="measured-frame-rate-1280x720" range="131-289" />
<Limit name="measured-frame-rate-1920x1080" range="83-183" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="94-207" />
<Limit name="measured-frame-rate-640x360" range="94-207" />
<Limit name="measured-frame-rate-1280x720" range="94-207" />
<Limit name="measured-frame-rate-1920x1080" range="87-190" />
<Limit name="measured-frame-rate-3840x2160" range="20-44" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="158-347" />
<Limit name="measured-frame-rate-720x480" range="43-95" />
<Limit name="measured-frame-rate-1280x720" range="13-30" />
<Limit name="measured-frame-rate-1920x1080" range="7-15" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="53-117" />
<Limit name="measured-frame-rate-352x288" range="200-200" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="350-350" />
<Limit name="measured-frame-rate-640x360" range="284-284" />
<Limit name="measured-frame-rate-720x480" range="282-282" />
<Limit name="measured-frame-rate-1280x720" range="115-115" />
<Limit name="measured-frame-rate-1920x1080" range="63-63" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" update="true">
<Type name="video/mp4v-es">
<Limit name="measured-frame-rate-176x144" range="52-115" />
</Type>
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="86-190" />
<Limit name="measured-frame-rate-640x360" range="189-415" />
<Limit name="measured-frame-rate-1280x720" range="41-90" />
<Limit name="measured-frame-rate-1920x1080" range="16-35" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="170-373" />
<Limit name="measured-frame-rate-640x360" range="64-140" />
<Limit name="measured-frame-rate-1280x720" range="34-75" />
<Limit name="measured-frame-rate-1920x1080" range="19-43" />
</MediaCodec>
</Decoders>
</MediaCodecs>

393
rootdir/vendor/etc/media_profiles_V1_0.xml

@ -0,0 +1,393 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Copyright (C) 2012 Sony Mobile Communications Inc.
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.
NOTE: This file has been modified by Sony Mobile Communications Inc.
Modifications are licensed under the License.
-->
<!DOCTYPE MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles+,
EncoderOutputFileFormat+,
VideoEncoderCap+,
AudioEncoderCap+,
VideoDecoderCap,
AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile|ImageEncoding|ImageDecoding|Camera)+>
<!ATTLIST CamcorderProfiles cameraId (0|1) #REQUIRED>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality CDATA #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (95|90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>