diff --git a/BoardConfig.mk b/BoardConfig.mk index 5a03659b39e43eecfe17ea38a8381c85c0a563b7..0bc87068442c90ee41401e84e324b77ae0621e81 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -201,6 +201,11 @@ NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 TARGET_USES_MEDIA_EXTENSIONS := true TARGET_MOUNT_POINTS_SYMLINKS := false +# Power +BOARD_POWER_CUSTOM_BOARD_LIB := libpower_8953 +TARGET_HAS_NO_WLAN_STATS := true +TARGET_USES_INTERACTION_BOOST := true + # DRM TARGET_ENABLE_MEDIADRM_64 := true diff --git a/configs/perf/perf-profile0.conf b/configs/perf/perf-profile0.conf new file mode 100644 index 0000000000000000000000000000000000000000..0c358e14e380989c5403e7c1006502eca30bc658 --- /dev/null +++ b/configs/perf/perf-profile0.conf @@ -0,0 +1,2 @@ +[priority] # This profile is reserved for perflock requests +99 diff --git a/configs/powerhint.xml b/configs/powerhint.xml index 7e9f283dc6e5d3df6d892f9839f4ed06f9ace5ea..4db4f465fbe8238ab3796f88d05578fc14ee72c7 100644 --- a/configs/powerhint.xml +++ b/configs/powerhint.xml @@ -2,6 +2,7 @@ + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/device.mk b/device.mk index 341704097d9a53aacb641389d6a81e9423147348..e49ce0fb5258db28ade83c020206a40b9c04dd5a 100644 --- a/device.mk +++ b/device.mk @@ -339,9 +339,10 @@ PRODUCT_PACKAGES += \ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/rootdir/bin/init.qti.qseecomd.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qti.qseecomd.sh -# Powerhint configuration file +# Perf PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/powerhint.xml:system/etc/powerhint.xml + $(LOCAL_PATH)/configs/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml \ + $(LOCAL_PATH)/configs/perf/perf-profile0.conf:$(TARGET_COPY_OUT_VENDOR)/etc/perf/perf-profile0.conf # Enable vndk-sp Libraries PRODUCT_PACKAGES += \ diff --git a/lineage_FP3.mk b/lineage_FP3.mk index ef518364c4c020b8df938fa072ad1b119a494967..7ae90b73e54af95f98ef01e2eb38ea2001a69f93 100644 --- a/lineage_FP3.mk +++ b/lineage_FP3.mk @@ -37,7 +37,7 @@ PRODUCT_GMS_CLIENTID_BASE := android-uniscope # userdebug PRODUCT_BUILD_PROP_OVERRIDES += \ PRODUCT_NAME=FP3 \ - PRIVATE_BUILD_DESC="FP3-userdebug 9 8901.2.A.0111-SS.20200304 03042332 release-keys" + PRIVATE_BUILD_DESC="FP3-user 9 8901.2.A.0120.20200421 04211500 release-keys" # Set BUILD_FINGERPRINT variable to be picked up by both system and vendor build.prop -BUILD_FINGERPRINT := Fairphone/FP3/FP3:9/8901.2.A.0111-SS.20200304/03042332:userdebug/release-keys +BUILD_FINGERPRINT := Fairphone/FP3/FP3:9/8901.2.A.0120.20200421/04211500:user/release-keys diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 130f3649515486379a8fae888395b1b3418b5f67..16008f5193d4d160add1c94eaf7775e43367fd13 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -284,10 +284,10 @@ - false + true - false + true false @@ -454,4 +454,17 @@ 1.android.pool.ntp.org + + true + diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml index 7fe9cc96ebe64cc9daec12b31a95c7a30fefcf94..c42a8b982378b7e947084228c36f89852b98ae7f 100644 --- a/overlay/frameworks/base/core/res/res/xml/power_profile.xml +++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml @@ -29,33 +29,95 @@ --> - 63 - 261 - - - 200000 - 499200 - 533333 - 800000 - 998400 - 1094400 - 1209600 - - - - 151 - 169 - 177 - 195 - 259 - 307 - 353 - - - 1.6 - - 1.6 - - 3060 + + + 0 + 63 + 261 + + 0.606 + + 74.462 + + 25.088 + + 374.399 + + 265.769 + + 21.412 + + 208.332 + + 46.310 + + + 33.079 + 30 + 25 + 20 + 15 + 10 + 5 + 1.090 + + + + 4 + 4 + + + 614400 + 883200 + 1036800 + 1363200 + 1536000 + 1670400 + 1804800 + + + 633600 + 902400 + 1094400 + 1401600 + 1555200 + 1804800 + + + 8.24 + 18.66 + 20.2 + 28.57 + 48.57 + 51.23 + 62.6 + + + 10.85 + 20.85 + 31.57 + 50.96 + 70.31 + 100.25 + + + 4.27 + + 7.22 + + 3.993 + + 2.969 + + 3.5 + + + 3060 diff --git a/power/Android.mk b/power/Android.mk new file mode 100644 index 0000000000000000000000000000000000000000..29b85068f23aceab0a3bd17e6768ba0ecfc9666d --- /dev/null +++ b/power/Android.mk @@ -0,0 +1,17 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_C_INCLUDES := hardware/qcom/power +LOCAL_CFLAGS := -Wall -Werror +LOCAL_SHARED_LIBRARIES := liblog +LOCAL_HEADER_LIBRARIES += libhardware_headers + +ifeq ($(TARGET_USES_INTERACTION_BOOST),true) + LOCAL_CFLAGS += -DINTERACTION_BOOST +endif + +LOCAL_SRC_FILES := power-8953.c +LOCAL_MODULE := libpower_8953 +LOCAL_VENDOR_MODULE := true +include $(BUILD_STATIC_LIBRARY) diff --git a/power/power-8953.c b/power/power-8953.c new file mode 100644 index 0000000000000000000000000000000000000000..ffcd7e8c5a11544db59afc3230e25b396f308ee9 --- /dev/null +++ b/power/power-8953.c @@ -0,0 +1,408 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 The LineageOS Project + * + * 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. + */ + +#define LOG_NIDEBUG 0 + +#include +#include +#include +#include +#include +#include +#include +#include + +#define LOG_TAG "QCOM PowerHAL" +#include +#include +#include + +#include "utils.h" +#include "metadata-defs.h" +#include "hint-data.h" +#include "performance.h" +#include "power-common.h" + +#define NUM_PERF_MODES 3 + +const int kMaxLaunchDuration = 5000; /* ms */ +const int kMaxInteractiveDuration = 5000; /* ms */ +const int kMinInteractiveDuration = 500; /* ms */ + +static int current_power_profile = PROFILE_BALANCED; + +static int profile_high_performance[] = { + SCHED_BOOST_ON_V3, 0x1, + ALL_CPUS_PWR_CLPS_DIS_V3, 0x1, + MIN_FREQ_BIG_CORE_0, 0xFFF, + MIN_FREQ_LITTLE_CORE_0, 0xFFF, + GPU_MIN_POWER_LEVEL, 0x1, + SCHED_PREFER_IDLE_DIS_V3, 0x1, + SCHED_MOSTLY_IDLE_NR_RUN, 0x1, + SCHED_MOSTLY_IDLE_LOAD, 0x1, +}; + +static int profile_power_save[] = { + MAX_FREQ_BIG_CORE_0, 0x3bf, + MAX_FREQ_LITTLE_CORE_0, 0x300, +}; + +static int profile_bias_power[] = { + MAX_FREQ_BIG_CORE_0, 0x4B0, + MAX_FREQ_LITTLE_CORE_0, 0x300, +}; + +static int profile_bias_performance[] = { + MIN_FREQ_BIG_CORE_0, 0x540, +}; + +#ifdef INTERACTION_BOOST +int get_number_of_profiles() +{ + return 5; +} +#endif + +static int set_power_profile(void *data) +{ + int profile = data ? *((int*)data) : 0; + int ret = -EINVAL; + const char *profile_name = NULL; + + if (profile == current_power_profile) + return 0; + + ALOGV("%s: Profile=%d", __func__, profile); + + if (current_power_profile != PROFILE_BALANCED) { + undo_hint_action(DEFAULT_PROFILE_HINT_ID); + ALOGV("%s: Hint undone", __func__); + current_power_profile = PROFILE_BALANCED; + } + + if (profile == PROFILE_POWER_SAVE) { + ret = perform_hint_action(DEFAULT_PROFILE_HINT_ID, profile_power_save, + ARRAY_SIZE(profile_power_save)); + profile_name = "powersave"; + + } else if (profile == PROFILE_HIGH_PERFORMANCE) { + ret = perform_hint_action(DEFAULT_PROFILE_HINT_ID, + profile_high_performance, ARRAY_SIZE(profile_high_performance)); + profile_name = "performance"; + + } else if (profile == PROFILE_BIAS_POWER) { + ret = perform_hint_action(DEFAULT_PROFILE_HINT_ID, profile_bias_power, + ARRAY_SIZE(profile_bias_power)); + profile_name = "bias power"; + + } else if (profile == PROFILE_BIAS_PERFORMANCE) { + ret = perform_hint_action(DEFAULT_PROFILE_HINT_ID, + profile_bias_performance, ARRAY_SIZE(profile_bias_performance)); + profile_name = "bias perf"; + } else if (profile == PROFILE_BALANCED) { + ret = 0; + profile_name = "balanced"; + } + + if (ret == 0) { + current_power_profile = profile; + ALOGD("%s: Set %s mode", __func__, profile_name); + } + return ret; +} + +typedef enum { + NORMAL_MODE = 0, + SUSTAINED_MODE = 1, + VR_MODE = 2, + VR_SUSTAINED_MODE = (SUSTAINED_MODE|VR_MODE), + INVALID_MODE = 0xFF +} perf_mode_type_t; + +typedef struct perf_mode { + perf_mode_type_t type; + int perf_hint_id; +} perf_mode_t; + +perf_mode_t perf_modes[NUM_PERF_MODES] = { + { SUSTAINED_MODE, SUSTAINED_PERF_HINT }, + { VR_MODE, VR_MODE_HINT }, + { VR_SUSTAINED_MODE, VR_MODE_SUSTAINED_PERF_HINT } +}; + +static int current_mode = NORMAL_MODE; + +static inline int get_perfd_hint_id(perf_mode_type_t type) { + int i; + for (i = 0; i < NUM_PERF_MODES; i++) { + if (perf_modes[i].type == type) { + ALOGD("Hint id is 0x%x for mode 0x%x", perf_modes[i].perf_hint_id, type); + return perf_modes[i].perf_hint_id; + } + } + ALOGD("Couldn't find the hint for mode 0x%x", type); + return 0; +} + +static int switch_mode(perf_mode_type_t mode) { + int hint_id = 0; + static int perfd_mode_handle = -1; + + // release existing mode if any + if (CHECK_HANDLE(perfd_mode_handle)) { + ALOGD("Releasing handle 0x%x", perfd_mode_handle); + release_request(perfd_mode_handle); + perfd_mode_handle = -1; + } + // switch to a perf mode + hint_id = get_perfd_hint_id(mode); + if (hint_id != 0) { + perfd_mode_handle = perf_hint_enable(hint_id, 0); + if (!CHECK_HANDLE(perfd_mode_handle)) { + ALOGE("Failed perf_hint_interaction for mode: 0x%x", mode); + return -1; + } + ALOGD("Acquired handle 0x%x", perfd_mode_handle); + } + return 0; +} + +static int process_perf_hint(void *data, perf_mode_type_t mode) { + // enable + if (data) { + ALOGI("Enable request for mode: 0x%x", mode); + // check if mode is current mode + if (current_mode & mode) { + ALOGD("Mode 0x%x already enabled", mode); + return HINT_HANDLED; + } + // enable requested mode + if (0 != switch_mode(current_mode | mode)) { + ALOGE("Couldn't enable mode 0x%x", mode); + return HINT_NONE; + } + current_mode |= mode; + ALOGI("Current mode is 0x%x", current_mode); + // disable + } else { + ALOGI("Disable request for mode: 0x%x", mode); + // check if mode is enabled + if (!(current_mode & mode)) { + ALOGD("Mode 0x%x already disabled", mode); + return HINT_HANDLED; + } + // disable requested mode + if (0 != switch_mode(current_mode & ~mode)) { + ALOGE("Couldn't disable mode 0x%x", mode); + return HINT_NONE; + } + current_mode &= ~mode; + ALOGI("Current mode is 0x%x", current_mode); + } + + return HINT_HANDLED; +} + +static int process_video_encode_hint(void *metadata) +{ + char governor[80]; + struct video_encode_metadata_t video_encode_metadata; + static int video_encode_handle = 0; + + if (!metadata) { + return HINT_NONE; + } + + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { + ALOGE("Can't obtain scaling governor."); + return HINT_NONE; + } + } + } + } + + /* Initialize encode metadata struct fields */ + memset(&video_encode_metadata, 0, sizeof(struct video_encode_metadata_t)); + video_encode_metadata.state = -1; + + if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == -1) { + ALOGE("Error occurred while parsing metadata."); + return HINT_NONE; + } + + if (video_encode_metadata.state == 1) { + if (is_interactive_governor(governor)) { + video_encode_handle = perf_hint_enable( + VIDEO_ENCODE_HINT, 0); + return HINT_HANDLED; + } + } else if (video_encode_metadata.state == 0) { + if (is_interactive_governor(governor)) { + release_request(video_encode_handle); + return HINT_HANDLED; + } + } + return HINT_NONE; +} + +static int process_activity_launch_hint(void *data) +{ + static int launch_handle = -1; + static int launch_mode = 0; + // release lock early if launch has finished + if (!data) { + if (CHECK_HANDLE(launch_handle)) { + release_request(launch_handle); + launch_handle = -1; + } + launch_mode = 0; + return HINT_HANDLED; + } + if (current_mode != NORMAL_MODE) { + ALOGV("%s: ignoring due to other active perf hints", __func__); + } else if (!launch_mode) { + launch_handle = perf_hint_enable_with_type(VENDOR_HINT_FIRST_LAUNCH_BOOST, + kMaxLaunchDuration, LAUNCH_BOOST_V1); + if (!CHECK_HANDLE(launch_handle)) { + ALOGE("Failed to perform launch boost"); + return HINT_NONE; + } + launch_mode = 1; + } + return HINT_HANDLED; +} + +static int process_interaction_hint(void *data) +{ + static struct timespec s_previous_boost_timespec; + static int s_previous_duration = 0; + struct timespec cur_boost_timespec; + long long elapsed_time; + int duration = kMinInteractiveDuration; + if (current_mode != NORMAL_MODE) { + ALOGV("%s: ignoring due to other active perf hints", __func__); + return HINT_HANDLED; + } + if (data) { + int input_duration = *((int*)data); + if (input_duration > duration) { + duration = (input_duration > kMaxInteractiveDuration) ? + kMaxInteractiveDuration : input_duration; + } + } + clock_gettime(CLOCK_MONOTONIC, &cur_boost_timespec); + elapsed_time = calc_timespan_us(s_previous_boost_timespec, cur_boost_timespec); + // don't hint if previous hint's duration covers this hint's duration + if ((s_previous_duration * 1000) > (elapsed_time + duration * 1000)) { + return HINT_HANDLED; + } + s_previous_boost_timespec = cur_boost_timespec; + s_previous_duration = duration; + + perf_hint_enable_with_type(VENDOR_HINT_SCROLL_BOOST, duration, SCROLL_VERTICAL); + + return HINT_HANDLED; +} + +int power_hint_override(power_hint_t hint, void *data) +{ + int ret_val = HINT_NONE; + + if (hint == POWER_HINT_SET_PROFILE) { + if (set_power_profile(data) < 0) + ALOGE("Setting power profile failed. perf HAL not started?"); + return HINT_HANDLED; + } + + // Skip other hints in high/low power modes + if (current_power_profile == PROFILE_POWER_SAVE || + current_power_profile == PROFILE_HIGH_PERFORMANCE) { + return HINT_HANDLED; + } + + switch (hint) { + case POWER_HINT_VSYNC: + break; + case POWER_HINT_VIDEO_ENCODE: + ret_val = process_video_encode_hint(data); + break; + case POWER_HINT_SUSTAINED_PERFORMANCE: + ret_val = process_perf_hint(data, SUSTAINED_MODE); + break; + case POWER_HINT_VR_MODE: + ret_val = process_perf_hint(data, VR_MODE); + break; + case POWER_HINT_INTERACTION: + ret_val = process_interaction_hint(data); + break; + case POWER_HINT_LAUNCH: + ret_val = process_activity_launch_hint(data); + break; + default: + break; + } + return ret_val; +} + +int set_interactive_override(int on) +{ + char governor[80]; + + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { + ALOGE("Can't obtain scaling governor."); + return HINT_NONE; + } + } + } + } + + if (!on) { + /* Display off. */ + if (is_interactive_governor(governor)) { + int resource_values[] = { + INT_OP_CLUSTER0_TIMER_RATE, BIG_LITTLE_TR_MS_40 + }; + perform_hint_action(DISPLAY_STATE_HINT_ID, + resource_values, ARRAY_SIZE(resource_values)); + } + } else { + /* Display on. */ + if (is_interactive_governor(governor)) { + undo_hint_action(DISPLAY_STATE_HINT_ID); + } + } + return HINT_HANDLED; +} diff --git a/proprietary-files.txt b/proprietary-files.txt index 994d26e44e16a40da869c9c56049ba1180c73960..7b64e6cd251ba62675f29400707f0636392380f1 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -630,18 +630,18 @@ vendor/lib/libhdr_tm.so vendor/lib64/libhdr_tm.so # Graphics (SDM) - from 8901.2.A.0111-SS.20200304 -vendor/lib/libscalar.so|ec3eac6b3f7d028647d8ff8d5763641694b08a19 -vendor/lib/libsdm-color.so|2ab146cb732eff1a4ddf66b1041fc25be722994f -vendor/lib/libsdm-diag.so|8bb92e3962a469ee0f1dd1ddcb097fa29a630eda --vendor/lib/libsdm-disp-vndapis.so|7ec59b1f8c78e53558fb4ff2a7261f0f4ef6ded7 -vendor/lib/libsdmextension.so|bd1d28a620adfc300f13e557d7eae641d93f0362 -vendor/lib/libtinyxml2_1.so|e28ea3cc0b01a1c28cd1b256225155a5947a8d70 -vendor/lib64/libscalar.so|304b152dabbc03bd99b1f81adadb0835fd242f51 -vendor/lib64/libsdm-color.so|1a9b68e5f2f09d37c2fa83907a6a70c7adb081f5 -vendor/lib64/libsdm-diag.so|25bab19a8c4453b3d20e3e1a71a0e8d3675b17b4 --vendor/lib64/libsdm-disp-vndapis.so|d93f262f60b58f32273909142aa7fdc7bfb6dda3 -vendor/lib64/libsdmextension.so|3e347988e89780a2da64a3ff6efa0ad23f6c3f47 -vendor/lib64/libtinyxml2_1.so|a2d9661cf2bb426e72ba15fd1a6a4eec940418a5 +vendor/lib/libscalar.so +vendor/lib/libsdm-color.so +vendor/lib/libsdm-diag.so +-vendor/lib/libsdm-disp-vndapis.so +vendor/lib/libsdmextension.so +vendor/lib/libtinyxml2_1.so +vendor/lib64/libscalar.so +vendor/lib64/libsdm-color.so +vendor/lib64/libsdm-diag.so +-vendor/lib64/libsdm-disp-vndapis.so +vendor/lib64/libsdmextension.so +vendor/lib64/libtinyxml2_1.so # Graphics - Firmwares vendor/firmware/a530_gpmu.fw2 @@ -796,7 +796,7 @@ vendor/lib64/libperipheral_client.so vendor/lib64/libdisp-aba.so # QMI -etc/permissions/qti_permissions.xml|e6ff4572352b1a4f91b6b9d7cbb1cad9924410a0 +etc/permissions/qti_permissions.xml etc/permissions/qti_libpermissions.xml vendor/bin/irsc_util vendor/lib/libdiag.so @@ -837,14 +837,14 @@ vendor/lib64/libmdmdetect.so -vendor/lib64/libqmiservices.so # Radio --app/datastatusnotification/datastatusnotification.apk|b893ed156ad7b23cd9e67f7fafbca4f8a4d8d5a4 +-app/datastatusnotification/datastatusnotification.apk -app/QtiTelephonyService/QtiTelephonyService.apk:vendor/app/QtiTelephonyService/QtiTelephonyService.apk etc/permissions/qcrilhook.xml:vendor/etc/permissions/qcrilhook.xml etc/permissions/telephonyservice.xml:vendor/etc/permissions/telephonyservice.xml framework/qcrilhook.jar:vendor/framework/qcrilhook.jar -framework/qti-telephony-common.jar|8f86d77d2cf13d6222ba7b4eef659e3f997f0cf2 +framework/qti-telephony-common.jar framework/QtiTelephonyServicelibrary.jar:vendor/framework/QtiTelephonyServicelibrary.jar --priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk|0d533923f840e3ce2ab43c956ea0ae4f29c7dc53 +-priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk framework/com.qualcomm.qti.uceservice-V2.0-java.jar vendor/bin/ATFWD-daemon vendor/bin/ipacm-diag @@ -935,7 +935,7 @@ vendor/lib/qcrild_librilutils.so vendor/lib64/qcrild_librilutils.so # Radio - IMS --priv-app/ims/ims.apk|3405e8189797954054130362011df237a1da7860 +-priv-app/ims/ims.apk etc/permissions/com.qualcomm.qti.imscmservice-V2.0-java.xml etc/permissions/com.qualcomm.qti.imscmservice-V2.1-java.xml etc/permissions/com.qualcomm.qti.imscmservice.xml @@ -1039,59 +1039,56 @@ vendor/etc/wifi/aoa_cldb_swl14.bin etc/firmware/wlan/prima/WCNSS_cfg.dat # Wi-Fi Display - 8901.2.A.0111-SS.20200304 -bin/wfdservice|edeb291221024401cbae69c2fa4e58733b7efc4c -etc/init/wfdservice.rc|311bfdd1675e56499662f39455536b75b78477bb -etc/wfdconfigsink.xml|134a86f74d9c374ce9081bff92c02515712a7f12 -etc/wfdconfig.xml|60a210d323f3f65dd1424cfd517295c522824b7b --framework/WfdCommon.jar|7b925c98d811b342e55549521af5c0a244e44025 -lib64/extractors/libmmparser.so|61cba3935000d9e04c7b73a20961bc8b15ed31b7 -lib64/libFileMux.so|c528ef66ce38e8474690b75d6ee1c9380c424be1 -lib64/libmmosal.so|b836f3b339d3acd93c63ad144ce4ba4aadb16e38 -lib64/libmmparser_lite.so|7e4d2f1022be67ccf9fe23034882c4e169b251d5 -lib64/libwfdclient.so|89d4d2d1a452246664a4dc4ae783173be3180835 -lib64/libwfdnative.so|e73791a9d0ee843547adf5d2cbf1973af505bd91 -lib/com.qualcomm.qti.wifidisplayhal@1.0.so|53ea5a509b6de0dbc3848275dd9eff18a4f0b519 -lib/extractors/libmmparser.so|8628c82f2cc2a269826ee86e3883c7cf1ed6949c -lib/libFileMux.so|5961dd16c9c6808e8321abf4b0266a9926ef327b -lib/libmmosal.so|ca8714ad8bd64ae9d23222df6098fbb949e75d96 -lib/libmmparser_lite.so|786498c462929cedbdd532a7c7a4aee99a63e616 -lib/libmmrtpdecoder.so|adb55936e63ff087a9e3458070515e1ab7dbe178 -lib/libmmrtpencoder.so|9a85d450a8633207f7a499962c5821d1a3fec2b8 -lib/libOmxMux.so|6aff8e6e81331f3d5d3a8d46d342e5b5efc237f3 -lib/libwfdavenhancements.so|e699cad5e5f6bd5ff6b07495795e1f5865a91166 -lib/libwfdclient.so|dfef4e644097d82eef472cbc7b9079062b1c838c -lib/libwfdcodecv4l2.so|c4d8f54143431e8a8648766f989ff64adbae3557 -lib/libwfdcommonutils.so|f76e75661c41c5c494f60dbb01f22f7114b51fc6 -lib/libwfdconfigutils.so|1f7a9f752648de1fc04655133e9ddbfafa640839 -lib/libwfdmminterface.so|3ed15fd4bbb865722399bba446302bd61ab023fd -lib/libwfdmmsink.so|9bc89fddbd83522b81e43b818fcf8f2ec39d4191 -lib/libwfdmmsrc.so|0ea81dcf5cc913cb48dc61b400513ad0f0478ec8 -lib/libwfdnative.so|3c7450ba0b62d5b8f40f3a3036f8a46542a2d241 -lib/libwfdrtsp.so|5ee03a541fc3c2d5437b6caf48702ea99e704db4 -lib/libwfdservice.so|a6470df0d60f880396643a3038c49a07b23ff116 -lib/libwfdsm.so|363c2a674520d7bb76883ed5957d5a66b7da440b -lib/libwfduibcinterface.so|85faeea87b41e321de9a6fc0c4106978abf2ca92 -lib/libwfduibcsinkinterface.so|25235e58eb13e84f0e9bbc06592fdf85369d7529 -lib/libwfduibcsink.so|2573a8b30d8c774d415ddfa788d4a5b8b12f4c1b -lib/libwfduibcsrcinterface.so|cb1ce08a89654236a29d940b6988309b670bf98d -lib/libwfduibcsrc.so|78bc3258deb8f818c3392d5accdf8e7aac729fdc --priv-app/WfdService/WfdService.apk|30befc443051135dff5d00d8185e575c3aaff9c0 -vendor/bin/wifidisplayhalservice|4822ef60a8f95a120af13833071c06af8618ae0b -vendor/etc/init/com.qualcomm.qti.wifidisplayhal@1.0-service.rc|04e463342cbba4c0e9c311a18238f95dec9359fd -vendor/lib/com.qualcomm.qti.wifidisplayhal@1.0-halimpl.so|f4b6f4e2e40552601aa42ededf856841ce376fe1 -vendor/lib/com.qualcomm.qti.wifidisplayhal@1.0.so|1f617a4c89ce9cd1e62a6960d5f09bc1b8402ea3 -vendor/lib/libmmosal_proprietary.so|df50cf90bdf0e29bcd741af46b5ace8c89c0b8c0 -vendor/lib/libOmxVideoDSMode.so|49afb32feb65de020ef3b4f2f67e13edaa14816c -vendor/lib/libwfdcommonutils_proprietary.so|e82897ed8d7d797336df291a1afb6e22227b2f60 -vendor/lib/libwfdhaldsmanager.so|e19f116dae16c0397ae910795ca6680e6a8a6dc6 -vendor/lib/libwfdhdcpcp.so|e0969d65a5809fc2f0d5f84bde616554cebe8b5e -vendor/lib/libwfdmmservice.so|edfef7c2a265539ab8256291bf5a537ee72ae534 -vendor/lib/libwfdmodulehdcpsession.so|c7893d8cb4dfa574c2835bd08d539177e912144e -vendor/lib64/libmmosal_proprietary.so|1a6fd0d32407879020428c2c403e0a9bfe554750 -vendor/lib64/libwfdhdcpcp.so|d9bfd72076d5c657c54ac5ff9e2b6ac1e0a194f2 - -# Add Arima ftm daemon and adb enable command start -vendor/bin/ArimaFtmDaemon +bin/wfdservice +etc/init/wfdservice.rc +etc/wfdconfigsink.xml +etc/wfdconfig.xml +-framework/WfdCommon.jar +lib64/extractors/libmmparser.so +lib64/libFileMux.so +lib64/libmmosal.so +lib64/libmmparser_lite.so +lib64/libwfdclient.so +lib64/libwfdnative.so +lib/com.qualcomm.qti.wifidisplayhal@1.0.so +lib/extractors/libmmparser.so +lib/libFileMux.so +lib/libmmosal.so +lib/libmmparser_lite.so +lib/libmmrtpdecoder.so +lib/libmmrtpencoder.so +lib/libOmxMux.so +lib/libwfdavenhancements.so +lib/libwfdclient.so +lib/libwfdcodecv4l2.so +lib/libwfdcommonutils.so +lib/libwfdconfigutils.so +lib/libwfdmminterface.so +lib/libwfdmmsink.so +lib/libwfdmmsrc.so +lib/libwfdnative.so +lib/libwfdrtsp.so +lib/libwfdservice.so +lib/libwfdsm.so +lib/libwfduibcinterface.so +lib/libwfduibcsinkinterface.so +lib/libwfduibcsink.so +lib/libwfduibcsrcinterface.so +lib/libwfduibcsrc.so +-priv-app/WfdService/WfdService.apk +vendor/bin/wifidisplayhalservice +vendor/etc/init/com.qualcomm.qti.wifidisplayhal@1.0-service.rc +vendor/lib/com.qualcomm.qti.wifidisplayhal@1.0-halimpl.so +vendor/lib/com.qualcomm.qti.wifidisplayhal@1.0.so +vendor/lib/libmmosal_proprietary.so +vendor/lib/libOmxVideoDSMode.so +vendor/lib/libwfdcommonutils_proprietary.so +vendor/lib/libwfdhaldsmanager.so +vendor/lib/libwfdhdcpcp.so +vendor/lib/libwfdmmservice.so +vendor/lib/libwfdmodulehdcpsession.so +vendor/lib64/libmmosal_proprietary.so +vendor/lib64/libwfdhdcpcp.so # This is in charge of setting the subsystem restart values at: # /sys/bus/msm_subsys/devices/subsys*/restart_level diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index 5fbf5a102918fdce77bf49be6b4693654ee1e7e1..e42f27c8547535b6a290cb90f20a76f1ae2527d9 100755 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -242,6 +242,9 @@ on boot # Wifi firmware reload path chown wifi wifi /sys/module/wlan/parameters/fwpath + # Hack to prevent permanently disabled NFC setting + setprop ro.nfc.fw_dl_on_boot 0 + # msm specific files that need to be created on /data on post-fs-data mkdir /data/vendor/misc 01771 system system @@ -1215,15 +1218,7 @@ service bugreport /system/bin/dumpstate -d -p -B -z -o /data/user_de/0/com.andro class main disabled oneshot - keycodes 114 115 116 - -# [20181113][TracyChui]Add arima ftm daemon and adb enable command start -service arima_ftm_daemon /vendor/bin/ArimaFtmDaemon - user root - group root - disabled -# [20181113][TracyChui]Add arima ftm daemon and adb enable command end - + keycodes 114 115 116 #Set GPU Opengles version on property:vendor.opengles.version=* diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts index 113f84b8ee7e2023f8edf1de900855e05cab9ed9..4bbd554e6db15e1ac288700e68f739c90510f8e4 100755 --- a/sepolicy/vendor/property_contexts +++ b/sepolicy/vendor/property_contexts @@ -5,6 +5,7 @@ ro.fps.pt.errorbin u:object_r:fps_vendor_prop:s0 ro.fps.pt.version u:object_r:fps_vendor_prop:s0 ro.fps.pt.features u:object_r:fps_vendor_prop:s0 ro.fingerprint.module u:object_r:fps_vendor_prop:s0 +ro.nfc.fw_dl_on_boot u:object_r:exported_default_prop:s0 #vendor-info.camera persist.vendor.camera. u:object_r:vendor_info_camera_prop:s0 diff --git a/setup-makefiles.sh b/setup-makefiles.sh index b521e6488b9e0aab5ddbb87214ece0cee8319a0e..d0220b0b93168b327a3051b1e0c1b7157382f37a 100755 --- a/setup-makefiles.sh +++ b/setup-makefiles.sh @@ -40,7 +40,7 @@ source "${HELPER}" setup_vendor "${DEVICE}" "${VENDOR}" "${LINEAGE_ROOT}" true # Copyright headers and guards -write_headers "FP3 ocean channel" +write_headers "FP3" # The standard common blobs write_makefiles "${MY_DIR}/proprietary-files.txt" true diff --git a/vendor_prop.mk b/vendor_prop.mk index 8c5636601507fcd1414aaea60ce98e3aa796b9a0..5aebffd2496d186d067e50429b8b14f5cc7a4479 100644 --- a/vendor_prop.mk +++ b/vendor_prop.mk @@ -5,9 +5,12 @@ # Display PRODUCT_PROPERTY_OVERRIDES += \ debug.sf.enable_hwc_vds=1 \ - debug.sf.hw=1 \ + debug.sf.hw=0 \ debug.egl.hw=0 \ - dev.pm.dyn_samplingrate=1 + dev.pm.dyn_samplingrate=1 \ + debug.sf.recomputecrop=0 \ + persist.hwc.mdpcomp.enable=true \ + debug.mdpcomp.logs=0 #Disable SF Latch Buffer Signaled property PRODUCT_PROPERTY_OVERRIDES += \