Browse Source

SDM660_64: Intial bring up.

Intial bring up changes

Change-Id: I789911a6cd9edacdf73df41b39a80b096b9f1077
tags/20190731-pie-lineage
Niranjan Reddy Dumbala 2 years ago
parent
commit
ba549c4e0d

+ 0
- 0
Android.mk View File


+ 14
- 1
AndroidBoard.mk View File

@@ -19,7 +19,7 @@ endif
# Compile Linux Kernel
#----------------------------------------------------------------------
ifeq ($(KERNEL_DEFCONFIG),)
KERNEL_DEFCONFIG := msmfalcon_defconfig
KERNEL_DEFCONFIG := sdm660_defconfig
endif

ifeq ($(TARGET_KERNEL_SOURCE),)
@@ -106,11 +106,24 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/hostapd
LOCAL_SRC_FILES := hostapd.deny
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := wifi_concurrency_cfg.txt
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := $(LOCAL_MODULE)
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/wifi
include $(BUILD_PREBUILT)

# Create symbolic links for WLAN
$(shell mkdir -p $(TARGET_OUT_ETC)/firmware/wlan/qca_cld; \
ln -sf /system/etc/wifi/WCNSS_qcom_cfg.ini \
$(TARGET_OUT_ETC)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini)

# Create symbolic links for msadp
$(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware; \
ln -sf /dev/block/bootdevice/by-name/msadp \
$(TARGET_OUT_VENDOR)/firmware/msadp)

#----------------------------------------------------------------------
# Radio image
#----------------------------------------------------------------------

+ 1
- 1
AndroidProducts.mk View File

@@ -1,2 +1,2 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/msmfalcon_64.mk
$(LOCAL_DIR)/sdm660_64.mk

+ 38
- 12
BoardConfig.mk View File

@@ -3,9 +3,9 @@
# Product-specific compile-time definitions.
#

TARGET_BOARD_PLATFORM := msmfalcon
TARGET_BOARD_PLATFORM := sdm660
TARGET_BOARD_SUFFIX := _64
TARGET_BOOTLOADER_BOARD_NAME := msmfalcon
TARGET_BOOTLOADER_BOARD_NAME :=sdm660

TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
@@ -25,12 +25,12 @@ SDCLANG := true
TARGET_NO_BOOTLOADER := false
TARGET_USES_UEFI := true
TARGET_NO_KERNEL := false
BOARD_PRESIL_BUILD := true
-include $(QCPATH)/common/msmfalcon_64/BoardConfigVendor.mk
-include $(QCPATH)/common/sdm660_64/BoardConfigVendor.mk
MINIMAL_FONT_FOOTPRINT := true

# Some framework code requires this to enable BT
BOARD_HAVE_BLUETOOTH := true
BOARD_USES_WIPOWER := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/qcom/common

USE_OPENGL_RENDERER := true
@@ -39,29 +39,41 @@ BOARD_USE_LEGACY_UI := true
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000

BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x02000000
#A/B related defines
AB_OTA_UPDATER := true
# Full A/B partiton update set
# AB_OTA_PARTITIONS := xbl rpm tz hyp pmic modem abl boot keymaster cmnlib cmnlib64 system bluetooth
# Subset A/B partitions for Android-only image update
AB_OTA_PARTITIONS ?= boot system
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
TARGET_NO_RECOVERY := true
BOARD_USES_RECOVERY_AS_BOOT := true
TARGET_RECOVERY_UPDATER_LIBS += librecovery_updater_msm

BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
BOARD_USERDATAIMAGE_PARTITION_SIZE := 3221225472
BOARD_CACHEIMAGE_PARTITION_SIZE := 134217728
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_USERDATAIMAGE_PARTITION_SIZE := 48318382080
BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432
BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64)

# Enable suspend during charger mode
BOARD_CHARGER_ENABLE_SUSPEND := true

TARGET_USES_ION := true
TARGET_USES_NEW_ION_API :=true
TARGET_USES_QCOM_BSP := false
TARGET_USES_QCOM_BSP :=true

ifeq ($(BOARD_KERNEL_CMDLINE),)
ifeq ($(TARGET_KERNEL_VERSION),4.4)
BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc1b0000
BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc170000
else
BOARD_KERNEL_CMDLINE += console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 earlycon=msm_hsl_uart,0xc1b0000
endif
BOARD_KERNEL_CMDLINE += boot_cpus=0-3 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 androidboot.selinux=permissive service_locator.enable=1
BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=1
endif

BOARD_EGL_CFG := device/qcom/msmfalcon_64/egl.cfg
BOARD_EGL_CFG := device/qcom/sdm660_64/egl.cfg
BOARD_SECCOMP_POLICY := device/qcom/sdm660_32/seccomp

BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 4096
@@ -111,8 +123,22 @@ ifeq ($(HOST_OS),linux)
endif
endif

#Enable peripheral manager
TARGET_PER_MGR_ENABLED := true

#Enable SSC Feature
TARGET_USES_SSC := true

# Enable sensor multi HAL
USE_SENSOR_MULTI_HAL := true

#Enable CPUSets
ENABLE_CPUSETS := true
ENABLE_SCHEDBOOST := true

#Enabling IMS Feature
TARGET_USES_IMS := true

#Add NON-HLOS files for ota upgrade
ADD_RADIO_FILES := true


+ 70
- 233
WCNSS_qcom_cfg.ini View File

@@ -1,158 +1,76 @@
# This file allows user to override the factory

# defaults for the WLAN Driver


# Enable IMPS or not
gEnableImps=1

# Enable/Disable Idle Scan

gEnableIdleScan=0


# Increase sleep duration (seconds) during IMPS
# 0 implies no periodic wake up from IMPS. Periodic wakeup is
# unnecessary if Idle Scan is disabled.
gImpsModSleepTime=0


# Enable BMPS or not
gEnableBmps=1

# Enable suspend or not

# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter

gEnableSuspend=3


# Phy Mode (auto, b, g, n, etc)
# Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac
# 1 = 11abg, 2 = 11b, 3 = 11g, 5 = 11g only, 6 = 11n only
# 7 = 11b only 8 = 11ac only.
gDot11Mode=0


# CSR Roaming Enable(1) Disable(0)

gRoamingTime=0


# Assigned MAC Addresses - This will be used until NV items are in place

# Each byte of MAC address is represented in Hex format as XX

Intf0MacAddress=000AF58989FF
Intf1MacAddress=000AF58989FE
Intf2MacAddress=000AF58989FD

Intf3MacAddress=000AF58989FC


# UAPSD service interval for VO,VI, BE, BK traffic

InfraUapsdVoSrvIntv=0

InfraUapsdViSrvIntv=0

InfraUapsdBeSrvIntv=0

InfraUapsdBkSrvIntv=0

# Flag to allow STA send AddTspec even when ACM is Off
gAddTSWhenACMIsOff=1

# Make 1x1 the default antenna configuration

gNumRxAnt=1


# Beacon filtering frequency (unit in beacon intervals)

gNthBeaconFilter=50


# Enable WAPI or not

# WAPIIsEnabled=0


# Flags to filter Mcast abd Bcast RX packets.

# Flags to filter Mcast and Bcast RX packets.
# Value 0: No filtering, 1: Filter all Multicast.

# 2: Filter all Broadcast. 3: Filter all Mcast abd Bcast

McastBcastFilter=3


#Flag to enable HostARPOffload feature or not

hostArpOffload=1

#Flag to enable HostNSOffload feature or not

hostNSOffload=1

#SoftAP Related Parameters

# AP MAc addr

gAPMacAddr=000AF589dcab


# 802.11n Protection flag

gEnableApProt=1


#Enable OBSS protection

gEnableApOBSSProt=1


#Enable/Disable UAPSD for SoftAP

gEnableApUapsd=1


# Fixed Rate

gFixedRate=0


# Maximum Tx power

# gTxPowerCap=30


# Fragmentation Threshold

# gFragmentationThreshold=2346


# RTS threshold

RTSThreshold=1048576


# Intra-BSS forward

gDisableIntraBssFwd=0


# WMM Enable/Disable

WmmIsEnabled=0


# 802.11d support

g11dSupportEnabled=0

# 802.11h support

g11hSupportEnabled=1

# DFS Master Capability
@@ -160,12 +78,11 @@ gEnableDFSMasterCap=1

# ESE Support and fast transition
EseEnabled=1

ImplicitQosIsEnabled=0
gNeighborScanTimerPeriod=200

gNeighborScanTimerPeriod=200
gNeighborLookupThreshold=76
gNeighborReassocThreshold=81

gNeighborScanChannelMinTime=20
gNeighborScanChannelMaxTime=30
gMaxNeighborReqTries=3
@@ -175,30 +92,21 @@ gMaxNeighborReqTries=3
# To disable, set FastRoamEnabled=0
FastRoamEnabled=1

#Check if the AP to which we are roaming is better than current AP in terms of RSSI.
#Checking is disabled if set to Zero.Otherwise it will use this value as to how better
#the RSSI of the new/roamable AP should be for roaming
# Check if the AP to which we are roaming is better than current AP in
# terms of RSSI. Checking is disabled if set to Zero.Otherwise it will
# use this value as to how better the RSSI of the new/roamable AP should
# be for roaming
RoamRssiDiff=3

# If the RSSI of any available candidate is better than currently associated
# AP by at least gImmediateRoamRssiDiff, then being to roam immediately (without
# registering for reassoc threshold).
# NOTE: Value of 0 means that we would register for reassoc threshold.
gImmediateRoamRssiDiff=10

# To enable, set gRoamIntraBand=1 (Roaming within band)
# To disable, set gRoamIntraBand=0 (Roaming across band)
gRoamIntraBand=0

#Short Guard Interval Enable/disable

gShortGI20Mhz=1

gShortGI40Mhz=1


#Auto Shutdown Value in seconds. A value of 0 means Auto shutoff is disabled

gAPAutoShutOff=0

#Auto Shutdown wlan : Value in Seconds. 0 means disabled. Max 1 day = 86400 sec
@@ -207,100 +115,42 @@ gWlanAutoShutdown = 0
# Not used.
gApAutoChannelSelection=0


# Listen Energy Detect Mode Configuration

# Valid values 0-128

# 128 means disable Energy Detect feature

# 0-9 are threshold code and 7 is recommended value from system if feature is to be enabled.

# 10-128 are reserved.

# The EDET threshold mapping is as follows in 3dB step:

# 0 = -60 dBm

# 1 = -63 dBm

# 2 = -66 dBm

# ...

# 7 = -81 dBm

# 8 = -84 dBm

# 9 = -87 dBm

# Note: Any of these settings are valid. Setting 0 would yield the highest power saving (in a noisy environment) at the cost of more range. The range impact is approximately #calculated as:

#

# Range Loss (dB) = EDET threshold level (dBm) + 97 dBm.

#

gEnablePhyAgcListenMode=128


#Preferred band (both or 2.4 only or 5 only)

BandCapability=0


#Beacon Early Termination (1 = enable the BET feature, 0 = disable)

enableBeaconEarlyTermination=0

beaconEarlyTerminationWakeInterval=3


#Channel Bonding
gChannelBondingMode5GHz=1


#Enable Keep alive with non-zero period value

gStaKeepAlivePeriod = 30

#Say gGoKeepAlivePeriod(5 seconds) and gGoLinkMonitorPeriod(10 seconds).
#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link is idle for last 10 seconds.)
#For both active and power save clients.

#Power save clients: DUT set TIM bit from 10th second onwards and till client honors TIM bit.
#If doesn't honor for 5 seconds then DUT remove client.
#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link
#is idle for last 10 seconds.) For both active and power save clients.

#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not success still we try on
#11th second if not tries on 12th and so on till 15th second. Hence before disconnection DUT will send 5 NULL frames.
#Hence in any case DUT will detect client got removed in (10+5) seconds. i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..
#Power save clients: DUT set TIM bit from 10th second onwards and till client
#honors TIM bit. If doesn't honor for 5 seconds then DUT remove client.

#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and it is period
#where we send NULL frame.
#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not
#success still we try on 11th second if not tries on 12th and so on till 15th
#second. Hence before disconnection DUT will send 5 NULL frames. Hence in any
#case DUT will detect client got removed in (10+5) seconds.
#i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..

#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and
#it is period where we send NULL frame.
#gApLinkMonitorPeriod = 10

#gGoLinkMonitorPeriod = 10

#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame are succeed to send or not.
#Hence total effective detection time is gGoLinkMonitorPeriod+ gGoKeepAlivePeriod/gApLinkMonitorPeriod+ gApKeepAlivePeriod.
#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame
#are succeed to send or not. Hence total effective detection time is
# (gGoLinkMonitorPeriod + gGoKeepAlivePeriod) /
# (gApLinkMonitorPeriod + gApKeepAlivePeriod)
gGoKeepAlivePeriod = 20

gApKeepAlivePeriod = 20


#If set will start with active scan after driver load, otherwise will start with

#passive scan to find out the domain

gEnableBypass11d=1


#If set to 0, will not scan DFS channels

gEnableDFSChnlScan=1

# Enable DFS channel roam
@@ -309,13 +159,6 @@ gAllowDFSChannelRoam=1

gVhtChannelWidth=2

# Enable Automatic Tx Power control

gEnableAutomaticTxPowerControl=1

# 0 for OLPC 1 for CLPC and SCPC
gEnableCloseLoop=1

#Data Inactivity Timeout when in powersave (in ms)
gDataInactivityTimeout=200

@@ -352,7 +195,7 @@ gEnableRXSTBC=1
gEnableTXSTBC=1

# 1=enable rx LDPC; 0=disable
gEnableRXLDPC=0
gEnableRXLDPC=1

#Enable/Disable Tx beamforming
gTxBFEnable=1
@@ -368,19 +211,6 @@ gEnableTxBFin20MHz=1
#Enable/Disable SU Tx beamformer support.
gEnableTxSUBeamformer=1

#Enable Scan Results Aging based on timer
#Timer value is in seconds
#If Set to 0 it will not enable the feature
gScanAgingTime=30

#Enable Scan Results Aging based on number of scans
gScanResultAgeCount=1

#Enable Power saving mechanism Based on Android Framework
#If set to 0 Driver internally control the Power saving mechanism
#If set to 1 Android Framwrok control the Power saving mechanism
isAndroidPsEn=0

#Enable thermal mitigation
gThermalMitigationEnable=0

@@ -391,19 +221,6 @@ gMaxMediumTime = 6000

# 802.11K support
gRrmEnable=1
gRrmOperChanMax=8
gRrmNonOperChanMax=8
gRrmRandIntvl=100

#Scan offload
gEnableDirectedScanOffload=1

#FlexConnect Power Factor
#Default is set to 0 (disable)
gFlexConnectPowerFactor=0

#Disable split scan, the FW will take care of it
gNumChanCombinedConc=60

#Enable Power Save offload
gEnablePowerSaveOffload=2
@@ -411,13 +228,19 @@ gEnablePowerSaveOffload=2
#Enable firmware uart print
gEnablefwprint=0

#P2P Listen offload
gEnableP2pListenOffload=1
# Firmware log mode
# Valid values are 0,1,2
# 0 - Disable
# 1 - WMI
# 2 - DIAG
gEnablefwlog=1

# Maximum Receive AMPDU size (VHT only. Valid values: 0->8k 1->16k 2->32k 3->64k 4->128k)
# Maximum Receive AMPDU size (VHT only. Valid values:
# 0->8k 1->16k 2->32k 3->64k 4->128k)
gVhtAmpduLenExponent=7

# Maximum MPDU length (VHT only. Valid values: 0->3895 octets, 1->7991 octets, 2->11454 octets)
# Maximum MPDU length (VHT only. Valid values:
# 0->3895 octets, 1->7991 octets, 2->11454 octets)
gVhtMpduLen=2

# Maximum number of wow filters required
@@ -427,7 +250,7 @@ gVhtMpduLen=2
# 0 - Disable both magic pattern match and pattern byte match.
# 1 - Enable magic pattern match on all interfaces.
# 2 - Enable pattern byte match on all interfaces.
# 3 - Enable both magic patter and pattern byte match on all interfaces.
# 3 - Enable both magic pattern and pattern byte match on all interfaces.
# Default value of gEnableWoW is 3.
# gEnableWoW=0

@@ -448,9 +271,6 @@ gEnableOverLapCh=0
#Enable VHT on 2.4Ghz
gEnableVhtFor24GHzBand=1

#Enable or Disable 5G early beacon termination
gEnable5gEBT=1

#Maximum number of offload peers supported
# gMaxOffloadPeers=2

@@ -459,13 +279,14 @@ gEnable5gEBT=1
# to disable set it to zero. ssdp = 0
# Setup multicast pattern for mDNS 224.0.0.251,
# SSDP 239.255.255.250 and LLMNR 224.0.0.252
ssdp = 0
ssdp=0

#Enable Memory Deep Sleep
gEnableMemDeepSleep=1

# Regulatory Setting; 0=STRICT; 1=CUSTOM
gRegulatoryChangeCountry=1

# RA filtering rate limit param, the current value would not
# help if the lifetime in RA is less than 3*60=3min. Then
# we need to change it, though it is uncommon.
@@ -477,7 +298,7 @@ gMaxConcurrentActiveSessions=3

# Disable/Enable GreenAP
# 0 to disable, 1 to enable, default: 1
gEnableGreenAp=1
gEnableGreenAp=0

# Radar PRI multiplier
gDFSradarMappingPriMultiplier=4
@@ -486,7 +307,7 @@ gPNOScanSupport=1

#Enable/Disable LPASS support
# 0 to disable, 1 to enable
gEnableLpassSupport=0
gEnableLpassSupport=1

# Whether userspace country code setting shld have priority
gCountryCodePriority=1
@@ -564,15 +385,17 @@ gEnable2x2=1
gVhtRxMCS2x2=2
gVhtTxMCS2x2=2

#IPA config
gIPAConfig=0
#IPA config is a bit mask and following are the configurations.
#bit0 IPA Enable
#bit1 IPA PRE Filter enable
#bit2 IPv6 enable
#bit3 IPA Resource Manager (RM) enable
#bit4 IPA Clock scaling enable
#bit5 IPA uC ENABLE
#bit6 IPA uC STA ENABLE
#bit8 IPA Real Time Debugging
gIPAConfig=0x7d
gIPADescSize=800
gIPAPreFilterEnable=1
gIPARMEnable=1
gIPAIPv6Enable=1

IpaUcOffloadEnabled=0
gIpaUcStaOffload=0

# Enable/Disable RX full reorder offload
gReorderOffloadSupported=1
@@ -581,9 +404,9 @@ gReorderOffloadSupported=1
# 1 - enable(default) 0 - disable
gCEClassifyEnable=1

#Enable Rx thread
# 1 - enable 0 - disable(default)
gEnableRxThread=0
# Enable Rx handling options
# Rx_thread=1 RPS=2(default for ROME) NAPI=4(default for ihelium)
rx_mode=4

# Enable(Tx) fastpath for data traffic.
# 1 - enable(default) 0 - disable
@@ -593,19 +416,33 @@ gEnableFastPath=1
# 1 - enable(default) 0 - disable
gEnableIpTcpUdpChecksumOffload=1

# Enable NAPI
# 1 - enable(default) 0 - disable
gEnableNAPI=1

# Enable TCP Segmentation Offload
# 1 - enable(default) 0 - disable
# 1 - enable 0 - disable
TSOEnable=1

# Enable Large Recieve Offload
# 1 - enable(default) 0 - disable
LROEnable=1

# Enable HT MPDU Density
# 4 for 2 micro sec
ght_mpdu_density=4

# Enable flow steering to enable multiple CEs for Rx flows.
# Multiple Rx CEs<==>Multiple Rx IRQs<==>probably different CPUs.
# Parallel Rx paths.
# 1 - enable 0 - disable(default)
gEnableFlowSteering=1

################ Datapath feature set End ################

################ NAN feature set start ###################

# Enable NAN discovery (NAN 1.0)
# 1 - enable 0 - disable(default)
gEnableNanSupport=1
################ NAN feature set end #####################

END

# Note: Configuration parser would not read anything past the END marker

+ 12
- 1
android_filesystem_config.h View File

@@ -30,11 +30,22 @@
#include <private/android_filesystem_config.h>


#define NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
static const struct fs_path_config android_device_files[] = {
// { 00755, AID_UID, AID_GID, (1ULL << CAPABILITY), "PATH_TO_BINARY" },
{ 00755, AID_BLUETOOTH, AID_BLUETOOTH, (1ULL << CAP_BLOCK_SUSPEND), "system/bin/wcnss_filter" },
{ 00755, AID_SYSTEM, AID_SYSTEM, (1ULL << CAP_NET_BIND_SERVICE), "system/bin/pm-service" },
{ 00755, AID_SYSTEM, AID_SYSTEM, (1ULL << CAP_NET_BIND_SERVICE), "system/vendor/bin/pm-service" },
{ 00755, AID_SYSTEM, AID_SYSTEM, (1ULL << CAP_NET_BIND_SERVICE), "system/bin/imsdatadaemon" },
{ 00755, AID_SYSTEM, AID_RADIO, (1ULL << CAP_NET_BIND_SERVICE), "system/bin/ims_rtp_daemon" },
#ifdef NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
{ 00000, AID_ROOT, AID_ROOT, 0, "system/etc/fs_config_dirs" },
#endif
};


static const struct fs_path_config android_device_dirs[] = {
{ 00771, AID_SYSTEM, AID_SYSTEM, 0, "firmware" },
{ 00771, AID_SYSTEM, AID_SYSTEM, 0, "bt_firmware" },
{ 00771, AID_MEDIA, AID_MEDIA, 0, "dsp" },
{ 00771, AID_SYSTEM, AID_SYSTEM, 0, "persist" },
};

+ 62
- 0
appboosts.xml View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

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

<PerfBoosts>
<!--Boost params mappings need to be defined for target-->
<BoostParamsMappings>
<BoostAttributes
MapType="freq"
Target="sdm660"
Resolution="1080p"
Mappings="890, 1100, 1400, 1700, 2400" />
<BoostAttributes
MapType="freq"
Target="sdm660"
Resolution="2560"
Mappings="890, 1100, 1400, 1700, 2400" />
<BoostAttributes
MapType="cluster"
Target="sdm660"
Resolution="any"
Mappings="0, 1, 1" />
<BoostAttributes
MapType="freq"
Target="sdm630"
Resolution="1080p"
Mappings="787, 1344, 1670, 1881, 2300" />
<BoostAttributes
MapType="cluster"
Target="sdm630"
Resolution="any"
Mappings="0, 1, 1" />
</BoostParamsMappings>
</PerfBoosts>

+ 0
- 0
egl.cfg View File


+ 6
- 4
fstab.qcom View File

@@ -6,8 +6,10 @@
# Currently we dont have e2fsck compiled. So fs check would failed.

#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1,discard wait
/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard wait,check,encryptable=footer
/devices/soc/c0a4900.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/dev/block/zram0 none swap defaults zramsize=536870912
/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1,discard wait,slotselect,verify
/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard,lazytime wait,check,forceencrypt=footer,crashcheck
/devices/soc/c084000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/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
/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto

+ 81
- 0
gamedwhitelist.xml View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

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

<!--
/* Three lists exists,
* GamedRoBlackList: the name pf the apps
* for which the gamed profile should never be applied.
* GamedROGame lists: the name of the apps for which gamed
* profile should always be applied.
* The above two lists are never modified. And contain at
* max of 20 entries.
* ReadWriteGamed lists is the list of the apps for which the
* decision to apply a game-profile is based on the type of
* the app. This list can contain 100 entries.
* Can be over-written during the execution of the program.It
* is maintained as a circular list.
*
* Activity Type for GamedAppList is determined as follows
* GAME =1 , Benchmark =2 , App =3.
*/ -->
<AppCatalog>
<GamedROBlackList>
<AppAttributes
PackageName="com.android.launcher2"
ActivityType="3" />
<AppAttributes
PackageName="com.android.launcher3"
ActivityType="3" />
<AppAttributes
PackageName="com.android.systemui"
ActivityType="3" />
<AppAttributes
PackageName="com.google.android.talk"
ActivityType="3" />
<AppAttributes
PackageName="com.facebook.katana"
ActivityType="3" />
</GamedROBlackList>

<GamedROGameList>
<AppAttributes
PackageName="com.ea.games.r3_row"
ActivityType="1" />
<AppAttributes
PackageName="com.kiloo.subwaysurf"
ActivityType="1" />
</GamedROGameList>

<GamedRWAppList>
</GamedRWAppList>

</AppCatalog>

+ 5
- 5
gpio-keys.kl View File

@@ -25,8 +25,8 @@
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

key 115 VOLUME_UP WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED
key 102 HOME WAKE_DROPPED
key 528 FOCUS WAKE_DROPPED
key 766 CAMERA WAKE_DROPPED
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 102 HOME
key 528 FOCUS
key 766 CAMERA

+ 0
- 0
hostapd.accept View File


+ 0
- 0
hostapd.conf View File


+ 0
- 0
hostapd.deny View File


+ 0
- 0
init.qcom.modem_links.sh View File


+ 35
- 0
init.qti.qseecomd.sh View File

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

while [ "$registered" != "true" ]
do
sleep 0.1
registered="`getprop sys.listeners.registered`"
done

+ 119
- 30
init.target.rc View File

@@ -1,4 +1,4 @@
# Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
# Copyright (c) 2013-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
@@ -28,14 +28,19 @@
#

on early-init
mkdir /firmware 0771 system system
mkdir /bt_firmware 0771 system system
symlink /data/tombstones /tombstones
mkdir /dsp 0771 media media

on init
write /dev/stune/foreground/schedtune.sched_boost_no_override 1
write /dev/stune/top-app/schedtune.sched_boost_no_override 1
write /dev/stune/schedtune.colocate 0
write /dev/stune/background/schedtune.colocate 0
write /dev/stune/system-background/schedtune.colocate 0
write /dev/stune/foreground/schedtune.colocate 0
write /dev/stune/top-app/schedtune.colocate 1

on fs
wait /dev/block/platform/soc/1da4000.ufshc
symlink /dev/block/platform/soc/1da4000.ufshc /dev/block/bootdevice
wait /dev/block/bootdevice
mount_all fstab.qcom
swapon_all fstab.qcom

@@ -43,27 +48,23 @@ on fs
# these partition flashed on the device. Failure to mount any partition in fstab file
# results in failure to launch late-start class.

wait /dev/block/bootdevice/by-name/cache
mount ext4 /dev/block/bootdevice/by-name/cache /cache nosuid nodev barrier=1

wait /dev/block/bootdevice/by-name/persist
mount ext4 /dev/block/bootdevice/by-name/persist /persist nosuid nodev barrier=1
mkdir /persist/data 0700 system system
mkdir /persist/bms 0700 root system
restorecon_recursive /persist

wait /dev/block/bootdevice/by-name/dsp
mount ext4 /dev/block/bootdevice/by-name/dsp /dsp ro nosuid nodev barrier=1

wait /dev/block/bootdevice/by-name/modem
mount vfat /dev/block/bootdevice/by-name/modem /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0

wait /dev/block/bootdevice/by-name/bluetooth
mount vfat /dev/block/bootdevice/by-name/bluetooth /bt_firmware ro shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0
mount ext4 /dev/block/bootdevice/by-name/dsp_a /dsp ro nosuid nodev barrier=1

on post-fs
start qseecomd
exec - root root root -- /system/bin/init.qti.qseecomd.sh
write /dev/ipa 1

on init
write /sys/module/qpnp_rtc/parameters/poweron_alarm 1

on post-fs-data
mkdir /data/tombstones 0771 system system
mkdir /tombstones/modem 0771 system system
@@ -71,21 +72,66 @@ on post-fs-data
mkdir /tombstones/wcnss 0771 system system
mkdir /tombstones/dsps 0771 system system
mkdir /data/misc/hbtp 0750 system system
mkdir /data/misc/seemp 0700 system system
mkdir /data/misc/tloc 0700 system drmrpc

# For cpusets initialize for Silver Only first and then Silver + Gold
# Silver Only configuration cannot work with 0-7
on boot
start rmt_storage
start rfs_access
write /dev/cpuset/top-app/cpus 0-3
write /dev/cpuset/foreground/cpus 0-3
write /dev/cpuset/foreground/boost/cpus 0-3
write /dev/cpuset/background/cpus 0-3
write /dev/cpuset/system-background/cpus 0-3
write /dev/cpuset/top-app/cpus 0-7
write /dev/cpuset/foreground/cpus 0-7
write /dev/cpuset/foreground/boost/cpus 0-7
write /dev/cpuset/background/cpus 0-7
write /dev/cpuset/system-background/cpus 0-7
write /dev/cpuset/background/cpus 0
write /dev/cpuset/system-background/cpus 0-2
####Regionalization config and prop files####
chmod 0644 /persist/speccfg/spec
chmod 0644 /persist/speccfg/devicetype
chmod 0644 /persist/speccfg/mbnversion
chmod 0644 /persist/speccfg/.not_triggered
chmod 0644 /persist/speccfg/vendor_ro.prop
chmod 0644 /persist/speccfg/vendor_persist.prop
chmod 0644 /persist/speccfg/submask
chmod 0644 /persist/speccfg/partition
chown system system /persist/speccfg/spec
chown system system /persist/speccfg/devicetype
chown system system /persist/speccfg/mbnversion
chown system system /persist/speccfg/.not_triggered
chown system system /persist/speccfg/vendor_ro.prop
chown system system /persist/speccfg/vendor_persist.prop
chown system system /persist/speccfg/submask
chown system system /persist/speccfg/partition

#Peripheral manager
service per_mgr /system/bin/pm-service
class core
user system
group system
ioprio rt 4

service per_proxy /system/bin/pm-proxy
class core
user system
group system
disabled

on property:init.svc.per_mgr=running
start per_proxy

on property:sys.shutdown.requested=*
stop per_proxy

#start camera server as daemon
service qcamerasvr /system/bin/mm-qcamera-daemon
class late_start
user camera
group camera system inet input graphics
#service qcamerasvr /system/bin/mm-qcamera-daemon
# class late_start
# user camera
# group camera system inet input graphics

## import cne init file
#on post-fs
@@ -130,6 +176,9 @@ service qseecomd /system/bin/qseecomd
service thermal-engine /system/vendor/bin/thermal-engine
class main
user root
socket thermal-send-client stream 0666 system system
socket thermal-recv-client stream 0660 system system
socket thermal-recv-passive-client stream 0666 system system
group root

#service security-check1 /sbin/security_boot_check system
@@ -156,10 +205,10 @@ service hbtp /system/vendor/bin/hbtp_daemon
group system
disabled

#service audiod /system/bin/audiod
# class late_start
# user system
# group system
service audiod /system/bin/audiod
class late_start
user system
group system
#
#service usf_tester /system/bin/usf_tester
# user system
@@ -226,13 +275,13 @@ service imsqmidaemon /system/bin/imsqmidaemon
class main
user system
socket ims_qmid stream 0660 system radio
group radio net_raw log diag
group radio log diag

service imsdatadaemon /system/bin/imsdatadaemon
class main
user system
socket ims_datad stream 0660 system radio
group system wifi radio inet net_raw log diag net_admin
group system wifi radio inet log diag
disabled
#
#service mdm_helper /system/bin/mdm_helper
@@ -275,6 +324,18 @@ service imsdatadaemon /system/bin/imsdatadaemon
#service gnss-detect /system/vendor/bin/gnss.qca1530.sh detect
# class core
# oneshot

service energy-awareness /system/bin/energy-awareness
class main
user system
group system
oneshot

service mdtpd /system/vendor/bin/mdtpd
class late_start
user root
group system radio drmrpc

service pd_mapper /system/vendor/bin/pd-mapper
class core

@@ -298,7 +359,7 @@ service ims_rtp_daemon /system/bin/ims_rtp_daemon
class main
user system
socket ims_rtpd stream 0660 system radio
group radio net_raw diag inet log
group radio diag inet log
disabled

service imscmservice /system/bin/imscmservice
@@ -309,7 +370,8 @@ service imscmservice /system/bin/imscmservice

on property:sys.ims.DATA_DAEMON_STATUS=1
start ims_rtp_daemon
#
start imscmservice


service ppd /system/vendor/bin/mm-pp-dpps
class late_start
@@ -336,6 +398,11 @@ on property:init.svc.zygote=running
on property:init.svc.zygote=restarting
stop ppd

on charger
load_system_props
start qcom-post-boot
start hvdcp_opti

#
#service nqs /system/bin/nqs
# class late_start
@@ -354,3 +421,25 @@ on property:init.svc.zygote=restarting
# socket vqtss stream 0660 system system
# user system
# group system

service seempd /system/bin/seempd
class late_start
user system
group system sdcard_rw
socket seempdw dgram 0666 system system

service tlocd /system/bin/tloc_daemon
class late_start
user system
group drmrpc

service hvdcp_opti /system/bin/hvdcp_opti
class main
user root
group system wakelock

service smcinvoked /system/vendor/bin/smcinvoked
class main
user system
group system


+ 399
- 0
media_codecs.xml View File

@@ -0,0 +1,399 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
Not a contribution.

Copyright (C) 2012-2013 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.
-->

<!--
<!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.


-->

<!--
Decoder capabilities for sdm660
__________ _________________________________________ ___________________
| Codec | W H fps Mbps MB/s | Encode Secure-dec |
|__________|_________________________________________|___________________|
| hevc | 3840 2160 30 100 972000 | Y Y |
| h264 | 3840 2160 30 100 972000 | Y Y |
| h263 | 864 480 30 2 48600 | Y N |
| mpeg4 | 1920 1088 60 60 489600 | Y N |
| mpeg2 | 1920 1088 30 40 244800 | N Y |
| vc1 | 1920 1088 60 60 489600 | N N |
| vp8 | 3840 2160 30 100 972000 | Y N |
| vp9 | 3840 2160 30 100 972000 | N Y |
| divx3 | 720 480 30 2 40500 | N N |
| div4/5/6 | 1920 1088 30 10 244800 | N N |
|__________|_________________________________________|___________________|

-->

<!--
Encoder capabilities for sdm660
____________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| hevc | 3840 2160 30 100 972000 |
| h264 | 3840 2160 30 100 972000 |
| h263 | 864 480 30 2 48600 |
| mpeg4 | 1920 1088 30 40 244800 |
| vp8 | 1920 1088 30 40 244800 |
|____________________________________________________|
-->

<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.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="176x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="intra-refresh" />
</MediaCodec>
<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="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" 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="96x64" 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="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" 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="96x64" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<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="96x64" 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="concurrent-instances" max="16" />
<Feature name="intra-refresh" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Audio Hardware -->
<!-- Audio Software -->
<MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" >
<Limit name="concurrent-instances" max="10" />
</MediaCodec>
<!-- 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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" />
</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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="16" />
</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="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-40000000" />
<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="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-40000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
<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="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.wmv" 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="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.wmv.secure" 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="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="7" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vc1" 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="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vc1.secure" 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="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="7" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx" type="video/divx" >
<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-10000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx311" type="video/divx311" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="720x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="40500" />
<Limit name="bitrate" range="1-2000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx4" type="video/divx4" >
<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-10000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="10" />
</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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<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="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
</MediaCodecs>

+ 141
- 0
media_codecs_performance.xml View File

@@ -0,0 +1,141 @@
<?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.
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.
-->

<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="294-294" />
<Limit name="measured-frame-rate-720x480" range="80-90" />
<Limit name="measured-frame-rate-1280x720" range="32-37" />
<Limit name="measured-frame-rate-1920x1080" range="40-40" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="226-226" />
<Limit name="measured-frame-rate-720x480" range="121-121" />
<Limit name="measured-frame-rate-1280x720" range="49-49" />
<Limit name="measured-frame-rate-1920x1080" range="16-45" />
<Limit name="measured-frame-rate-3840x2160" range="6-24" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="400-400" />
<Limit name="measured-frame-rate-352x288" range="261-261" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="351-351" />
<Limit name="measured-frame-rate-352x288" range="263-263" />
<Limit name="measured-frame-rate-640x480" range="144-144" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="312-312" />
<Limit name="measured-frame-rate-640x360" range="175-174" />
<Limit name="measured-frame-rate-1280x720" range="30-40" />
<Limit name="measured-frame-rate-1920x1080" range="20-25" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="185-185" />
<Limit name="measured-frame-rate-720x480" range="87-87" />
<Limit name="measured-frame-rate-1280x720" range="45-45" />
<Limit name="measured-frame-rate-1920x1080" range="28-28" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="354-354" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="385-385" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="100-120" />
<Limit name="measured-frame-rate-640x360" range="45-50" />
<Limit name="measured-frame-rate-1280x720" range="30-35" />
<Limit name="measured-frame-rate-1920x1080" range="20-30" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="409-409" />
<Limit name="measured-frame-rate-720x480" range="239-239" />
<Limit name="measured-frame-rate-1280x720" range="197-197" />
<Limit name="measured-frame-rate-1920x1088" range="88-88" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="434-434" />
<Limit name="measured-frame-rate-720x480" range="338-338" />
<Limit name="measured-frame-rate-1280x720" range="241-241" />
<Limit name="measured-frame-rate-1920x1088" range="90-100" />
<Limit name="measured-frame-rate-3840x2160" range="30-40" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="400-400" />
<Limit name="measured-frame-rate-352x288" range="323-323" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="635-650" />
<Limit name="measured-frame-rate-480x360" range="268-268" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="430-430" />
<Limit name="measured-frame-rate-640x360" range="303-303" />
<Limit name="measured-frame-rate-1280x720" range="389-389" />
<Limit name="measured-frame-rate-1920x1080" range="199-199" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="250-270" />
<Limit name="measured-frame-rate-640x360" range="230-250" />
<Limit name="measured-frame-rate-1280x720" range="190-210" />
<Limit name="measured-frame-rate-1920x1080" range="170-190" />
<Limit name="measured-frame-rate-3840x2160" range="48-48" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="320-350" />
<Limit name="measured-frame-rate-720x480" range="100-130" />
<Limit name="measured-frame-rate-1280x720" range="50-58" />
<Limit name="measured-frame-rate-1920x1080" range="20-30" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="458-458" />
<Limit name="measured-frame-rate-640x360" range="210-215" />
<Limit name="measured-frame-rate-720x480" range="344-344" />
<Limit name="measured-frame-rate-1280x720" range="90-95" />
<Limit name="measured-frame-rate-1920x1080" range="50-55" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="190-210" />
<Limit name="measured-frame-rate-352x288" range="170-182" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="575-580" />
<Limit name="measured-frame-rate-640x360" range="200-220" />
<Limit name="measured-frame-rate-1280x720" range="45-55" />
<Limit name="measured-frame-rate-1920x1080" range="18-22" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="580-604" />
<Limit name="measured-frame-rate-640x360" range="180-185" />
<Limit name="measured-frame-rate-1280x720" range="88-92" />
<Limit name="measured-frame-rate-1920x1080" range="47-52" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" update="true">
<Type name="video/mp4v-es">
<Limit name="measured-frame-rate-176x144" range="380-400" />
</Type>
</MediaCodec>
</Decoders>
</MediaCodecs>


+ 1542
- 0
media_profiles.xml
File diff suppressed because it is too large
View File


+ 5
- 2
msm_irqbalance.conf View File

@@ -1,2 +1,5 @@
PRIO=1,1,1,1,0,0,0,0
IGNORED_IRQ=19,39,165
PRIO=1,1,0,0,0,0,0,0
#arch_timer, arm-pmu, arch_mem_timer, glink-smem-rpm, mpm irqs
IGNORED_IRQ=19,22,39,200,203
#WLAN irqs
BLACKLIST_IRQ=446,455,456

+ 49
- 18
overlay/frameworks/base/core/res/res/values/config.xml View File

@@ -35,32 +35,47 @@
<item>0x40C00000</item> <!-- SCHEDBOOST resource opcode-->
<item>0x1</item> <!-- SCHEDBOOST resource value-->
<item>0x40804000</item> <!-- CPUBOOST_MAX_FREQ BIG Core resource opcode-->
<item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
<item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
<item>0x40804100</item> <!-- CPUBOOST_MAX_FREQ LITTLE Core resource opcode-->
<item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
<item>0x40800000</item> <!-- CPUBOOST_MIN_FREQ BIG Core resource opcode-->
<item>0xFFF</item> <!-- CPUBOOST MIN_FREQ resource value-->
<item>0x40800100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode-->
<item>0xFFF</item> <!-- CPUBOOST MIN_FREQ resource value-->
<item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
<item>140</item> <!-- CPUBW_MIN_FREQ resource value-->
<item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
<item>0x40802000</item> <!-- CPUBOOST_MIN_FREQ BIG Core resource opcode-->
<item>3</item> <!-- CPUBOOST MIN_FREQ resource value-->
<item>0x40802100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode-->
<item>2</item> <!-- CPUBOOST MIN_FREQ resource value-->
</integer-array>
<!-- Whether packing disable is enabled. -->
<bool name="config_disablePacking">true</bool>
<integer name="disablepacking_timeout_param">1500</integer>
<integer-array name="launchboost_packing_param_value">
<item>0x40400000</item> <!-- POWER COLLAPSE resource opcode-->
<item>0x1</item> <!-- POWER COLLAPSE resource value-->
<item>0x42C10000</item> <!-- STORAGE CLK SCALING resource opcode-->
<item>0x1</item> <!-- STORAGE CLK SCALING resource value-->
</integer-array>
<bool name="config_enableLaunchBoostv2">true</bool>
<integer name="lboostv2_timeout_param">15000</integer>
<integer-array name="lboostv2_param_value">
<item>0x40C5C000</item> <!-- SCHED FREQ_AGGR_THRH resource opcode-->
<item>50</item> <!-- SCHED FREQ_AGGR_THRH resource value-->
</integer-array>


<bool name="config_enableCpuBoostForOverScrollerFling">true</bool>
<integer-array name="flingboost_param_value">
<item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
<item>0x33</item> <!-- CPUBW_MIN_FREQ resource value-->
<item>0x40800000</item> <!-- CPUBOOST_MIN_FREQ BIG CORE resource opcode -->
<item>1000</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x40800100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode -->
<item>1000</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x40C00000</item> <!-- SCHEDBOOST resource opcode-->
<item>0x1</item> <!-- SCHEDBOOST resource value-->
<item>0x40C28000</item> <!-- SCHEDGROUP resource opcode-->
<item>0x1</item> <!-- SCHEDGROUP resource value-->
<item>0x2</item> <!-- SCHEDBOOST resource value-->
<item>0x40802000</item> <!-- CPUBOOST_MIN_FREQ BIG CORE resource opcode -->
<item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x40802100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode -->
<item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
<item>0x31</item> <!-- CPUBW_MIN_FREQ resource value-->
<item>0x41400000</item> <!-- ABOVE_HISPEED_DELAY_BIG resource opcode-->
<item>1</item> <!-- ABOVE_HISPEED_DELAY_BIG resource value-->
<item>0x41418000</item> <!-- IO_IS_BUSY_BIG resource opcode-->
<item>1</item> <!-- IO_IS_BUSY_BIG resource value-->
<item>0x40C5C000</item> <!-- SCHED FREQ_AGGR_THRH resource opcode-->
<item>40</item> <!-- SCHED FREQ_AGGR_THRH resource value-->
</integer-array>

<!-- Operating volatage for bluetooth controller. 0 by default-->
@@ -69,7 +84,19 @@
<bool name="config_enableCpuBoostForScroller">true</bool>
<integer-array name="scrollboost_param_value">
<item>0x40C00000</item> <!-- SCHEDBOOST resource opcode-->
<item>0x1</item> <!-- SCHEDBOOST resource value-->
<item>0x2</item> <!-- SCHEDBOOST resource value-->
<item>0x40802000</item> <!-- CPUBOOST_MIN_FREQ BIG CORE resource opcode -->
<item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x40802100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode -->
<item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
<item>0x31</item> <!-- CPUBW_MIN_FREQ resource value-->
<item>0x41400000</item> <!-- ABOVE_HISPEED_DELAY_BIG resource opcode-->
<item>1</item> <!-- ABOVE_HISPEED_DELAY_BIG resource value-->
<item>0x41418000</item> <!-- IO_IS_BUSY_BIG resource opcode-->
<item>1</item> <!-- IO_IS_BUSY_BIG resource value-->
<item>0x40C5C000</item> <!-- SCHED FREQ_AGGR_THRH resource opcode-->
<item>40</item> <!-- SCHED FREQ_AGGR_THRH resource value-->
</integer-array>

<bool name="config_debugBoost">true</bool>
@@ -89,4 +116,8 @@
<item>0x40800000</item> <!-- SCALING_MIN_FREQ big cluster resource opcode -->
<item>0x4A6</item> <!-- SCALING_MIN_FREQ of 1190 MHz big cluster resource value -->
</integer-array>
<!-- The duration (in milliseconds) for the outgoing sms authorization request to timeout.-->
<integer name="config_sms_authorization_timeout_ms">15000</integer>
<!-- Enable SMS authorization support -->
<bool name="config_sms_authorization_enabled">true</bool>
</resources>

+ 115
- 0
overlay/frameworks/base/core/res/res/xml/power_profile.xml View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2016, The Linux Foundation. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->


<device name="Android">
<!-- Most values are the incremental current used by a feature,
in mA (measured at nominal voltage).
The default values are deliberately incorrect dummy values.
OEM's must measure and provide actual values before
shipping a device.
Example real-world values are given in comments, but they
are totally dependent on the platform and can vary
significantly, so should be measured on the shipping platform
with a power meter. -->
<item name="none">0</item>
<item name="screen.on">63</item> <!-- ~200mA -->
<item name="screen.full">261</item> <!-- ~300mA -->

<!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the
number of CPU cores for that cluster.

Ex:
<array name="cpu.clusters.cores">
<value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3
<value>2</value> // cluster 1 has cpu4, cpu5
</array> -->
<array name="cpu.clusters.cores">
<value>4</value> <!-- cluster 0 has cpu0, cpu1, cpu2, cpu3 -->
<value>4</value> <!-- cluster 1 has cpu4, cpu5, cpu6, cpu7 -->
</array>

<!-- Different CPU speeds for cluster 0 as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.

There must be one of these for each cluster, labeled:
cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
<array name="cpu.speeds.cluster0">
<value>633000</value> <!-- 633 MHz CPU speed -->
<value>902000</value> <!-- 902 MHz CPU speed -->
<value>1113000</value> <!-- 1113 MHz CPU speed -->
<value>1401000</value> <!-- 1401 MHz CPU speed -->
<value>1536000</value> <!-- 1536 MHz CPU speed -->
<value>1747000</value> <!-- 1747 MHz CPU speed -->
<value>1843000</value> <!-- 1843 MHz CPU speed -->
</array>

<!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
Like cpu.speeds.cluster0, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.active.cluster0">
<value>34</value> <!-- ~34mA -->
<value>60</value> <!-- ~60mA -->
<value>85</value> <!-- ~85mA -->
<value>128</value> <!-- ~128mA -->
<value>163</value> <!-- ~163mA -->
<value>202</value> <!-- ~202mA -->
<value>253</value> <!-- ~253mA -->
</array>

<array name="cpu.speeds.cluster1">
<value>1113000</value> <!-- 1113 MHz CPU speed -->
<value>1401000</value> <!-- 1401 MHz CPU speed -->
<value>1747000</value> <!-- 1747 MHz CPU speed -->
<value>1958000</value> <!-- 1958 MHz CPU speed -->
<value>2150000</value> <!-- 2150 MHz CPU speed -->
</array>

<!-- Current at each CPU speed for cluster 1, as per 'cpu.speeds.cluster1'.
Like cpu.speeds.cluster1, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.active.cluster1">
<value>226</value> <!-- ~226mA -->
<value>331</value> <!-- ~331mA -->
<value>497</value> <!-- ~497mA -->
<value>614</value> <!-- ~614mA -->
<value>777</value> <!-- ~777mA -->

</array>

<!-- Current when CPU is awake -->
<item name="cpu.awake">1.6</item>
<!-- Current when CPU is idle -->
<item name="cpu.idle">0.1</item>

<!-- This is the battery capacity in mAh (measured at nominal voltage) -->
<item name="battery.capacity">1000</item>

</device>

+ 0
- 0
p2p_supplicant_overlay.conf View File


+ 34
- 15
radio/filesmap View File

@@ -1,4 +1,4 @@
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
# Copyright (c) 2013-2016, 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
@@ -27,19 +27,38 @@

# filename partition

NON-HLOS.bin /dev/block/platform/bootdevice/by-name/modem

sbl1.mbn /dev/block/platform/bootdevice/by-name/sbl1
tz.mbn /dev/block/platform/bootdevice/by-name/tz
rpm.mbn /dev/block/platform/bootdevice/by-name/rpm
emmc_appsboot.mbn /dev/block/platform/bootdevice/by-name/aboot
NON-HLOS.bin /dev/block/bootdevice/by-name/modem
BTFM.bin /dev/block/bootdevice/by-name/bluetooth
sbl1.mbn /dev/block/bootdevice/by-name/sbl1
tz.mbn /dev/block/bootdevice/by-name/tz
rpm.mbn /dev/block/bootdevice/by-name/rpm
emmc_appsboot.mbn /dev/block/bootdevice/by-name/aboot
hyp.mbn /dev/block/bootdevice/by-name/hyp
pmic.mbn /dev/block/bootdevice/by-name/pmic
cmnlib.mbn /dev/block/bootdevice/by-name/cmnlib
cmnlib64.mbn /dev/block/bootdevice/by-name/cmnlib64
keymaster.mbn /dev/block/bootdevice/by-name/keymaster
xbl.elf /dev/block/bootdevice/by-name/xbl
lksecapp.mbn /dev/block/bootdevice/by-name/lksecapp
devcfg.mbn /dev/block/bootdevice/by-name/devcfg
adspso.mbn /dev/block/bootdevice/by-name/dsp
abl.elf /dev/block/bootdevice/by-name/abl

# filename + .bak backup partition

sbl1.mbn.bak /dev/block/platform/bootdevice/by-name/sbl1bak
tz.mbn.bak /dev/block/platform/bootdevice/by-name/tzbak
rpm.mbn.bak /dev/block/platform/bootdevice/by-name/rpmbak
emmc_appsboot.mbn.bak /dev/block/platform/bootdevice/by-name/abootbak
sbl1.mbn.bak /dev/block/bootdevice/by-name/sbl1bak
tz.mbn.bak /dev/block/bootdevice/by-name/tzbak
rpm.mbn.bak /dev/block/bootdevice/by-name/rpmbak
emmc_appsboot.mbn.bak /dev/block/bootdevice/by-name/abootbak
hyp.mbn.bak /dev/block/bootdevice/by-name/hypbak
pmic.mbn.bak /dev/block/bootdevice/by-name/pmicbak
cmnlib.mbn.bak /dev/block/bootdevice/by-name/cmnlibbak
cmnlib64.mbn.bak /dev/block/bootdevice/by-name/cmnlib64bak
keymaster.mbn.bak /dev/block/bootdevice/by-name/keymasterbak
xbl.elf.bak /dev/block/bootdevice/by-name/xblbak
lksecapp.mbn.bak /dev/block/bootdevice/by-name/lksecappbak
devcfg.mbn.bak /dev/block/bootdevice/by-name/devcfgbak
abl.elf.bak /dev/block/bootdevice/by-name/ablbak

# For multiple file firmware images that differ from *.mbn and *.bin
# you can specify filename.* to direct all files to the same location.
@@ -50,7 +69,7 @@ emmc_appsboot.mbn.bak /dev/block/platform/bootdevice/by-name/abootbak

# filename location

modem.* /dev/block/platform/bootdevice/by-name/modem
wcnss.* /dev/block/platform/bootdevice/by-name/modem
widevine.* /dev/block/platform/bootdevice/by-name/modem
adsp.* /dev/block/platform/bootdevice/by-name/modem
modem.* /dev/block/bootdevice/by-name/modem
wcnss.* /dev/block/bootdevice/by-name/modem
widevine.* /dev/block/bootdevice/by-name/modem
adsp.* /dev/block/bootdevice/by-name/modem

+ 3
- 4
recovery.fstab View File

@@ -27,10 +27,9 @@

#device mount point fstype [device2] [length=]

/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait
/dev/block/bootdevice/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
/dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check
/dev/block/mmcblk1p1 /sdcard vfat nosuid,nodev,barrier=1,data=ordered,nodelalloc wait
/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1 wait,slotselect,verify
/dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=footer
/dev/block/mmcblk1p1 /sdcard vfat nosuid,nodev wait
/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults
/dev/block