diff --git a/Misc/Ubuntu_16.10_Dependencies.txt b/Misc/Ubuntu_16.10_Dependencies.txt new file mode 100644 index 00000000..cf7adc61 --- /dev/null +++ b/Misc/Ubuntu_16.10_Dependencies.txt @@ -0,0 +1,8 @@ +sudo apt-get update && sudo apt-get upgrade && sudo apt-get -f install && sudo apt-get autoremove +sudo apt-get full-upgrade && sudo apt-get autoremove + +sudo ln -s /usr/include/asm-generic /usr/include/asm; + +sudo apt-get install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip flex bison ncurses-dev texinfo gcc gperf patch libtool automake g++ libncurses5-dev gawk subversion expat libexpat1-dev python-all-dev binutils-static libgcc1:i386 bc libcloog-isl-dev libcap-dev autoconf libgmp-dev build-essential gcc-multilib g++-multilib pkg-config libmpc-dev libmpfr-dev gradle maven + +git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jre openjdk-6-jdk pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib diff --git a/Patches/CyanogenMod-14.1/android_device_motorola_clark/0005-Add_Verity.patch b/Patches/CyanogenMod-14.1/android_device_motorola_clark/0005-Add_Verity.patch deleted file mode 100644 index 97068c82..00000000 --- a/Patches/CyanogenMod-14.1/android_device_motorola_clark/0005-Add_Verity.patch +++ /dev/null @@ -1,82 +0,0 @@ -From b433f4cfbd38a8f4ff4ef5251113c21b648f30cf Mon Sep 17 00:00:00 2001 -From: Tad -Date: Mon, 21 Nov 2016 02:28:14 -0500 -Subject: [PATCH] Add dm-verity support - -Change-Id: I6e17bf595c735a19515d1c3080b075ef3a98f6e8 ---- - device.mk | 5 +++++ - rootdir/fstab-verity.qcom | 23 +++++++++++++++++++++++ - rootdir/init.qcom.rc | 6 ++++++ - 3 files changed, 34 insertions(+) - create mode 100644 rootdir/fstab-verity.qcom - -diff --git a/device.mk b/device.mk -index cfb3322..dc5b8ee 100644 ---- a/device.mk -+++ b/device.mk -@@ -240,3 +240,8 @@ PRODUCT_PACKAGES += \ - libwpa_client \ - wpa_supplicant \ - wpa_supplicant.conf -+ -+#Verity -+PRODUCT_COPY_FILES += device/motorola/clark/rootdir/fstab-verity.qcom:root/fstab.qcom -+PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc.0/f9824900.sdhci/by-name/system -+$(call inherit-product, build/target/product/verity.mk) -diff --git a/rootdir/fstab-verity.qcom b/rootdir/fstab-verity.qcom -new file mode 100644 -index 0000000..685e6ee ---- /dev/null -+++ b/rootdir/fstab-verity.qcom -@@ -0,0 +1,23 @@ -+# Android fstab file. -+# The filesystem that contains the filesystem checker binary (typically /system) cannot -+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK -+ -+#TODO: Add 'check' as fs_mgr_flags with data partition. -+# Currently we dont have e2fsck compiled. So fs check would failed. -+ -+# -+/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults -+/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults -+/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,verify=/dev/block/bootdevice/by-name/metadata -+/dev/block/bootdevice/by-name/userdata /data f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data,data_flush wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata -+/dev/block/bootdevice/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier,journal_async_commit wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata -+/dev/block/bootdevice/by-name/cache /cache f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,flush_merge,data_flush wait,check -+/dev/block/bootdevice/by-name/cache /cache ext4 rw,noatime,nosuid,nodev,barrier=1,data=ordered,journal_async_commit wait,check,formattable -+/dev/block/bootdevice/by-name/fsg /fsg ext4 ro,nosuid,nodev,barrier=0,context=u:object_r:fsg_file:s0 wait -+/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,barrier=1,defcontext=u:object_r:persist_file:s0 wait,notrim -+/dev/block/bootdevice/by-name/modem /firmware ext4 ro,nosuid,nodev,context=u:object_r:firmware_file:s0 wait,notrim -+/dev/block/bootdevice/by-name/bluetooth /bt_firmware ext4 ro,nosuid,nodev,context=u:object_r:bt_firmware_file:s0 wait,notrim -+/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults -+/devices/soc.0/f98a4900.sdhci/mmc_host/* auto auto defaults wait,voldmanaged=sdcard1:auto,encryptable=userdata -+/devices/*/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usb:auto -+#/dev/block/zram0 none swap defaults zramsize=536870912,zramstreams=4,notrim -diff --git a/rootdir/init.qcom.rc b/rootdir/init.qcom.rc -index 88b3e38..bc804cc 100755 ---- a/rootdir/init.qcom.rc -+++ b/rootdir/init.qcom.rc -@@ -6,6 +6,9 @@ on early-init - mount debugfs debugfs /sys/kernel/debug - - on init -+ # Load persistent dm-verity state -+ verity_load_state -+ - # Symbols required for motorola blobs - export LD_SHIM_LIBS /system/lib/libjustshoot.so|libshim_camera.so:/system/lib/libjscore.so|libshim_camera.so - -@@ -150,6 +153,9 @@ on boot - symlink /firmware/image/modem_pr/mbn_ota /data/misc/radio/modem_config - write /data/misc/radio/copy_complete 1 - -+ # Update dm-verity state and set partition.*.verified properties -+ verity_update_state -+ - on post-fs - mkdir /persist/camera 02755 mot_tcmd mot_tcmd - mkdir /persist/camera/ledcal 0755 camera mot_tcmd --- -2.9.3 - diff --git a/Patches/CyanogenMod-14.1/android_device_motorola_clark/0007-TWRP.patch b/Patches/CyanogenMod-14.1/android_device_motorola_clark/0005-TWRP.patch similarity index 100% rename from Patches/CyanogenMod-14.1/android_device_motorola_clark/0007-TWRP.patch rename to Patches/CyanogenMod-14.1/android_device_motorola_clark/0005-TWRP.patch diff --git a/Patches/CyanogenMod-14.1/android_device_motorola_clark/0006-Enable_FBE.patch b/Patches/CyanogenMod-14.1/android_device_motorola_clark/0006-Enable_FBE.patch deleted file mode 100644 index b108d781..00000000 --- a/Patches/CyanogenMod-14.1/android_device_motorola_clark/0006-Enable_FBE.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 5f99ec4ec40c3a07a4ebb662603b8a1c52437ccc Mon Sep 17 00:00:00 2001 -From: Tad -Date: Mon, 21 Nov 2016 02:45:59 -0500 -Subject: [PATCH] Enable optional FBE - -Change-Id: I6ae0d43b3159c91d80bd99108f4492254e07e8d3 ---- - rootdir/fstab-verity.qcom | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/rootdir/fstab-verity.qcom b/rootdir/fstab-verity.qcom -index 685e6ee..b281f9c 100644 ---- a/rootdir/fstab-verity.qcom -+++ b/rootdir/fstab-verity.qcom -@@ -9,8 +9,8 @@ - /dev/block/bootdevice/by-name/boot /boot emmc defaults defaults - /dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults - /dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,verify=/dev/block/bootdevice/by-name/metadata --/dev/block/bootdevice/by-name/userdata /data f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data,data_flush wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata --/dev/block/bootdevice/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier,journal_async_commit wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata -+/dev/block/bootdevice/by-name/userdata /data f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data,data_flush wait,check,formattable,forcefdeorfbe=/dev/block/bootdevice/by-name/metadata -+/dev/block/bootdevice/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier,journal_async_commit wait,check,formattable,forcefdeorfbe=/dev/block/bootdevice/by-name/metadata - /dev/block/bootdevice/by-name/cache /cache f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,flush_merge,data_flush wait,check - /dev/block/bootdevice/by-name/cache /cache ext4 rw,noatime,nosuid,nodev,barrier=1,data=ordered,journal_async_commit wait,check,formattable - /dev/block/bootdevice/by-name/fsg /fsg ext4 ro,nosuid,nodev,barrier=0,context=u:object_r:fsg_file:s0 wait --- -2.9.3 - diff --git a/Patches/LineageOS-14.1/android_build/0001-Automated_Build_Signing.patch b/Patches/LineageOS-14.1/android_build/0001-Automated_Build_Signing.patch new file mode 100644 index 00000000..f86feec0 --- /dev/null +++ b/Patches/LineageOS-14.1/android_build/0001-Automated_Build_Signing.patch @@ -0,0 +1,103 @@ +From de2ba147b18528eda7ee943865f8569823fbf3f9 Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Wed, 23 Nov 2016 16:04:50 -0500 +Subject: [PATCH] Add optional automated signing + +Change-Id: If5a888f12764c4928f5efbb2fda78f76fb445a2a +--- + core/Makefile | 43 +++++++++++++++++++++++++++++++++++++------ + 1 file changed, 37 insertions(+), 6 deletions(-) + +diff --git a/core/Makefile b/core/Makefile +index 1d6bff0..d65fd27 100644 +--- a/core/Makefile ++++ b/core/Makefile +@@ -418,6 +418,11 @@ ifneq ($(OTA_PACKAGE_SIGNING_KEY),) + DEFAULT_KEY_CERT_PAIR := $(OTA_PACKAGE_SIGNING_KEY) + endif + ++ifneq ($(SIGNING_KEY_DIR),) ++ KEY_CERT_DIR := $(SIGNING_KEY_DIR) ++ DEFAULT_KEY_CERT_PAIR := $(SIGNING_KEY_DIR)/releasekey ++endif ++ + # Rules that need to be present for the all targets, even + # if they don't do anything. + .PHONY: systemimage +@@ -1030,11 +1035,15 @@ endif + # substitute other keys for this one. + OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem + +-ifneq ($(OTA_PACKAGE_SIGNING_KEY),) +- OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem +- PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) ++ifneq ($(SIGNING_KEY_DIR),) ++ OTA_PUBLIC_KEYS := $(SIGNING_KEY_DIR)/releasekey.x509.pem ++ PRODUCT_EXTRA_RECOVERY_KEYS += $(SIGNING_KEY_DIR)/extra ++else ++ ifneq ($(OTA_PACKAGE_SIGNING_KEY),) ++ OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem ++ PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) ++ endif + endif +- + # Generate a file containing the keys that will be read by the + # recovery binary. + RECOVERY_INSTALL_OTA_KEYS := \ +@@ -1818,6 +1827,13 @@ $(BUILT_TARGET_FILES_PACKAGE): intermediates := $(intermediates) + $(BUILT_TARGET_FILES_PACKAGE): \ + zip_root := $(intermediates)/$(name) + ++SIGNED_TARGET_FILES_PACKAGE := $(intermediates)/signed-$(name).zip ++MAYBE_SIGNED_TARGET_FILES_PACKAGE := $(BUILT_TARGET_FILES_PACKAGE) ++ ++ifneq ($(SIGNING_KEY_DIR),) ++ MAYBE_SIGNED_TARGET_FILES_PACKAGE := $(SIGNED_TARGET_FILES_PACKAGE) ++endif ++ + # $(1): Directory to copy + # $(2): Location to copy it to + # The "ls -A" is to prevent "acp s/* d" from failing if s is empty. +@@ -2182,6 +2198,12 @@ else + OTA_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT) + endif + ++ifeq ($(TARGET_RELEASETOOL_SIGN_TARGET_SCRIPT),) ++ SIGN_TARGET_SCRIPT := ./build/tools/releasetools/sign_target_files_apks ++else ++ SIGN_TARGET_SCRIPT := $(TARGET_RELEASETOOL_SIGN_TARGET_SCRIPT) ++endif ++ + ifeq ($(WITH_GMS),true) + $(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false + else +@@ -2209,7 +2231,16 @@ ifneq ($(BLOCK_BASED_OTA),false) + $(INTERNAL_OTA_PACKAGE_TARGET): block_based := --block + endif + +-$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) ++$(SIGNED_TARGET_FILES_PACKAGE): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) ++ @echo "$(SIGN_TARGET_SCRIPT)" > $(PRODUCT_OUT)/sign_script_path ++ @echo -e ${CL_YLW}"Sign target files:"${CL_RST}" $@" ++ $(hide) $(SIGN_TARGET_SCRIPT) \ ++ -d $(KEY_CERT_DIR) \ ++ -o \ ++ $(BUILT_TARGET_FILES_PACKAGE) \ ++ $(SIGNED_TARGET_FILES_PACKAGE) ++ ++$(INTERNAL_OTA_PACKAGE_TARGET): $(MAYBE_SIGNED_TARGET_FILES_PACKAGE) $(DISTTOOLS) + @echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path + @echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device + @echo "Package OTA: $@" +@@ -2221,7 +2252,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) + --backup=$(backuptool) \ + --override_device=$(override_device) $(override_prop) \ + $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ +- $(BUILT_TARGET_FILES_PACKAGE) $@ ++ $(MAYBE_SIGNED_TARGET_FILES_PACKAGE) $@ + + CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_lge_mako/0001-Enable_LTE.patch b/Patches/LineageOS-14.1/android_device_lge_mako/0001-Enable_LTE.patch new file mode 100644 index 00000000..b330685d --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_lge_mako/0001-Enable_LTE.patch @@ -0,0 +1,53 @@ +From 4edf341b3b70c3bfe391dff53a7e63691c9e7bcb Mon Sep 17 00:00:00 2001 +From: Tad +Date: Mon, 21 Nov 2016 21:30:33 -0500 +Subject: [PATCH] Enable LTE + +Change-Id: I69afb82cc409bd2590b320f5b85636ee2f1de327 +--- + device.mk | 2 +- + overlay/frameworks/base/core/res/res/values/config.xml | 2 +- + overlay/packages/services/Telephony/res/values/config.xml | 3 +++ + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/device.mk b/device.mk +index 1960be2..69fe0b8 100644 +--- a/device.mk ++++ b/device.mk +@@ -234,7 +234,7 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ + rild.libpath=/system/lib/libril-qc-qmi-1.so + + PRODUCT_PROPERTY_OVERRIDES += \ +- telephony.lteOnCdmaDevice=0 ++ telephony.lteOnCdmaDevice=1 + + ifeq ($(findstring tiny, $(TARGET_PRODUCT)),) + PRODUCT_PROPERTY_OVERRIDES += \ +diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml +index 6c68c1d..6febaf2 100644 +--- a/overlay/frameworks/base/core/res/res/values/config.xml ++++ b/overlay/frameworks/base/core/res/res/values/config.xml +@@ -231,7 +231,7 @@ + Empty is viewed as "all". Only used on devices which + don't support RIL_REQUEST_GET_RADIO_CAPABILITY + format is UMTS|LTE|... --> +- GSM|WCDMA ++ GPRS|EDGE|UMTS|HSDPA|HSUPA|HSPA|LTE|HSPAP|GSM|WCDMA + + + true +diff --git a/overlay/packages/services/Telephony/res/values/config.xml b/overlay/packages/services/Telephony/res/values/config.xml +index af352a4..22c65ea 100644 +--- a/overlay/packages/services/Telephony/res/values/config.xml ++++ b/overlay/packages/services/Telephony/res/values/config.xml +@@ -21,4 +21,7 @@ + are routed through the android.media.AudioManager class (true) or through + the com.android.internal.telephony.Phone interface (false). --> + true ++ ++ ++ true + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_lge_mako/0002-TWRP.patch b/Patches/LineageOS-14.1/android_device_lge_mako/0002-TWRP.patch new file mode 100644 index 00000000..cab814d0 --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_lge_mako/0002-TWRP.patch @@ -0,0 +1,37 @@ +From 65d11ac33d0a3da260668c6dd18e5d28fefb272e Mon Sep 17 00:00:00 2001 +From: Tad +Date: Wed, 23 Nov 2016 18:38:32 -0500 +Subject: [PATCH] TWRP Support + +Change-Id: Ib0a86923a40e21cddc1199141c70a7c776de3d1e +--- + BoardConfig.mk | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/BoardConfig.mk b/BoardConfig.mk +index ec97bae..ecf5253 100644 +--- a/BoardConfig.mk ++++ b/BoardConfig.mk +@@ -132,3 +132,19 @@ MALLOC_IMPL := dlmalloc + BOARD_HAS_NO_SELECT_BUTTON := true + + BOARD_HARDWARE_CLASS := device/lge/mako/cmhw/ ++ ++#TWRP ++TW_THEME := portrait_hdpi ++RECOVERY_SDCARD_ON_DATA := true ++RECOVERY_GRAPHICS_USE_LINELENGTH := true ++BOARD_HAS_NO_REAL_SDCARD := true ++PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0 ++TW_INCLUDE_JB_CRYPTO := true ++TW_FLASH_FROM_STORAGE := true ++TW_NO_USB_STORAGE := true ++TW_MAX_BRIGHTNESS := 255 ++TW_BRIGHTNESS_PATH := /sys/class/leds/lcd-backlight/brightness ++TW_INTERNAL_STORAGE_PATH := "/data/media" ++TW_INTERNAL_STORAGE_MOUNT_POINT := "data" ++TW_EXTERNAL_STORAGE_PATH := "/usb-otg" ++TW_EXTERNAL_STORAGE_MOUNT_POINT := "usb-otg" +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_motorola_clark/0001-Build_Fix.patch b/Patches/LineageOS-14.1/android_device_motorola_clark/0001-Build_Fix.patch new file mode 100644 index 00000000..3a900f4f --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_motorola_clark/0001-Build_Fix.patch @@ -0,0 +1,37 @@ +From 6fdf689f450e577750212ac5f0d3ffce50965651 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Thu, 17 Nov 2016 15:39:23 -0500 +Subject: [PATCH] Fix build failure + +Change-Id: I94282a3df32daa97992c17476b0eb3e8f21e2499 +--- + overlay/frameworks/base/core/res/res/values/config.xml | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml +index e0358e2..0b0549b 100644 +--- a/overlay/frameworks/base/core/res/res/values/config.xml ++++ b/overlay/frameworks/base/core/res/res/values/config.xml +@@ -421,9 +421,6 @@ + format is UMTS|LTE|... --> + GSM | WCDMA | LTE | CDMA | EVDO + +- +- com.qualcomm.location +- + + "lte:2097152,4194304,8388608,262144,524288,1048576" + "lte_ca:2097152,4194304,8388608,262144,524288,1048576" +@@ -442,9 +439,6 @@ + rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max --> + 524288,2097152,4194304,262144,524288,1048576 + +- +- true +- + + true + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_motorola_clark/0002-Remove_Sprint_DM.patch b/Patches/LineageOS-14.1/android_device_motorola_clark/0002-Remove_Sprint_DM.patch new file mode 100644 index 00000000..908983e7 --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_motorola_clark/0002-Remove_Sprint_DM.patch @@ -0,0 +1,39 @@ +From 9e22fca4c687d84ba84428788d55b356069e29c7 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Thu, 17 Nov 2016 15:40:05 -0500 +Subject: [PATCH] Remove Sprint DM + +Change-Id: I94d44bb4753cac72106f7c49997d69a0ec5556bd +--- + proprietary-files.txt | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/proprietary-files.txt b/proprietary-files.txt +index f97d3e6..3675ce9 100644 +--- a/proprietary-files.txt ++++ b/proprietary-files.txt +@@ -290,21 +290,6 @@ lib64/libqti-iop.so + vendor/lib/libqti-iop-client.so + vendor/lib64/libqti-iop-client.so + +-# DM/Sprint +--app/DMConfigUpdateLight/DMConfigUpdateLight.apk +--app/HiddenMenuLight/HiddenMenuLight.apk +-lib/libdmengine.so +-lib/libdmjavaplugin.so +--priv-app/CQATest/CQATest.apk +--priv-app/ConnMO/ConnMO.apk +--priv-app/DCMO/DCMO.apk +--priv-app/DMService/DMService.apk +-lib/libdmengine.so:priv-app/DMService/lib/arm/libdmengine.so +-lib/libdmjavaplugin.so:priv-app/DMService/lib/arm/libdmjavaplugin.so +--priv-app/DiagMon/DiagMon.apk +--priv-app/LifetimeData/LifetimeData.apk +--priv-app/SprintDM/SprintDM.apk +- + # DRM + # TZBSP + bin/qseecomd +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_motorola_clark/0003-Enable_Dex_Preopt.patch b/Patches/LineageOS-14.1/android_device_motorola_clark/0003-Enable_Dex_Preopt.patch new file mode 100644 index 00000000..dcf151be --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_motorola_clark/0003-Enable_Dex_Preopt.patch @@ -0,0 +1,24 @@ +From 44299d2cda16b60235cc682988d59dd3dcd823a5 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 18 Nov 2016 02:21:47 -0500 +Subject: [PATCH] Enable Dex-preopt + +Change-Id: I7634ebac4af7a977cff21a6be83bbda11dc943f4 +--- + BoardConfig.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/BoardConfig.mk b/BoardConfig.mk +index 40022b4..250bbb5 100644 +--- a/BoardConfig.mk ++++ b/BoardConfig.mk +@@ -182,3 +182,6 @@ TARGET_USES_WCNSS_MAC_ADDR_REV := true + WIFI_DRIVER_FW_PATH_STA := "sta" + WIFI_DRIVER_FW_PATH_AP := "ap" + WPA_SUPPLICANT_VERSION := VER_0_8_X ++ ++#Dex pre-optimization ++WITH_DEXPREOPT := true +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_motorola_clark/0004-Remove_Widevine.patch b/Patches/LineageOS-14.1/android_device_motorola_clark/0004-Remove_Widevine.patch new file mode 100644 index 00000000..fa4a3290 --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_motorola_clark/0004-Remove_Widevine.patch @@ -0,0 +1,68 @@ +From 755b36c6f5e6feaac20112e0819299f63be3553d Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 18 Nov 2016 18:22:00 -0500 +Subject: [PATCH] Remove Widevine and disable DRM server + +Change-Id: I24d3ba704d00d85747d851a9a497dd577ad03b5f +--- + Android.mk | 10 +--------- + proprietary-files.txt | 2 -- + system.prop | 2 +- + 3 files changed, 2 insertions(+), 12 deletions(-) + +diff --git a/Android.mk b/Android.mk +index a69917c..693cba1 100644 +--- a/Android.mk ++++ b/Android.mk +@@ -52,14 +52,6 @@ $(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @rm -rf $@ + $(hide) ln -sf /system/vendor/lib64/$(notdir $@) $@ + +-WV_IMAGES := widevine.b00 widevine.b01 widevine.b02 widevine.b03 widevine.mdt +-WV_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(WV_IMAGES))) +-$(WV_SYMLINKS): $(LOCAL_INSTALLED_MODULE) +- @echo "Widevine firmware link: $@" +- @mkdir -p $(dir $@) +- @rm -rf $@ +- $(hide) ln -sf /firmware/image/$(notdir $@) $@ +- + FIRMWARE_FILES := firmware fsg + FIRMWARE_SYMLINKS := $(addprefix $(TARGET_OUT)/rfs/msm/mpss/readonly/,$(notdir $(FIRMWARE_FILES))) + $(FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE) +@@ -68,6 +60,6 @@ $(FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @rm -rf $@ + $(hide) ln -sf /$(notdir $@) $@ + +-ALL_DEFAULT_INSTALLED_MODULES += $(PERSIST_WCNSS) $(WCNSS_CFG_INI) $(IMS_SYMLINKS) $(WV_SYMLINKS) $(FIRMWARE_SYMLINKS) ++ALL_DEFAULT_INSTALLED_MODULES += $(PERSIST_WCNSS) $(WCNSS_CFG_INI) $(IMS_SYMLINKS) $(FIRMWARE_SYMLINKS) + + endif +diff --git a/proprietary-files.txt b/proprietary-files.txt +index 3675ce9..45dd63b 100644 +--- a/proprietary-files.txt ++++ b/proprietary-files.txt +@@ -293,8 +293,6 @@ vendor/lib64/libqti-iop-client.so + # DRM + # TZBSP + bin/qseecomd +-etc/permissions/com.google.widevine.software.drm.xml +-framework/com.google.widevine.software.drm.jar + lib/hw/keystore.qcom.so + lib64/hw/keystore.qcom.so + vendor/lib/libdrmfs.so +diff --git a/system.prop b/system.prop +index 6b1967c..4124bd4 100644 +--- a/system.prop ++++ b/system.prop +@@ -56,7 +56,7 @@ dalvik.vm.dex2oat-threads=2 + dalvik.vm.image-dex2oat-threads=4 + + # DRM +-drm.service.enabled=true ++drm.service.enabled=false + + # FM + ro.fm.transmitter=false +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_motorola_clark/0005-TWRP.patch b/Patches/LineageOS-14.1/android_device_motorola_clark/0005-TWRP.patch new file mode 100644 index 00000000..5a9cd7a2 --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_motorola_clark/0005-TWRP.patch @@ -0,0 +1,32 @@ +From aa91f3c0beab9dbb78041540b59558631f63e30e Mon Sep 17 00:00:00 2001 +From: Tad +Date: Mon, 28 Nov 2016 07:04:58 -0500 +Subject: [PATCH] TWRP Support + +Change-Id: I9c9caf279898f7f6cab5f2da81715e0a5440ca17 +--- + BoardConfig.mk | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/BoardConfig.mk b/BoardConfig.mk +index 250bbb5..9be8f1c 100644 +--- a/BoardConfig.mk ++++ b/BoardConfig.mk +@@ -185,3 +185,14 @@ WPA_SUPPLICANT_VERSION := VER_0_8_X + + #Dex pre-optimization + WITH_DEXPREOPT := true ++ ++# TWRP ++TW_THEME := portrait_hdpi ++DEVICE_RESOLUTION := 1440x2560 ++TW_INCLUDE_L_CRYPTO := true ++TW_TARGET_USES_QCOM_BSP := true ++TW_NEW_ION_HEAP := true ++TW_INCLUDE_CRYPTO := true ++TW_SCREEN_BLANK_ON_BOOT := true ++TARGET_RECOVERY_QCOM_RTC_FIX := true ++TARGET_RECOVERY_FSTAB = $(DEVICE_PATH)/rootdir/fstab.qcom +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_oneplus_bacon/0001-Remove_DRM.patch b/Patches/LineageOS-14.1/android_device_oneplus_bacon/0001-Remove_DRM.patch new file mode 100644 index 00000000..6edc112e --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_oneplus_bacon/0001-Remove_DRM.patch @@ -0,0 +1,48 @@ +From 5debdc1dd573384f7a1556a6db2d6960bd7259c5 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Thu, 17 Nov 2016 16:35:14 -0500 +Subject: [PATCH] Remove Widevine + +Change-Id: I531feb804092b596af47e75530fa88b5c85f628a +--- + Android.mk | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/Android.mk b/Android.mk +index dde02c7..08fc62e 100644 +--- a/Android.mk ++++ b/Android.mk +@@ -124,30 +124,6 @@ $(MC_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + + ALL_DEFAULT_INSTALLED_MODULES += $(MC_SYMLINKS) + +-PLAYREADY_IMAGES := \ +- playread.b00 playread.b01 playread.b02 playread.b03 playread.mdt +- +-PLAYREADY_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(PLAYREADY_IMAGES))) +-$(PLAYREADY_SYMLINKS): $(LOCAL_INSTALLED_MODULE) +- @echo "Playready firmware link: $@" +- @mkdir -p $(dir $@) +- @rm -rf $@ +- $(hide) ln -sf /firmware/image/$(notdir $@) $@ +- +-ALL_DEFAULT_INSTALLED_MODULES += $(PLAYREADY_SYMLINKS) +- +-WV_IMAGES := \ +- widevine.b00 widevine.b01 widevine.b02 widevine.b03 widevine.mdt +- +-WV_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(WV_IMAGES))) +-$(WV_SYMLINKS): $(LOCAL_INSTALLED_MODULE) +- @echo "Widevine firmware link: $@" +- @mkdir -p $(dir $@) +- @rm -rf $@ +- $(hide) ln -sf /firmware/image/$(notdir $@) $@ +- +-ALL_DEFAULT_INSTALLED_MODULES += $(WV_SYMLINKS) +- + # Create links for audcal data files + $(shell mkdir -p $(TARGET_OUT)/etc/firmware/wcd9320; \ + ln -sf /data/misc/audio/wcd9320_anc.bin \ +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_device_oneplus_bacon/0002-Enable_Dex_Preopt.patch b/Patches/LineageOS-14.1/android_device_oneplus_bacon/0002-Enable_Dex_Preopt.patch new file mode 100644 index 00000000..dc098901 --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_oneplus_bacon/0002-Enable_Dex_Preopt.patch @@ -0,0 +1,25 @@ +From e12aa9baa815d0279aab7756edc4e9c130f0bbff Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 18 Nov 2016 02:23:46 -0500 +Subject: [PATCH] Enable Dex-preopt + +Change-Id: Id0ee761ca93a2a4cab0d40959610520b193d0528 +--- + BoardConfig.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/BoardConfig.mk b/BoardConfig.mk +index 35bde5d..ff476f7 100644 +--- a/BoardConfig.mk ++++ b/BoardConfig.mk +@@ -197,4 +197,7 @@ TARGET_LDPRELOAD := libNimsWrap.so + endif + endif + ++#Dex pre-optimization ++WITH_DEXPREOPT := true ++ + -include vendor/oneplus/bacon/BoardConfigVendor.mk +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_external_sqlite/0001-Secure_Delete.patch b/Patches/LineageOS-14.1/android_external_sqlite/0001-Secure_Delete.patch new file mode 100644 index 00000000..b2edcd6c --- /dev/null +++ b/Patches/LineageOS-14.1/android_external_sqlite/0001-Secure_Delete.patch @@ -0,0 +1,27 @@ +From d06526ec844bf89e77c518dbcd0deb331babf8dd Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 09:30:44 -0500 +Subject: [PATCH] Enable secure_delete by default + +Change-Id: Ic2604b78f57998c001df9737ab0fdec2298122c4 +--- + dist/Android.mk | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dist/Android.mk b/dist/Android.mk +index bf277d2..8113e32 100644 +--- a/dist/Android.mk ++++ b/dist/Android.mk +@@ -27,7 +27,8 @@ minimal_sqlite_flags := \ + -DSQLITE_OMIT_BUILTIN_TEST \ + -DSQLITE_OMIT_COMPILEOPTION_DIAGS \ + -DSQLITE_OMIT_LOAD_EXTENSION \ +- -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 ++ -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \ ++ -DSQLITE_SECURE_DELETE + + device_sqlite_flags := $(minimal_sqlite_flags) \ + -DSQLITE_ENABLE_ICU \ +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_frameworks_base/0001-Userspace_Location.patch b/Patches/LineageOS-14.1/android_frameworks_base/0001-Userspace_Location.patch new file mode 100644 index 00000000..b018a5e1 --- /dev/null +++ b/Patches/LineageOS-14.1/android_frameworks_base/0001-Userspace_Location.patch @@ -0,0 +1,27 @@ +From 4211c35467725729615cce8fe3cd25f0de58da2a Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 18 Nov 2016 12:30:43 -0500 +Subject: [PATCH] Allow location providers outside of /system + +Change-Id: I405981605aeb00a4482d7191905963fc97a5d424 +--- + services/core/java/com/android/server/ServiceWatcher.java | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/services/core/java/com/android/server/ServiceWatcher.java b/services/core/java/com/android/server/ServiceWatcher.java +index 383e25a..31ae918 100644 +--- a/services/core/java/com/android/server/ServiceWatcher.java ++++ b/services/core/java/com/android/server/ServiceWatcher.java +@@ -92,8 +92,7 @@ public class ServiceWatcher implements ServiceConnection { + String pkg = initialPackageNames.get(i); + try { + HashSet set = new HashSet(); +- Signature[] sigs = pm.getPackageInfo(pkg, PackageManager.MATCH_SYSTEM_ONLY +- | PackageManager.GET_SIGNATURES).signatures; ++ Signature[] sigs = pm.getPackageInfo(pkg, PackageManager.GET_SIGNATURES).signatures; + set.addAll(Arrays.asList(sigs)); + sigSets.add(set); + } catch (NameNotFoundException e) { +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_frameworks_base/0002-Failed_Unlock_Shutdown.patch b/Patches/LineageOS-14.1/android_frameworks_base/0002-Failed_Unlock_Shutdown.patch new file mode 100644 index 00000000..7f4c21cd --- /dev/null +++ b/Patches/LineageOS-14.1/android_frameworks_base/0002-Failed_Unlock_Shutdown.patch @@ -0,0 +1,49 @@ +From 4921beaf996a89c9a56b98f213401ceeb2a23082 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 18 Nov 2016 14:52:59 -0500 +Subject: [PATCH] Shutdown after 5 failed unlock attempts + +Change-Id: Icc23122e5a25b756872fe132cd0e93684e8bafca +--- + .../Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java | 5 +++++ + packages/SystemUI/AndroidManifest.xml | 1 + + 2 files changed, 6 insertions(+) + +diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java +index aaff265..865956f 100644 +--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java ++++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java +@@ -22,6 +22,7 @@ import android.app.admin.DevicePolicyManager; + import android.content.Context; + import android.content.DialogInterface; + import android.content.Intent; ++import android.os.PowerManager; + import android.os.UserHandle; + import android.util.AttributeSet; + import android.util.Log; +@@ -366,6 +367,10 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe + if (!enableTimesCounter && (timeoutMs > 0)) { + showTimeoutDialog(timeoutMs); + } ++ if (failedAttempts >=5) { ++ final PowerManager powerManager = mContext.getSystemService(PowerManager.class); ++ powerManager.shutdown(false, false); ++ } + } + + /** +diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml +index 2248baf..b13b0fd 100644 +--- a/packages/SystemUI/AndroidManifest.xml ++++ b/packages/SystemUI/AndroidManifest.xml +@@ -112,6 +112,7 @@ + + + ++ + + + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_frameworks_base/0003-Signature_Spoofing.patch b/Patches/LineageOS-14.1/android_frameworks_base/0003-Signature_Spoofing.patch new file mode 100644 index 00000000..361e17bf --- /dev/null +++ b/Patches/LineageOS-14.1/android_frameworks_base/0003-Signature_Spoofing.patch @@ -0,0 +1,97 @@ +From 44cda6f5e47c33e91980ae35c8bc6d88e4d3763c Mon Sep 17 00:00:00 2001 +From: Tad +Date: Thu, 24 Nov 2016 13:01:30 -0500 +Subject: [PATCH] Allow packages to spoof their signature + +Change-Id: I9acf48c7607804890d0d0fa7fe30bb36779cb40d +--- + core/res/AndroidManifest.xml | 7 +++++++ + core/res/res/values/config.xml | 2 ++ + core/res/res/values/strings.xml | 5 +++++ + .../android/server/pm/PackageManagerService.java | 23 ++++++++++++++++++++-- + 4 files changed, 35 insertions(+), 2 deletions(-) + +diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml +index b624305..43eec1f 100644 +--- a/core/res/AndroidManifest.xml ++++ b/core/res/AndroidManifest.xml +@@ -1926,6 +1926,13 @@ + android:description="@string/permdesc_getPackageSize" + android:protectionLevel="normal" /> + ++ ++ ++ + +diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml +index 4a95f6e..702e02a 100644 +--- a/core/res/res/values/config.xml ++++ b/core/res/res/values/config.xml +@@ -1383,6 +1383,8 @@ + + + com.android.location.fused ++ ++ com.google.android.gms + + + +diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml +index 345d377..26814f1 100644 +--- a/core/res/res/values/strings.xml ++++ b/core/res/res/values/strings.xml +@@ -660,6 +660,11 @@ + + + ++ ++ Spoof package signature ++ ++ Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Grant this permission with caution only! ++ + + disable or modify status bar + +diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java +index d450288..9194e69 100644 +--- a/services/core/java/com/android/server/pm/PackageManagerService.java ++++ b/services/core/java/com/android/server/pm/PackageManagerService.java +@@ -3141,8 +3141,27 @@ public class PackageManagerService extends IPackageManager.Stub { + ? Collections.emptySet() : permissionsState.getPermissions(userId); + final PackageUserState state = ps.readUserState(userId); + +- return PackageParser.generatePackageInfo(p, gids, flags, +- ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId); ++ return mayFakeSignature(p, PackageParser.generatePackageInfo(p, gids, flags, ++ ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId), ++ permissions); ++ } ++ ++ private PackageInfo mayFakeSignature(PackageParser.Package p, PackageInfo pi, ++ Set permissions) { ++ try { ++ if (permissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE") ++ && p.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1 ++ && p.mAppMetaData != null) { ++ String sig = p.mAppMetaData.getString("fake-signature"); ++ if (sig != null) { ++ pi.signatures = new Signature[] {new Signature(sig)}; ++ } ++ } ++ } catch (Throwable t) { ++ // We should never die because of any failures, this is system code! ++ Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t); ++ } ++ return pi; + } + + @Override +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_frameworks_base/0004-Hide_Passwords.patch b/Patches/LineageOS-14.1/android_frameworks_base/0004-Hide_Passwords.patch new file mode 100644 index 00000000..a59676b3 --- /dev/null +++ b/Patches/LineageOS-14.1/android_frameworks_base/0004-Hide_Passwords.patch @@ -0,0 +1,54 @@ +From c46d22ad7a92e72f4ba9ba3a36e8dbdb566f4a07 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 09:36:07 -0500 +Subject: [PATCH] Hide passwords by default + +Change-Id: I95e26ff6219f6209d5b9fc7ae92a453b53b0aa76 +--- + core/java/android/text/method/TextKeyListener.java | 2 +- + core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java | 2 +- + packages/Keyguard/src/com/android/keyguard/PasswordTextView.java | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/core/java/android/text/method/TextKeyListener.java b/core/java/android/text/method/TextKeyListener.java +index 994f3d7..b2ac244 100644 +--- a/core/java/android/text/method/TextKeyListener.java ++++ b/core/java/android/text/method/TextKeyListener.java +@@ -291,7 +291,7 @@ public class TextKeyListener extends BaseKeyListener implements SpanWatcher { + boolean cap = System.getInt(resolver, System.TEXT_AUTO_CAPS, 1) > 0; + boolean text = System.getInt(resolver, System.TEXT_AUTO_REPLACE, 1) > 0; + boolean period = System.getInt(resolver, System.TEXT_AUTO_PUNCTUATE, 1) > 0; +- boolean pw = System.getInt(resolver, System.TEXT_SHOW_PASSWORD, 1) > 0; ++ boolean pw = System.getInt(resolver, System.TEXT_SHOW_PASSWORD, 0) > 0; + + mPrefs = (cap ? AUTO_CAP : 0) | + (text ? AUTO_TEXT : 0) | +diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java +index b2c9dc5..dc5b7f9 100644 +--- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java ++++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java +@@ -159,7 +159,7 @@ public class PasswordEntryKeyboardHelper implements OnKeyboardActionListener { + mKeyboardState = KEYBOARD_STATE_NORMAL; + final boolean visiblePassword = Settings.System.getInt( + mContext.getContentResolver(), +- Settings.System.TEXT_SHOW_PASSWORD, 1) != 0; ++ Settings.System.TEXT_SHOW_PASSWORD, 0) != 0; + final boolean enablePreview = false; // TODO: grab from configuration + mKeyboardView.setPreviewEnabled(visiblePassword && enablePreview); + break; +diff --git a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java +index 48737f9..3f4c381 100644 +--- a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java ++++ b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java +@@ -134,7 +134,7 @@ public class PasswordTextView extends View { + mDrawPaint.setColor(0xffffffff); + mDrawPaint.setTypeface(Typeface.create("sans-serif-light", 0)); + mShowPassword = Settings.System.getInt(mContext.getContentResolver(), +- Settings.System.TEXT_SHOW_PASSWORD, 1) == 1; ++ Settings.System.TEXT_SHOW_PASSWORD, 0) == 1; + mAppearInterpolator = AnimationUtils.loadInterpolator(mContext, + android.R.interpolator.linear_out_slow_in); + mDisappearInterpolator = AnimationUtils.loadInterpolator(mContext, +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_frameworks_base/0005-Harden_Sig_Spoofing.patch b/Patches/LineageOS-14.1/android_frameworks_base/0005-Harden_Sig_Spoofing.patch new file mode 100644 index 00000000..8d573695 --- /dev/null +++ b/Patches/LineageOS-14.1/android_frameworks_base/0005-Harden_Sig_Spoofing.patch @@ -0,0 +1,26 @@ +From 6c9c966622adbfe0ad92ed90d90f93a782c99f02 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 19:10:20 -0500 +Subject: [PATCH] Harden signature spoofing + +Change-Id: I31e2a20923fff883c87fa6425408971657d3d7b3 +--- + core/res/AndroidManifest.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml +index 486999b..182acbf 100644 +--- a/core/res/AndroidManifest.xml ++++ b/core/res/AndroidManifest.xml +@@ -1937,7 +1937,7 @@ + + + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_kernel_lge_bullhead/0001-OverUnderClock.patch b/Patches/LineageOS-14.1/android_kernel_lge_bullhead/0001-OverUnderClock.patch new file mode 100644 index 00000000..40914170 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_lge_bullhead/0001-OverUnderClock.patch @@ -0,0 +1,484 @@ +From 28793d3021e480bba68fe8b76d9848a6b8aee5d5 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Tue, 3 Nov 2015 21:21:34 -0500 +Subject: [PATCH 1/3] msm8992 initial overclocking + +--- + arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 30 ++++++++++++-------- + arch/arm/boot/dts/qcom/msm8992.dtsi | 40 +++++++++++++++++++------- + drivers/clk/qcom/clock-cpu-8994.c | 8 +++--- + drivers/cpufreq/qcom-cpufreq.c | 41 +++++++++++++++++++++++++++ + 4 files changed, 93 insertions(+), 26 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +index d5f6860..23b23ba 100644 +--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +@@ -605,7 +605,7 @@ + regulator-name = "apc0_corner"; + qcom,cpr-fuse-corners = <4>; + regulator-min-microvolt = <1>; +- regulator-max-microvolt = <10>; ++ regulator-max-microvolt = <12>; + + qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>; + qcom,cpr-voltage-floor = <640000 700000 800000 850000>; +@@ -669,15 +669,15 @@ + qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>; + qcom,cpr-init-voltage-step = <10000>; + +- qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4>; ++ qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4 4 4>; + qcom,cpr-voltage-ceiling-override = + <0xFFFFFFFF 0 800000 800000 900000 900000 + 1000000 1000000 1115000 1115000 +- 1180000 1180000>; ++ 1180000 1180000 1180000 1180000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 655000 700000 735000 + 800000 835000 850000 875000 +- 950000 1000000>; ++ 950000 1000000 1000000 1000000>; + qcom,cpr-fuse-version-map = + <0 0xffffffff 0 0 0 0 0>, + <0 0xffffffff 1 0 0 0 0>, +@@ -759,10 +759,12 @@ + <7 864000000>, + <8 960000000>, + <9 1248000000>, +- <10 1440000000>; ++ <10 1440000000>, ++ <11 1536000000>, ++ <12 1632000000>; + qcom,cpr-speed-bin-max-corners = + <0 0 2 4 6 9>, +- <1 0 2 4 6 10>; ++ <1 0 2 4 6 12>; + qcom,cpr-enable; + }; + +@@ -774,7 +776,7 @@ + regulator-name = "apc1_corner"; + qcom,cpr-fuse-corners = <4>; + regulator-min-microvolt = <1>; +- regulator-max-microvolt = <15>; ++ regulator-max-microvolt = <17>; + + qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>; + qcom,cpr-voltage-floor = <640000 640000 745000 850000>; +@@ -841,17 +843,19 @@ + qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>; + qcom,cpr-init-voltage-step = <10000>; + +- qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4>; ++ qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4>; + qcom,cpr-voltage-ceiling-override = + <0xFFFFFFFF 0 900000 900000 900000 900000 + 900000 1000000 1000000 1000000 + 1115000 1115000 1115000 1115000 +- 1115000 1115000 1180000>; ++ 1115000 1115000 1180000 1180000 ++ 1180000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 640000 665000 690000 + 735000 745000 770000 785000 + 850000 860000 880000 900000 +- 920000 935000 1000000>; ++ 920000 935000 1000000 1000000 ++ 1000000>; + qcom,cpr-fuse-version-map = + <0xffffffff 0xffffffff 0 4 4 4 4>, + <0xffffffff 0xffffffff 1 4 4 4 4>, +@@ -908,9 +912,11 @@ + <12 1536000000>, + <13 1632000000>, + <14 1689600000>, +- <15 1824000000>; ++ <15 1824000000>, ++ <16 1958400000>, ++ <17 2016000000>; + qcom,cpr-speed-bin-max-corners = +- <0xFFFFFFFF 0 1 5 8 15>; ++ <0xFFFFFFFF 0 1 5 8 17>; + qcom,cpr-enable; + }; + +diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi +index 5ba420c..8892b56 100644 +--- a/arch/arm/boot/dts/qcom/msm8992.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992.dtsi +@@ -852,7 +852,9 @@ + < 787200 3509 >, + < 864000 4173 >, + < 960000 5271 >, +- < 1440000 7102 >; ++ < 1440000 7102 >, ++ < 1536000 7102 >, ++ < 1632000 7102 >; + cpu-to-dev-map-4 = + < 384000 1525 >, + < 633600 2288 >, +@@ -860,16 +862,22 @@ + < 864000 4173 >, + < 960000 5271 >, + < 1344000 5928 >, +- < 1824000 7102 >; ++ < 1824000 7102 >, ++ < 1958400 7102 >, ++ < 2016000 7102 >; + }; + + mincpubw-cpufreq { + target-dev = <&mincpubw>; + cpu-to-dev-map-0 = +- < 1440000 1525 >; ++ < 1440000 1525 >, ++ < 1536000 1525 >, ++ < 1632000 1525 >; + cpu-to-dev-map-4 = + < 1689600 1525 >, +- < 1824000 5928 >; ++ < 1824000 1525 >, ++ < 1958400 1525 >, ++ < 2016000 5928 >; + }; + + cci-cpufreq { +@@ -880,7 +888,9 @@ + < 787200 384000 >, + < 864000 556800 >, + < 960000 729600 >, +- < 1440000 787200 >; ++ < 1440000 787200 >, ++ < 1536000 787200 >, ++ < 1632000 787200 >; + cpu-to-dev-map-4 = + < 384000 134400 >, + < 480000 300000 >, +@@ -888,7 +898,9 @@ + < 768000 556800 >, + < 960000 600000 >, + < 1440000 729600 >, +- < 1824000 787200 >; ++ < 1824000 787200 >, ++ < 1958400 787200 >, ++ < 2016000 787200 >; + }; + }; + +@@ -915,7 +927,9 @@ + < 864000 >, + < 960000 >, + < 1248000 >, +- < 1440000 >; ++ < 1440000 >, ++ < 1536000 >, ++ < 1632000 >; + + qcom,cpufreq-table-4 = + < 384000 >, +@@ -930,7 +944,9 @@ + < 1536000 >, + < 1632000 >, + < 1689600 >, +- < 1824000 >; ++ < 1824000 >, ++ < 1958400 >, ++ < 2016000 >; + + }; + +@@ -968,7 +984,9 @@ + < 864000000 7>, + < 960000000 8>, + < 1248000000 9>, +- < 1440000000 10>; ++ < 1440000000 10>, ++ < 1536000000 11>, ++ < 1632000000 12>; + qcom,a57-speedbin0-v0 = + < 0 0>, + < 384000000 5>, +@@ -983,7 +1001,9 @@ + < 1536000000 12>, + < 1632000000 13>, + < 1689600000 14>, +- < 1824000000 15>; ++ < 1824000000 15>, ++ < 1958400000 16>, ++ < 2016000000 17>; + qcom,cci-speedbin0-v0 = + < 0 0>, + < 134400000 2>, +diff --git a/drivers/clk/qcom/clock-cpu-8994.c b/drivers/clk/qcom/clock-cpu-8994.c +index 6eb346b..de3d72f 100644 +--- a/drivers/clk/qcom/clock-cpu-8994.c ++++ b/drivers/clk/qcom/clock-cpu-8994.c +@@ -191,13 +191,13 @@ static struct pll_clk a57_pll0 = { + .test_ctl_lo_val = 0x00010000, + }, + .min_rate = 1209600000, +- .max_rate = 1996800000, ++ .max_rate = 2073600000, + .base = &vbases[C1_PLL_BASE], + .c = { + .parent = &xo_ao.c, + .dbg_name = "a57_pll0", + .ops = &clk_ops_variable_rate_pll, +- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000), ++ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000), + CLK_INIT(a57_pll0.c), + }, + }; +@@ -229,13 +229,13 @@ static struct pll_clk a57_pll1 = { + /* Necessary since we'll be setting a rate before handoff on V1 */ + .src_rate = 19200000, + .min_rate = 1209600000, +- .max_rate = 1996800000, ++ .max_rate = 2073600000, + .base = &vbases[C1_PLL_BASE], + .c = { + .parent = &xo_ao.c, + .dbg_name = "a57_pll1", + .ops = &clk_ops_variable_rate_pll, +- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000), ++ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000), + CLK_INIT(a57_pll1.c), + }, + }; +diff --git a/drivers/cpufreq/qcom-cpufreq.c b/drivers/cpufreq/qcom-cpufreq.c +index e30b0cb..dd3a589 100644 +--- a/drivers/cpufreq/qcom-cpufreq.c ++++ b/drivers/cpufreq/qcom-cpufreq.c +@@ -31,6 +31,40 @@ + + static DEFINE_MUTEX(l2bw_lock); + ++static unsigned long arg_cpu_max_a53 = 1440000; ++ ++static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53) ++{ ++ unsigned long ui_khz; ++ int ret; ++ ++ ret = kstrtoul(cpu_max_a53, 0, &ui_khz); ++ if (ret) ++ return -EINVAL; ++ ++ arg_cpu_max_a53 = ui_khz; ++ printk("cpu_max_a53=%lu\n", arg_cpu_max_a53); ++ return ret; ++} ++__setup("cpu_max_a53=", cpufreq_read_cpu_max_a53); ++ ++static unsigned long arg_cpu_max_a57 = 1824000; ++ ++static int __init cpufreq_read_cpu_max_a57(char *cpu_max_a57) ++{ ++ unsigned long ui_khz; ++ int ret; ++ ++ ret = kstrtoul(cpu_max_a57, 0, &ui_khz); ++ if (ret) ++ return -EINVAL; ++ ++ arg_cpu_max_a57 = ui_khz; ++ printk("cpu_max_a57=%lu\n", arg_cpu_max_a57); ++ return ret; ++} ++__setup("cpu_max_a57=", cpufreq_read_cpu_max_a57); ++ + static struct clk *cpu_clk[NR_CPUS]; + static struct clk *l2_clk; + static DEFINE_PER_CPU(struct cpufreq_frequency_table *, freq_table); +@@ -364,6 +398,13 @@ static struct cpufreq_frequency_table *cpufreq_parse_dt(struct device *dev, + if (i > 0 && f <= ftbl[i-1].frequency) + break; + ++ //Custom max freq ++ if ((cpu < 4 && f > arg_cpu_max_a53) || ++ (cpu >= 4 && f > arg_cpu_max_a57)) { ++ nf = i; ++ break; ++ } ++ + ftbl[i].driver_data = i; + ftbl[i].frequency = f; + } +-- +2.9.3 + + +From 9dfe99b9f8eead920f7cdefdb2ae7b1cea776d9b Mon Sep 17 00:00:00 2001 +From: dirtyhank +Date: Thu, 14 Jan 2016 12:56:07 +0100 +Subject: [PATCH 2/3] CPU underclocking + + Based on underclocking to Nexus 6P by anarkia1976 +--- + arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 6 +++--- + arch/arm/boot/dts/qcom/msm8992.dtsi | 14 +++++++++++--- + 2 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +index 23b23ba..1ef9eb3 100644 +--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +@@ -750,7 +750,7 @@ + qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>; + qcom,cpr-quot-adjust-scaling-factor-max = <0 2000 2000 2000>; + qcom,cpr-corner-frequency-map = +- <1 300000000>, ++ <1 302400000>, + <2 384000000>, + <3 460800000>, + <4 600000000>, +@@ -898,8 +898,8 @@ + qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>; + qcom,cpr-quot-adjust-scaling-factor-max = <0 0 2000 2000>; + qcom,cpr-corner-frequency-map = +- <1 300000000>, /* SVS Fmin for "SVS2" */ +- <2 300000000>, ++ <1 302400000>, /* SVS Fmin for "SVS2" */ ++ <2 302400000>, + <3 384000000>, + <4 480000000>, + <5 633600000>, +diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi +index 8892b56..f6a39cd 100644 +--- a/arch/arm/boot/dts/qcom/msm8992.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992.dtsi +@@ -796,7 +796,7 @@ + governor = "cpufreq"; + freq-tbl-khz = + < 134400 >, +- < 300000 >, ++ < 302400 >, + < 384000 >, + < 556800 >, + < 600000 >, +@@ -856,7 +856,8 @@ + < 1536000 7102 >, + < 1632000 7102 >; + cpu-to-dev-map-4 = +- < 384000 1525 >, ++ < 302400 1525 >, ++ < 384000 1525 >, + < 633600 2288 >, + < 768000 3509 >, + < 864000 4173 >, +@@ -883,6 +884,7 @@ + cci-cpufreq { + target-dev = <&cci_cache>; + cpu-to-dev-map-0 = ++ < 302400 134400 >, + < 384000 134400 >, + < 600000 300000 >, + < 787200 384000 >, +@@ -892,6 +894,7 @@ + < 1536000 787200 >, + < 1632000 787200 >; + cpu-to-dev-map-4 = ++ < 302400 134400 >, + < 384000 134400 >, + < 480000 300000 >, + < 633600 384000 >, +@@ -919,6 +922,7 @@ + qcom,governor-per-policy; + + qcom,cpufreq-table-0 = ++ < 302400 >, + < 384000 >, + < 460800 >, + < 600000 >, +@@ -932,6 +936,7 @@ + < 1632000 >; + + qcom,cpufreq-table-4 = ++ < 302400 >, + < 384000 >, + < 480000 >, + < 633600 >, +@@ -966,6 +971,7 @@ + vdd-dig-supply = <&pm8994_s2_corner_ao>; + qcom,a53-speedbin0-v0 = + < 0 0>, ++ < 302400000 1>, + < 384000000 2>, + < 460800000 3>, + < 600000000 4>, +@@ -976,6 +982,7 @@ + < 1248000000 9>; + qcom,a53-speedbin1-v0 = + < 0 0>, ++ < 302400000 1>, + < 384000000 2>, + < 460800000 3>, + < 600000000 4>, +@@ -989,6 +996,7 @@ + < 1632000000 12>; + qcom,a57-speedbin0-v0 = + < 0 0>, ++ < 302400000 5>, + < 384000000 5>, + < 480000000 5>, + < 633600000 5>, +@@ -1007,7 +1015,7 @@ + qcom,cci-speedbin0-v0 = + < 0 0>, + < 134400000 2>, +- < 300000000 4>, ++ < 302400000 4>, + < 384000000 6>, + < 556800000 6>, + < 600000000 8>, +-- +2.9.3 + + +From b7e24657fb125b77bb5d9a39493040e1234c7c83 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Mon, 21 Nov 2016 21:40:09 -0500 +Subject: [PATCH 3/3] msm8992: bump oc voltages + +--- + arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +index 1ef9eb3..d2a875b 100644 +--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +@@ -673,11 +673,11 @@ + qcom,cpr-voltage-ceiling-override = + <0xFFFFFFFF 0 800000 800000 900000 900000 + 1000000 1000000 1115000 1115000 +- 1180000 1180000 1180000 1180000>; ++ 1180000 1180000 1180000 1200000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 655000 700000 735000 + 800000 835000 850000 875000 +- 950000 1000000 1000000 1000000>; ++ 950000 1000000 1000000 1100000>; + qcom,cpr-fuse-version-map = + <0 0xffffffff 0 0 0 0 0>, + <0 0xffffffff 1 0 0 0 0>, +@@ -849,13 +849,13 @@ + 900000 1000000 1000000 1000000 + 1115000 1115000 1115000 1115000 + 1115000 1115000 1180000 1180000 +- 1180000>; ++ 1200000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 640000 665000 690000 + 735000 745000 770000 785000 + 850000 860000 880000 900000 + 920000 935000 1000000 1000000 +- 1000000>; ++ 1100000>; + qcom,cpr-fuse-version-map = + <0xffffffff 0xffffffff 0 4 4 4 4>, + <0xffffffff 0xffffffff 1 4 4 4 4>, +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_kernel_lge_bullhead/0002-MMC_Tweak.patch b/Patches/LineageOS-14.1/android_kernel_lge_bullhead/0002-MMC_Tweak.patch new file mode 100644 index 00000000..0c6fc863 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_lge_bullhead/0002-MMC_Tweak.patch @@ -0,0 +1,42 @@ +From f24f2dec25043cf7e6ef0f80a65dde45f2f131dd Mon Sep 17 00:00:00 2001 +From: franciscofranco +Date: Wed, 20 Jan 2016 01:45:39 +0000 +Subject: [PATCH] IKSWM-6057: dts: mmc: remove wakeup on idle flag + +Remove the wakeup-on-idle flag can improve the mmc +performance(verified with iozone). No current drain +and other system performance impact. + +Change-Id: Ia90cdfb66569b5ee3713d2c9785a2b7a9d24760e +Signed-off-by: Lianwei Wang +Reviewed-on: http://gerrit.mot.com/785887 +SLTApproved: Slta Waiver +SME-Granted: SME Approvals Granted +Tested-by: Jira Key +Reviewed-by: Zhi-Ming Yuan +Submit-Approved: Jira Key +Signed-off-by: franciscofranco +--- + arch/arm/boot/dts/qcom/msm8992.dtsi | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi +index 5dedecb..dc70365 100644 +--- a/arch/arm/boot/dts/qcom/msm8992.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992.dtsi +@@ -1706,7 +1706,6 @@ + qcom,cpu-dma-latency-us = <301 70>; + qcom,cpu-affinity = "affine_cores"; + qcom,cpu-affinity-mask = <0x0f 0xf0>; +- qcom,wakeup-on-idle; + + qcom,msm-bus,name = "sdhc1"; + qcom,msm-bus,num-cases = <9>; +@@ -1746,7 +1745,6 @@ + qcom,cpu-dma-latency-us = <301 70>; + qcom,cpu-affinity = "affine_cores"; + qcom,cpu-affinity-mask = <0x0f 0xf0>; +- qcom,wakeup-on-idle; + + qcom,msm-bus,name = "sdhc2"; + qcom,msm-bus,num-cases = <8>; diff --git a/Patches/LineageOS-14.1/android_kernel_lge_hammerhead/0001-OverUnderClock.patch b/Patches/LineageOS-14.1/android_kernel_lge_hammerhead/0001-OverUnderClock.patch new file mode 100644 index 00000000..87c7e002 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_lge_hammerhead/0001-OverUnderClock.patch @@ -0,0 +1,757 @@ +From ec5d8918e9d3149ce489900f48d6e6ebd2fd5031 Mon Sep 17 00:00:00 2001 +From: Paul Reioux +Date: Sun, 20 Oct 2013 22:30:36 -0500 +Subject: [PATCH 1/5] Voltage Control: initial voltage control for MSM + Snapdragon 800 SOC + +Signed-off-by: Paul Reioux +Signed-off-by: flar2 +--- + arch/arm/mach-msm/Kconfig | 6 +++++ + arch/arm/mach-msm/acpuclock-krait.c | 48 +++++++++++++++++++++++++++++++++++++ + 2 files changed, 54 insertions(+) + +diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig +index ba5a33c..44db2ca 100644 +--- a/arch/arm/mach-msm/Kconfig ++++ b/arch/arm/mach-msm/Kconfig +@@ -1918,6 +1918,12 @@ config MSM_CPU_FREQ_MIN + + endif # CPU_FREQ_MSM + ++config CPU_VOLTAGE_TABLE ++ bool "Enable CPU Voltage Table via sysfs for adjustements" ++ default n ++ help ++ Krait User Votlage Control ++ + config MSM_AVS_HW + bool "Enable Adaptive Voltage Scaling (AVS)" + default n +diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c +index 84e2fc1..c7eceb1 100644 +--- a/arch/arm/mach-msm/acpuclock-krait.c ++++ b/arch/arm/mach-msm/acpuclock-krait.c +@@ -937,6 +937,54 @@ static void __init bus_init(const struct l2_level *l2_level) + dev_err(drv.dev, "initial bandwidth req failed (%d)\n", ret); + } + ++#ifdef CONFIG_CPU_VOLTAGE_TABLE ++ ++#define HFPLL_MIN_VDD 800000 ++#define HFPLL_MAX_VDD 1350000 ++ ++ssize_t acpuclk_get_vdd_levels_str(char *buf) { ++ ++ int i, len = 0; ++ ++ if (buf) { ++ mutex_lock(&driver_lock); ++ ++ for (i = 0; drv.acpu_freq_tbl[i].speed.khz; i++) { ++ /* updated to use uv required by 8x60 architecture - faux123 */ ++ len += sprintf(buf + len, "%8lu: %8d\n", drv.acpu_freq_tbl[i].speed.khz, ++ drv.acpu_freq_tbl[i].vdd_core ); ++ } ++ ++ mutex_unlock(&driver_lock); ++ } ++ return len; ++} ++ ++/* updated to use uv required by 8x60 architecture - faux123 */ ++void acpuclk_set_vdd(unsigned int khz, int vdd_uv) { ++ ++ int i; ++ unsigned int new_vdd_uv; ++ ++ mutex_lock(&driver_lock); ++ ++ for (i = 0; drv.acpu_freq_tbl[i].speed.khz; i++) { ++ if (khz == 0) ++ new_vdd_uv = min(max((unsigned int)(drv.acpu_freq_tbl[i].vdd_core + vdd_uv), ++ (unsigned int)HFPLL_MIN_VDD), (unsigned int)HFPLL_MAX_VDD); ++ else if ( drv.acpu_freq_tbl[i].speed.khz == khz) ++ new_vdd_uv = min(max((unsigned int)vdd_uv, ++ (unsigned int)HFPLL_MIN_VDD), (unsigned int)HFPLL_MAX_VDD); ++ else ++ continue; ++ ++ drv.acpu_freq_tbl[i].vdd_core = new_vdd_uv; ++ } ++ pr_warn("faux123: user voltage table modified!\n"); ++ mutex_unlock(&driver_lock); ++} ++#endif /* CONFIG_CPU_VOTALGE_TABLE */ ++ + #ifdef CONFIG_CPU_FREQ_MSM + static struct cpufreq_frequency_table freq_table[NR_CPUS][35]; + +-- +2.9.3 + + +From 1e4ac53ff15efeaf4cb3998b9ba009095d582413 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Sat, 9 Nov 2013 00:17:33 -0500 +Subject: [PATCH 2/5] Increase voltage limits + +Signed-off-by: flar2 +--- + arch/arm/boot/dts/msm8974-regulator.dtsi | 8 ++++---- + arch/arm/mach-msm/acpuclock-8974.c | 8 ++++---- + arch/arm/mach-msm/acpuclock-krait.c | 4 ++-- + 3 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/arch/arm/boot/dts/msm8974-regulator.dtsi b/arch/arm/boot/dts/msm8974-regulator.dtsi +index 9de41f4..6a38980 100644 +--- a/arch/arm/boot/dts/msm8974-regulator.dtsi ++++ b/arch/arm/boot/dts/msm8974-regulator.dtsi +@@ -477,7 +477,7 @@ + <0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1100000>; ++ regulator-max-microvolt = <1200000>; + qcom,headroom-voltage = <150000>; + qcom,retention-voltage = <675000>; + qcom,ldo-default-voltage = <750000>; +@@ -493,7 +493,7 @@ + <0xf909a800 0x1000>; /* APCS_ALIAS1_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1100000>; ++ regulator-max-microvolt = <1200000>; + qcom,headroom-voltage = <150000>; + qcom,retention-voltage = <675000>; + qcom,ldo-default-voltage = <750000>; +@@ -509,7 +509,7 @@ + <0xf90aa800 0x1000>; /* APCS_ALIAS2_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1100000>; ++ regulator-max-microvolt = <1200000>; + qcom,headroom-voltage = <150000>; + qcom,retention-voltage = <675000>; + qcom,ldo-default-voltage = <750000>; +@@ -525,7 +525,7 @@ + <0xf90ba800 0x1000>; /* APCS_ALIAS3_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1100000>; ++ regulator-max-microvolt = <1200000>; + qcom,headroom-voltage = <150000>; + qcom,retention-voltage = <675000>; + qcom,ldo-default-voltage = <750000>; +diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c +index 694d783..8b7d74e 100644 +--- a/arch/arm/mach-msm/acpuclock-8974.c ++++ b/arch/arm/mach-msm/acpuclock-8974.c +@@ -55,7 +55,7 @@ static struct scalable scalable[] __initdata = { + .hfpll_phys_base = 0xF908A000, + .l2cpmr_iaddr = 0x4501, + .sec_clk_sel = 2, +- .vreg[VREG_CORE] = { "krait0", 1100000 }, ++ .vreg[VREG_CORE] = { "krait0", 1200000 }, + .vreg[VREG_MEM] = { "krait0_mem", 1050000 }, + .vreg[VREG_DIG] = { "krait0_dig", LVL_HIGH }, + .vreg[VREG_HFPLL_A] = { "krait0_hfpll", 1800000 }, +@@ -64,7 +64,7 @@ static struct scalable scalable[] __initdata = { + .hfpll_phys_base = 0xF909A000, + .l2cpmr_iaddr = 0x5501, + .sec_clk_sel = 2, +- .vreg[VREG_CORE] = { "krait1", 1100000 }, ++ .vreg[VREG_CORE] = { "krait1", 1200000 }, + .vreg[VREG_MEM] = { "krait1_mem", 1050000 }, + .vreg[VREG_DIG] = { "krait1_dig", LVL_HIGH }, + .vreg[VREG_HFPLL_A] = { "krait1_hfpll", 1800000 }, +@@ -73,7 +73,7 @@ static struct scalable scalable[] __initdata = { + .hfpll_phys_base = 0xF90AA000, + .l2cpmr_iaddr = 0x6501, + .sec_clk_sel = 2, +- .vreg[VREG_CORE] = { "krait2", 1100000 }, ++ .vreg[VREG_CORE] = { "krait2", 1200000 }, + .vreg[VREG_MEM] = { "krait2_mem", 1050000 }, + .vreg[VREG_DIG] = { "krait2_dig", LVL_HIGH }, + .vreg[VREG_HFPLL_A] = { "krait2_hfpll", 1800000 }, +@@ -82,7 +82,7 @@ static struct scalable scalable[] __initdata = { + .hfpll_phys_base = 0xF90BA000, + .l2cpmr_iaddr = 0x7501, + .sec_clk_sel = 2, +- .vreg[VREG_CORE] = { "krait3", 1100000 }, ++ .vreg[VREG_CORE] = { "krait3", 1200000 }, + .vreg[VREG_MEM] = { "krait3_mem", 1050000 }, + .vreg[VREG_DIG] = { "krait3_dig", LVL_HIGH }, + .vreg[VREG_HFPLL_A] = { "krait3_hfpll", 1800000 }, +diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c +index c7eceb1..2211ad3 100644 +--- a/arch/arm/mach-msm/acpuclock-krait.c ++++ b/arch/arm/mach-msm/acpuclock-krait.c +@@ -939,8 +939,8 @@ static void __init bus_init(const struct l2_level *l2_level) + + #ifdef CONFIG_CPU_VOLTAGE_TABLE + +-#define HFPLL_MIN_VDD 800000 +-#define HFPLL_MAX_VDD 1350000 ++#define HFPLL_MIN_VDD 500000 ++#define HFPLL_MAX_VDD 1200000 + + ssize_t acpuclk_get_vdd_levels_str(char *buf) { + +-- +2.9.3 + + +From 28d7063d0b5a45d328633e4a59d20ac148f1fadd Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Sat, 9 Nov 2013 01:27:36 -0500 +Subject: [PATCH 3/5] CPU overclocking + +Signed-off-by: flar2 +--- + arch/arm/mach-msm/acpuclock-8974.c | 42 ++++++++++ + arch/arm/mach-msm/acpuclock-krait.c | 148 +++++++++++++++++++++++++++++++++++- + 2 files changed, 189 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c +index 8b7d74e..cb878d9 100644 +--- a/arch/arm/mach-msm/acpuclock-8974.c ++++ b/arch/arm/mach-msm/acpuclock-8974.c +@@ -710,6 +710,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs0[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1070000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1085000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1100000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1115000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1130000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1145000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1160000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1175000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1195000, 831 }, + { 0, { 0 } } + }; + +@@ -741,6 +747,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs1[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1045000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1060000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1075000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1090000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1105000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1120000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1135000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1150000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1165000, 831 }, + { 0, { 0 } } + }; + +@@ -772,6 +784,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs2[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1020000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1035000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1050000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1065000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1080000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1095000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1110000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1125000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1140000, 831 }, + { 0, { 0 } } + }; + +@@ -803,6 +821,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs3[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 995000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1010000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1025000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1040000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1055000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1070000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1085000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1100000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1115000, 831 }, + { 0, { 0 } } + }; + +@@ -834,6 +858,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs4[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 975000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 985000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1000000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1015000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1030000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1045000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1060000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1075000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1090000, 831 }, + { 0, { 0 } } + }; + +@@ -865,6 +895,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs5[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 955000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 965000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 975000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 990000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1005000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1020000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1035000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1050000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1065000, 831 }, + { 0, { 0 } } + }; + +@@ -896,6 +932,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs6[] __initdata = { + { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 930000, 627 }, + { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 940000, 659 }, + { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 950000, 691 }, ++ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 960000, 714 }, ++ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 975000, 738 }, ++ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 990000, 761 }, ++ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1005000, 784 }, ++ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1020000, 808 }, ++ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1035000, 831 }, + { 0, { 0 } } + }; + +diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c +index 2211ad3..bcd3e44 100644 +--- a/arch/arm/mach-msm/acpuclock-krait.c ++++ b/arch/arm/mach-msm/acpuclock-krait.c +@@ -45,6 +45,113 @@ + #define PRI_SRC_SEL_HFPLL 1 + #define PRI_SRC_SEL_HFPLL_DIV2 2 + ++ ++/** elementalx defs **/ ++static int uv_bin = 2; ++static uint32_t arg_max_oc0 = 2265600; ++static uint32_t arg_max_oc1 = 2265600; ++static uint32_t arg_max_oc2 = 2265600; ++static uint32_t arg_max_oc3 = 2265600; ++ ++int pvs_number = 0; ++module_param(pvs_number, int, 0755); ++ ++/* boot arg max_oc */ ++static int __init cpufreq_read_arg_max_oc0(char *max_oc0) ++{ ++ unsigned long ui_khz; ++ int err; ++ err = strict_strtoul(max_oc0, 0, &ui_khz); ++ if (err) { ++ arg_max_oc0 = 2265600; ++ printk(KERN_INFO "[elementalx]: max_oc0='%i'\n", arg_max_oc0); ++ return 1; ++ } ++ ++ arg_max_oc0 = ui_khz; ++ ++ return 0; ++} ++__setup("max_oc0=", cpufreq_read_arg_max_oc0); ++ ++static int __init cpufreq_read_arg_max_oc1(char *max_oc1) ++{ ++ unsigned long ui_khz; ++ int err; ++ err = strict_strtoul(max_oc1, 0, &ui_khz); ++ if (err) { ++ arg_max_oc1 = 2265600; ++ printk(KERN_INFO "[elementalx]: max_oc1='%i'\n", arg_max_oc1); ++ return 1; ++ } ++ ++ arg_max_oc1 = ui_khz; ++ ++ return 0; ++} ++__setup("max_oc1=", cpufreq_read_arg_max_oc1); ++ ++static int __init cpufreq_read_arg_max_oc2(char *max_oc2) ++{ ++ unsigned long ui_khz; ++ int err; ++ err = strict_strtoul(max_oc2, 0, &ui_khz); ++ if (err) { ++ arg_max_oc2 = 2265600; ++ printk(KERN_INFO "[elementalx]: max_oc2='%i'\n", arg_max_oc2); ++ return 1; ++ } ++ ++ arg_max_oc2 = ui_khz; ++ ++ return 0; ++} ++__setup("max_oc2=", cpufreq_read_arg_max_oc2); ++ ++static int __init cpufreq_read_arg_max_oc3(char *max_oc3) ++{ ++ unsigned long ui_khz; ++ int err; ++ err = strict_strtoul(max_oc3, 0, &ui_khz); ++ if (err) { ++ arg_max_oc3 = 2265600; ++ printk(KERN_INFO "[elementalx]: max_oc3='%i'\n", arg_max_oc3); ++ return 1; ++ } ++ ++ arg_max_oc3 = ui_khz; ++ ++ return 0; ++} ++__setup("max_oc3=", cpufreq_read_arg_max_oc3); ++ ++static int __init get_uv_level(char *vdd_uv) ++{ ++ if (strcmp(vdd_uv, "0") == 0) { ++ uv_bin = 0; ++ } else if (strcmp(vdd_uv, "1") == 0) { ++ uv_bin = 1; ++ } else if (strcmp(vdd_uv, "2") == 0) { ++ uv_bin = 2; ++ } else if (strcmp(vdd_uv, "3") == 0) { ++ uv_bin = 3; ++ } else if (strcmp(vdd_uv, "4") == 0) { ++ uv_bin = 4; ++ } else if (strcmp(vdd_uv, "5") == 0) { ++ uv_bin = 5; ++ } else if (strcmp(vdd_uv, "6") == 0) { ++ uv_bin = 6; ++ } else { ++ uv_bin = 0; ++ } ++ return 0; ++} ++ ++__setup("vdd_uv=", get_uv_level); ++ ++/** end elementalx defs **/ ++ ++ + static DEFINE_MUTEX(driver_lock); + static DEFINE_SPINLOCK(l2_lock); + +@@ -992,13 +1099,14 @@ static void __init cpufreq_table_init(void) + { + int cpu; + int freq_cnt = 0; ++ uint32_t limit_max_oc[4] = {arg_max_oc0, arg_max_oc1, arg_max_oc2, arg_max_oc3}; + + for_each_possible_cpu(cpu) { + int i; + /* Construct the freq_table tables from acpu_freq_tbl. */ + for (i = 0, freq_cnt = 0; drv.acpu_freq_tbl[i].speed.khz != 0 + && freq_cnt < ARRAY_SIZE(*freq_table); i++) { +- if (drv.acpu_freq_tbl[i].use_for_scaling) { ++ if (drv.acpu_freq_tbl[i].speed.khz <= limit_max_oc[cpu]) { + freq_table[cpu][freq_cnt].index = freq_cnt; + freq_table[cpu][freq_cnt].frequency + = drv.acpu_freq_tbl[i].speed.khz; +@@ -1109,6 +1217,39 @@ static void __init krait_apply_vmin(struct acpu_level *tbl) + } + } + ++static void apply_undervolting(void) ++{ ++ if (uv_bin == 6) { ++ drv.acpu_freq_tbl[0].vdd_core = 625000; ++ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core ); ++ } ++ ++ if (uv_bin == 5) { ++ drv.acpu_freq_tbl[0].vdd_core = 650000; ++ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core ); ++ } ++ ++ if (uv_bin == 4) { ++ drv.acpu_freq_tbl[0].vdd_core = 675000; ++ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core ); ++ } ++ ++ if (uv_bin == 3) { ++ drv.acpu_freq_tbl[0].vdd_core = 700000; ++ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core ); ++ } ++ ++ if (uv_bin == 2) { ++ drv.acpu_freq_tbl[0].vdd_core = 725000; ++ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core ); ++ } ++ ++ if (uv_bin == 1) { ++ drv.acpu_freq_tbl[0].vdd_core = 750000; ++ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core ); ++ } ++} ++ + void __init get_krait_bin_format_a(void __iomem *base, struct bin_info *bin) + { + u32 pte_efuse = readl_relaxed(base); +@@ -1143,6 +1284,8 @@ void __init get_krait_bin_format_b(void __iomem *base, struct bin_info *bin) + } + bin->speed_valid = true; + ++ pvs_number = bin->pvs; ++ + /* Check PVS_BLOW_STATUS */ + pte_efuse = readl_relaxed(base + 0x4); + bin->pvs_valid = !!(pte_efuse & BIT(21)); +@@ -1229,6 +1372,9 @@ static void __init hw_init(void) + if (krait_needs_vmin()) + krait_apply_vmin(drv.acpu_freq_tbl); + ++ if (uv_bin) ++ apply_undervolting(); ++ + l2->hfpll_base = ioremap(l2->hfpll_phys_base, SZ_32); + BUG_ON(!l2->hfpll_base); + +-- +2.9.3 + + +From cbc2f6c8893c773d4dbdf9d5f538f6b44a02baa4 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Sat, 9 Nov 2013 08:43:31 -0500 +Subject: [PATCH 4/5] L2 cache and bus bandwidth overclocking + +Signed-off-by: flar2 +--- + arch/arm/mach-msm/acpuclock-8974.c | 46 +++++++++++++++++++++++++++++++++++++ + arch/arm/mach-msm/acpuclock-krait.c | 2 +- + 2 files changed, 47 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c +index cb878d9..933bd0e 100644 +--- a/arch/arm/mach-msm/acpuclock-8974.c ++++ b/arch/arm/mach-msm/acpuclock-8974.c +@@ -28,6 +28,8 @@ + #define LVL_NOM RPM_REGULATOR_CORNER_NORMAL + #define LVL_HIGH RPM_REGULATOR_CORNER_SUPER_TURBO + ++static int opt_bin = 0; ++ + static struct hfpll_data hfpll_data __initdata = { + .mode_offset = 0x00, + .l_offset = 0x04, +@@ -257,6 +259,7 @@ static struct msm_bus_paths bw_level_tbl_v2[] __initdata = { + [6] = BW_MBPS(4912), /* At least 614 MHz on bus. */ + [7] = BW_MBPS(6400), /* At least 800 MHz on bus. */ + [8] = BW_MBPS(7448), /* At least 931 MHz on bus. */ ++ [9] = BW_MBPS(8000), /* At least 1000 MHz on bus. */ + }; + + static struct l2_level l2_freq_tbl_v2[] __initdata = { +@@ -283,6 +286,30 @@ static struct l2_level l2_freq_tbl_v2[] __initdata = { + { } + }; + ++static struct l2_level l2_freq_tbl_v2_elementalx[] __initdata = { ++ [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 950000, 0 }, ++ [1] = { { 345600, HFPLL, 2, 36 }, LVL_LOW, 950000, 1 }, ++ [2] = { { 422400, HFPLL, 2, 44 }, LVL_LOW, 950000, 2 }, ++ [3] = { { 499200, HFPLL, 2, 52 }, LVL_LOW, 950000, 3 }, ++ [4] = { { 576000, HFPLL, 1, 30 }, LVL_LOW, 950000, 4 }, ++ [5] = { { 652800, HFPLL, 1, 34 }, LVL_NOM, 950000, 4 }, ++ [6] = { { 729600, HFPLL, 1, 38 }, LVL_NOM, 950000, 4 }, ++ [7] = { { 806400, HFPLL, 1, 42 }, LVL_NOM, 950000, 4 }, ++ [8] = { { 883200, HFPLL, 1, 46 }, LVL_NOM, 950000, 5 }, ++ [9] = { { 960000, HFPLL, 1, 50 }, LVL_NOM, 950000, 5 }, ++ [10] = { { 1036800, HFPLL, 1, 54 }, LVL_NOM, 950000, 5 }, ++ [11] = { { 1113600, HFPLL, 1, 58 }, LVL_HIGH, 1050000, 6 }, ++ [12] = { { 1190400, HFPLL, 1, 62 }, LVL_HIGH, 1050000, 6 }, ++ [13] = { { 1267200, HFPLL, 1, 66 }, LVL_HIGH, 1050000, 6 }, ++ [14] = { { 1344000, HFPLL, 1, 70 }, LVL_HIGH, 1050000, 6 }, ++ [15] = { { 1420800, HFPLL, 1, 74 }, LVL_HIGH, 1050000, 6 }, ++ [16] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 6 }, ++ [17] = { { 1574400, HFPLL, 1, 82 }, LVL_HIGH, 1050000, 7 }, ++ [18] = { { 1651200, HFPLL, 1, 86 }, LVL_HIGH, 1050000, 7 }, ++ [19] = { { 1804800, HFPLL, 1, 94 }, LVL_HIGH, 1050000, 9 }, ++ { } ++}; ++ + static struct acpu_level acpu_freq_tbl_2g_pvs0[] __initdata = { + { 1, { 300000, PLL_0, 0, 0 }, L2(0), 815000, 73 }, + { 0, { 345600, HFPLL, 2, 36 }, L2(1), 825000, 85 }, +@@ -1003,6 +1030,20 @@ static struct acpuclk_krait_params acpuclk_8974_params __initdata = { + .stby_khz = 300000, + }; + ++static int __init get_opt_level(char *l2_opt) ++{ ++ if (strcmp(l2_opt, "0") == 0) { ++ opt_bin = 0; ++ } else if (strcmp(l2_opt, "1") == 0) { ++ opt_bin = 1; ++ } else { ++ opt_bin = 0; ++ } ++ return 0; ++} ++ ++__setup("l2_opt=", get_opt_level); ++ + static void __init apply_v1_l2_workaround(void) + { + static struct l2_level resticted_l2_tbl[] __initdata = { +@@ -1042,6 +1083,11 @@ static int __init acpuclk_8974_probe(struct platform_device *pdev) + apply_v1_l2_workaround(); + } + ++ if (opt_bin == 1) { ++ acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v2_elementalx; ++ acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v2_elementalx); ++ } ++ + return acpuclk_krait_init(&pdev->dev, &acpuclk_8974_params); + } + +diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c +index bcd3e44..a1c8fbb 100644 +--- a/arch/arm/mach-msm/acpuclock-krait.c ++++ b/arch/arm/mach-msm/acpuclock-krait.c +@@ -47,7 +47,7 @@ + + + /** elementalx defs **/ +-static int uv_bin = 2; ++static int uv_bin = 0; + static uint32_t arg_max_oc0 = 2265600; + static uint32_t arg_max_oc1 = 2265600; + static uint32_t arg_max_oc2 = 2265600; +-- +2.9.3 + + +From bfd08d2e2a997ac4f5b6e8353be663472643b746 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Mon, 11 Nov 2013 00:42:12 -0500 +Subject: [PATCH 5/5] More overclocking options + +Signed-off-by: flar2 +--- + arch/arm/mach-msm/acpuclock-8974.c | 50 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 50 insertions(+) + +diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c +index 933bd0e..b436816 100644 +--- a/arch/arm/mach-msm/acpuclock-8974.c ++++ b/arch/arm/mach-msm/acpuclock-8974.c +@@ -310,6 +310,29 @@ static struct l2_level l2_freq_tbl_v2_elementalx[] __initdata = { + { } + }; + ++static struct l2_level l2_freq_tbl_v2_ultra[] __initdata = { ++ [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 950000, 0 }, ++ [1] = { { 345600, HFPLL, 2, 36 }, LVL_LOW, 950000, 1 }, ++ [2] = { { 422400, HFPLL, 2, 44 }, LVL_LOW, 950000, 2 }, ++ [3] = { { 499200, HFPLL, 2, 52 }, LVL_LOW, 950000, 3 }, ++ [4] = { { 576000, HFPLL, 1, 30 }, LVL_LOW, 950000, 4 }, ++ [5] = { { 652800, HFPLL, 1, 34 }, LVL_NOM, 950000, 4 }, ++ [6] = { { 729600, HFPLL, 1, 38 }, LVL_NOM, 950000, 4 }, ++ [7] = { { 806400, HFPLL, 1, 42 }, LVL_NOM, 950000, 4 }, ++ [8] = { { 883200, HFPLL, 1, 46 }, LVL_NOM, 950000, 5 }, ++ [9] = { { 960000, HFPLL, 1, 50 }, LVL_NOM, 950000, 5 }, ++ [10] = { { 1036800, HFPLL, 1, 54 }, LVL_NOM, 950000, 5 }, ++ [11] = { { 1113600, HFPLL, 1, 58 }, LVL_HIGH, 1050000, 6 }, ++ [12] = { { 1190400, HFPLL, 1, 62 }, LVL_HIGH, 1050000, 6 }, ++ [13] = { { 1267200, HFPLL, 1, 66 }, LVL_HIGH, 1050000, 6 }, ++ [14] = { { 1344000, HFPLL, 1, 70 }, LVL_HIGH, 1050000, 6 }, ++ [15] = { { 1420800, HFPLL, 1, 74 }, LVL_HIGH, 1050000, 6 }, ++ [16] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 6 }, ++ [17] = { { 1574400, HFPLL, 1, 82 }, LVL_HIGH, 1050000, 7 }, ++ [18] = { { 1651200, HFPLL, 1, 86 }, LVL_HIGH, 1050000, 7 }, ++ [19] = { { 1920000, HFPLL, 1, 100 }, LVL_HIGH, 1050000, 9 }, ++ { } ++}; + static struct acpu_level acpu_freq_tbl_2g_pvs0[] __initdata = { + { 1, { 300000, PLL_0, 0, 0 }, L2(0), 815000, 73 }, + { 0, { 345600, HFPLL, 2, 36 }, L2(1), 825000, 85 }, +@@ -743,6 +766,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs0[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1160000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1175000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1195000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1195000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1195000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1195000, 897 }, + { 0, { 0 } } + }; + +@@ -780,6 +806,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs1[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1135000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1150000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1165000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1180000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1195000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1195000, 897 }, + { 0, { 0 } } + }; + +@@ -817,6 +846,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs2[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1110000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1125000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1140000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1165000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1180000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1195000, 897 }, + { 0, { 0 } } + }; + +@@ -854,6 +886,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs3[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1085000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1100000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1115000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1130000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1145000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1160000, 897 }, + { 0, { 0 } } + }; + +@@ -891,6 +926,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs4[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1060000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1075000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1090000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1105000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1120000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1135000, 897 }, + { 0, { 0 } } + }; + +@@ -928,6 +966,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs5[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1035000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1050000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1065000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1080000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1095000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1110000, 897 }, + { 0, { 0 } } + }; + +@@ -965,6 +1006,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs6[] __initdata = { + { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1005000, 784 }, + { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1020000, 808 }, + { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1035000, 831 }, ++ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1050000, 854 }, ++ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1065000, 876 }, ++ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1080000, 897 }, + { 0, { 0 } } + }; + +@@ -1036,6 +1080,8 @@ static int __init get_opt_level(char *l2_opt) + opt_bin = 0; + } else if (strcmp(l2_opt, "1") == 0) { + opt_bin = 1; ++ } else if (strcmp(l2_opt, "2") == 0) { ++ opt_bin = 2; + } else { + opt_bin = 0; + } +@@ -1087,6 +1133,10 @@ static int __init acpuclk_8974_probe(struct platform_device *pdev) + acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v2_elementalx; + acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v2_elementalx); + } ++ if (opt_bin == 2) { ++ acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v2_ultra; ++ acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v2_ultra); ++ } + + return acpuclk_krait_init(&pdev->dev, &acpuclk_8974_params); + } +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_kernel_lge_mako/0001-OverUnderClock.patch b/Patches/LineageOS-14.1/android_kernel_lge_mako/0001-OverUnderClock.patch new file mode 100644 index 00000000..d6341012 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_lge_mako/0001-OverUnderClock.patch @@ -0,0 +1,609 @@ +From 92d396b53cbdf91a7b61a857ca335f39cdb0f8bb Mon Sep 17 00:00:00 2001 +From: anarkia1976 +Date: Sun, 12 Jan 2014 20:26:27 +0100 +Subject: [PATCH 1/4] msm: cpu: overclock: added low (162Mhz) and high + (1944Mhz) cpu + +--- + arch/arm/mach-msm/Kconfig | 12 +++++ + arch/arm/mach-msm/acpuclock-8064.c | 91 +++++++++++++++++++++++++++++++++++++ + arch/arm/mach-msm/acpuclock-krait.c | 8 +++- + arch/arm/mach-msm/msm_dcvs.c | 5 ++ + 4 files changed, 115 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig +index 5f37d1d..b5ab505 100644 +--- a/arch/arm/mach-msm/Kconfig ++++ b/arch/arm/mach-msm/Kconfig +@@ -1634,6 +1634,18 @@ config MSM_CPU_FREQ_MIN + + endif # CPU_FREQ_MSM + ++config LOW_CPUCLOCKS ++ bool "Enable ultra low CPU clocks" ++ default n ++ help ++ Ultra low cpu frequencies enabled for CPU and L2 Cache ++ ++config CPU_OVERCLOCK ++ bool "Enable CPU Overclocking option" ++ default n ++ help ++ Krait overclocking up to 1.9 GHz ++ + config MSM_AVS_HW + bool "Enable Adaptive Voltage Scaling (AVS)" + default n +diff --git a/arch/arm/mach-msm/acpuclock-8064.c b/arch/arm/mach-msm/acpuclock-8064.c +index 8262946..f40edd3 100644 +--- a/arch/arm/mach-msm/acpuclock-8064.c ++++ b/arch/arm/mach-msm/acpuclock-8064.c +@@ -47,7 +47,11 @@ static struct scalable scalable[] __initdata = { + .aux_clk_sel = 3, + .sec_clk_sel = 2, + .l2cpmr_iaddr = 0x4501, ++#ifdef CONFIG_CPU_OVERCLOCK ++ .vreg[VREG_CORE] = { "krait0", 1450000 }, ++#else + .vreg[VREG_CORE] = { "krait0", 1300000 }, ++#endif + .vreg[VREG_MEM] = { "krait0_mem", 1150000 }, + .vreg[VREG_DIG] = { "krait0_dig", 1150000 }, + .vreg[VREG_HFPLL_A] = { "krait0_hfpll", 1800000 }, +@@ -58,7 +62,11 @@ static struct scalable scalable[] __initdata = { + .aux_clk_sel = 3, + .sec_clk_sel = 2, + .l2cpmr_iaddr = 0x5501, ++#ifdef CONFIG_CPU_OVERCLOCK ++ .vreg[VREG_CORE] = { "krait1", 1450000 }, ++#else + .vreg[VREG_CORE] = { "krait1", 1300000 }, ++#endif + .vreg[VREG_MEM] = { "krait1_mem", 1150000 }, + .vreg[VREG_DIG] = { "krait1_dig", 1150000 }, + .vreg[VREG_HFPLL_A] = { "krait1_hfpll", 1800000 }, +@@ -69,7 +77,11 @@ static struct scalable scalable[] __initdata = { + .aux_clk_sel = 3, + .sec_clk_sel = 2, + .l2cpmr_iaddr = 0x6501, ++#ifdef CONFIG_CPU_OVERCLOCK ++ .vreg[VREG_CORE] = { "krait2", 1450000 }, ++#else + .vreg[VREG_CORE] = { "krait2", 1300000 }, ++#endif + .vreg[VREG_MEM] = { "krait2_mem", 1150000 }, + .vreg[VREG_DIG] = { "krait2_dig", 1150000 }, + .vreg[VREG_HFPLL_A] = { "krait2_hfpll", 1800000 }, +@@ -80,7 +92,11 @@ static struct scalable scalable[] __initdata = { + .aux_clk_sel = 3, + .sec_clk_sel = 2, + .l2cpmr_iaddr = 0x7501, ++#ifdef CONFIG_CPU_OVERCLOCK ++ .vreg[VREG_CORE] = { "krait3", 1450000 }, ++#else + .vreg[VREG_CORE] = { "krait3", 1300000 }, ++#endif + .vreg[VREG_MEM] = { "krait3_mem", 1150000 }, + .vreg[VREG_DIG] = { "krait3_dig", 1150000 }, + .vreg[VREG_HFPLL_A] = { "krait3_hfpll", 1800000 }, +@@ -116,6 +132,24 @@ static struct msm_bus_scale_pdata bus_scale_data __initdata = { + }; + + static struct l2_level l2_freq_tbl[] __initdata = { ++#ifdef CONFIG_LOW_CPUCLOCKS ++ [0] = { { 378000, HFPLL, 2, 0x1C }, 950000, 1050000, 1 }, ++ [1] = { { 384000, PLL_8, 0, 0x00 }, 950000, 1050000, 1 }, ++ [2] = { { 432000, HFPLL, 2, 0x20 }, 1050000, 1050000, 2 }, ++ [3] = { { 486000, HFPLL, 2, 0x24 }, 1050000, 1050000, 2 }, ++ [4] = { { 540000, HFPLL, 2, 0x28 }, 1050000, 1050000, 2 }, ++ [5] = { { 594000, HFPLL, 1, 0x16 }, 1050000, 1050000, 2 }, ++ [6] = { { 648000, HFPLL, 1, 0x18 }, 1050000, 1050000, 4 }, ++ [7] = { { 702000, HFPLL, 1, 0x1A }, 1150000, 1150000, 4 }, ++ [8] = { { 756000, HFPLL, 1, 0x1C }, 1150000, 1150000, 4 }, ++ [9] = { { 810000, HFPLL, 1, 0x1E }, 1150000, 1150000, 4 }, ++ [10] = { { 864000, HFPLL, 1, 0x20 }, 1150000, 1150000, 4 }, ++ [11] = { { 918000, HFPLL, 1, 0x22 }, 1150000, 1150000, 5 }, ++ [12] = { { 972000, HFPLL, 1, 0x24 }, 1150000, 1150000, 5 }, ++ [13] = { { 1026000, HFPLL, 1, 0x26 }, 1150000, 1150000, 5 }, ++ [14] = { { 1080000, HFPLL, 1, 0x28 }, 1150000, 1150000, 5 }, ++ [15] = { { 1134000, HFPLL, 1, 0x2A }, 1150000, 1150000, 5 }, ++#else + [0] = { { 384000, PLL_8, 0, 0x00 }, 950000, 1050000, 1 }, + [1] = { { 432000, HFPLL, 2, 0x20 }, 1050000, 1050000, 2 }, + [2] = { { 486000, HFPLL, 2, 0x24 }, 1050000, 1050000, 2 }, +@@ -131,11 +165,19 @@ static struct l2_level l2_freq_tbl[] __initdata = { + [12] = { { 1026000, HFPLL, 1, 0x26 }, 1150000, 1150000, 5 }, + [13] = { { 1080000, HFPLL, 1, 0x28 }, 1150000, 1150000, 5 }, + [14] = { { 1134000, HFPLL, 1, 0x2A }, 1150000, 1150000, 5 }, ++#endif + { } + }; + + static struct acpu_level tbl_slow[] __initdata = { ++#ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 }, ++ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 }, ++ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 950000 }, ++ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 925000 }, ++#else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 }, ++#endif + { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 975000 }, + { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 975000 }, + { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 1000000 }, +@@ -157,11 +199,25 @@ static struct acpu_level tbl_slow[] __initdata = { + { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1237500 }, + { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1237500 }, + { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1250000 }, ++#ifdef CONFIG_CPU_OVERCLOCK ++ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1300000 }, ++ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1350000 }, ++ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1400000 }, ++ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1425000 }, ++ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1450000 }, ++#endif + { 0, { 0 } } + }; + + static struct acpu_level tbl_nom[] __initdata = { ++#ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 825000 }, ++ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 850000 }, ++ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 }, ++ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 875000 }, ++#else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 }, ++#endif + { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 925000 }, + { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 }, + { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 950000 }, +@@ -183,11 +239,25 @@ static struct acpu_level tbl_nom[] __initdata = { + { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1187500 }, + { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1187500 }, + { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1200000 }, ++#ifdef CONFIG_CPU_OVERCLOCK ++ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1250000 }, ++ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1300000 }, ++ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1350000 }, ++ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1375000 }, ++ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1400000 }, ++#endif + { 0, { 0 } } + }; + + static struct acpu_level tbl_fast[] __initdata = { ++#ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 }, ++ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 }, ++ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 }, ++ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 }, ++#else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 }, ++#endif + { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 }, + { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 }, + { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 }, +@@ -209,11 +279,25 @@ static struct acpu_level tbl_fast[] __initdata = { + { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1137500 }, + { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1137500 }, + { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1150000 }, ++#ifdef CONFIG_CPU_OVERCLOCK ++ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1200000 }, ++ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1250000 }, ++ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1300000 }, ++ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1325000 }, ++ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1350000 }, ++#endif + { 0, { 0 } } + }; + + static struct acpu_level tbl_faster[] __initdata = { ++#ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 }, ++ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 }, ++ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 }, ++ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 }, ++#else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 }, ++#endif + { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 }, + { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 }, + { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 }, +@@ -235,6 +319,13 @@ static struct acpu_level tbl_faster[] __initdata = { + { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1112500 }, + { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1112500 }, + { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1125000 }, ++#ifdef CONFIG_CPU_OVERCLOCK ++ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1150000 }, ++ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1200000 }, ++ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1250000 }, ++ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1275000 }, ++ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1300000 }, ++#endif + { 0, { 0 } } + }; + +diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c +index e3a3f54..97f6f39 100644 +--- a/arch/arm/mach-msm/acpuclock-krait.c ++++ b/arch/arm/mach-msm/acpuclock-krait.c +@@ -45,6 +45,12 @@ + #define PRI_SRC_SEL_HFPLL 1 + #define PRI_SRC_SEL_HFPLL_DIV2 2 + ++#ifdef CONFIG_LOW_CPUCLOCKS ++#define FREQ_TABLE_SIZE 39 ++#else ++#define FREQ_TABLE_SIZE 35 ++#endif ++ + static DEFINE_MUTEX(driver_lock); + static DEFINE_SPINLOCK(l2_lock); + +@@ -913,7 +919,7 @@ static void __init bus_init(const struct l2_level *l2_level) + } + + #ifdef CONFIG_CPU_FREQ_MSM +-static struct cpufreq_frequency_table freq_table[NR_CPUS][35]; ++static struct cpufreq_frequency_table freq_table[NR_CPUS][FREQ_TABLE_SIZE]; + + static void __init cpufreq_table_init(void) + { +diff --git a/arch/arm/mach-msm/msm_dcvs.c b/arch/arm/mach-msm/msm_dcvs.c +index 1a919fc..1d5e289 100644 +--- a/arch/arm/mach-msm/msm_dcvs.c ++++ b/arch/arm/mach-msm/msm_dcvs.c +@@ -146,7 +146,12 @@ static struct dcvs_core core_list[CORES_MAX]; + + static struct kobject *cores_kobj; + ++#ifdef CONFIG_CPU_OVERCLOCK ++#define DCVS_MAX_NUM_FREQS 20 ++#else + #define DCVS_MAX_NUM_FREQS 15 ++#endif ++ + static struct msm_dcvs_freq_entry cpu_freq_tbl[DCVS_MAX_NUM_FREQS]; + static unsigned num_cpu_freqs; + static struct msm_dcvs_platform_data *dcvs_pdata; +-- +2.10.2 + + +From f498c327190b1a30c25010e0ba3600470fc9251b Mon Sep 17 00:00:00 2001 +From: anarkia1976 +Date: Wed, 5 Feb 2014 07:15:12 +0100 +Subject: [PATCH 2/4] msm: cpu: overclock: added ultra low (81Mhz) cpu clock + frequencies + +--- + arch/arm/mach-msm/acpuclock-8064.c | 4 ++++ + arch/arm/mach-msm/acpuclock-krait.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-msm/acpuclock-8064.c b/arch/arm/mach-msm/acpuclock-8064.c +index f40edd3..ba8fe72 100644 +--- a/arch/arm/mach-msm/acpuclock-8064.c ++++ b/arch/arm/mach-msm/acpuclock-8064.c +@@ -171,6 +171,7 @@ static struct l2_level l2_freq_tbl[] __initdata = { + + static struct acpu_level tbl_slow[] __initdata = { + #ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 }, + //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 950000 }, +@@ -211,6 +212,7 @@ static struct acpu_level tbl_slow[] __initdata = { + + static struct acpu_level tbl_nom[] __initdata = { + #ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 825000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 850000 }, + //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 }, +@@ -251,6 +253,7 @@ static struct acpu_level tbl_nom[] __initdata = { + + static struct acpu_level tbl_fast[] __initdata = { + #ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 }, + //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 }, +@@ -291,6 +294,7 @@ static struct acpu_level tbl_fast[] __initdata = { + + static struct acpu_level tbl_faster[] __initdata = { + #ifdef CONFIG_LOW_CPUCLOCKS ++ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 }, + //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 }, +diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c +index 97f6f39..695b709 100644 +--- a/arch/arm/mach-msm/acpuclock-krait.c ++++ b/arch/arm/mach-msm/acpuclock-krait.c +@@ -46,7 +46,7 @@ + #define PRI_SRC_SEL_HFPLL_DIV2 2 + + #ifdef CONFIG_LOW_CPUCLOCKS +-#define FREQ_TABLE_SIZE 39 ++#define FREQ_TABLE_SIZE 40 + #else + #define FREQ_TABLE_SIZE 35 + #endif +-- +2.10.2 + + +From 0eb77b9339850d3a7a9854197f2d02756270e5af Mon Sep 17 00:00:00 2001 +From: anarkia1976 +Date: Sun, 12 Jan 2014 21:12:55 +0100 +Subject: [PATCH 3/4] ak_mako_defconfig: enable LOW_CPU and CPU_OVERCLOCK + +--- + arch/arm/configs/cyanogen_mako_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm/configs/cyanogen_mako_defconfig b/arch/arm/configs/cyanogen_mako_defconfig +index 316b320..1059cb6 100644 +--- a/arch/arm/configs/cyanogen_mako_defconfig ++++ b/arch/arm/configs/cyanogen_mako_defconfig +@@ -451,6 +451,8 @@ CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y + # CONFIG_MSM_IPC_ROUTER_SECURITY is not set + # CONFIG_MSM_DALRPC is not set + # CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set ++CONFIG_LOW_CPUCLOCKS=y ++CONFIG_CPU_OVERCLOCK=y + CONFIG_MSM_AVS_HW=y + # CONFIG_MSM_HW3D is not set + CONFIG_AMSS_7X25_VERSION_2009=y +-- +2.10.2 + + +From cc891d49f60d6d0ad4d570c14711db9a568b49e5 Mon Sep 17 00:00:00 2001 +From: anarkia1976 +Date: Wed, 5 Feb 2014 07:12:48 +0100 +Subject: [PATCH 4/4] msm: cpu: overclock: use higher bus speed at lower CPU + freqs + +Thanks to @bedalus and @mrg666 + +Bedalus suggested that if lower CPU frequencies can offer higher bus +speed, +GPU use during games wouldn't require higher CPU frequency. +My testing demonstrated 4C drop in CPU temp during 3DMark benchmark. +Still needs to be tested for everyday use. +--- + arch/arm/mach-msm/acpuclock-8064.c | 172 +++++++++++++++++++------------------ + 1 file changed, 88 insertions(+), 84 deletions(-) + +diff --git a/arch/arm/mach-msm/acpuclock-8064.c b/arch/arm/mach-msm/acpuclock-8064.c +index ba8fe72..611776e 100644 +--- a/arch/arm/mach-msm/acpuclock-8064.c ++++ b/arch/arm/mach-msm/acpuclock-8064.c +@@ -131,6 +131,14 @@ static struct msm_bus_scale_pdata bus_scale_data __initdata = { + .name = "acpuclk-8064", + }; + ++#ifdef CONFIG_LOW_CPUCLOCKS ++#define L2_BW_MID 6 ++#define L2_BW_HIGH 15 ++#else ++#define L2_BW_MID 5 ++#define L2_BW_HIGH 14 ++#endif ++ + static struct l2_level l2_freq_tbl[] __initdata = { + #ifdef CONFIG_LOW_CPUCLOCKS + [0] = { { 378000, HFPLL, 2, 0x1C }, 950000, 1050000, 1 }, +@@ -174,32 +182,31 @@ static struct acpu_level tbl_slow[] __initdata = { + { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 }, +- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 950000 }, + { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 925000 }, + #else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 }, + #endif +- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 975000 }, +- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 975000 }, +- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 1000000 }, +- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 1000000 }, +- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 1025000 }, +- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 1025000 }, +- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 1075000 }, +- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 1075000 }, +- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 1100000 }, +- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1100000 }, +- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1125000 }, +- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1125000 }, +- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1175000 }, +- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1175000 }, +- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1200000 }, +- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1200000 }, +- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1225000 }, +- { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1225000 }, +- { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1237500 }, +- { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1237500 }, +- { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1250000 }, ++ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 975000 }, ++ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 975000 }, ++ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 1000000 }, ++ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 1000000 }, ++ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 1025000 }, ++ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 1025000 }, ++ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 1075000 }, ++ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 1075000 }, ++ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 1100000 }, ++ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 1100000 }, ++ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1125000 }, ++ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1125000 }, ++ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1175000 }, ++ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1175000 }, ++ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1200000 }, ++ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1200000 }, ++ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1225000 }, ++ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(L2_BW_HIGH), 1225000 }, ++ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(L2_BW_HIGH), 1237500 }, ++ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(L2_BW_HIGH), 1237500 }, ++ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(L2_BW_HIGH), 1250000 }, + #ifdef CONFIG_CPU_OVERCLOCK + { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1300000 }, + { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1350000 }, +@@ -215,32 +222,31 @@ static struct acpu_level tbl_nom[] __initdata = { + { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 825000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 850000 }, +- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 }, + { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 875000 }, + #else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 }, + #endif +- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 925000 }, +- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 }, +- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 950000 }, +- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 950000 }, +- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 975000 }, +- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 975000 }, +- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 1025000 }, +- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 1025000 }, +- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 1050000 }, +- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1050000 }, +- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1075000 }, +- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1075000 }, +- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1125000 }, +- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1125000 }, +- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1150000 }, +- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1150000 }, +- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1175000 }, +- { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1175000 }, +- { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1187500 }, +- { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1187500 }, +- { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1200000 }, ++ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 925000 }, ++ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 925000 }, ++ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 950000 }, ++ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 950000 }, ++ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 975000 }, ++ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 975000 }, ++ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 1025000 }, ++ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 1025000 }, ++ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 1050000 }, ++ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 1050000 }, ++ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1075000 }, ++ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1075000 }, ++ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1125000 }, ++ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1125000 }, ++ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1150000 }, ++ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1150000 }, ++ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1175000 }, ++ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(L2_BW_HIGH), 1175000 }, ++ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(L2_BW_HIGH), 1187500 }, ++ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(L2_BW_HIGH), 1187500 }, ++ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(L2_BW_HIGH), 1200000 }, + #ifdef CONFIG_CPU_OVERCLOCK + { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1250000 }, + { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1300000 }, +@@ -256,32 +262,31 @@ static struct acpu_level tbl_fast[] __initdata = { + { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 }, +- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 }, + { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 }, + #else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 }, + #endif +- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 }, +- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 }, +- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 }, +- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 }, +- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 925000 }, +- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 }, +- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 975000 }, +- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 975000 }, +- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 1000000 }, +- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1000000 }, +- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1025000 }, +- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1025000 }, +- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1075000 }, +- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1075000 }, +- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1100000 }, +- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1100000 }, +- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1125000 }, +- { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1125000 }, +- { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1137500 }, +- { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1137500 }, +- { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1150000 }, ++ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 875000 }, ++ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 875000 }, ++ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 900000 }, ++ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 900000 }, ++ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 925000 }, ++ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 925000 }, ++ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 975000 }, ++ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 975000 }, ++ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 1000000 }, ++ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 1000000 }, ++ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1025000 }, ++ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1025000 }, ++ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1075000 }, ++ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1075000 }, ++ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1100000 }, ++ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1100000 }, ++ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1125000 }, ++ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(L2_BW_HIGH), 1125000 }, ++ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(L2_BW_HIGH), 1137500 }, ++ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(L2_BW_HIGH), 1137500 }, ++ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(L2_BW_HIGH), 1150000 }, + #ifdef CONFIG_CPU_OVERCLOCK + { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1200000 }, + { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1250000 }, +@@ -297,28 +302,27 @@ static struct acpu_level tbl_faster[] __initdata = { + { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 }, + { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 }, + { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 }, +- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 }, + { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 }, + #else + { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 }, + #endif +- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 }, +- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 }, +- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 }, +- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 }, +- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 925000 }, +- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 }, +- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 962500 }, +- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 962500 }, +- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 975000 }, +- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 975000 }, +- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1000000 }, +- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1000000 }, +- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1050000 }, +- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1050000 }, +- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1075000 }, +- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1075000 }, +- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1100000 }, ++ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 875000 }, ++ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 875000 }, ++ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 900000 }, ++ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 900000 }, ++ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 925000 }, ++ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 925000 }, ++ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 962500 }, ++ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 962500 }, ++ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 975000 }, ++ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 975000 }, ++ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1000000 }, ++ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1000000 }, ++ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1050000 }, ++ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1050000 }, ++ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1075000 }, ++ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1075000 }, ++ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1100000 }, + { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1100000 }, + { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1112500 }, + { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1112500 }, +-- +2.10.2 + diff --git a/Patches/LineageOS-14.1/android_kernel_moto_shamu/0001-OverUnderClock.patch b/Patches/LineageOS-14.1/android_kernel_moto_shamu/0001-OverUnderClock.patch new file mode 100644 index 00000000..4fc7dec2 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_moto_shamu/0001-OverUnderClock.patch @@ -0,0 +1,834 @@ +From ebb9cfb12fea35189ba206f56925e499a4963896 Mon Sep 17 00:00:00 2001 +From: hellsgod +Date: Wed, 22 Apr 2015 22:50:47 +0200 +Subject: [PATCH 1/6] dts: Add some lower frequencies down to 35mhz + +credits: XileForce, Imoseyon +--- + arch/arm/boot/dts/qcom/apq8084.dtsi | 51 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 51 insertions(+) + +diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi +index 51de8be..1e782d6 100644 +--- a/arch/arm/boot/dts/qcom/apq8084.dtsi ++++ b/arch/arm/boot/dts/qcom/apq8084.dtsi +@@ -1127,6 +1127,9 @@ + /* 2.7GHz RC1 */ + qcom,speed2-pvs0-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 720000 37 >, ++ < 223200000 790000 56 >, + < 300000000 810000 76 >, + < 345600000 820000 88 >, + < 422400000 830000 109 >, +@@ -1162,6 +1165,9 @@ + + qcom,speed2-pvs1-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 710000 37 >, ++ < 223200000 780000 56 >, + < 300000000 800000 76 >, + < 345600000 810000 88 >, + < 422400000 820000 109 >, +@@ -1197,6 +1203,9 @@ + + qcom,speed2-pvs2-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 700000 37 >, ++ < 223200000 770000 56 >, + < 300000000 790000 76 >, + < 345600000 800000 88 >, + < 422400000 810000 109 >, +@@ -1232,6 +1241,9 @@ + + qcom,speed2-pvs3-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 690000 37 >, ++ < 223200000 760000 56 >, + < 300000000 780000 76 >, + < 345600000 790000 88 >, + < 422400000 800000 109 >, +@@ -1267,6 +1279,9 @@ + + qcom,speed2-pvs4-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 680000 37 >, ++ < 223200000 750000 56 >, + < 300000000 770000 76 >, + < 345600000 780000 88 >, + < 422400000 790000 109 >, +@@ -1302,6 +1317,9 @@ + + qcom,speed2-pvs5-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 670000 37 >, ++ < 223200000 740000 56 >, + < 300000000 760000 76 >, + < 345600000 770000 88 >, + < 422400000 780000 109 >, +@@ -1337,6 +1355,9 @@ + + qcom,speed2-pvs6-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 660000 37 >, ++ < 223200000 730000 56 >, + < 300000000 750000 76 >, + < 345600000 760000 88 >, + < 422400000 770000 109 >, +@@ -1372,6 +1393,9 @@ + + qcom,speed2-pvs7-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 650000 37 >, ++ < 223200000 720000 56 >, + < 300000000 740000 76 >, + < 345600000 750000 88 >, + < 422400000 760000 109 >, +@@ -1407,6 +1431,9 @@ + + qcom,speed2-pvs8-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 640000 37 >, ++ < 223200000 710000 56 >, + < 300000000 730000 76 >, + < 345600000 740000 88 >, + < 422400000 750000 109 >, +@@ -1442,6 +1469,9 @@ + + qcom,speed2-pvs9-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 630000 37 >, ++ < 223200000 700000 56 >, + < 300000000 720000 76 >, + < 345600000 730000 88 >, + < 422400000 740000 109 >, +@@ -1477,6 +1507,9 @@ + + qcom,speed2-pvs10-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 620000 37 >, ++ < 223200000 690000 56 >, + < 300000000 710000 76 >, + < 345600000 720000 88 >, + < 422400000 730000 109 >, +@@ -1512,6 +1545,9 @@ + + qcom,speed2-pvs11-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 610000 37 >, ++ < 223200000 680000 56 >, + < 300000000 700000 76 >, + < 345600000 710000 88 >, + < 422400000 720000 109 >, +@@ -1547,6 +1583,9 @@ + + qcom,speed2-pvs12-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 600000 37 >, ++ < 223200000 670000 56 >, + < 300000000 690000 76 >, + < 345600000 700000 88 >, + < 422400000 710000 109 >, +@@ -1582,6 +1621,9 @@ + + qcom,speed2-pvs13-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 590000 37 >, ++ < 223200000 660000 56 >, + < 300000000 680000 76 >, + < 345600000 690000 88 >, + < 422400000 700000 109 >, +@@ -1617,6 +1659,9 @@ + + qcom,speed2-pvs14-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 580000 37 >, ++ < 223200000 650000 56 >, + < 300000000 670000 76 >, + < 345600000 680000 88 >, + < 422400000 690000 109 >, +@@ -1652,6 +1697,9 @@ + + qcom,speed2-pvs15-bin-v1 = + < 0 0 0 >, ++ < 35800000 500000 17 >, ++ < 98300000 570000 37 >, ++ < 223200000 640000 56 >, + < 300000000 660000 76 >, + < 345600000 670000 88 >, + < 422400000 680000 109 >, +@@ -4297,6 +4345,9 @@ + reg = <0 4>; + compatible = "qcom,msm-cpufreq"; + qcom,cpufreq-table = ++ < 35800 35800 762 >, ++ < 98300 98300 762 >, ++ < 223200 223200 762 >, + < 300000 300000 1144 >, + < 422400 422400 2288 >, + < 652800 499200 3051 >, +-- +2.9.3 + + +From 143adae138c68fbcd53fa8dbc644ef4a0850879c Mon Sep 17 00:00:00 2001 +From: bhb27 +Date: Thu, 25 Feb 2016 14:46:26 -0800 +Subject: [PATCH 2/6] qcom:apq8084: OC to 2880 MHz + +--- + arch/arm/boot/dts/qcom/apq8084.dtsi | 198 ++++++++++++++++++++++++++++++------ + 1 file changed, 165 insertions(+), 33 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi +index 1e782d6..c419bc3 100644 +--- a/arch/arm/boot/dts/qcom/apq8084.dtsi ++++ b/arch/arm/boot/dts/qcom/apq8084.dtsi +@@ -1161,7 +1161,11 @@ + < 2419200000 1105000 777 >, + < 2496000000 1120000 813 >, + < 2572800000 1135000 849 >, +- < 2649600000 1150000 886 >; ++ < 2649600000 1150000 886 >, ++ < 2688000000 1160000 917 >, ++ < 2764800000 1170000 952 >, ++ < 2841600000 1185000 980 >, ++ < 2880000000 1195000 1003 >; + + qcom,speed2-pvs1-bin-v1 = + < 0 0 0 >, +@@ -1199,7 +1203,11 @@ + < 2419200000 1095000 777 >, + < 2496000000 1110000 813 >, + < 2572800000 1125000 849 >, +- < 2649600000 1140000 886 >; ++ < 2649600000 1140000 886 >, ++ < 2688000000 1150000 917 >, ++ < 2764800000 1160000 952 >, ++ < 2841600000 1175000 980 >, ++ < 2880000000 1185000 1003 >; + + qcom,speed2-pvs2-bin-v1 = + < 0 0 0 >, +@@ -1237,7 +1245,11 @@ + < 2419200000 1085000 777 >, + < 2496000000 1100000 813 >, + < 2572800000 1115000 849 >, +- < 2649600000 1130000 886 >; ++ < 2649600000 1130000 886 >, ++ < 2688000000 1140000 917 >, ++ < 2764800000 1150000 952 >, ++ < 2841600000 1165000 980 >, ++ < 2880000000 1175000 1003 >; + + qcom,speed2-pvs3-bin-v1 = + < 0 0 0 >, +@@ -1275,7 +1287,11 @@ + < 2419200000 1075000 777 >, + < 2496000000 1090000 813 >, + < 2572800000 1105000 849 >, +- < 2649600000 1120000 886 >; ++ < 2649600000 1120000 886 >, ++ < 2688000000 1130000 917 >, ++ < 2764800000 1140000 952 >, ++ < 2841600000 1155000 980 >, ++ < 2880000000 1165000 1003 >; + + qcom,speed2-pvs4-bin-v1 = + < 0 0 0 >, +@@ -1313,7 +1329,11 @@ + < 2419200000 1065000 777 >, + < 2496000000 1080000 813 >, + < 2572800000 1095000 849 >, +- < 2649600000 1110000 886 >; ++ < 2649600000 1110000 886 >, ++ < 2688000000 1120000 917 >, ++ < 2764800000 1130000 952 >, ++ < 2841600000 1145000 980 >, ++ < 2880000000 1155000 1003 >; + + qcom,speed2-pvs5-bin-v1 = + < 0 0 0 >, +@@ -1351,7 +1371,11 @@ + < 2419200000 1055000 777 >, + < 2496000000 1070000 813 >, + < 2572800000 1085000 849 >, +- < 2649600000 1100000 886 >; ++ < 2649600000 1100000 886 >, ++ < 2688000000 1110000 917 >, ++ < 2764800000 1120000 952 >, ++ < 2841600000 1135000 980 >, ++ < 2880000000 1145000 1003 >; + + qcom,speed2-pvs6-bin-v1 = + < 0 0 0 >, +@@ -1389,7 +1413,11 @@ + < 2419200000 1045000 777 >, + < 2496000000 1060000 813 >, + < 2572800000 1075000 849 >, +- < 2649600000 1090000 886 >; ++ < 2649600000 1090000 886 >, ++ < 2688000000 1100000 917 >, ++ < 2764800000 1110000 952 >, ++ < 2841600000 1125000 980 >, ++ < 2880000000 1135000 1003 >; + + qcom,speed2-pvs7-bin-v1 = + < 0 0 0 >, +@@ -1427,7 +1455,11 @@ + < 2419200000 1035000 777 >, + < 2496000000 1050000 813 >, + < 2572800000 1065000 849 >, +- < 2649600000 1080000 886 >; ++ < 2649600000 1080000 886 >, ++ < 2688000000 1090000 917 >, ++ < 2764800000 1100000 952 >, ++ < 2841600000 1115000 980 >, ++ < 2880000000 1125000 1003 >; + + qcom,speed2-pvs8-bin-v1 = + < 0 0 0 >, +@@ -1465,7 +1497,11 @@ + < 2419200000 1025000 777 >, + < 2496000000 1040000 813 >, + < 2572800000 1055000 849 >, +- < 2649600000 1070000 886 >; ++ < 2649600000 1070000 886 >, ++ < 2688000000 1080000 917 >, ++ < 2764800000 1090000 952 >, ++ < 2841600000 1105000 980 >, ++ < 2880000000 1115000 1003 >; + + qcom,speed2-pvs9-bin-v1 = + < 0 0 0 >, +@@ -1503,7 +1539,11 @@ + < 2419200000 1015000 777 >, + < 2496000000 1030000 813 >, + < 2572800000 1045000 849 >, +- < 2649600000 1060000 886 >; ++ < 2649600000 1060000 886 >, ++ < 2688000000 1070000 917 >, ++ < 2764800000 1090000 952 >, ++ < 2841600000 1105000 980 >, ++ < 2880000000 1115000 1003 >; + + qcom,speed2-pvs10-bin-v1 = + < 0 0 0 >, +@@ -1541,7 +1581,11 @@ + < 2419200000 1005000 777 >, + < 2496000000 1020000 813 >, + < 2572800000 1035000 849 >, +- < 2649600000 1050000 886 >; ++ < 2649600000 1050000 886 >, ++ < 2688000000 1060000 917 >, ++ < 2764800000 1080000 952 >, ++ < 2841600000 1095000 980 >, ++ < 2880000000 1105000 1003 >; + + qcom,speed2-pvs11-bin-v1 = + < 0 0 0 >, +@@ -1579,7 +1623,11 @@ + < 2419200000 995000 777 >, + < 2496000000 1010000 813 >, + < 2572800000 1025000 849 >, +- < 2649600000 1040000 886 >; ++ < 2649600000 1040000 886 >, ++ < 2688000000 1050000 917 >, ++ < 2764800000 1060000 952 >, ++ < 2841600000 1075000 980 >, ++ < 2880000000 1085000 1003 >; + + qcom,speed2-pvs12-bin-v1 = + < 0 0 0 >, +@@ -1617,7 +1665,11 @@ + < 2419200000 985000 777 >, + < 2496000000 1000000 813 >, + < 2572800000 1015000 849 >, +- < 2649600000 1030000 886 >; ++ < 2649600000 1030000 886 >, ++ < 2688000000 1040000 917 >, ++ < 2764800000 1050000 952 >, ++ < 2841600000 1065000 980 >, ++ < 2880000000 1075000 1003 >; + + qcom,speed2-pvs13-bin-v1 = + < 0 0 0 >, +@@ -1655,7 +1707,11 @@ + < 2419200000 975000 777 >, + < 2496000000 990000 813 >, + < 2572800000 1005000 849 >, +- < 2649600000 1020000 886 >; ++ < 2649600000 1020000 886 >, ++ < 2688000000 1030000 917 >, ++ < 2764800000 1040000 952 >, ++ < 2841600000 1055000 980 >, ++ < 2880000000 1065000 1003 >; + + qcom,speed2-pvs14-bin-v1 = + < 0 0 0 >, +@@ -1693,7 +1749,11 @@ + < 2419200000 965000 777 >, + < 2496000000 980000 813 >, + < 2572800000 995000 849 >, +- < 2649600000 1010000 886 >; ++ < 2649600000 1010000 886 >, ++ < 2688000000 1020000 917 >, ++ < 2764800000 1030000 952 >, ++ < 2841600000 1045000 980 >, ++ < 2880000000 1055000 1003 >; + + qcom,speed2-pvs15-bin-v1 = + < 0 0 0 >, +@@ -1731,7 +1791,11 @@ + < 2419200000 955000 777 >, + < 2496000000 970000 813 >, + < 2572800000 985000 849 >, +- < 2649600000 1000000 886 >; ++ < 2649600000 1000000 886 >, ++ < 2688000000 1010000 917 >, ++ < 2764800000 1020000 952 >, ++ < 2841600000 1035000 980 >, ++ < 2880000000 1045000 1003 >; + + /* 2.7GHz RC0 */ + qcom,speed2-pvs0-bin-v0 = +@@ -1767,7 +1831,11 @@ + < 2419200000 1105000 777 >, + < 2496000000 1120000 813 >, + < 2572800000 1135000 849 >, +- < 2649600000 1150000 886 >; ++ < 2649600000 1150000 886 >, ++ < 2688000000 1160000 917 >, ++ < 2764800000 1170000 952 >, ++ < 2841600000 1185000 980 >, ++ < 2880000000 1195000 1003 >; + + qcom,speed2-pvs1-bin-v0 = + < 0 0 0 >, +@@ -1802,7 +1870,11 @@ + < 2419200000 1095000 777 >, + < 2496000000 1110000 813 >, + < 2572800000 1125000 849 >, +- < 2649600000 1140000 886 >; ++ < 2649600000 1140000 886 >, ++ < 2688000000 1150000 917 >, ++ < 2764800000 1160000 952 >, ++ < 2841600000 1185000 980 >, ++ < 2880000000 1195000 1003 >; + + qcom,speed2-pvs2-bin-v0 = + < 0 0 0 >, +@@ -1837,7 +1909,11 @@ + < 2419200000 1085000 777 >, + < 2496000000 1100000 813 >, + < 2572800000 1115000 849 >, +- < 2649600000 1130000 886 >; ++ < 2649600000 1130000 886 >, ++ < 2688000000 1140000 917 >, ++ < 2764800000 1150000 952 >, ++ < 2841600000 1165000 980 >, ++ < 2880000000 1175000 1003 >; + + qcom,speed2-pvs3-bin-v0 = + < 0 0 0 >, +@@ -1872,7 +1948,11 @@ + < 2419200000 1075000 777 >, + < 2496000000 1090000 813 >, + < 2572800000 1105000 849 >, +- < 2649600000 1120000 886 >; ++ < 2649600000 1120000 886 >, ++ < 2688000000 1130000 917 >, ++ < 2764800000 1140000 952 >, ++ < 2841600000 1165000 980 >, ++ < 2880000000 1175000 1003 >; + + qcom,speed2-pvs4-bin-v0 = + < 0 0 0 >, +@@ -1907,7 +1987,11 @@ + < 2419200000 1065000 777 >, + < 2496000000 1080000 813 >, + < 2572800000 1095000 849 >, +- < 2649600000 1110000 886 >; ++ < 2649600000 1110000 886 >, ++ < 2688000000 1120000 917 >, ++ < 2764800000 1130000 952 >, ++ < 2841600000 1145000 980 >, ++ < 2880000000 1155000 1003 >; + + qcom,speed2-pvs5-bin-v0 = + < 0 0 0 >, +@@ -1942,7 +2026,11 @@ + < 2419200000 1055000 777 >, + < 2496000000 1070000 813 >, + < 2572800000 1085000 849 >, +- < 2649600000 1100000 886 >; ++ < 2649600000 1100000 886 >, ++ < 2688000000 1110000 917 >, ++ < 2764800000 1120000 952 >, ++ < 2841600000 1135000 980 >, ++ < 2880000000 1145000 1003 >; + + qcom,speed2-pvs6-bin-v0 = + < 0 0 0 >, +@@ -1977,7 +2065,11 @@ + < 2419200000 1045000 777 >, + < 2496000000 1060000 813 >, + < 2572800000 1075000 849 >, +- < 2649600000 1090000 886 >; ++ < 2649600000 1090000 886 >, ++ < 2688000000 1100000 917 >, ++ < 2764800000 1110000 952 >, ++ < 2841600000 1125000 980 >, ++ < 2880000000 1135000 1003 >; + + qcom,speed2-pvs7-bin-v0 = + < 0 0 0 >, +@@ -2012,7 +2104,11 @@ + < 2419200000 1035000 777 >, + < 2496000000 1050000 813 >, + < 2572800000 1065000 849 >, +- < 2649600000 1080000 886 >; ++ < 2649600000 1080000 886 >, ++ < 2688000000 1090000 917 >, ++ < 2764800000 1100000 952 >, ++ < 2841600000 1115000 980 >, ++ < 2880000000 1125000 1003 >; + + qcom,speed2-pvs8-bin-v0 = + < 0 0 0 >, +@@ -2047,7 +2143,11 @@ + < 2419200000 1025000 777 >, + < 2496000000 1040000 813 >, + < 2572800000 1055000 849 >, +- < 2649600000 1070000 886 >; ++ < 2649600000 1070000 886 >, ++ < 2688000000 1080000 917 >, ++ < 2764800000 1090000 952 >, ++ < 2841600000 1105000 980 >, ++ < 2880000000 1115000 1003 >; + + qcom,speed2-pvs9-bin-v0 = + < 0 0 0 >, +@@ -2082,7 +2182,11 @@ + < 2419200000 1015000 777 >, + < 2496000000 1030000 813 >, + < 2572800000 1045000 849 >, +- < 2649600000 1060000 886 >; ++ < 2649600000 1060000 886 >, ++ < 2688000000 1070000 917 >, ++ < 2764800000 1080000 952 >, ++ < 2841600000 1095000 980 >, ++ < 2880000000 1105000 1003 >; + + qcom,speed2-pvs10-bin-v0 = + < 0 0 0 >, +@@ -2117,7 +2221,11 @@ + < 2419200000 1005000 777 >, + < 2496000000 1020000 813 >, + < 2572800000 1035000 849 >, +- < 2649600000 1050000 886 >; ++ < 2649600000 1050000 886 >, ++ < 2688000000 1060000 917 >, ++ < 2764800000 1070000 952 >, ++ < 2841600000 1085000 980 >, ++ < 2880000000 1095000 1003 >; + + qcom,speed2-pvs11-bin-v0 = + < 0 0 0 >, +@@ -2152,7 +2260,11 @@ + < 2419200000 995000 777 >, + < 2496000000 1010000 813 >, + < 2572800000 1025000 849 >, +- < 2649600000 1040000 886 >; ++ < 2649600000 1040000 886 >, ++ < 2688000000 1050000 917 >, ++ < 2764800000 1060000 952 >, ++ < 2841600000 1075000 980 >, ++ < 2880000000 1085000 1003 >; + + qcom,speed2-pvs12-bin-v0 = + < 0 0 0 >, +@@ -2187,7 +2299,11 @@ + < 2419200000 985000 777 >, + < 2496000000 1000000 813 >, + < 2572800000 1015000 849 >, +- < 2649600000 1030000 886 >; ++ < 2649600000 1030000 886 >, ++ < 2688000000 1040000 917 >, ++ < 2764800000 1050000 952 >, ++ < 2841600000 1065000 980 >, ++ < 2880000000 1075000 1003 >; + + qcom,speed2-pvs13-bin-v0 = + < 0 0 0 >, +@@ -2222,7 +2338,11 @@ + < 2419200000 975000 777 >, + < 2496000000 990000 813 >, + < 2572800000 1005000 849 >, +- < 2649600000 1020000 886 >; ++ < 2649600000 1020000 886 >, ++ < 2688000000 1030000 917 >, ++ < 2764800000 1040000 952 >, ++ < 2841600000 1055000 980 >, ++ < 2880000000 1065000 1003 >; + + qcom,speed2-pvs14-bin-v0 = + < 0 0 0 >, +@@ -2257,7 +2377,11 @@ + < 2419200000 965000 777 >, + < 2496000000 980000 813 >, + < 2572800000 995000 849 >, +- < 2649600000 1010000 886 >; ++ < 2649600000 1010000 886 >, ++ < 2688000000 1020000 917 >, ++ < 2764800000 1030000 952 >, ++ < 2841600000 1045000 980 >, ++ < 2880000000 1055000 1003 >; + + qcom,speed2-pvs15-bin-v0 = + < 0 0 0 >, +@@ -2292,7 +2416,11 @@ + < 2419200000 955000 777 >, + < 2496000000 970000 813 >, + < 2572800000 985000 849 >, +- < 2649600000 1000000 886 >; ++ < 2649600000 1000000 886 >, ++ < 2688000000 1010000 917 >, ++ < 2764800000 1020000 952 >, ++ < 2841600000 1035000 980 >, ++ < 2880000000 1045000 1003 >; + + /* 2.5GHz RC1 */ + qcom,speed1-pvs0-bin-v1 = +@@ -4365,7 +4493,11 @@ + < 2457600 1728000 16250 >, + < 2496000 1728000 16250 >, + < 2572800 1728000 16250 >, +- < 2649600 1728000 16250 >; ++ < 2649600 1728000 16250 >, ++ < 2688000 1728000 16250 >, /* overclock */ ++ < 2764800 1728000 16250 >, ++ < 2841600 1728000 16250 >, ++ < 2880000 1728000 16250 >; + }; + + usb_otg: usb@f9a55000 { +-- +2.9.3 + + +From aeca3d3b8d3177ddf8aab303b54f5ef3a1d0ce05 Mon Sep 17 00:00:00 2001 +From: XileForce +Date: Mon, 11 May 2015 21:43:20 -0700 +Subject: [PATCH 3/6] APQ8084: 2457600 Is Not A Real Frequency. Replace It With + 2419200 2457600 does not exist in our voltage/current tables. Thus its + voltage cant be adjusted, nor am I sure what voltage it actually uses since + it isnt defined anywhere. Let's replace that with the existing, but currently + unused, 2419200 step. + +--- + arch/arm/boot/dts/qcom/apq8084.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi +index c419bc3..1fe7174 100644 +--- a/arch/arm/boot/dts/qcom/apq8084.dtsi ++++ b/arch/arm/boot/dts/qcom/apq8084.dtsi +@@ -4490,7 +4490,7 @@ + < 1728000 1651200 12145 >, + < 1958400 1728000 16250 >, + < 2265600 1728000 16250 >, +- < 2457600 1728000 16250 >, ++ < 2419200 1728000 16250 >, + < 2496000 1728000 16250 >, + < 2572800 1728000 16250 >, + < 2649600 1728000 16250 >, +-- +2.9.3 + + +From 591d576aba39ec8ecb3c4c564577490e451d8839 Mon Sep 17 00:00:00 2001 +From: Felipe Leon +Date: Sat, 17 Dec 2016 03:30:45 -0800 +Subject: [PATCH 4/6] apq8084: DTB Fix qcom,bcl table + +--- + arch/arm/boot/dts/qcom/apq8084.dtsi | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi +index 1fe7174..a5f2a26 100644 +--- a/arch/arm/boot/dts/qcom/apq8084.dtsi ++++ b/arch/arm/boot/dts/qcom/apq8084.dtsi +@@ -5030,9 +5030,9 @@ + qcom,ibat-monitor { + high-threshold-uamp = <3000000>; + low-threshold-uamp = <1000000>; +- mitigation-freq-khz = <1958400>; +- mitigation-gpu-freq-khz = <389000>; +- max-gpu-freq-khz = <600000>; ++ mitigation-freq-khz = <2880000>; ++ mitigation-gpu-freq-khz = <350000>; ++ max-gpu-freq-khz = <800000>; + ibat-channel = <0x15>; + adc-interval-usec = <3900>; + uv-to-ua-numerator = <2>; +-- +2.9.3 + + +From 170faa65e72f696aaa6a60cc9653c530c2225d32 Mon Sep 17 00:00:00 2001 +From: Felipe de Leon +Date: Sat, 17 Dec 2016 04:04:13 -0800 +Subject: [PATCH 5/6] boot: dtsi: Adds the current values for the cores in uA + for under and overclock + +Current value based on calculos made using the stock values +orginal commit +bhb27/android_kernel_motorola_apq8084@0e332d0 +bhb27/android_kernel_motorola_apq8084@9d21c12 +--- + arch/arm/boot/dts/qcom/apq8084.dtsi | 36 ++++++++++++++++++++++++++++-------- + 1 file changed, 28 insertions(+), 8 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi +index a5f2a26..8b264bd 100644 +--- a/arch/arm/boot/dts/qcom/apq8084.dtsi ++++ b/arch/arm/boot/dts/qcom/apq8084.dtsi +@@ -38,7 +38,8 @@ + reg = <0x0>; + // The currents(uA) correspond to the frequencies in the + // frequency table. +- current = < 71000 //300000 kHz ++ current = < 64000 //268800 kHz underclock ++ 71000 //300000 kHz + 83000 //422400 kHz + 97000 //652800 kHz + 106000 //729600 kHz +@@ -55,7 +56,11 @@ + 405000 //2457600 kHz + 405000 //2496000 kHz + 413000 //2572800 kHz +- 414000>; //2649600 kHz ++ 414000 //2649600 kHz ++ 420000 //2688000 kHz overclock ++ 432000 //2764800 kHz ++ 444000 //2841600 kHz ++ 450000>; //2880000 kHz + }; + + CPU1: cpu@1 { +@@ -64,7 +69,8 @@ + reg = <0x1>; + // The currents(uA) correspond to the frequencies in the + // frequency table. +- current = < 40470 //300000 kHz ++ current = < 36260 //268800 kHz underclock ++ 40470 //300000 kHz + 47309 //422400 kHz + 55289 //652800 kHz + 60419 //729600 kHz +@@ -81,7 +87,11 @@ + 230849 //2457600 kHz + 230849 //2496000 kHz + 235409 //2572800 kHz +- 235979>; //2649600 kHz ++ 414000 //2649600 kHz ++ 420000 //2688000 kHz overclock ++ 432000 //2764800 kHz ++ 444000 //2841600 kHz ++ 450000>; //2880000 kHz + }; + + CPU2: cpu@2 { +@@ -90,7 +100,8 @@ + reg = <0x2>; + // The currents(uA) correspond to the frequencies in the + // frequency table. +- current = < 46860 //300000 kHz ++ current = < 41980 //268800 kHz underclock ++ 46860 //300000 kHz + 54780 //422400 kHz + 64020 //652800 kHz + 69960 //729600 kHz +@@ -107,7 +118,11 @@ + 267300 //2457600 kHz + 267300 //2496000 kHz + 272580 //2572800 kHz +- 273240>; //2649600 kHz ++ 414000 //2649600 kHz ++ 420000 //2688000 kHz overclock ++ 432000 //2764800 kHz ++ 444000 //2841600 kHz ++ 450000>; //2880000 kHz + }; + + CPU3: cpu@3 { +@@ -116,7 +131,8 @@ + reg = <0x3>; + // The currents(uA) correspond to the frequencies in the + // frequency table. +- current = < 53960 //300000 kHz ++ current = < 48340 //268800 kHz underclock ++ 53960 //300000 kHz + 63080 //422400 kHz + 73720 //652800 kHz + 80560 //729600 kHz +@@ -133,7 +149,11 @@ + 307800 //2457600 kHz + 307800 //2496000 kHz + 313880 //2572800 kHz +- 314640>; //2649600 kHz ++ 414000 //2649600 kHz ++ 420000 //2688000 kHz overclock ++ 432000 //2764800 kHz ++ 444000 //2841600 kHz ++ 450000>; //2880000 kHz + }; + }; + memory { +-- +2.9.3 + + +From c170f85350b5bf5148283a85f27504496d063852 Mon Sep 17 00:00:00 2001 +From: hellsgod +Date: Tue, 23 Jun 2015 08:42:24 +0200 +Subject: [PATCH 6/6] arm/dt: shamu: Prevent BCL driver messing around with + cores + +credits to neobuddy for the heads up! +--- + arch/arm/boot/dts/qcom/apq8084.dtsi | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi +index 8b264bd..26f95e4 100644 +--- a/arch/arm/boot/dts/qcom/apq8084.dtsi ++++ b/arch/arm/boot/dts/qcom/apq8084.dtsi +@@ -5046,7 +5046,6 @@ + qcom,bcl-enable; + qcom,ibat-vadc = <&pma8084_vadc>; + qcom,ibat-threshold-adc_tm = <&pma8084_adc_tm>; +- qcom,bcl-hotplug-list = <&CPU2 &CPU3>; + qcom,ibat-monitor { + high-threshold-uamp = <3000000>; + low-threshold-uamp = <1000000>; +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0001-OverUnderClock.patch b/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0001-OverUnderClock.patch new file mode 100644 index 00000000..40914170 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0001-OverUnderClock.patch @@ -0,0 +1,484 @@ +From 28793d3021e480bba68fe8b76d9848a6b8aee5d5 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Tue, 3 Nov 2015 21:21:34 -0500 +Subject: [PATCH 1/3] msm8992 initial overclocking + +--- + arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 30 ++++++++++++-------- + arch/arm/boot/dts/qcom/msm8992.dtsi | 40 +++++++++++++++++++------- + drivers/clk/qcom/clock-cpu-8994.c | 8 +++--- + drivers/cpufreq/qcom-cpufreq.c | 41 +++++++++++++++++++++++++++ + 4 files changed, 93 insertions(+), 26 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +index d5f6860..23b23ba 100644 +--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +@@ -605,7 +605,7 @@ + regulator-name = "apc0_corner"; + qcom,cpr-fuse-corners = <4>; + regulator-min-microvolt = <1>; +- regulator-max-microvolt = <10>; ++ regulator-max-microvolt = <12>; + + qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>; + qcom,cpr-voltage-floor = <640000 700000 800000 850000>; +@@ -669,15 +669,15 @@ + qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>; + qcom,cpr-init-voltage-step = <10000>; + +- qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4>; ++ qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4 4 4>; + qcom,cpr-voltage-ceiling-override = + <0xFFFFFFFF 0 800000 800000 900000 900000 + 1000000 1000000 1115000 1115000 +- 1180000 1180000>; ++ 1180000 1180000 1180000 1180000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 655000 700000 735000 + 800000 835000 850000 875000 +- 950000 1000000>; ++ 950000 1000000 1000000 1000000>; + qcom,cpr-fuse-version-map = + <0 0xffffffff 0 0 0 0 0>, + <0 0xffffffff 1 0 0 0 0>, +@@ -759,10 +759,12 @@ + <7 864000000>, + <8 960000000>, + <9 1248000000>, +- <10 1440000000>; ++ <10 1440000000>, ++ <11 1536000000>, ++ <12 1632000000>; + qcom,cpr-speed-bin-max-corners = + <0 0 2 4 6 9>, +- <1 0 2 4 6 10>; ++ <1 0 2 4 6 12>; + qcom,cpr-enable; + }; + +@@ -774,7 +776,7 @@ + regulator-name = "apc1_corner"; + qcom,cpr-fuse-corners = <4>; + regulator-min-microvolt = <1>; +- regulator-max-microvolt = <15>; ++ regulator-max-microvolt = <17>; + + qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>; + qcom,cpr-voltage-floor = <640000 640000 745000 850000>; +@@ -841,17 +843,19 @@ + qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>; + qcom,cpr-init-voltage-step = <10000>; + +- qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4>; ++ qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4>; + qcom,cpr-voltage-ceiling-override = + <0xFFFFFFFF 0 900000 900000 900000 900000 + 900000 1000000 1000000 1000000 + 1115000 1115000 1115000 1115000 +- 1115000 1115000 1180000>; ++ 1115000 1115000 1180000 1180000 ++ 1180000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 640000 665000 690000 + 735000 745000 770000 785000 + 850000 860000 880000 900000 +- 920000 935000 1000000>; ++ 920000 935000 1000000 1000000 ++ 1000000>; + qcom,cpr-fuse-version-map = + <0xffffffff 0xffffffff 0 4 4 4 4>, + <0xffffffff 0xffffffff 1 4 4 4 4>, +@@ -908,9 +912,11 @@ + <12 1536000000>, + <13 1632000000>, + <14 1689600000>, +- <15 1824000000>; ++ <15 1824000000>, ++ <16 1958400000>, ++ <17 2016000000>; + qcom,cpr-speed-bin-max-corners = +- <0xFFFFFFFF 0 1 5 8 15>; ++ <0xFFFFFFFF 0 1 5 8 17>; + qcom,cpr-enable; + }; + +diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi +index 5ba420c..8892b56 100644 +--- a/arch/arm/boot/dts/qcom/msm8992.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992.dtsi +@@ -852,7 +852,9 @@ + < 787200 3509 >, + < 864000 4173 >, + < 960000 5271 >, +- < 1440000 7102 >; ++ < 1440000 7102 >, ++ < 1536000 7102 >, ++ < 1632000 7102 >; + cpu-to-dev-map-4 = + < 384000 1525 >, + < 633600 2288 >, +@@ -860,16 +862,22 @@ + < 864000 4173 >, + < 960000 5271 >, + < 1344000 5928 >, +- < 1824000 7102 >; ++ < 1824000 7102 >, ++ < 1958400 7102 >, ++ < 2016000 7102 >; + }; + + mincpubw-cpufreq { + target-dev = <&mincpubw>; + cpu-to-dev-map-0 = +- < 1440000 1525 >; ++ < 1440000 1525 >, ++ < 1536000 1525 >, ++ < 1632000 1525 >; + cpu-to-dev-map-4 = + < 1689600 1525 >, +- < 1824000 5928 >; ++ < 1824000 1525 >, ++ < 1958400 1525 >, ++ < 2016000 5928 >; + }; + + cci-cpufreq { +@@ -880,7 +888,9 @@ + < 787200 384000 >, + < 864000 556800 >, + < 960000 729600 >, +- < 1440000 787200 >; ++ < 1440000 787200 >, ++ < 1536000 787200 >, ++ < 1632000 787200 >; + cpu-to-dev-map-4 = + < 384000 134400 >, + < 480000 300000 >, +@@ -888,7 +898,9 @@ + < 768000 556800 >, + < 960000 600000 >, + < 1440000 729600 >, +- < 1824000 787200 >; ++ < 1824000 787200 >, ++ < 1958400 787200 >, ++ < 2016000 787200 >; + }; + }; + +@@ -915,7 +927,9 @@ + < 864000 >, + < 960000 >, + < 1248000 >, +- < 1440000 >; ++ < 1440000 >, ++ < 1536000 >, ++ < 1632000 >; + + qcom,cpufreq-table-4 = + < 384000 >, +@@ -930,7 +944,9 @@ + < 1536000 >, + < 1632000 >, + < 1689600 >, +- < 1824000 >; ++ < 1824000 >, ++ < 1958400 >, ++ < 2016000 >; + + }; + +@@ -968,7 +984,9 @@ + < 864000000 7>, + < 960000000 8>, + < 1248000000 9>, +- < 1440000000 10>; ++ < 1440000000 10>, ++ < 1536000000 11>, ++ < 1632000000 12>; + qcom,a57-speedbin0-v0 = + < 0 0>, + < 384000000 5>, +@@ -983,7 +1001,9 @@ + < 1536000000 12>, + < 1632000000 13>, + < 1689600000 14>, +- < 1824000000 15>; ++ < 1824000000 15>, ++ < 1958400000 16>, ++ < 2016000000 17>; + qcom,cci-speedbin0-v0 = + < 0 0>, + < 134400000 2>, +diff --git a/drivers/clk/qcom/clock-cpu-8994.c b/drivers/clk/qcom/clock-cpu-8994.c +index 6eb346b..de3d72f 100644 +--- a/drivers/clk/qcom/clock-cpu-8994.c ++++ b/drivers/clk/qcom/clock-cpu-8994.c +@@ -191,13 +191,13 @@ static struct pll_clk a57_pll0 = { + .test_ctl_lo_val = 0x00010000, + }, + .min_rate = 1209600000, +- .max_rate = 1996800000, ++ .max_rate = 2073600000, + .base = &vbases[C1_PLL_BASE], + .c = { + .parent = &xo_ao.c, + .dbg_name = "a57_pll0", + .ops = &clk_ops_variable_rate_pll, +- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000), ++ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000), + CLK_INIT(a57_pll0.c), + }, + }; +@@ -229,13 +229,13 @@ static struct pll_clk a57_pll1 = { + /* Necessary since we'll be setting a rate before handoff on V1 */ + .src_rate = 19200000, + .min_rate = 1209600000, +- .max_rate = 1996800000, ++ .max_rate = 2073600000, + .base = &vbases[C1_PLL_BASE], + .c = { + .parent = &xo_ao.c, + .dbg_name = "a57_pll1", + .ops = &clk_ops_variable_rate_pll, +- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000), ++ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000), + CLK_INIT(a57_pll1.c), + }, + }; +diff --git a/drivers/cpufreq/qcom-cpufreq.c b/drivers/cpufreq/qcom-cpufreq.c +index e30b0cb..dd3a589 100644 +--- a/drivers/cpufreq/qcom-cpufreq.c ++++ b/drivers/cpufreq/qcom-cpufreq.c +@@ -31,6 +31,40 @@ + + static DEFINE_MUTEX(l2bw_lock); + ++static unsigned long arg_cpu_max_a53 = 1440000; ++ ++static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53) ++{ ++ unsigned long ui_khz; ++ int ret; ++ ++ ret = kstrtoul(cpu_max_a53, 0, &ui_khz); ++ if (ret) ++ return -EINVAL; ++ ++ arg_cpu_max_a53 = ui_khz; ++ printk("cpu_max_a53=%lu\n", arg_cpu_max_a53); ++ return ret; ++} ++__setup("cpu_max_a53=", cpufreq_read_cpu_max_a53); ++ ++static unsigned long arg_cpu_max_a57 = 1824000; ++ ++static int __init cpufreq_read_cpu_max_a57(char *cpu_max_a57) ++{ ++ unsigned long ui_khz; ++ int ret; ++ ++ ret = kstrtoul(cpu_max_a57, 0, &ui_khz); ++ if (ret) ++ return -EINVAL; ++ ++ arg_cpu_max_a57 = ui_khz; ++ printk("cpu_max_a57=%lu\n", arg_cpu_max_a57); ++ return ret; ++} ++__setup("cpu_max_a57=", cpufreq_read_cpu_max_a57); ++ + static struct clk *cpu_clk[NR_CPUS]; + static struct clk *l2_clk; + static DEFINE_PER_CPU(struct cpufreq_frequency_table *, freq_table); +@@ -364,6 +398,13 @@ static struct cpufreq_frequency_table *cpufreq_parse_dt(struct device *dev, + if (i > 0 && f <= ftbl[i-1].frequency) + break; + ++ //Custom max freq ++ if ((cpu < 4 && f > arg_cpu_max_a53) || ++ (cpu >= 4 && f > arg_cpu_max_a57)) { ++ nf = i; ++ break; ++ } ++ + ftbl[i].driver_data = i; + ftbl[i].frequency = f; + } +-- +2.9.3 + + +From 9dfe99b9f8eead920f7cdefdb2ae7b1cea776d9b Mon Sep 17 00:00:00 2001 +From: dirtyhank +Date: Thu, 14 Jan 2016 12:56:07 +0100 +Subject: [PATCH 2/3] CPU underclocking + + Based on underclocking to Nexus 6P by anarkia1976 +--- + arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 6 +++--- + arch/arm/boot/dts/qcom/msm8992.dtsi | 14 +++++++++++--- + 2 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +index 23b23ba..1ef9eb3 100644 +--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +@@ -750,7 +750,7 @@ + qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>; + qcom,cpr-quot-adjust-scaling-factor-max = <0 2000 2000 2000>; + qcom,cpr-corner-frequency-map = +- <1 300000000>, ++ <1 302400000>, + <2 384000000>, + <3 460800000>, + <4 600000000>, +@@ -898,8 +898,8 @@ + qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>; + qcom,cpr-quot-adjust-scaling-factor-max = <0 0 2000 2000>; + qcom,cpr-corner-frequency-map = +- <1 300000000>, /* SVS Fmin for "SVS2" */ +- <2 300000000>, ++ <1 302400000>, /* SVS Fmin for "SVS2" */ ++ <2 302400000>, + <3 384000000>, + <4 480000000>, + <5 633600000>, +diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi +index 8892b56..f6a39cd 100644 +--- a/arch/arm/boot/dts/qcom/msm8992.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992.dtsi +@@ -796,7 +796,7 @@ + governor = "cpufreq"; + freq-tbl-khz = + < 134400 >, +- < 300000 >, ++ < 302400 >, + < 384000 >, + < 556800 >, + < 600000 >, +@@ -856,7 +856,8 @@ + < 1536000 7102 >, + < 1632000 7102 >; + cpu-to-dev-map-4 = +- < 384000 1525 >, ++ < 302400 1525 >, ++ < 384000 1525 >, + < 633600 2288 >, + < 768000 3509 >, + < 864000 4173 >, +@@ -883,6 +884,7 @@ + cci-cpufreq { + target-dev = <&cci_cache>; + cpu-to-dev-map-0 = ++ < 302400 134400 >, + < 384000 134400 >, + < 600000 300000 >, + < 787200 384000 >, +@@ -892,6 +894,7 @@ + < 1536000 787200 >, + < 1632000 787200 >; + cpu-to-dev-map-4 = ++ < 302400 134400 >, + < 384000 134400 >, + < 480000 300000 >, + < 633600 384000 >, +@@ -919,6 +922,7 @@ + qcom,governor-per-policy; + + qcom,cpufreq-table-0 = ++ < 302400 >, + < 384000 >, + < 460800 >, + < 600000 >, +@@ -932,6 +936,7 @@ + < 1632000 >; + + qcom,cpufreq-table-4 = ++ < 302400 >, + < 384000 >, + < 480000 >, + < 633600 >, +@@ -966,6 +971,7 @@ + vdd-dig-supply = <&pm8994_s2_corner_ao>; + qcom,a53-speedbin0-v0 = + < 0 0>, ++ < 302400000 1>, + < 384000000 2>, + < 460800000 3>, + < 600000000 4>, +@@ -976,6 +982,7 @@ + < 1248000000 9>; + qcom,a53-speedbin1-v0 = + < 0 0>, ++ < 302400000 1>, + < 384000000 2>, + < 460800000 3>, + < 600000000 4>, +@@ -989,6 +996,7 @@ + < 1632000000 12>; + qcom,a57-speedbin0-v0 = + < 0 0>, ++ < 302400000 5>, + < 384000000 5>, + < 480000000 5>, + < 633600000 5>, +@@ -1007,7 +1015,7 @@ + qcom,cci-speedbin0-v0 = + < 0 0>, + < 134400000 2>, +- < 300000000 4>, ++ < 302400000 4>, + < 384000000 6>, + < 556800000 6>, + < 600000000 8>, +-- +2.9.3 + + +From b7e24657fb125b77bb5d9a39493040e1234c7c83 Mon Sep 17 00:00:00 2001 +From: flar2 +Date: Mon, 21 Nov 2016 21:40:09 -0500 +Subject: [PATCH 3/3] msm8992: bump oc voltages + +--- + arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +index 1ef9eb3..d2a875b 100644 +--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi +@@ -673,11 +673,11 @@ + qcom,cpr-voltage-ceiling-override = + <0xFFFFFFFF 0 800000 800000 900000 900000 + 1000000 1000000 1115000 1115000 +- 1180000 1180000 1180000 1180000>; ++ 1180000 1180000 1180000 1200000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 655000 700000 735000 + 800000 835000 850000 875000 +- 950000 1000000 1000000 1000000>; ++ 950000 1000000 1000000 1100000>; + qcom,cpr-fuse-version-map = + <0 0xffffffff 0 0 0 0 0>, + <0 0xffffffff 1 0 0 0 0>, +@@ -849,13 +849,13 @@ + 900000 1000000 1000000 1000000 + 1115000 1115000 1115000 1115000 + 1115000 1115000 1180000 1180000 +- 1180000>; ++ 1200000>; + qcom,cpr-voltage-floor-override = + <0xFFFFFFFF 0 640000 640000 665000 690000 + 735000 745000 770000 785000 + 850000 860000 880000 900000 + 920000 935000 1000000 1000000 +- 1000000>; ++ 1100000>; + qcom,cpr-fuse-version-map = + <0xffffffff 0xffffffff 0 4 4 4 4>, + <0xffffffff 0xffffffff 1 4 4 4 4>, +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0002-MMC_Tweak.patch b/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0002-MMC_Tweak.patch new file mode 100644 index 00000000..0c6fc863 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0002-MMC_Tweak.patch @@ -0,0 +1,42 @@ +From f24f2dec25043cf7e6ef0f80a65dde45f2f131dd Mon Sep 17 00:00:00 2001 +From: franciscofranco +Date: Wed, 20 Jan 2016 01:45:39 +0000 +Subject: [PATCH] IKSWM-6057: dts: mmc: remove wakeup on idle flag + +Remove the wakeup-on-idle flag can improve the mmc +performance(verified with iozone). No current drain +and other system performance impact. + +Change-Id: Ia90cdfb66569b5ee3713d2c9785a2b7a9d24760e +Signed-off-by: Lianwei Wang +Reviewed-on: http://gerrit.mot.com/785887 +SLTApproved: Slta Waiver +SME-Granted: SME Approvals Granted +Tested-by: Jira Key +Reviewed-by: Zhi-Ming Yuan +Submit-Approved: Jira Key +Signed-off-by: franciscofranco +--- + arch/arm/boot/dts/qcom/msm8992.dtsi | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi +index 5dedecb..dc70365 100644 +--- a/arch/arm/boot/dts/qcom/msm8992.dtsi ++++ b/arch/arm/boot/dts/qcom/msm8992.dtsi +@@ -1706,7 +1706,6 @@ + qcom,cpu-dma-latency-us = <301 70>; + qcom,cpu-affinity = "affine_cores"; + qcom,cpu-affinity-mask = <0x0f 0xf0>; +- qcom,wakeup-on-idle; + + qcom,msm-bus,name = "sdhc1"; + qcom,msm-bus,num-cases = <9>; +@@ -1746,7 +1745,6 @@ + qcom,cpu-dma-latency-us = <301 70>; + qcom,cpu-affinity = "affine_cores"; + qcom,cpu-affinity-mask = <0x0f 0xf0>; +- qcom,wakeup-on-idle; + + qcom,msm-bus,name = "sdhc2"; + qcom,msm-bus,num-cases = <8>; diff --git a/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0004-Enable_Overclock.patch b/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0004-Enable_Overclock.patch new file mode 100644 index 00000000..17b6cdd1 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_motorola_msm8992/0004-Enable_Overclock.patch @@ -0,0 +1,35 @@ +From 87a5b2ff5c53d13f937bdcb20ab462e4aaa61e3b Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 18 Nov 2016 12:38:14 -0500 +Subject: [PATCH] Enable overclock by default + +Change-Id: Idc640d7f58271892ae91678de847d9d1fcc4b281 +--- + drivers/cpufreq/qcom-cpufreq.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/cpufreq/qcom-cpufreq.c b/drivers/cpufreq/qcom-cpufreq.c +index dd3a589..4cc8680 100644 +--- a/drivers/cpufreq/qcom-cpufreq.c ++++ b/drivers/cpufreq/qcom-cpufreq.c +@@ -31,7 +31,7 @@ + + static DEFINE_MUTEX(l2bw_lock); + +-static unsigned long arg_cpu_max_a53 = 1440000; ++static unsigned long arg_cpu_max_a53 = 1632000; + + static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53) + { +@@ -48,7 +48,7 @@ static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53) + } + __setup("cpu_max_a53=", cpufreq_read_cpu_max_a53); + +-static unsigned long arg_cpu_max_a57 = 1824000; ++static unsigned long arg_cpu_max_a57 = 2016000; + + static int __init cpufreq_read_cpu_max_a57(char *cpu_max_a57) + { +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0001-OverUnderClock-EXTREME.patch b/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0001-OverUnderClock-EXTREME.patch new file mode 100644 index 00000000..4a8dbfc7 --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0001-OverUnderClock-EXTREME.patch @@ -0,0 +1,1369 @@ +From 4868289ebd16ed32f1c8d85db7029b87ea24406c Mon Sep 17 00:00:00 2001 +From: savoca +Date: Tue, 15 Jul 2014 17:12:39 +0000 +Subject: [PATCH 1/9] msm8974pro: dts: cpufreq: introduce 268MHz clock + +--- + arch/arm/boot/dts/msm8974pro.dtsi | 46 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index ded56d8..56ec557 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -91,6 +91,7 @@ + qcom,clock-krait@f9016000 { + qcom,speed1-pvs0-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 74 >, + < 345600000 775000 85 >, + < 422400000 775000 104 >, +@@ -122,6 +123,7 @@ + + qcom,speed1-pvs1-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 74 >, + < 345600000 775000 85 >, + < 422400000 775000 104 >, +@@ -153,6 +155,7 @@ + + qcom,speed1-pvs2-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 74 >, + < 345600000 750000 85 >, + < 422400000 750000 104 >, +@@ -184,6 +187,7 @@ + + qcom,speed1-pvs3-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 74 >, + < 345600000 750000 85 >, + < 422400000 750000 104 >, +@@ -215,6 +219,7 @@ + + qcom,speed1-pvs4-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 74 >, + < 345600000 750000 85 >, + < 422400000 750000 104 >, +@@ -246,6 +251,7 @@ + + qcom,speed1-pvs5-bin-v0 = + < 0 0 0 >, ++ < 268800000 720000 68 >, + < 300000000 725000 74 >, + < 345600000 725000 85 >, + < 422400000 725000 104 >, +@@ -277,6 +283,7 @@ + + qcom,speed1-pvs6-bin-v0 = + < 0 0 0 >, ++ < 268800000 720000 68 >, + < 300000000 725000 74 >, + < 345600000 725000 85 >, + < 422400000 725000 104 >, +@@ -308,6 +315,7 @@ + + qcom,speed3-pvs0-bin-v0 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -342,6 +350,7 @@ + + qcom,speed3-pvs1-bin-v0 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -376,6 +385,7 @@ + + qcom,speed3-pvs2-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -410,6 +420,7 @@ + + qcom,speed3-pvs3-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -444,6 +455,7 @@ + + qcom,speed3-pvs4-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -478,6 +490,7 @@ + + qcom,speed3-pvs5-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -512,6 +525,7 @@ + + qcom,speed3-pvs6-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -546,6 +560,7 @@ + + qcom,speed1-pvs0-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 810000 87 >, + < 422400000 820000 108 >, +@@ -577,6 +592,7 @@ + + qcom,speed1-pvs1-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 810000 108 >, +@@ -608,6 +624,7 @@ + + qcom,speed1-pvs2-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -639,6 +656,7 @@ + + qcom,speed1-pvs3-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -670,6 +688,7 @@ + + qcom,speed1-pvs4-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -701,6 +720,7 @@ + + qcom,speed1-pvs5-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -732,6 +752,7 @@ + + qcom,speed1-pvs6-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -763,6 +784,7 @@ + + qcom,speed1-pvs7-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -794,6 +816,7 @@ + + qcom,speed1-pvs8-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -825,6 +848,7 @@ + + qcom,speed1-pvs9-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -856,6 +880,7 @@ + + qcom,speed1-pvs10-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -887,6 +912,7 @@ + + qcom,speed1-pvs11-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -918,6 +944,7 @@ + + qcom,speed1-pvs12-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -949,6 +976,7 @@ + + qcom,speed1-pvs13-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -980,6 +1008,7 @@ + + qcom,speed1-pvs14-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 108 >, +@@ -1011,6 +1040,7 @@ + + qcom,speed1-pvs15-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 108 >, +@@ -1042,6 +1072,7 @@ + + qcom,speed3-pvs0-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1076,6 +1107,7 @@ + + qcom,speed3-pvs1-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1110,6 +1142,7 @@ + + qcom,speed3-pvs2-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1144,6 +1177,7 @@ + + qcom,speed3-pvs3-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1178,6 +1212,7 @@ + + qcom,speed3-pvs4-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1212,6 +1247,7 @@ + + qcom,speed3-pvs5-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1246,6 +1282,7 @@ + + qcom,speed3-pvs6-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1280,6 +1317,7 @@ + + qcom,speed3-pvs7-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1314,6 +1352,7 @@ + + qcom,speed3-pvs8-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1348,6 +1387,7 @@ + + qcom,speed3-pvs9-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1382,6 +1422,7 @@ + + qcom,speed3-pvs10-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1416,6 +1457,7 @@ + + qcom,speed3-pvs11-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1450,6 +1492,7 @@ + + qcom,speed3-pvs12-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1484,6 +1527,7 @@ + + qcom,speed3-pvs13-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1518,6 +1562,7 @@ + + qcom,speed3-pvs14-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -1552,6 +1597,7 @@ + + qcom,speed3-pvs15-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +-- +2.10.2 + + +From 4f8754a25b6c3d84b2b47f44a6f662349689b018 Mon Sep 17 00:00:00 2001 +From: anarkia1976 +Date: Mon, 22 Sep 2014 06:27:11 +0200 +Subject: [PATCH 2/9] msm8974pro: dts: cpufreq: added qcom cpufreq reference + table + +--- + arch/arm/boot/dts/msm8974pro.dtsi | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index 56ec557..edaf44e 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -1631,6 +1631,30 @@ + < 2457600000 970000 802 >; + }; + ++ qcom,msm-cpufreq@0 { ++ reg = <0 4>; ++ compatible = "qcom,msm-cpufreq"; ++ qcom,cpufreq-table = ++ < 268800 /* 75 MHz */ >, ++ < 300000 /* 75 MHz */ >, ++ < 422400 /* 150 MHz */ >, ++ < 652800 /* 200 MHz */ >, ++ < 729600 /* 307 MHz */ >, ++ < 883200 /* 307 MHz */ >, ++ < 960000 /* 460 MHz */ >, ++ < 1036800 /* 460 MHz */ >, ++ < 1190400 /* 460 MHz */ >, ++ < 1267200 /* 614 MHz */ >, ++ < 1497600 /* 614 MHz */ >, ++ < 1574400 /* 800 MHz */ >, ++ < 1728000 /* 800 MHz */ >, ++ < 1958400 /* 931 MHz */ >, ++ < 2265600 /* 931 MHz */ >, ++ < 2342400 /* 931 MHz */ >, ++ < 2419200 /* 931 MHz */ >, ++ < 2457600 /* 931 MHz */ >; ++ }; ++ + i2c@f9928000 { /* BLSP-1 QUP-6 */ + cell-index = <3>; + compatible = "qcom,i2c-qup"; +-- +2.10.2 + + +From a0ad4e60da9fd1a1fff7c96c60c3fa4cb38ebebd Mon Sep 17 00:00:00 2001 +From: anarkia1976 +Date: Wed, 24 Sep 2014 17:45:31 +0200 +Subject: [PATCH 3/9] msm8974pro: dts: cpu overclocking to 2880Ghz + +Conflicts: + arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi +--- + arch/arm/boot/dts/msm8974pro-pm8941.dtsi | 8 +-- + arch/arm/boot/dts/msm8974pro.dtsi | 120 ++++++++++++++++++++++++------- + 2 files changed, 100 insertions(+), 28 deletions(-) + +diff --git a/arch/arm/boot/dts/msm8974pro-pm8941.dtsi b/arch/arm/boot/dts/msm8974pro-pm8941.dtsi +index b502078..79729ea 100644 +--- a/arch/arm/boot/dts/msm8974pro-pm8941.dtsi ++++ b/arch/arm/boot/dts/msm8974pro-pm8941.dtsi +@@ -39,22 +39,22 @@ + }; + + &krait0_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + + &krait1_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + + &krait2_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + + &krait3_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index edaf44e..9d59eaf 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -346,7 +346,10 @@ + < 2265600000 1065000 700 >, + < 2342400000 1080000 734 >, + < 2419200000 1095000 769 >, +- < 2457600000 1100000 785 >; ++ < 2457600000 1100000 785 >, ++ < 2572800000 1120000 827 >, ++ < 2726400000 1180000 900 >, ++ < 2880000000 1210000 937 >; + + qcom,speed3-pvs1-bin-v0 = + < 0 0 0 >, +@@ -381,7 +384,10 @@ + < 2265600000 1040000 700 >, + < 2342400000 1055000 734 >, + < 2419200000 1070000 769 >, +- < 2457600000 1075000 785 >; ++ < 2457600000 1075000 785 >, ++ < 2572800000 1120000 827 >, ++ < 2726400000 1180000 900 >, ++ < 2880000000 1210000 937 >; + + qcom,speed3-pvs2-bin-v0 = + < 0 0 0 >, +@@ -416,7 +422,10 @@ + < 2265600000 1015000 700 >, + < 2342400000 1030000 734 >, + < 2419200000 1045000 769 >, +- < 2457600000 1050000 785 >; ++ < 2457600000 1050000 785 >, ++ < 2572800000 1100000 827 >, ++ < 2726400000 1170000 900 >, ++ < 2880000000 1200000 937 >; + + qcom,speed3-pvs3-bin-v0 = + < 0 0 0 >, +@@ -451,7 +460,10 @@ + < 2265600000 990000 700 >, + < 2342400000 1005000 734 >, + < 2419200000 1020000 769 >, +- < 2457600000 1025000 785 >; ++ < 2457600000 1025000 785 >, ++ < 2572800000 1090000 827 >, ++ < 2726400000 1160000 900 >, ++ < 2880000000 1190000 937 >; + + qcom,speed3-pvs4-bin-v0 = + < 0 0 0 >, +@@ -486,7 +498,10 @@ + < 2265600000 965000 700 >, + < 2342400000 980000 734 >, + < 2419200000 995000 769 >, +- < 2457600000 1000000 785 >; ++ < 2457600000 1000000 785 >, ++ < 2572800000 1050000 827 >, ++ < 2726400000 1150000 900 >, ++ < 2880000000 1180000 937 >; + + qcom,speed3-pvs5-bin-v0 = + < 0 0 0 >, +@@ -521,7 +536,10 @@ + < 2265600000 940000 700 >, + < 2342400000 955000 734 >, + < 2419200000 970000 769 >, +- < 2457600000 975000 785 >; ++ < 2457600000 975000 785 >, ++ < 2572800000 1000000 827 >, ++ < 2726400000 1150000 900 >, ++ < 2880000000 1170000 937 >; + + qcom,speed3-pvs6-bin-v0 = + < 0 0 0 >, +@@ -556,7 +574,10 @@ + < 2265600000 915000 700 >, + < 2342400000 930000 734 >, + < 2419200000 945000 769 >, +- < 2457600000 950000 785 >; ++ < 2457600000 950000 785 >, ++ < 2572800000 985000 827 >, ++ < 2726400000 1130000 900 >, ++ < 2880000000 1150000 937 >; + + qcom,speed1-pvs0-bin-v1 = + < 0 0 0 >, +@@ -1103,7 +1124,10 @@ + < 2265600000 1085000 716 >, + < 2342400000 1100000 751 >, + < 2419200000 1115000 786 >, +- < 2457600000 1120000 802 >; ++ < 2457600000 1120000 802 >, ++ < 2572800000 1150000 827 >, ++ < 2726400000 1200000 900 >, ++ < 2880000000 1240000 937 >; + + qcom,speed3-pvs1-bin-v1 = + < 0 0 0 >, +@@ -1138,7 +1162,10 @@ + < 2265600000 1075000 716 >, + < 2342400000 1090000 751 >, + < 2419200000 1105000 786 >, +- < 2457600000 1110000 802 >; ++ < 2457600000 1110000 802 >, ++ < 2572800000 1140000 827 >, ++ < 2726400000 1190000 900 >, ++ < 2880000000 1220000 937 >; + + qcom,speed3-pvs2-bin-v1 = + < 0 0 0 >, +@@ -1173,7 +1200,10 @@ + < 2265600000 1065000 716 >, + < 2342400000 1080000 751 >, + < 2419200000 1095000 786 >, +- < 2457600000 1100000 802 >; ++ < 2457600000 1100000 802 >, ++ < 2572800000 1120000 827 >, ++ < 2726400000 1160000 900 >, ++ < 2880000000 1190000 937 >; + + qcom,speed3-pvs3-bin-v1 = + < 0 0 0 >, +@@ -1208,7 +1238,10 @@ + < 2265600000 1055000 716 >, + < 2342400000 1070000 751 >, + < 2419200000 1085000 786 >, +- < 2457600000 1090000 802 >; ++ < 2457600000 1090000 802 >, ++ < 2572800000 1120000 827 >, ++ < 2726400000 1150000 900 >, ++ < 2880000000 1180000 937 >; + + qcom,speed3-pvs4-bin-v1 = + < 0 0 0 >, +@@ -1243,7 +1276,10 @@ + < 2265600000 1045000 716 >, + < 2342400000 1060000 751 >, + < 2419200000 1075000 786 >, +- < 2457600000 1080000 802 >; ++ < 2457600000 1080000 802 >, ++ < 2572800000 1110000 827 >, ++ < 2726400000 1140000 900 >, ++ < 2880000000 1170000 937 >; + + qcom,speed3-pvs5-bin-v1 = + < 0 0 0 >, +@@ -1278,7 +1314,10 @@ + < 2265600000 1035000 716 >, + < 2342400000 1050000 751 >, + < 2419200000 1065000 786 >, +- < 2457600000 1070000 802 >; ++ < 2457600000 1070000 802 >, ++ < 2572800000 1100000 827 >, ++ < 2726400000 1130000 900 >, ++ < 2880000000 1160000 937 >; + + qcom,speed3-pvs6-bin-v1 = + < 0 0 0 >, +@@ -1313,7 +1352,10 @@ + < 2265600000 1025000 716 >, + < 2342400000 1040000 751 >, + < 2419200000 1055000 786 >, +- < 2457600000 1060000 802 >; ++ < 2457600000 1060000 802 >, ++ < 2572800000 1090000 827 >, ++ < 2726400000 1120000 900 >, ++ < 2880000000 1150000 937 >; + + qcom,speed3-pvs7-bin-v1 = + < 0 0 0 >, +@@ -1348,7 +1390,10 @@ + < 2265600000 1015000 716 >, + < 2342400000 1030000 751 >, + < 2419200000 1045000 786 >, +- < 2457600000 1050000 802 >; ++ < 2457600000 1050000 802 >, ++ < 2572800000 1080000 827 >, ++ < 2726400000 1110000 900 >, ++ < 2880000000 1140000 937 >; + + qcom,speed3-pvs8-bin-v1 = + < 0 0 0 >, +@@ -1383,7 +1428,10 @@ + < 2265600000 1005000 716 >, + < 2342400000 1020000 751 >, + < 2419200000 1035000 786 >, +- < 2457600000 1040000 802 >; ++ < 2457600000 1040000 802 >, ++ < 2572800000 1070000 827 >, ++ < 2726400000 1100000 900 >, ++ < 2880000000 1130000 937 >; + + qcom,speed3-pvs9-bin-v1 = + < 0 0 0 >, +@@ -1418,7 +1466,10 @@ + < 2265600000 995000 716 >, + < 2342400000 1010000 751 >, + < 2419200000 1025000 786 >, +- < 2457600000 1030000 802 >; ++ < 2457600000 1030000 802 >, ++ < 2572800000 1060000 827 >, ++ < 2726400000 1090000 900 >, ++ < 2880000000 1120000 937 >; + + qcom,speed3-pvs10-bin-v1 = + < 0 0 0 >, +@@ -1453,7 +1504,10 @@ + < 2265600000 985000 716 >, + < 2342400000 1000000 751 >, + < 2419200000 1015000 786 >, +- < 2457600000 1020000 802 >; ++ < 2457600000 1020000 802 >, ++ < 2572800000 1050000 827 >, ++ < 2726400000 1080000 900 >, ++ < 2880000000 1110000 937 >; + + qcom,speed3-pvs11-bin-v1 = + < 0 0 0 >, +@@ -1488,7 +1542,10 @@ + < 2265600000 975000 716 >, + < 2342400000 990000 751 >, + < 2419200000 1005000 786 >, +- < 2457600000 1010000 802 >; ++ < 2457600000 1010000 802 >, ++ < 2572800000 1040000 827 >, ++ < 2726400000 1070000 900 >, ++ < 2880000000 1100000 937 >; + + qcom,speed3-pvs12-bin-v1 = + < 0 0 0 >, +@@ -1523,7 +1580,10 @@ + < 2265600000 965000 716 >, + < 2342400000 980000 751 >, + < 2419200000 995000 786 >, +- < 2457600000 1000000 802 >; ++ < 2457600000 1000000 802 >, ++ < 2572800000 1040000 827 >, ++ < 2726400000 1060000 900 >, ++ < 2880000000 1090000 937 >; + + qcom,speed3-pvs13-bin-v1 = + < 0 0 0 >, +@@ -1558,7 +1618,10 @@ + < 2265600000 955000 716 >, + < 2342400000 970000 751 >, + < 2419200000 985000 786 >, +- < 2457600000 990000 802 >; ++ < 2457600000 990000 802 >, ++ < 2572800000 1020000 827 >, ++ < 2726400000 1040000 900 >, ++ < 2880000000 1070000 937 >; + + qcom,speed3-pvs14-bin-v1 = + < 0 0 0 >, +@@ -1593,7 +1656,10 @@ + < 2265600000 945000 716 >, + < 2342400000 960000 751 >, + < 2419200000 975000 786 >, +- < 2457600000 980000 802 >; ++ < 2457600000 980000 802 >, ++ < 2572800000 1010000 827 >, ++ < 2726400000 1030000 900 >, ++ < 2880000000 1060000 937 >; + + qcom,speed3-pvs15-bin-v1 = + < 0 0 0 >, +@@ -1628,7 +1694,10 @@ + < 2265600000 935000 716 >, + < 2342400000 950000 751 >, + < 2419200000 965000 786 >, +- < 2457600000 970000 802 >; ++ < 2457600000 970000 802 >, ++ < 2572800000 1000000 827 >, ++ < 2726400000 1020000 900 >, ++ < 2880000000 1050000 937 >; + }; + + qcom,msm-cpufreq@0 { +@@ -1652,7 +1721,10 @@ + < 2265600 /* 931 MHz */ >, + < 2342400 /* 931 MHz */ >, + < 2419200 /* 931 MHz */ >, +- < 2457600 /* 931 MHz */ >; ++ < 2457600 /* 931 MHz */ >, ++ < 2572800 /* 931 MHz */ >, ++ < 2726400 /* 931 MHz */ >, ++ < 2880000 /* 931 MHz */ >; + }; + + i2c@f9928000 { /* BLSP-1 QUP-6 */ +-- +2.10.2 + + +From 79da7e38c37f157c196a4cdb35415720f319b9b9 Mon Sep 17 00:00:00 2001 +From: "stefano.villa1976@gmail.com" +Date: Sat, 21 Feb 2015 01:24:45 -0700 +Subject: [PATCH 4/9] msm8974pro: dts: cpufreq: enable low steps for CPU + frequencies + +--- + arch/arm/boot/dts/msm8974pro.dtsi | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index 9d59eaf..a3c6552 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -1706,9 +1706,13 @@ + qcom,cpufreq-table = + < 268800 /* 75 MHz */ >, + < 300000 /* 75 MHz */ >, ++ < 345600 /* 75 MHz */ >, + < 422400 /* 150 MHz */ >, ++ < 499200 /* 150 MHz */ >, ++ < 576000 /* 150 MHz */ >, + < 652800 /* 200 MHz */ >, + < 729600 /* 307 MHz */ >, ++ < 806400 /* 307 MHz */ >, + < 883200 /* 307 MHz */ >, + < 960000 /* 460 MHz */ >, + < 1036800 /* 460 MHz */ >, +-- +2.10.2 + + +From e87bbd0e60f847c832e2e7f04f83a2c50e81ff7f Mon Sep 17 00:00:00 2001 +From: "stefano.villa1976@gmail.com" +Date: Sat, 21 Feb 2015 05:22:56 -0700 +Subject: [PATCH 5/9] msm8974pro: dts: cpufreq: enable middle steps for CPU + frequencies + +--- + arch/arm/boot/dts/msm8974pro.dtsi | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index a3c6552..d8073bc 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -1716,10 +1716,14 @@ + < 883200 /* 307 MHz */ >, + < 960000 /* 460 MHz */ >, + < 1036800 /* 460 MHz */ >, ++ < 1113600 /* 460 MHz */ >, + < 1190400 /* 460 MHz */ >, + < 1267200 /* 614 MHz */ >, ++ < 1344000 /* 614 MHz */ >, ++ < 1420800 /* 614 MHz */ >, + < 1497600 /* 614 MHz */ >, + < 1574400 /* 800 MHz */ >, ++ < 1651200 /* 800 MHz */ >, + < 1728000 /* 800 MHz */ >, + < 1958400 /* 931 MHz */ >, + < 2265600 /* 931 MHz */ >, +-- +2.10.2 + + +From a4518d0fbd58d59538b1b094e5b5b99ae9ed9938 Mon Sep 17 00:00:00 2001 +From: nikhil18 +Date: Sat, 19 Dec 2015 18:44:44 +0530 +Subject: [PATCH 6/9] add more cpu overclock frequencies + +--- + arch/arm/boot/dts/msm8974.dtsi | 3 +- + arch/arm/boot/dts/msm8974pro.dtsi | 214 +++++++++++++++++++++++++------------- + 2 files changed, 145 insertions(+), 72 deletions(-) + +diff --git a/arch/arm/boot/dts/msm8974.dtsi b/arch/arm/boot/dts/msm8974.dtsi +index 80907a3..949d47e 100644 +--- a/arch/arm/boot/dts/msm8974.dtsi ++++ b/arch/arm/boot/dts/msm8974.dtsi +@@ -1484,7 +1484,8 @@ + < 3509 /* 460 MHz */ >, + < 4684 /* 614 MHz */ >, + < 6103 /* 800 MHz */ >, +- < 7102 /* 931 MHz */ >; ++ < 7102 /* 931 MHz */ >, ++ < 7674 /* 1006 MHz */ >; + }; + + qcom,kraitbw-l2pm { +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index d8073bc..1ef99df 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -347,9 +347,12 @@ + < 2342400000 1080000 734 >, + < 2419200000 1095000 769 >, + < 2457600000 1100000 785 >, +- < 2572800000 1120000 827 >, +- < 2726400000 1180000 900 >, +- < 2880000000 1210000 937 >; ++ < 2572800000 1145000 827 >, ++ < 2649600000 1185000 866 >, ++ < 2726400000 1205000 900 >, ++ < 2803200000 1215000 937 >, ++ < 2880000000 1235000 937 >, ++ < 2956800000 1250000 937 >; + + qcom,speed3-pvs1-bin-v0 = + < 0 0 0 >, +@@ -385,9 +388,12 @@ + < 2342400000 1055000 734 >, + < 2419200000 1070000 769 >, + < 2457600000 1075000 785 >, +- < 2572800000 1120000 827 >, +- < 2726400000 1180000 900 >, +- < 2880000000 1210000 937 >; ++ < 2572800000 1145000 827 >, ++ < 2649600000 1175000 866 >, ++ < 2726400000 1205000 900 >, ++ < 2803200000 1215000 937 >, ++ < 2880000000 1235000 937 >, ++ < 2956800000 1250000 937 >; + + qcom,speed3-pvs2-bin-v0 = + < 0 0 0 >, +@@ -423,9 +429,12 @@ + < 2342400000 1030000 734 >, + < 2419200000 1045000 769 >, + < 2457600000 1050000 785 >, +- < 2572800000 1100000 827 >, +- < 2726400000 1170000 900 >, +- < 2880000000 1200000 937 >; ++ < 2572800000 1125000 827 >, ++ < 2649600000 1165000 866 >, ++ < 2726400000 1195000 900 >, ++ < 2803200000 1205000 937 >, ++ < 2880000000 1225000 937 >, ++ < 2956800000 1240000 937 >; + + qcom,speed3-pvs3-bin-v0 = + < 0 0 0 >, +@@ -461,9 +470,13 @@ + < 2342400000 1005000 734 >, + < 2419200000 1020000 769 >, + < 2457600000 1025000 785 >, +- < 2572800000 1090000 827 >, +- < 2726400000 1160000 900 >, +- < 2880000000 1190000 937 >; ++ < 2572800000 1115000 827 >, ++ < 2649600000 1155000 866 >, ++ < 2726400000 1185000 900 >, ++ < 2803200000 1195000 937 >, ++ < 2880000000 1215000 937 >, ++ < 2956800000 1230000 937 >; ++ + + qcom,speed3-pvs4-bin-v0 = + < 0 0 0 >, +@@ -499,9 +512,12 @@ + < 2342400000 980000 734 >, + < 2419200000 995000 769 >, + < 2457600000 1000000 785 >, +- < 2572800000 1050000 827 >, +- < 2726400000 1150000 900 >, +- < 2880000000 1180000 937 >; ++ < 2572800000 1075000 827 >, ++ < 2649600000 1155000 866 >, ++ < 2726400000 1175000 900 >, ++ < 2803200000 1185000 937 >, ++ < 2880000000 1205000 937 >, ++ < 2956800000 1220000 937 >; + + qcom,speed3-pvs5-bin-v0 = + < 0 0 0 >, +@@ -537,9 +553,12 @@ + < 2342400000 955000 734 >, + < 2419200000 970000 769 >, + < 2457600000 975000 785 >, +- < 2572800000 1000000 827 >, +- < 2726400000 1150000 900 >, +- < 2880000000 1170000 937 >; ++ < 2572800000 1025000 827 >, ++ < 2649600000 1145000 866 >, ++ < 2726400000 1175000 900 >, ++ < 2803200000 1185000 937 >, ++ < 2880000000 1195000 937 >, ++ < 2956800000 1210000 937 >; + + qcom,speed3-pvs6-bin-v0 = + < 0 0 0 >, +@@ -575,9 +594,12 @@ + < 2342400000 930000 734 >, + < 2419200000 945000 769 >, + < 2457600000 950000 785 >, +- < 2572800000 985000 827 >, +- < 2726400000 1130000 900 >, +- < 2880000000 1150000 937 >; ++ < 2572800000 1010000 827 >, ++ < 2649600000 1135000 866 >, ++ < 2726400000 1155000 900 >, ++ < 2803200000 1165000 937 >, ++ < 2880000000 1175000 937 >, ++ < 2956800000 1200000 937 >; + + qcom,speed1-pvs0-bin-v1 = + < 0 0 0 >, +@@ -1125,9 +1147,12 @@ + < 2342400000 1100000 751 >, + < 2419200000 1115000 786 >, + < 2457600000 1120000 802 >, +- < 2572800000 1150000 827 >, +- < 2726400000 1200000 900 >, +- < 2880000000 1240000 937 >; ++ < 2572800000 1175000 827 >, ++ < 2649600000 1200000 866 >, ++ < 2726400000 1225000 900 >, ++ < 2803200000 1245000 937 >, ++ < 2880000000 1265000 937 >, ++ < 2956800000 1280000 937 >; + + qcom,speed3-pvs1-bin-v1 = + < 0 0 0 >, +@@ -1163,9 +1188,12 @@ + < 2342400000 1090000 751 >, + < 2419200000 1105000 786 >, + < 2457600000 1110000 802 >, +- < 2572800000 1140000 827 >, +- < 2726400000 1190000 900 >, +- < 2880000000 1220000 937 >; ++ < 2572800000 1165000 827 >, ++ < 2649600000 1190000 866 >, ++ < 2726400000 1215000 900 >, ++ < 2803200000 1225000 937 >, ++ < 2880000000 1245000 937 >, ++ < 2956800000 1260000 937 >; + + qcom,speed3-pvs2-bin-v1 = + < 0 0 0 >, +@@ -1201,9 +1229,12 @@ + < 2342400000 1080000 751 >, + < 2419200000 1095000 786 >, + < 2457600000 1100000 802 >, +- < 2572800000 1120000 827 >, +- < 2726400000 1160000 900 >, +- < 2880000000 1190000 937 >; ++ < 2572800000 1145000 827 >, ++ < 2649600000 1160000 866 >, ++ < 2726400000 1185000 900 >, ++ < 2803200000 1205000 937 >, ++ < 2880000000 1215000 937 >, ++ < 2956800000 1240000 937 >; + + qcom,speed3-pvs3-bin-v1 = + < 0 0 0 >, +@@ -1239,9 +1270,12 @@ + < 2342400000 1070000 751 >, + < 2419200000 1085000 786 >, + < 2457600000 1090000 802 >, +- < 2572800000 1120000 827 >, +- < 2726400000 1150000 900 >, +- < 2880000000 1180000 937 >; ++ < 2572800000 1145000 827 >, ++ < 2649600000 1160000 866 >, ++ < 2726400000 1175000 900 >, ++ < 2803200000 1195000 937 >, ++ < 2880000000 1205000 937 >, ++ < 2956800000 1220000 937 >; + + qcom,speed3-pvs4-bin-v1 = + < 0 0 0 >, +@@ -1277,9 +1311,12 @@ + < 2342400000 1060000 751 >, + < 2419200000 1075000 786 >, + < 2457600000 1080000 802 >, +- < 2572800000 1110000 827 >, +- < 2726400000 1140000 900 >, +- < 2880000000 1170000 937 >; ++ < 2572800000 1135000 827 >, ++ < 2649600000 1150000 866 >, ++ < 2726400000 1165000 900 >, ++ < 2803200000 1185000 937 >, ++ < 2880000000 1195000 937 >, ++ < 2956800000 1210000 937 >; + + qcom,speed3-pvs5-bin-v1 = + < 0 0 0 >, +@@ -1315,9 +1352,12 @@ + < 2342400000 1050000 751 >, + < 2419200000 1065000 786 >, + < 2457600000 1070000 802 >, +- < 2572800000 1100000 827 >, +- < 2726400000 1130000 900 >, +- < 2880000000 1160000 937 >; ++ < 2572800000 1125000 827 >, ++ < 2649600000 1140000 866 >, ++ < 2726400000 1155000 900 >, ++ < 2803200000 1175000 937 >, ++ < 2880000000 1185000 937 >, ++ < 2956800000 1200000 937 >; + + qcom,speed3-pvs6-bin-v1 = + < 0 0 0 >, +@@ -1353,9 +1393,12 @@ + < 2342400000 1040000 751 >, + < 2419200000 1055000 786 >, + < 2457600000 1060000 802 >, +- < 2572800000 1090000 827 >, +- < 2726400000 1120000 900 >, +- < 2880000000 1150000 937 >; ++ < 2572800000 1115000 827 >, ++ < 2649600000 1130000 866 >, ++ < 2726400000 1145000 900 >, ++ < 2803200000 1165000 937 >, ++ < 2880000000 1175000 937 >, ++ < 2956800000 1190000 937 >; + + qcom,speed3-pvs7-bin-v1 = + < 0 0 0 >, +@@ -1391,9 +1434,12 @@ + < 2342400000 1030000 751 >, + < 2419200000 1045000 786 >, + < 2457600000 1050000 802 >, +- < 2572800000 1080000 827 >, +- < 2726400000 1110000 900 >, +- < 2880000000 1140000 937 >; ++ < 2572800000 1105000 827 >, ++ < 2649600000 1120000 866 >, ++ < 2726400000 1135000 900 >, ++ < 2803200000 1155000 937 >, ++ < 2880000000 1165000 937 >, ++ < 2956800000 1180000 937 >; + + qcom,speed3-pvs8-bin-v1 = + < 0 0 0 >, +@@ -1429,9 +1475,12 @@ + < 2342400000 1020000 751 >, + < 2419200000 1035000 786 >, + < 2457600000 1040000 802 >, +- < 2572800000 1070000 827 >, +- < 2726400000 1100000 900 >, +- < 2880000000 1130000 937 >; ++ < 2572800000 1095000 827 >, ++ < 2649600000 1110000 866 >, ++ < 2726400000 1125000 900 >, ++ < 2803200000 1145000 937 >, ++ < 2880000000 1155000 937 >, ++ < 2956800000 1170000 937 >; + + qcom,speed3-pvs9-bin-v1 = + < 0 0 0 >, +@@ -1467,9 +1516,12 @@ + < 2342400000 1010000 751 >, + < 2419200000 1025000 786 >, + < 2457600000 1030000 802 >, +- < 2572800000 1060000 827 >, +- < 2726400000 1090000 900 >, +- < 2880000000 1120000 937 >; ++ < 2572800000 1085000 827 >, ++ < 2649600000 1100000 866 >, ++ < 2726400000 1115000 900 >, ++ < 2803200000 1135000 937 >, ++ < 2880000000 1145000 937 >, ++ < 2956800000 1160000 937 >; + + qcom,speed3-pvs10-bin-v1 = + < 0 0 0 >, +@@ -1505,9 +1557,12 @@ + < 2342400000 1000000 751 >, + < 2419200000 1015000 786 >, + < 2457600000 1020000 802 >, +- < 2572800000 1050000 827 >, +- < 2726400000 1080000 900 >, +- < 2880000000 1110000 937 >; ++ < 2572800000 1075000 827 >, ++ < 2649600000 1090000 866 >, ++ < 2726400000 1105000 900 >, ++ < 2803200000 1125000 937 >, ++ < 2880000000 1135000 937 >, ++ < 2956800000 1150000 937 >; + + qcom,speed3-pvs11-bin-v1 = + < 0 0 0 >, +@@ -1543,9 +1598,12 @@ + < 2342400000 990000 751 >, + < 2419200000 1005000 786 >, + < 2457600000 1010000 802 >, +- < 2572800000 1040000 827 >, +- < 2726400000 1070000 900 >, +- < 2880000000 1100000 937 >; ++ < 2572800000 1065000 827 >, ++ < 2649600000 1080000 866 >, ++ < 2726400000 1095000 900 >, ++ < 2803200000 1115000 937 >, ++ < 2880000000 1125000 937 >, ++ < 2956800000 1140000 937 >; + + qcom,speed3-pvs12-bin-v1 = + < 0 0 0 >, +@@ -1581,9 +1639,12 @@ + < 2342400000 980000 751 >, + < 2419200000 995000 786 >, + < 2457600000 1000000 802 >, +- < 2572800000 1040000 827 >, +- < 2726400000 1060000 900 >, +- < 2880000000 1090000 937 >; ++ < 2572800000 1065000 827 >, ++ < 2649600000 1075000 866 >, ++ < 2726400000 1085000 900 >, ++ < 2803200000 1105000 937 >, ++ < 2880000000 1115000 937 >, ++ < 2956800000 1130000 937 >; + + qcom,speed3-pvs13-bin-v1 = + < 0 0 0 >, +@@ -1619,9 +1680,12 @@ + < 2342400000 970000 751 >, + < 2419200000 985000 786 >, + < 2457600000 990000 802 >, +- < 2572800000 1020000 827 >, +- < 2726400000 1040000 900 >, +- < 2880000000 1070000 937 >; ++ < 2572800000 1045000 827 >, ++ < 2649600000 1055000 866 >, ++ < 2726400000 1065000 900 >, ++ < 2803200000 1085000 937 >, ++ < 2880000000 1095000 937 >, ++ < 2956800000 1110000 937 >; + + qcom,speed3-pvs14-bin-v1 = + < 0 0 0 >, +@@ -1657,9 +1721,12 @@ + < 2342400000 960000 751 >, + < 2419200000 975000 786 >, + < 2457600000 980000 802 >, +- < 2572800000 1010000 827 >, +- < 2726400000 1030000 900 >, +- < 2880000000 1060000 937 >; ++ < 2572800000 1035000 827 >, ++ < 2649600000 1045000 866 >, ++ < 2726400000 1055000 900 >, ++ < 2803200000 1075000 937 >, ++ < 2880000000 1085000 937 >, ++ < 2956800000 1100000 937 >; + + qcom,speed3-pvs15-bin-v1 = + < 0 0 0 >, +@@ -1695,16 +1762,19 @@ + < 2342400000 950000 751 >, + < 2419200000 965000 786 >, + < 2457600000 970000 802 >, +- < 2572800000 1000000 827 >, +- < 2726400000 1020000 900 >, +- < 2880000000 1050000 937 >; ++ < 2572800000 1025000 827 >, ++ < 2649600000 1035000 866 >, ++ < 2726400000 1045000 900 >, ++ < 2803200000 1065000 937 >, ++ < 2880000000 1075000 937 >, ++ < 2956800000 1090000 937 >; + }; + + qcom,msm-cpufreq@0 { + reg = <0 4>; + compatible = "qcom,msm-cpufreq"; + qcom,cpufreq-table = +- < 268800 /* 75 MHz */ >, ++ < 268800 /* 50 MHz */ >, + < 300000 /* 75 MHz */ >, + < 345600 /* 75 MHz */ >, + < 422400 /* 150 MHz */ >, +@@ -1725,13 +1795,15 @@ + < 1574400 /* 800 MHz */ >, + < 1651200 /* 800 MHz */ >, + < 1728000 /* 800 MHz */ >, +- < 1958400 /* 931 MHz */ >, ++ < 1958400 /* 800 MHz */ >, + < 2265600 /* 931 MHz */ >, + < 2342400 /* 931 MHz */ >, + < 2419200 /* 931 MHz */ >, + < 2457600 /* 931 MHz */ >, + < 2572800 /* 931 MHz */ >, ++ < 2649600 /* 931 MHz */ >, + < 2726400 /* 931 MHz */ >, ++ < 2803200 /* 931 MHz */ >, + < 2880000 /* 931 MHz */ >; + }; + +-- +2.10.2 + + +From 2b75e5bcb9f3f8a72e6d2df812a7e06c52b525ae Mon Sep 17 00:00:00 2001 +From: Evisceration +Date: Mon, 8 Dec 2014 01:22:03 +0100 +Subject: [PATCH 7/9] dts: fix incorrect frequency + + * causes core 0 to be stuck at 2265 MHz + +Change-Id: I8d60596ca12255290d0f673666227ad28ea5514f +--- + arch/arm/boot/dts/msm8974-v2.dtsi | 2 +- + arch/arm/boot/dts/msm8974pro.dtsi | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/msm8974-v2.dtsi b/arch/arm/boot/dts/msm8974-v2.dtsi +index 91844c3..f98f53a 100644 +--- a/arch/arm/boot/dts/msm8974-v2.dtsi ++++ b/arch/arm/boot/dts/msm8974-v2.dtsi +@@ -123,7 +123,7 @@ + <1880000 2068000>, + <3008000 3309000>, + <3760000 4136000>, +- <4468000 2457000>; ++ <4468000 2457600>; + qcom,dec-ocmem-ab-ib = <0 0>, + <176000 519000>, + <456000 519000>, +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index 1ef99df..fed5f66 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -1967,7 +1967,7 @@ + <1880000 2068000>, + <3008000 3309000>, + <3760000 4136000>, +- <4468000 2457000>; ++ <4468000 2457600>; + qcom,dec-ocmem-ab-ib = <0 0>, + <176000 519000>, + <456000 519000>, +-- +2.10.2 + + +From 7fd5237c0cc7487b73ce9eec61853dcd126869c5 Mon Sep 17 00:00:00 2001 +From: WedyDQ10 +Date: Sun, 11 Jan 2015 20:55:23 +0900 +Subject: [PATCH 8/9] CPU Overclock over 2.889GHz + +--- + arch/arm/mach-msm/clock-krait-8974.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/mach-msm/clock-krait-8974.c b/arch/arm/mach-msm/clock-krait-8974.c +index f7ca20a..d96eb37 100644 +--- a/arch/arm/mach-msm/clock-krait-8974.c ++++ b/arch/arm/mach-msm/clock-krait-8974.c +@@ -44,7 +44,7 @@ static int hfpll_uv[] = { + static DEFINE_VDD_REGULATORS(vdd_hfpll, ARRAY_SIZE(hfpll_uv)/2, 2, + hfpll_uv, NULL); + +-static unsigned long hfpll_fmax[] = { 0, 998400000, 1996800000, 2900000000UL }; ++static unsigned long hfpll_fmax[] = { 0, 998400000, 1996800000, 3100000000UL }; + + static struct hfpll_data hdata = { + .mode_offset = 0x0, +@@ -58,7 +58,7 @@ static struct hfpll_data hdata = { + .user_val = 0x8, + .low_vco_max_rate = 1248000000, + .min_rate = 537600000UL, +- .max_rate = 2900000000UL, ++ .max_rate = 3100000000UL, + }; + + static struct hfpll_clk hfpll0_clk = { +-- +2.10.2 + + +From 4b054faec6161af8f34b3206d785b6b2e7d30bd3 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sat, 27 Feb 2016 16:58:05 -0500 +Subject: [PATCH 9/9] Enable 2.95Ghz overclock + +Change-Id: I022f7581ac48f184dbf5f2a9bb3f734f8335478f +--- + arch/arm/boot/dts/msm8974pro.dtsi | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index fed5f66..70fac47 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -1804,7 +1804,8 @@ + < 2649600 /* 931 MHz */ >, + < 2726400 /* 931 MHz */ >, + < 2803200 /* 931 MHz */ >, +- < 2880000 /* 931 MHz */ >; ++ < 2880000 /* 931 MHz */ >, ++ < 2956800 /* 931 MHz */ >; + }; + + i2c@f9928000 { /* BLSP-1 QUP-6 */ +-- +2.10.2 + diff --git a/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0001-OverUnderClock.patch b/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0001-OverUnderClock.patch new file mode 100644 index 00000000..4a23466b --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0001-OverUnderClock.patch @@ -0,0 +1,709 @@ +From 0b95ae785c6f1df0e7466a1922f5f3ff858897ae Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sat, 17 Oct 2015 20:49:57 -0400 +Subject: [PATCH] Overclocked to 2.8Ghz, underclocked to 268Mhz + +--- + arch/arm/boot/dts/msm8974-v2.dtsi | 2 +- + arch/arm/boot/dts/msm8974pro-pm8941.dtsi | 8 +- + .../arm/boot/dts/msm8974pro-pma8084-regulator.dtsi | 16 +- + arch/arm/boot/dts/msm8974pro.dtsi | 190 ++++++++++++++++++--- + 4 files changed, 179 insertions(+), 37 deletions(-) + +diff --git a/arch/arm/boot/dts/msm8974-v2.dtsi b/arch/arm/boot/dts/msm8974-v2.dtsi +index dbb3bd6..40a730e 100644 +--- a/arch/arm/boot/dts/msm8974-v2.dtsi ++++ b/arch/arm/boot/dts/msm8974-v2.dtsi +@@ -123,7 +123,7 @@ + <1880000 2068000>, + <3008000 3309000>, + <3760000 4136000>, +- <4468000 2457000>; ++ <4468000 2457600>; + qcom,dec-ocmem-ab-ib = <0 0>, + <176000 519000>, + <456000 519000>, +diff --git a/arch/arm/boot/dts/msm8974pro-pm8941.dtsi b/arch/arm/boot/dts/msm8974pro-pm8941.dtsi +index b502078..79729ea 100644 +--- a/arch/arm/boot/dts/msm8974pro-pm8941.dtsi ++++ b/arch/arm/boot/dts/msm8974pro-pm8941.dtsi +@@ -39,22 +39,22 @@ + }; + + &krait0_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + + &krait1_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + + &krait2_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + + &krait3_vreg { +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,ldo-delta-voltage = <12500>; + }; + +diff --git a/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi b/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi +index 433d466..428a520 100644 +--- a/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi ++++ b/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi +@@ -492,9 +492,9 @@ + <0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,headroom-voltage = <150000>; +- qcom,retention-voltage = <675000>; ++ qcom,retention-voltage = <600000>; + qcom,ldo-default-voltage = <750000>; + qcom,ldo-threshold-voltage = <850000>; + qcom,ldo-delta-voltage = <12500>; +@@ -508,9 +508,9 @@ + <0xf909a800 0x1000>; /* APCS_ALIAS1_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,headroom-voltage = <150000>; +- qcom,retention-voltage = <675000>; ++ qcom,retention-voltage = <600000>; + qcom,ldo-default-voltage = <750000>; + qcom,ldo-threshold-voltage = <850000>; + qcom,ldo-delta-voltage = <12500>; +@@ -524,9 +524,9 @@ + <0xf90aa800 0x1000>; /* APCS_ALIAS2_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,headroom-voltage = <150000>; +- qcom,retention-voltage = <675000>; ++ qcom,retention-voltage = <600000>; + qcom,ldo-default-voltage = <750000>; + qcom,ldo-threshold-voltage = <850000>; + qcom,ldo-delta-voltage = <12500>; +@@ -540,9 +540,9 @@ + <0xf90ba800 0x1000>; /* APCS_ALIAS3_KPSS_MDD */ + reg-names = "acs", "mdd"; + regulator-min-microvolt = <500000>; +- regulator-max-microvolt = <1120000>; ++ regulator-max-microvolt = <1250000>; + qcom,headroom-voltage = <150000>; +- qcom,retention-voltage = <675000>; ++ qcom,retention-voltage = <600000>; + qcom,ldo-default-voltage = <750000>; + qcom,ldo-threshold-voltage = <850000>; + qcom,ldo-delta-voltage = <12500>; +diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi +index e332793..8524180 100644 +--- a/arch/arm/boot/dts/msm8974pro.dtsi ++++ b/arch/arm/boot/dts/msm8974pro.dtsi +@@ -91,6 +91,7 @@ + qcom,clock-krait@f9016000 { + qcom,speed1-pvs0-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 74 >, + < 345600000 775000 85 >, + < 422400000 775000 104 >, +@@ -122,6 +123,7 @@ + + qcom,speed1-pvs1-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 74 >, + < 345600000 775000 85 >, + < 422400000 775000 104 >, +@@ -153,6 +155,7 @@ + + qcom,speed1-pvs2-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 74 >, + < 345600000 750000 85 >, + < 422400000 750000 104 >, +@@ -184,6 +187,7 @@ + + qcom,speed1-pvs3-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 74 >, + < 345600000 750000 85 >, + < 422400000 750000 104 >, +@@ -215,6 +219,7 @@ + + qcom,speed1-pvs4-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 74 >, + < 345600000 750000 85 >, + < 422400000 750000 104 >, +@@ -246,6 +251,7 @@ + + qcom,speed1-pvs5-bin-v0 = + < 0 0 0 >, ++ < 268800000 720000 68 >, + < 300000000 725000 74 >, + < 345600000 725000 85 >, + < 422400000 725000 104 >, +@@ -277,6 +283,7 @@ + + qcom,speed1-pvs6-bin-v0 = + < 0 0 0 >, ++ < 268800000 720000 68 >, + < 300000000 725000 74 >, + < 345600000 725000 85 >, + < 422400000 725000 104 >, +@@ -308,6 +315,7 @@ + + qcom,speed3-pvs0-bin-v0 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -338,10 +346,14 @@ + < 2265600000 1065000 700 >, + < 2342400000 1080000 734 >, + < 2419200000 1095000 769 >, +- < 2457600000 1100000 785 >; ++ < 2457600000 1100000 785 >, ++ < 2572800000 1145000 827 >, ++ < 2726400000 1205000 900 >, ++ < 2880000000 1235000 937 >; + + qcom,speed3-pvs1-bin-v0 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -372,10 +384,14 @@ + < 2265600000 1040000 700 >, + < 2342400000 1055000 734 >, + < 2419200000 1070000 769 >, +- < 2457600000 1075000 785 >; ++ < 2457600000 1075000 785 >, ++ < 2572800000 1145000 827 >, ++ < 2726400000 1205000 900 >, ++ < 2880000000 1235000 937 >; + + qcom,speed3-pvs2-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -406,10 +422,14 @@ + < 2265600000 1015000 700 >, + < 2342400000 1030000 734 >, + < 2419200000 1045000 769 >, +- < 2457600000 1050000 785 >; ++ < 2457600000 1050000 785 >, ++ < 2572800000 1125000 827 >, ++ < 2726400000 1195000 900 >, ++ < 2880000000 1225000 937 >; + + qcom,speed3-pvs3-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -440,10 +460,14 @@ + < 2265600000 990000 700 >, + < 2342400000 1005000 734 >, + < 2419200000 1020000 769 >, +- < 2457600000 1025000 785 >; ++ < 2457600000 1025000 785 >, ++ < 2572800000 1115000 827 >, ++ < 2726400000 1185000 900 >, ++ < 2880000000 1215000 937 >; + + qcom,speed3-pvs4-bin-v0 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -474,10 +498,14 @@ + < 2265600000 965000 700 >, + < 2342400000 980000 734 >, + < 2419200000 995000 769 >, +- < 2457600000 1000000 785 >; ++ < 2457600000 1000000 785 >, ++ < 2572800000 1075000 827 >, ++ < 2726400000 1175000 900 >, ++ < 2880000000 1205000 937 >; + + qcom,speed3-pvs5-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -508,10 +536,14 @@ + < 2265600000 940000 700 >, + < 2342400000 955000 734 >, + < 2419200000 970000 769 >, +- < 2457600000 975000 785 >; ++ < 2457600000 975000 785 >, ++ < 2572800000 1025000 827 >, ++ < 2726400000 1175000 900 >, ++ < 2880000000 1195000 937 >; + + qcom,speed3-pvs6-bin-v0 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -542,10 +574,14 @@ + < 2265600000 915000 700 >, + < 2342400000 930000 734 >, + < 2419200000 945000 769 >, +- < 2457600000 950000 785 >; ++ < 2457600000 950000 785 >, ++ < 2572800000 1010000 827 >, ++ < 2726400000 1155000 900 >, ++ < 2880000000 1175000 937 >; + + qcom,speed1-pvs0-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 810000 87 >, + < 422400000 820000 108 >, +@@ -577,6 +613,7 @@ + + qcom,speed1-pvs1-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 810000 108 >, +@@ -608,6 +645,7 @@ + + qcom,speed1-pvs2-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -639,6 +677,7 @@ + + qcom,speed1-pvs3-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -670,6 +709,7 @@ + + qcom,speed1-pvs4-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -701,6 +741,7 @@ + + qcom,speed1-pvs5-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 108 >, +@@ -732,6 +773,7 @@ + + qcom,speed1-pvs6-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -763,6 +805,7 @@ + + qcom,speed1-pvs7-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -794,6 +837,7 @@ + + qcom,speed1-pvs8-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -825,6 +869,7 @@ + + qcom,speed1-pvs9-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -856,6 +901,7 @@ + + qcom,speed1-pvs10-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -887,6 +933,7 @@ + + qcom,speed1-pvs11-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -918,6 +965,7 @@ + + qcom,speed1-pvs12-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -949,6 +997,7 @@ + + qcom,speed1-pvs13-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 108 >, +@@ -980,6 +1029,7 @@ + + qcom,speed1-pvs14-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 108 >, +@@ -1011,6 +1061,7 @@ + + qcom,speed1-pvs15-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 108 >, +@@ -1042,6 +1093,7 @@ + + qcom,speed3-pvs0-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1072,10 +1124,14 @@ + < 2265600000 1085000 716 >, + < 2342400000 1100000 751 >, + < 2419200000 1115000 786 >, +- < 2457600000 1120000 802 >; ++ < 2457600000 1120000 802 >, ++ < 2572800000 1175000 827 >, ++ < 2726400000 1225000 900 >, ++ < 2880000000 1265000 937 >; + + qcom,speed3-pvs1-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1106,10 +1162,14 @@ + < 2265600000 1075000 716 >, + < 2342400000 1090000 751 >, + < 2419200000 1105000 786 >, +- < 2457600000 1110000 802 >; ++ < 2457600000 1110000 802 >, ++ < 2572800000 1165000 827 >, ++ < 2726400000 1215000 900 >, ++ < 2880000000 1245000 937 >; + + qcom,speed3-pvs2-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1140,10 +1200,14 @@ + < 2265600000 1065000 716 >, + < 2342400000 1080000 751 >, + < 2419200000 1095000 786 >, +- < 2457600000 1100000 802 >; ++ < 2457600000 1100000 802 >, ++ < 2572800000 1145000 827 >, ++ < 2726400000 1185000 900 >, ++ < 2880000000 1215000 937 >; + + qcom,speed3-pvs3-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1174,10 +1238,14 @@ + < 2265600000 1055000 716 >, + < 2342400000 1070000 751 >, + < 2419200000 1085000 786 >, +- < 2457600000 1090000 802 >; ++ < 2457600000 1090000 802 >, ++ < 2572800000 1145000 827 >, ++ < 2726400000 1175000 900 >, ++ < 2880000000 1205000 937 >; + + qcom,speed3-pvs4-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1208,10 +1276,14 @@ + < 2265600000 1045000 716 >, + < 2342400000 1060000 751 >, + < 2419200000 1075000 786 >, +- < 2457600000 1080000 802 >; ++ < 2457600000 1080000 802 >, ++ < 2572800000 1135000 827 >, ++ < 2726400000 1165000 900 >, ++ < 2880000000 1195000 937 >; + + qcom,speed3-pvs5-bin-v1 = + < 0 0 0 >, ++ < 268800000 795000 68 >, + < 300000000 800000 76 >, + < 345600000 800000 87 >, + < 422400000 800000 106 >, +@@ -1242,10 +1314,14 @@ + < 2265600000 1035000 716 >, + < 2342400000 1050000 751 >, + < 2419200000 1065000 786 >, +- < 2457600000 1070000 802 >; ++ < 2457600000 1070000 802 >, ++ < 2572800000 1125000 827 >, ++ < 2726400000 1155000 900 >, ++ < 2880000000 1185000 937 >; + + qcom,speed3-pvs6-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1276,10 +1352,14 @@ + < 2265600000 1025000 716 >, + < 2342400000 1040000 751 >, + < 2419200000 1055000 786 >, +- < 2457600000 1060000 802 >; ++ < 2457600000 1060000 802 >, ++ < 2572800000 1115000 827 >, ++ < 2726400000 1145000 900 >, ++ < 2880000000 1175000 937 >; + + qcom,speed3-pvs7-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1310,10 +1390,14 @@ + < 2265600000 1015000 716 >, + < 2342400000 1030000 751 >, + < 2419200000 1045000 786 >, +- < 2457600000 1050000 802 >; ++ < 2457600000 1050000 802 >, ++ < 2572800000 1105000 827 >, ++ < 2726400000 1135000 900 >, ++ < 2880000000 1165000 937 >; + + qcom,speed3-pvs8-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1344,10 +1428,14 @@ + < 2265600000 1005000 716 >, + < 2342400000 1020000 751 >, + < 2419200000 1035000 786 >, +- < 2457600000 1040000 802 >; ++ < 2457600000 1040000 802 >, ++ < 2572800000 1095000 827 >, ++ < 2726400000 1125000 900 >, ++ < 2880000000 1155000 937 >; + + qcom,speed3-pvs9-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1378,10 +1466,14 @@ + < 2265600000 995000 716 >, + < 2342400000 1010000 751 >, + < 2419200000 1025000 786 >, +- < 2457600000 1030000 802 >; ++ < 2457600000 1030000 802 >, ++ < 2572800000 1085000 827 >, ++ < 2726400000 1115000 900 >, ++ < 2880000000 1145000 937 >; + + qcom,speed3-pvs10-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1412,10 +1504,14 @@ + < 2265600000 985000 716 >, + < 2342400000 1000000 751 >, + < 2419200000 1015000 786 >, +- < 2457600000 1020000 802 >; ++ < 2457600000 1020000 802 >, ++ < 2572800000 1075000 827 >, ++ < 2726400000 1105000 900 >, ++ < 2880000000 1135000 937 >; + + qcom,speed3-pvs11-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1446,10 +1542,14 @@ + < 2265600000 975000 716 >, + < 2342400000 990000 751 >, + < 2419200000 1005000 786 >, +- < 2457600000 1010000 802 >; ++ < 2457600000 1010000 802 >, ++ < 2572800000 1065000 827 >, ++ < 2726400000 1095000 900 >, ++ < 2880000000 1125000 937 >; + + qcom,speed3-pvs12-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1480,10 +1580,14 @@ + < 2265600000 965000 716 >, + < 2342400000 980000 751 >, + < 2419200000 995000 786 >, +- < 2457600000 1000000 802 >; ++ < 2457600000 1000000 802 >, ++ < 2572800000 1065000 827 >, ++ < 2726400000 1085000 900 >, ++ < 2880000000 1115000 937 >; + + qcom,speed3-pvs13-bin-v1 = + < 0 0 0 >, ++ < 268800000 770000 68 >, + < 300000000 775000 76 >, + < 345600000 775000 87 >, + < 422400000 775000 106 >, +@@ -1514,10 +1618,14 @@ + < 2265600000 955000 716 >, + < 2342400000 970000 751 >, + < 2419200000 985000 786 >, +- < 2457600000 990000 802 >; ++ < 2457600000 990000 802 >, ++ < 2572800000 1045000 827 >, ++ < 2726400000 1065000 900 >, ++ < 2880000000 1095000 937 >; + + qcom,speed3-pvs14-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -1548,10 +1656,14 @@ + < 2265600000 945000 716 >, + < 2342400000 960000 751 >, + < 2419200000 975000 786 >, +- < 2457600000 980000 802 >; ++ < 2457600000 980000 802 >, ++ < 2572800000 1035000 827 >, ++ < 2726400000 1055000 900 >, ++ < 2880000000 1085000 937 >; + + qcom,speed3-pvs15-bin-v1 = + < 0 0 0 >, ++ < 268800000 745000 68 >, + < 300000000 750000 76 >, + < 345600000 750000 87 >, + < 422400000 750000 106 >, +@@ -1582,9 +1694,39 @@ + < 2265600000 935000 716 >, + < 2342400000 950000 751 >, + < 2419200000 965000 786 >, +- < 2457600000 970000 802 >; ++ < 2457600000 970000 802 >, ++ < 2572800000 1025000 827 >, ++ < 2726400000 1045000 900 >, ++ < 2880000000 1075000 937 >; + }; + ++ qcom,msm-cpufreq@0 { ++ reg = <0 4>; ++ compatible = "qcom,msm-cpufreq"; ++ qcom,cpufreq-table = ++ < 268800 /* 75 MHz */ >, ++ < 300000 /* 75 MHz */ >, ++ < 422400 /* 150 MHz */ >, ++ < 652800 /* 200 MHz */ >, ++ < 729600 /* 307 MHz */ >, ++ < 883200 /* 307 MHz */ >, ++ < 960000 /* 460 MHz */ >, ++ < 1036800 /* 460 MHz */ >, ++ < 1190400 /* 460 MHz */ >, ++ < 1267200 /* 614 MHz */ >, ++ < 1497600 /* 614 MHz */ >, ++ < 1574400 /* 800 MHz */ >, ++ < 1728000 /* 800 MHz */ >, ++ < 1958400 /* 931 MHz */ >, ++ < 2265600 /* 931 MHz */ >, ++ < 2342400 /* 931 MHz */ >, ++ < 2419200 /* 931 MHz */ >, ++ < 2457600 /* 931 MHz */ >, ++ < 2572800 /* 931 MHz */ >, ++ < 2726400 /* 931 MHz */ >, ++ < 2880000 /* 931 MHz */ >; ++ }; ++ + i2c@f9928000 { /* BLSP-1 QUP-6 */ + cell-index = <3>; + compatible = "qcom,i2c-qup"; +@@ -1745,7 +1887,7 @@ + <1880000 2068000>, + <3008000 3309000>, + <3760000 4136000>, +- <4468000 2457000>; ++ <4468000 2457600>; + qcom,dec-ocmem-ab-ib = <0 0>, + <176000 519000>, + <456000 519000>, +-- +2.10.2 + diff --git a/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0002-Enable_Diag.patch b/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0002-Enable_Diag.patch new file mode 100644 index 00000000..53c5d08c --- /dev/null +++ b/Patches/LineageOS-14.1/android_kernel_oneplus_msm8974/0002-Enable_Diag.patch @@ -0,0 +1,23 @@ +From 94d13624a7710818698d5787a7bcd7f8a272762b Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sat, 17 Oct 2015 20:50:31 -0400 +Subject: [PATCH] Update defconfig + +--- + arch/arm/configs/cyanogenmod_bacon_defconfig | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/configs/cyanogenmod_bacon_defconfig b/arch/arm/configs/cyanogenmod_bacon_defconfig +index 33ceebd..8cb1936 100644 +--- a/arch/arm/configs/cyanogenmod_bacon_defconfig ++++ b/arch/arm/configs/cyanogenmod_bacon_defconfig +@@ -591,3 +591,6 @@ CONFIG_CRYPTO_TWOFISH=y + CONFIG_CRYPTO_DEV_QCRYPTO=y + CONFIG_CRYPTO_DEV_QCE=y + CONFIG_CRYPTO_DEV_QCEDEV=y ++ ++CONFIG_DIAG_CHAR=y ++CONFIG_DIAG_OVER_USB=y +-- +2.10.2 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_CMParts/0001-Remove_Analytics.patch b/Patches/LineageOS-14.1/android_packages_apps_CMParts/0001-Remove_Analytics.patch new file mode 100644 index 00000000..b1b4b871 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_CMParts/0001-Remove_Analytics.patch @@ -0,0 +1,1068 @@ +From 3b221ea04b84cf9df2098598c0d4979446b0c914 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 23 Dec 2016 23:09:33 -0500 +Subject: [PATCH] Remove stats + +Change-Id: I13313c99c3a839f6ae53d5d87a9999da23fb1103 +--- + AndroidManifest.xml | 25 -- + proguard.flags | 1 - + res/values/config.xml | 5 - + res/values/strings.xml | 22 -- + res/xml/anonymous_stats.xml | 32 --- + res/xml/parts_catalog.xml | 5 - + res/xml/preview_data.xml | 52 ---- + res/xml/privacy_settings.xml | 8 - + .../cmparts/cmstats/AnonymousStats.java | 101 ------- + .../cyanogenmod/cmparts/cmstats/PreviewData.java | 49 ---- + .../cmparts/cmstats/ReportingService.java | 106 -------- + .../cmparts/cmstats/ReportingServiceManager.java | 123 --------- + .../cmparts/cmstats/StatsUploadJobService.java | 291 --------------------- + src/org/cyanogenmod/cmparts/cmstats/Utilities.java | 102 -------- + 14 files changed, 922 deletions(-) + delete mode 100644 res/xml/anonymous_stats.xml + delete mode 100644 res/xml/preview_data.xml + delete mode 100644 src/org/cyanogenmod/cmparts/cmstats/AnonymousStats.java + delete mode 100644 src/org/cyanogenmod/cmparts/cmstats/PreviewData.java + delete mode 100644 src/org/cyanogenmod/cmparts/cmstats/ReportingService.java + delete mode 100644 src/org/cyanogenmod/cmparts/cmstats/ReportingServiceManager.java + delete mode 100644 src/org/cyanogenmod/cmparts/cmstats/StatsUploadJobService.java + delete mode 100644 src/org/cyanogenmod/cmparts/cmstats/Utilities.java + +diff --git a/AndroidManifest.xml b/AndroidManifest.xml +index 1bdf33d..ceec90e 100644 +--- a/AndroidManifest.xml ++++ b/AndroidManifest.xml +@@ -179,31 +179,6 @@ + android:value="status_bar_settings" /> + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +- +- https://stats.cyanogenmod.org/submit +- https://shopvac.cyngn.com/community/heartbeat +- https://account.cyngn.com/api/v1/community/heartbeat_token +- + + true + +diff --git a/res/values/strings.xml b/res/values/strings.xml +index 0557279..cfcf049 100644 +--- a/res/values/strings.xml ++++ b/res/values/strings.xml +@@ -483,28 +483,6 @@ + Total commits: %2$s

+ Last update: %3$s]]>
+ +- +- +- CyanogenMod statistics +- Help make CyanogenMod better by opting into anonymous statistics reporting +- About +- Opting into CyanogenMod Statistics will allow non-personal data to be submitted to the +- developers of CyanogenMod to track unique installations across devices. The information submitted includes an unique identifier, +- which does not compromise your privacy or personal data. The data is submitted during each boot.\n\nFor an example of the data that is submitted, tap on Preview Data. +- Enable reporting +- Preview data +- View stats +- Learn more +- +- +- Unique ID +- Device +- Version +- Country +- Carrier +- Stats collection +- When enabled, allows metrics collection +- + + Auto-rotate screen + Rotation settings +diff --git a/res/xml/anonymous_stats.xml b/res/xml/anonymous_stats.xml +deleted file mode 100644 +index b29885c..0000000 +--- a/res/xml/anonymous_stats.xml ++++ /dev/null +@@ -1,32 +0,0 @@ +- +- +- +- +- +- +- +- +- +- +diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml +index 07329d9..649e808 100644 +--- a/res/xml/parts_catalog.xml ++++ b/res/xml/parts_catalog.xml +@@ -73,11 +73,6 @@ + android:fragment="org.cyanogenmod.cmparts.statusbar.StatusBarSettings" + cm:xmlRes="@xml/status_bar_settings" /> + +- +- + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml +index 5ae923a..45df2a1 100644 +--- a/res/xml/privacy_settings.xml ++++ b/res/xml/privacy_settings.xml +@@ -36,12 +36,4 @@ + android:targetClass="com.android.settings.applications.ProtectedAppsActivity" /> + + +- +- +- +- + +diff --git a/src/org/cyanogenmod/cmparts/cmstats/AnonymousStats.java b/src/org/cyanogenmod/cmparts/cmstats/AnonymousStats.java +deleted file mode 100644 +index 7c6294e..0000000 +--- a/src/org/cyanogenmod/cmparts/cmstats/AnonymousStats.java ++++ /dev/null +@@ -1,101 +0,0 @@ +-/* +- * Copyright (C) 2015 The CyanogenMod 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. +- */ +- +-package org.cyanogenmod.cmparts.cmstats; +- +-import android.content.Context; +-import android.content.SharedPreferences; +-import android.os.Bundle; +- +-import android.os.UserHandle; +-import android.support.v7.preference.Preference; +-import android.support.v7.preference.PreferenceScreen; +-import android.support.v14.preference.SwitchPreference; +- +-import org.cyanogenmod.cmparts.R; +-import org.cyanogenmod.cmparts.SettingsPreferenceFragment; +- +-import cyanogenmod.providers.CMSettings; +- +-public class AnonymousStats extends SettingsPreferenceFragment { +- +- private static final String PREF_FILE_NAME = "CMStats"; +- /* package */ static final String ANONYMOUS_OPT_IN = "pref_anonymous_opt_in"; +- /* package */ static final String ANONYMOUS_LAST_CHECKED = "pref_anonymous_checked_in"; +- +- /* package */ static final String KEY_LAST_JOB_ID = "last_job_id"; +- /* package */ static final int QUEUE_MAX_THRESHOLD = 1000; +- +- public static final String KEY_STATS = "stats_collection"; +- +- SwitchPreference mStatsSwitch; +- +- public static SharedPreferences getPreferences(Context context) { +- return context.getSharedPreferences(PREF_FILE_NAME, 0); +- } +- +- @Override +- public void onCreate(Bundle savedInstanceState) { +- super.onCreate(savedInstanceState); +- addPreferencesFromResource(R.xml.anonymous_stats); +- mStatsSwitch = (SwitchPreference) findPreference(KEY_STATS); +- } +- +- @Override +- public boolean onPreferenceTreeClick(Preference preference) { +- if (preference == mStatsSwitch) { +- boolean checked = mStatsSwitch.isChecked(); +- if (checked) { +- // clear opt out flags +- CMSettings.Secure.putIntForUser(getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION_REPORTED, 0, UserHandle.USER_OWNER); +- } +- // will initiate opt out sequence if necessary +- ReportingServiceManager.setAlarm(getActivity()); +- return true; +- } +- return super.onPreferenceTreeClick(preference); +- } +- +- public static void updateLastSynced(Context context) { +- getPreferences(context) +- .edit() +- .putLong(ANONYMOUS_LAST_CHECKED,System.currentTimeMillis()) +- .commit(); +- } +- +- private static int getLastJobId(Context context) { +- return getPreferences(context).getInt(KEY_LAST_JOB_ID, 0); +- } +- +- private static void setLastJobId(Context context, int id) { +- getPreferences(context) +- .edit() +- .putInt(KEY_LAST_JOB_ID, id) +- .commit(); +- } +- +- public static int getNextJobId(Context context) { +- int lastId = getLastJobId(context); +- if (lastId >= QUEUE_MAX_THRESHOLD) { +- lastId = 1; +- } else { +- lastId += 1; +- } +- setLastJobId(context, lastId); +- return lastId; +- } +-} +diff --git a/src/org/cyanogenmod/cmparts/cmstats/PreviewData.java b/src/org/cyanogenmod/cmparts/cmstats/PreviewData.java +deleted file mode 100644 +index a14f76b..0000000 +--- a/src/org/cyanogenmod/cmparts/cmstats/PreviewData.java ++++ /dev/null +@@ -1,49 +0,0 @@ +-/* +- * Copyright (C) 2012 The CyanogenMod 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. +- */ +- +-package org.cyanogenmod.cmparts.cmstats; +- +-import android.content.Context; +-import android.os.Bundle; +-import android.support.v7.preference.Preference; +-import android.support.v7.preference.PreferenceScreen; +- +-import org.cyanogenmod.cmparts.R; +-import org.cyanogenmod.cmparts.SettingsPreferenceFragment; +- +-public class PreviewData extends SettingsPreferenceFragment { +- private static final String UNIQUE_ID = "preview_id"; +- private static final String DEVICE = "preview_device"; +- private static final String VERSION = "preview_version"; +- private static final String COUNTRY = "preview_country"; +- private static final String CARRIER = "preview_carrier"; +- +- @Override +- public void onCreate(Bundle savedInstanceState) { +- super.onCreate(savedInstanceState); +- +- addPreferencesFromResource(R.xml.preview_data); +- +- final PreferenceScreen prefSet = getPreferenceScreen(); +- final Context context = getActivity(); +- +- prefSet.findPreference(UNIQUE_ID).setSummary(Utilities.getUniqueID(context)); +- prefSet.findPreference(DEVICE).setSummary(Utilities.getDevice()); +- prefSet.findPreference(VERSION).setSummary(Utilities.getModVersion()); +- prefSet.findPreference(COUNTRY).setSummary(Utilities.getCountryCode(context)); +- prefSet.findPreference(CARRIER).setSummary(Utilities.getCarrier(context)); +- } +-} +diff --git a/src/org/cyanogenmod/cmparts/cmstats/ReportingService.java b/src/org/cyanogenmod/cmparts/cmstats/ReportingService.java +deleted file mode 100644 +index 0725676..0000000 +--- a/src/org/cyanogenmod/cmparts/cmstats/ReportingService.java ++++ /dev/null +@@ -1,106 +0,0 @@ +-/* +- * Copyright (C) 2015 The CyanogenMod 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. +- */ +- +-package org.cyanogenmod.cmparts.cmstats; +- +-import android.app.IntentService; +-import android.app.job.JobInfo; +-import android.app.job.JobScheduler; +-import android.content.ComponentName; +-import android.content.Context; +-import android.content.Intent; +-import android.os.PersistableBundle; +-import android.os.UserHandle; +-import android.util.Log; +-import cyanogenmod.providers.CMSettings; +- +-import java.util.List; +- +-public class ReportingService extends IntentService { +- /* package */ static final String TAG = "CMStats"; +- private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); +- +- public static final String EXTRA_OPTING_OUT = "cmstats::opt_out"; +- +- public ReportingService() { +- super(ReportingService.class.getSimpleName()); +- } +- +- @Override +- protected void onHandleIntent(Intent intent) { +- JobScheduler js = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE); +- +- String deviceId = Utilities.getUniqueID(getApplicationContext()); +- String deviceName = Utilities.getDevice(); +- String deviceVersion = Utilities.getModVersion(); +- String deviceCountry = Utilities.getCountryCode(getApplicationContext()); +- String deviceCarrier = Utilities.getCarrier(getApplicationContext()); +- String deviceCarrierId = Utilities.getCarrierId(getApplicationContext()); +- boolean optOut = intent.getBooleanExtra(EXTRA_OPTING_OUT, false); +- +- final int cyanogenJobId = AnonymousStats.getNextJobId(getApplicationContext()); +- final int cmOrgJobId = AnonymousStats.getNextJobId(getApplicationContext()); +- +- if (DEBUG) Log.d(TAG, "scheduling jobs id: " + cyanogenJobId + ", " + cmOrgJobId); +- +- PersistableBundle cyanogenBundle = new PersistableBundle(); +- cyanogenBundle.putBoolean(StatsUploadJobService.KEY_OPT_OUT, optOut); +- cyanogenBundle.putString(StatsUploadJobService.KEY_DEVICE_NAME, deviceName); +- cyanogenBundle.putString(StatsUploadJobService.KEY_UNIQUE_ID, deviceId); +- cyanogenBundle.putString(StatsUploadJobService.KEY_VERSION, deviceVersion); +- cyanogenBundle.putString(StatsUploadJobService.KEY_COUNTRY, deviceCountry); +- cyanogenBundle.putString(StatsUploadJobService.KEY_CARRIER, deviceCarrier); +- cyanogenBundle.putString(StatsUploadJobService.KEY_CARRIER_ID, deviceCarrierId); +- cyanogenBundle.putLong(StatsUploadJobService.KEY_TIMESTAMP, System.currentTimeMillis()); +- +- // get snapshot and persist it +- PersistableBundle cmBundle = new PersistableBundle(cyanogenBundle); +- +- // set job types +- cyanogenBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE, +- StatsUploadJobService.JOB_TYPE_CYANOGEN); +- cmBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE, +- StatsUploadJobService.JOB_TYPE_CMORG); +- +- // schedule cyanogen stats upload +- js.schedule(new JobInfo.Builder(cyanogenJobId, new ComponentName(getPackageName(), +- StatsUploadJobService.class.getName())) +- .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) +- .setMinimumLatency(1000) +- .setExtras(cyanogenBundle) +- .setPersisted(true) +- .build()); +- +- // schedule cmorg stats upload +- js.schedule(new JobInfo.Builder(cmOrgJobId, new ComponentName(getPackageName(), +- StatsUploadJobService.class.getName())) +- .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) +- .setMinimumLatency(1000) +- .setExtras(cmBundle) +- .setPersisted(true) +- .build()); +- +- if (optOut) { +- // we've successfully scheduled the opt out. +- CMSettings.Secure.putIntForUser(getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION_REPORTED, 1, UserHandle.USER_OWNER); +- } +- +- // reschedule +- AnonymousStats.updateLastSynced(this); +- ReportingServiceManager.setAlarm(this); +- } +-} +diff --git a/src/org/cyanogenmod/cmparts/cmstats/ReportingServiceManager.java b/src/org/cyanogenmod/cmparts/cmstats/ReportingServiceManager.java +deleted file mode 100644 +index 8264739..0000000 +--- a/src/org/cyanogenmod/cmparts/cmstats/ReportingServiceManager.java ++++ /dev/null +@@ -1,123 +0,0 @@ +-/* +- * Copyright (C) 2012 The CyanogenMod 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. +- */ +- +-package org.cyanogenmod.cmparts.cmstats; +- +-import android.app.AlarmManager; +-import android.app.PendingIntent; +-import android.app.job.JobScheduler; +-import android.content.BroadcastReceiver; +-import android.content.Context; +-import android.content.Intent; +-import android.content.SharedPreferences; +-import android.os.UserHandle; +-import android.util.Log; +-import cyanogenmod.providers.CMSettings; +- +-public class ReportingServiceManager extends BroadcastReceiver { +- private static final long MILLIS_PER_HOUR = 60L * 60L * 1000L; +- private static final long MILLIS_PER_DAY = 24L * MILLIS_PER_HOUR; +- private static final long UPDATE_INTERVAL = 1L * MILLIS_PER_DAY; +- +- private static final String TAG = ReportingServiceManager.class.getSimpleName(); +- +- public static final String ACTION_LAUNCH_SERVICE = +- "org.cyanogenmod.cmparts.action.TRIGGER_REPORT_METRICS"; +- public static final String EXTRA_FORCE = "force"; +- +- @Override +- public void onReceive(Context context, Intent intent) { +- if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { +- setAlarm(context); +- } else if (intent.getAction().equals(ACTION_LAUNCH_SERVICE)){ +- launchService(context, intent.getBooleanExtra(EXTRA_FORCE, false)); +- } +- } +- +- /** +- * opt out if we haven't yet +- */ +- public static void initiateOptOut(Context context) { +- final boolean optOutReported = CMSettings.Secure.getIntForUser(context.getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION_REPORTED, 0, UserHandle.USER_OWNER) == 1; +- if (!optOutReported) { +- Intent intent = new Intent(); +- intent.setClass(context, ReportingService.class); +- intent.putExtra(ReportingService.EXTRA_OPTING_OUT, true); +- context.startServiceAsUser(intent, UserHandle.OWNER); +- } +- } +- +- public static void setAlarm(Context context) { +- SharedPreferences prefs = AnonymousStats.getPreferences(context); +- if (prefs.contains(AnonymousStats.ANONYMOUS_OPT_IN)) { +- migrate(context, prefs); +- } +- if (!Utilities.isStatsCollectionEnabled(context)) { +- initiateOptOut(context); +- return; +- } +- long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); +- if (lastSynced == 0) { +- launchService(context, true); // service will reschedule the next alarm +- return; +- } +- long millisFromNow = (lastSynced + UPDATE_INTERVAL) - System.currentTimeMillis(); +- +- Intent intent = new Intent(ACTION_LAUNCH_SERVICE); +- intent.setClass(context, ReportingServiceManager.class); +- +- AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); +- alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + millisFromNow, +- PendingIntent.getBroadcast(context, 0, intent, 0)); +- Log.d(TAG, "Next sync attempt in : " +- + (millisFromNow / MILLIS_PER_HOUR) + " hours"); +- } +- +- public static void launchService(Context context, boolean force) { +- SharedPreferences prefs = AnonymousStats.getPreferences(context); +- +- if (!Utilities.isStatsCollectionEnabled(context)) { +- return; +- } +- +- if (!force) { +- long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); +- if (lastSynced == 0) { +- setAlarm(context); +- return; +- } +- long timeElapsed = System.currentTimeMillis() - lastSynced; +- if (timeElapsed < UPDATE_INTERVAL) { +- long timeLeft = UPDATE_INTERVAL - timeElapsed; +- Log.d(TAG, "Waiting for next sync : " +- + timeLeft / MILLIS_PER_HOUR + " hours"); +- return; +- } +- } +- +- Intent intent = new Intent(); +- intent.setClass(context, ReportingService.class); +- context.startServiceAsUser(intent, UserHandle.OWNER); +- } +- +- private static void migrate(Context context, SharedPreferences prefs) { +- Utilities.setStatsCollectionEnabled(context, +- prefs.getBoolean(AnonymousStats.ANONYMOUS_OPT_IN, true)); +- prefs.edit().remove(AnonymousStats.ANONYMOUS_OPT_IN).commit(); +- } +- +-} +diff --git a/src/org/cyanogenmod/cmparts/cmstats/StatsUploadJobService.java b/src/org/cyanogenmod/cmparts/cmstats/StatsUploadJobService.java +deleted file mode 100644 +index 09f4ea1..0000000 +--- a/src/org/cyanogenmod/cmparts/cmstats/StatsUploadJobService.java ++++ /dev/null +@@ -1,291 +0,0 @@ +-/* +- * Copyright (C) 2015 The CyanogenMod 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. +- */ +- +-package org.cyanogenmod.cmparts.cmstats; +- +-import android.app.job.JobParameters; +-import android.app.job.JobService; +-import android.net.Uri; +-import android.os.AsyncTask; +-import android.os.PersistableBundle; +-import android.util.ArrayMap; +-import android.util.Log; +-import org.cyanogenmod.cmparts.R; +-import org.json.JSONException; +-import org.json.JSONObject; +- +-import java.io.BufferedInputStream; +-import java.io.BufferedReader; +-import java.io.BufferedWriter; +-import java.io.IOException; +-import java.io.InputStream; +-import java.io.InputStreamReader; +-import java.io.OutputStream; +-import java.io.OutputStreamWriter; +-import java.net.HttpURLConnection; +-import java.net.URL; +-import java.util.Collections; +-import java.util.Map; +- +-public class StatsUploadJobService extends JobService { +- +- private static final String TAG = StatsUploadJobService.class.getSimpleName(); +- private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); +- +- public static final String KEY_JOB_TYPE = "job_type"; +- public static final int JOB_TYPE_CYANOGEN = 1; +- public static final int JOB_TYPE_CMORG = 2; +- +- public static final String KEY_UNIQUE_ID = "uniqueId"; +- public static final String KEY_DEVICE_NAME = "deviceName"; +- public static final String KEY_VERSION = "version"; +- public static final String KEY_COUNTRY = "country"; +- public static final String KEY_CARRIER = "carrier"; +- public static final String KEY_CARRIER_ID = "carrierId"; +- public static final String KEY_TIMESTAMP = "timeStamp"; +- public static final String KEY_OPT_OUT = "optOut"; +- +- private final Map mCurrentJobs +- = Collections.synchronizedMap(new ArrayMap()); +- +- @Override +- public boolean onStartJob(JobParameters jobParameters) { +- if (DEBUG) +- Log.d(TAG, "onStartJob() called with " + "jobParameters = [" + jobParameters + "]"); +- final StatsUploadTask uploadTask = new StatsUploadTask(jobParameters); +- mCurrentJobs.put(jobParameters, uploadTask); +- uploadTask.execute((Void) null); +- return true; +- } +- +- @Override +- public boolean onStopJob(JobParameters jobParameters) { +- if (DEBUG) +- Log.d(TAG, "onStopJob() called with " + "jobParameters = [" + jobParameters + "]"); +- +- final StatsUploadTask cancelledJob; +- cancelledJob = mCurrentJobs.remove(jobParameters); +- +- if (cancelledJob != null) { +- // cancel the ongoing background task +- cancelledJob.cancel(true); +- return true; // reschedule +- } +- +- return false; +- } +- +- private class StatsUploadTask extends AsyncTask { +- +- private JobParameters mJobParams; +- +- public StatsUploadTask(JobParameters jobParams) { +- this.mJobParams = jobParams; +- } +- +- @Override +- protected Boolean doInBackground(Void... params) { +- +- PersistableBundle extras = mJobParams.getExtras(); +- +- String deviceId = extras.getString(KEY_UNIQUE_ID); +- String deviceName = extras.getString(KEY_DEVICE_NAME); +- String deviceVersion = extras.getString(KEY_VERSION); +- String deviceCountry = extras.getString(KEY_COUNTRY); +- String deviceCarrier = extras.getString(KEY_CARRIER); +- String deviceCarrierId = extras.getString(KEY_CARRIER_ID); +- long timeStamp = extras.getLong(KEY_TIMESTAMP); +- boolean optOut = extras.getBoolean(KEY_OPT_OUT); +- +- boolean success = false; +- int jobType = extras.getInt(KEY_JOB_TYPE, -1); +- if (!isCancelled()) { +- switch (jobType) { +- case JOB_TYPE_CYANOGEN: +- try { +- JSONObject json = new JSONObject(); +- json.put("optOut", optOut); +- json.put("uniqueId", deviceId); +- json.put("deviceName", deviceName); +- json.put("version", deviceVersion); +- json.put("country", deviceCountry); +- json.put("carrier", deviceCarrier); +- json.put("carrierId", deviceCarrierId); +- json.put("timestamp", timeStamp); +- +- success = uploadToCyanogen(json); +- } catch (IOException | JSONException e) { +- Log.e(TAG, "Could not upload stats checkin to cyanogen server", e); +- success = false; +- } +- break; +- +- case JOB_TYPE_CMORG: +- try { +- success = uploadToCM(deviceId, deviceName, deviceVersion, deviceCountry, +- deviceCarrier, deviceCarrierId, optOut); +- } catch (IOException e) { +- Log.e(TAG, "Could not upload stats checkin to commnity server", e); +- success = false; +- } +- break; +- } +- } +- if (DEBUG) +- Log.d(TAG, "job id " + mJobParams.getJobId() + ", has finished with success=" +- + success); +- return success; +- } +- +- @Override +- protected void onPostExecute(Boolean success) { +- mCurrentJobs.remove(mJobParams); +- jobFinished(mJobParams, !success); +- } +- } +- +- +- private boolean uploadToCM(String deviceId, String deviceName, String deviceVersion, +- String deviceCountry, String deviceCarrier, String deviceCarrierId, +- boolean optOut) +- throws IOException { +- +- final Uri uri = Uri.parse(getString(R.string.stats_cm_url)).buildUpon() +- .appendQueryParameter("opt_out", optOut ? "1" : "0") +- .appendQueryParameter("device_hash", deviceId) +- .appendQueryParameter("device_name", deviceName) +- .appendQueryParameter("device_version", deviceVersion) +- .appendQueryParameter("device_country", deviceCountry) +- .appendQueryParameter("device_carrier", deviceCarrier) +- .appendQueryParameter("device_carrier_id", deviceCarrierId).build(); +- URL url = new URL(uri.toString()); +- HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); +- try { +- urlConnection.setInstanceFollowRedirects(true); +- urlConnection.setDoOutput(true); +- urlConnection.connect(); +- +- final int responseCode = urlConnection.getResponseCode(); +- if (DEBUG) Log.d(TAG, "cm server response code=" + responseCode); +- final boolean success = responseCode == HttpURLConnection.HTTP_OK; +- if (!success) { +- Log.w(TAG, "failed sending, server returned: " + getResponse(urlConnection, +- !success)); +- } +- return success; +- } finally { +- urlConnection.disconnect(); +- } +- +- } +- +- private boolean uploadToCyanogen(JSONObject json) +- throws IOException, JSONException { +- String authToken = getAuthToken(); +- +- if (authToken.isEmpty()) { +- Log.w(TAG, "no auth token!"); +- } +- +- URL url = new URL(getString(R.string.stats_cyanogen_url)); +- HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); +- try { +- urlConnection.setInstanceFollowRedirects(true); +- urlConnection.setDoInput(true); +- urlConnection.setDoOutput(true); +- +- urlConnection.setRequestProperty("Accept-Encoding", "identity"); +- urlConnection.setRequestProperty("Authorization", authToken); +- urlConnection.setRequestProperty("Content-Type", "application/json"); +- +- OutputStream os = urlConnection.getOutputStream(); +- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); +- writer.write(json.toString()); +- writer.flush(); +- writer.close(); +- os.close(); +- +- urlConnection.connect(); +- +- final int responseCode = urlConnection.getResponseCode(); +- final boolean success = responseCode == HttpURLConnection.HTTP_OK; +- +- final String response = getResponse(urlConnection, !success); +- if (DEBUG) +- Log.d(TAG, "server responseCode: " + responseCode +", response=" + response); +- +- if (!success) { +- Log.w(TAG, "failed sending, server returned: " + response); +- } +- return success; +- } finally { +- urlConnection.disconnect(); +- } +- } +- +- private String getAuthToken() { +- HttpURLConnection urlConnection = null; +- try { +- URL url = new URL(getString(R.string.stats_cyanogen_token_url)); +- urlConnection = (HttpURLConnection) url.openConnection(); +- urlConnection.setInstanceFollowRedirects(true); +- urlConnection.setDoInput(true); +- +- urlConnection.setRequestProperty("Accept-Encoding", "identity"); +- urlConnection.setRequestProperty("Content-Type", "text/plain"); +- +- urlConnection.connect(); +- +- final int responseCode = urlConnection.getResponseCode(); +- final boolean success = responseCode == HttpURLConnection.HTTP_OK; +- if (DEBUG) Log.d(TAG, "server auth response code=" + responseCode); +- final String response = getResponse(urlConnection, !success); +- if (DEBUG) +- Log.d(TAG, "server auth response=" + response); +- +- if (success) { +- return response; +- } +- } catch (IOException e) { +- Log.e(TAG, "error getting auth token", e); +- } finally { +- if (urlConnection != null) { +- urlConnection.disconnect(); +- } +- } +- return ""; +- } +- +- private String getResponse(HttpURLConnection httpUrlConnection, boolean errorStream) +- throws IOException { +- InputStream responseStream = new BufferedInputStream(errorStream +- ? httpUrlConnection.getErrorStream() +- : httpUrlConnection.getInputStream()); +- +- BufferedReader responseStreamReader = new BufferedReader( +- new InputStreamReader(responseStream)); +- String line = ""; +- StringBuilder stringBuilder = new StringBuilder(); +- while ((line = responseStreamReader.readLine()) != null) { +- stringBuilder.append(line).append("\n"); +- } +- responseStreamReader.close(); +- responseStream.close(); +- +- return stringBuilder.toString(); +- } +- +-} +diff --git a/src/org/cyanogenmod/cmparts/cmstats/Utilities.java b/src/org/cyanogenmod/cmparts/cmstats/Utilities.java +deleted file mode 100644 +index eefafba..0000000 +--- a/src/org/cyanogenmod/cmparts/cmstats/Utilities.java ++++ /dev/null +@@ -1,102 +0,0 @@ +-/* +- * Copyright (C) 2012 The CyanogenMod 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. +- */ +- +-package org.cyanogenmod.cmparts.cmstats; +- +-import android.content.Context; +-import android.os.Build; +-import android.os.SystemProperties; +-import android.provider.Settings; +-import android.telephony.TelephonyManager; +-import android.text.TextUtils; +- +-import cyanogenmod.providers.CMSettings; +- +-import java.math.BigInteger; +-import java.net.NetworkInterface; +-import java.security.MessageDigest; +- +-public class Utilities { +- public static String getUniqueID(Context context) { +- final String id = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); +- return digest(context.getPackageName() + id); +- } +- +- public static String getCarrier(Context context) { +- TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); +- String carrier = tm.getNetworkOperatorName(); +- if (TextUtils.isEmpty(carrier)) { +- carrier = "Unknown"; +- } +- return carrier; +- } +- +- public static String getCarrierId(Context context) { +- TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); +- String carrierId = tm.getNetworkOperator(); +- if (TextUtils.isEmpty(carrierId)) { +- carrierId = "0"; +- } +- return carrierId; +- } +- +- public static String getCountryCode(Context context) { +- TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); +- String countryCode = tm.getNetworkCountryIso(); +- if (TextUtils.isEmpty(countryCode)) { +- countryCode = "Unknown"; +- } +- return countryCode; +- } +- +- public static String getDevice() { +- return SystemProperties.get("ro.cm.device", Build.PRODUCT); +- } +- +- public static String getModVersion() { +- return SystemProperties.get("ro.cm.version", Build.DISPLAY); +- } +- +- public static String digest(String input) { +- try { +- MessageDigest md = MessageDigest.getInstance("MD5"); +- return new BigInteger(1, md.digest(input.getBytes())).toString(16).toUpperCase(); +- } catch (Exception e) { +- return null; +- } +- } +- +- /** +- * Check to see if global stats are enabled. +- * @param context +- * @return Whether or not stats collection is enabled. +- */ +- public static boolean isStatsCollectionEnabled(Context context) { +- return CMSettings.Secure.getInt(context.getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION, 1) != 0; +- } +- +- /** +- * Enabled or disable stats collection +- * @param context +- * @param enabled Boolean that sets collection being enabled. +- */ +- public static void setStatsCollectionEnabled(Context context, boolean enabled) { +- int enable = (enabled) ? 1 : 0; +- CMSettings.Secure.putInt(context.getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION, enable); +- } +-} +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroid/0001.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0001.patch new file mode 100644 index 00000000..e8c84031 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0001.patch @@ -0,0 +1,21 @@ +From 17d82df9831a6e5801203ffe3b0e1aba177f7b20 Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Tue, 19 Jan 2016 19:24:47 -0500 +Subject: [PATCH] mark as privileged app + +--- + Android.mk | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Android.mk b/Android.mk +index c6110a3..ce4e8cf 100644 +--- a/Android.mk ++++ b/Android.mk +@@ -19,6 +19,7 @@ $(fdroid_root)/$(fdroid_dir)/$(fdroid_apk): + cd $(fdroid_root)/$(fdroid_dir) && gradle assembleRelease + + LOCAL_CERTIFICATE := platform ++LOCAL_PRIVILEGED_MODULE := true + LOCAL_SRC_FILES := $(fdroid_dir)/$(fdroid_apk) + LOCAL_MODULE_CLASS := APPS + LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroid/0002.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0002.patch new file mode 100644 index 00000000..4ab6aa25 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0002.patch @@ -0,0 +1,53 @@ +From 11419a198fb864d5479c9ce3f1ffdc63114020c0 Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Fri, 4 Mar 2016 08:53:19 -0500 +Subject: [PATCH] remove privileged extension settings + +--- + .../java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java | 4 +++- + app/src/main/res/xml/preferences.xml | 2 ++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java b/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java +index 4304b87..b94ca31 100644 +--- a/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java ++++ b/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java +@@ -41,7 +41,7 @@ + Preferences.PREF_LANGUAGE, + Preferences.PREF_KEEP_CACHE_TIME, + Preferences.PREF_EXPERT, +- Preferences.PREF_PRIVILEGED_INSTALLER, ++ //Preferences.PREF_PRIVILEGED_INSTALLER, + Preferences.PREF_ENABLE_PROXY, + Preferences.PREF_PROXY_HOST, + Preferences.PREF_PROXY_PORT, +@@ -259,8 +259,10 @@ public void onResume() { + + currentKeepCacheTime = Preferences.get().getKeepCacheTime(); + ++ /* + initPrivilegedInstallerPreference(); + initUpdatePrivilegedExtensionPreference(); ++ */ + // this pref's default is dynamically set based on whether Orbot is installed + boolean useTor = Preferences.get().isTorEnabled(); + useTorCheckPref.setDefaultValue(useTor); +diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml +index aa80594..573e443 100644 +--- a/app/src/main/res/xml/preferences.xml ++++ b/app/src/main/res/xml/preferences.xml +@@ -91,6 +91,7 @@ + android:summary="@string/unstable_updates_summary" + android:defaultValue="false" + android:dependency="expert" /> ++ + + diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroid/0003.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0003.patch new file mode 100644 index 00000000..18a5f0eb --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0003.patch @@ -0,0 +1,94 @@ +From c8fa50c18694d35a4c2e334d886056556b35749c Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Sun, 20 Nov 2016 05:35:13 -0500 +Subject: [PATCH] non-Copperhead system app updates are incompatible + +--- + .../org/fdroid/fdroid/CompatibilityChecker.java | 42 +++++++++++++++++++++- + 1 file changed, 41 insertions(+), 1 deletion(-) + +diff --git a/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java b/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java +index 74d3b0f..f71375f 100644 +--- a/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java ++++ b/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java +@@ -2,18 +2,23 @@ + + import android.content.Context; + import android.content.SharedPreferences; ++import android.content.pm.ApplicationInfo; + import android.content.pm.FeatureInfo; + import android.content.pm.PackageManager; ++import android.content.pm.PackageManager.NameNotFoundException; ++import android.content.pm.Signature; + import android.os.Build; + import android.preference.PreferenceManager; + import android.support.annotation.Nullable; + import android.text.TextUtils; ++import android.util.Log; + + import org.fdroid.fdroid.compat.SupportedArchitectures; + import org.fdroid.fdroid.data.Apk; +- ++import org.fdroid.fdroid.Utils; + import java.util.ArrayList; + import java.util.Collections; ++import java.util.HashMap; + import java.util.HashSet; + import java.util.List; + import java.util.Set; +@@ -29,6 +34,7 @@ + private final String[] cpuAbis; + private final String cpuAbisDesc; + private final boolean ignoreTouchscreen; ++ private final HashMap systemApps; + + public CompatibilityChecker(Context ctx) { + +@@ -56,6 +62,34 @@ public CompatibilityChecker(Context ctx) { + } + } + ++ systemApps = new HashMap<>(); ++ for (final ApplicationInfo ai: pm.getInstalledApplications(0)) { ++ Signature sig; ++ try { ++ sig = ctx.getPackageManager().getPackageInfo( ++ ai.packageName, PackageManager.GET_SIGNATURES).signatures[0]; ++ } catch (NameNotFoundException e) { ++ continue; ++ } ++ byte[] rawCertBytes = sig.toByteArray(); ++ ++ final byte[] fdroidSig = new byte[rawCertBytes.length * 2]; ++ for (int j = 0; j < rawCertBytes.length; j++) { ++ byte v = rawCertBytes[j]; ++ int d = (v >> 4) & 0xF; ++ fdroidSig[j * 2] = (byte) (d >= 10 ? ('a' + d - 10) : ('0' + d)); ++ d = v & 0xF; ++ fdroidSig[j * 2 + 1] = (byte) (d >= 10 ? ('a' + d - 10) : ('0' + d)); ++ } ++ ++ String hash = Utils.hashBytes(fdroidSig, "md5"); ++ ++ if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0 || ++ (ai.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { ++ systemApps.put(ai.packageName, hash); ++ } ++ } ++ + cpuAbis = SupportedArchitectures.getAbis(); + + StringBuilder builder = new StringBuilder(); +@@ -119,6 +153,12 @@ private boolean compatibleApi(@Nullable String[] nativecode) { + + " while your architectures are " + cpuAbisDesc); + } + ++ String hash = systemApps.get(apk.packageName); ++ if (hash != null && !hash.equalsIgnoreCase(apk.sig)) { ++ Log.i(TAG, "incompatible system app: " + apk.packageName + " " + hash + " " + apk.sig); ++ Collections.addAll(incompatibleReasons, "Not already installed as a system app"); ++ } ++ + return incompatibleReasons; + } + } diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroid/0004.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0004.patch new file mode 100644 index 00000000..73471f4f --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroid/0004.patch @@ -0,0 +1,22 @@ +From c58e3bb0f5ee76b82c4249cd7b4432b7fb711add Mon Sep 17 00:00:00 2001 +From: Daniel Micay +Date: Tue, 6 Dec 2016 17:11:48 -0500 +Subject: [PATCH] use build tools 25.0.1 + +--- + app/build.gradle | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/app/build.gradle b/app/build.gradle +index 7ae8ca4..a81160d 100644 +--- a/app/build.gradle ++++ b/app/build.gradle +@@ -146,7 +146,7 @@ if (!hasProperty('sourceDeps')) { + + android { + compileSdkVersion 24 +- buildToolsVersion '25.0.0' ++ buildToolsVersion '25.0.1' + useLibrary 'org.apache.http.legacy' + + buildTypes { diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0001-Update_Build_Tools.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0001-Update_Build_Tools.patch new file mode 100644 index 00000000..404be1d3 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0001-Update_Build_Tools.patch @@ -0,0 +1,25 @@ +From bb788ab88084c09a34444f3e12d4f6cd1cc7398b Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 17:38:28 -0500 +Subject: [PATCH] Update build tools + +--- + app/build.gradle | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/app/build.gradle b/app/build.gradle +index cbba2e6..88b97c7 100644 +--- a/app/build.gradle ++++ b/app/build.gradle +@@ -36,7 +36,7 @@ dependencies { + + android { + compileSdkVersion 24 +- buildToolsVersion '24.0.1' ++ buildToolsVersion '25.0.1' + + defaultConfig { + archivesBaseName = "FDroidPrivilegedExtension" +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0002-Release_Key.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0002-Release_Key.patch new file mode 100644 index 00000000..d74cd8a7 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0002-Release_Key.patch @@ -0,0 +1,27 @@ +From 77ca61398922d69a2b97dc3a0e4e149c40b5bbc1 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 19:01:10 -0500 +Subject: [PATCH] Change to release key + +--- + app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java b/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java +index f42bbd8..ee22bb7 100644 +--- a/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java ++++ b/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java +@@ -31,8 +31,8 @@ import java.util.HashSet; + public class ClientWhitelist { + + public static HashSet> whitelist = new HashSet<>(Arrays.asList( +- // certificate SHA-256 of https//f-droid.org/FDroid.apk +- new Pair<>("org.fdroid.fdroid", "43238d512c1e5eb2d6569f4a3afbf5523418b82e0a3ed1552770abb9a9c9ccab") ++ //release-key ++ new Pair<>("org.fdroid.fdroid", "cb1ee2ec40d05ed678f42ae701cdfa29eea79d0e6d633276de230bf3494067c3") + )); + + } +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0003-Test_Keys.patch b/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0003-Test_Keys.patch new file mode 100644 index 00000000..5c9fb89a --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FDroidPrivilegedExtension/0003-Test_Keys.patch @@ -0,0 +1,27 @@ +From a588fda0e220292e0b742999e08e1a54355a9a78 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 19:01:55 -0500 +Subject: [PATCH] Add test-keys + +--- + app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java b/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java +index ee22bb7..fd8ad3f 100644 +--- a/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java ++++ b/app/src/main/java/org/fdroid/fdroid/privileged/ClientWhitelist.java +@@ -32,7 +32,9 @@ public class ClientWhitelist { + + public static HashSet> whitelist = new HashSet<>(Arrays.asList( + //release-key +- new Pair<>("org.fdroid.fdroid", "cb1ee2ec40d05ed678f42ae701cdfa29eea79d0e6d633276de230bf3494067c3") ++ new Pair<>("org.fdroid.fdroid", "cb1ee2ec40d05ed678f42ae701cdfa29eea79d0e6d633276de230bf3494067c3"), ++ //test-key ++ new Pair<>("org.fdroid.fdroid", "c8a2e9bccf597c2fb6dc66bee293fc13f2fc47ec77bc6b2b0d52c11f51192ab8") + )); + + } +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_FakeStore/0001-Fixes.patch b/Patches/LineageOS-14.1/android_packages_apps_FakeStore/0001-Fixes.patch new file mode 100644 index 00000000..7d25b257 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_FakeStore/0001-Fixes.patch @@ -0,0 +1,48 @@ +From fbc5ea49609b7719a9399541d6a9525910478961 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 16:54:51 -0500 +Subject: [PATCH] Build fixes + +Change-Id: I5ae430d0af5b1a111079f92f6d7e001597152008 +--- + Android.mk | 4 ++-- + build.gradle | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Android.mk b/Android.mk +index 2102bd1..9cc8e60 100644 +--- a/Android.mk ++++ b/Android.mk +@@ -21,14 +21,14 @@ LOCAL_PACKAGE_NAME := FakeStore + + fakestore_root := $(LOCAL_PATH) + fakestore_dir := fake-store +-fakestore_out := $(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates ++fakestore_out := $(PWD)/$(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates + fakestore_build := $(fakestore_root)/$(fakestore_dir)/build + fakestore_apk := build/outputs/apk/fake-store-release-unsigned.apk + + $(fakestore_root)/$(fakestore_dir)/$(fakestore_apk): + rm -Rf $(fakestore_build) + mkdir -p $(fakestore_out) +- ln -s $(fakestore_out) $(fakestore_build) ++ ln -sf $(fakestore_out) $(fakestore_build) + echo "sdk.dir=$(ANDROID_HOME)" > $(fakestore_root)/local.properties + cd $(fakestore_root) && git submodule update --recursive --init + cd $(fakestore_root)/$(fakestore_dir) && JAVA_TOOL_OPTIONS="$(JAVA_TOOL_OPTIONS) -Dfile.encoding=UTF8" ../gradlew assembleRelease +diff --git a/build.gradle b/build.gradle +index 3ec4bfc..8a7d2e2 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -26,7 +26,7 @@ buildscript { + + allprojects { + apply plugin: 'idea' +- ext.androidBuildVersionTools = "24.0.3" ++ ext.androidBuildVersionTools = "25.0.1" + ext.isReleaseVersion = false + } + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_GmsCore/0001-Fixes.patch b/Patches/LineageOS-14.1/android_packages_apps_GmsCore/0001-Fixes.patch new file mode 100644 index 00000000..e6e44559 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_GmsCore/0001-Fixes.patch @@ -0,0 +1,48 @@ +From 98f96597bc7ac50a9a1968f57921c751585977c3 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 16:53:19 -0500 +Subject: [PATCH] Build fixes + +Change-Id: Icfae5b47655f9e1a8dceb48f2f4ab08c6bbe5001 +--- + Android.mk | 4 ++-- + build.gradle | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Android.mk b/Android.mk +index 516e72b..bfb2794 100644 +--- a/Android.mk ++++ b/Android.mk +@@ -21,14 +21,14 @@ LOCAL_PACKAGE_NAME := GmsCore + + gmscore_root := $(LOCAL_PATH) + gmscore_dir := play-services-core +-gmscore_out := $(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates ++gmscore_out := $(PWD)/$(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates + gmscore_build := $(gmscore_root)/$(gmscore_dir)/build + gmscore_apk := build/outputs/apk/play-services-core-release-unsigned.apk + + $(gmscore_root)/$(gmscore_dir)/$(gmscore_apk): + rm -Rf $(gmscore_build) + mkdir -p $(gmscore_out) +- ln -s $(gmscore_out) $(gmscore_build) ++ ln -sf $(gmscore_out) $(gmscore_build) + echo "sdk.dir=$(ANDROID_HOME)" > $(gmscore_root)/local.properties + cd $(gmscore_root) && git submodule update --recursive --init + cd $(gmscore_root)/$(gmscore_dir) && JAVA_TOOL_OPTIONS="$(JAVA_TOOL_OPTIONS) -Dfile.encoding=UTF8" ../gradlew assembleRelease +diff --git a/build.gradle b/build.gradle +index 3ec4bfc..8a7d2e2 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -26,7 +26,7 @@ buildscript { + + allprojects { + apply plugin: 'idea' +- ext.androidBuildVersionTools = "24.0.3" ++ ext.androidBuildVersionTools = "25.0.1" + ext.isReleaseVersion = false + } + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_GsfProxy/0001-Fixes.patch b/Patches/LineageOS-14.1/android_packages_apps_GsfProxy/0001-Fixes.patch new file mode 100644 index 00000000..f183f457 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_GsfProxy/0001-Fixes.patch @@ -0,0 +1,50 @@ +From e81a668b7d57f230c4b2e924981d579d13d78ce4 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 23 Dec 2016 19:58:47 -0500 +Subject: [PATCH] Fix build tools + +Change-Id: I7e30cb163233980e1faded4041791f5311a3ebda +--- + Android.mk | 4 ++-- + services-framework-proxy/build.gradle | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Android.mk b/Android.mk +index 50889ae..5193277 100644 +--- a/Android.mk ++++ b/Android.mk +@@ -21,14 +21,14 @@ LOCAL_PACKAGE_NAME := GsfProxy + + gsfproxy_root := $(LOCAL_PATH) + gsfproxy_dir := services-framework-proxy +-gsfproxy_out := $(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates ++gsfproxy_out := $(PWD)/$(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates + gsfproxy_build := $(gsfproxy_root)/$(gsfproxy_dir)/build + gsfproxy_apk := build/outputs/apk/services-framework-proxy-release-unsigned.apk + + $(gsfproxy_root)/$(gsfproxy_dir)/$(gsfproxy_apk): + rm -Rf $(gsfproxy_build) + mkdir -p $(gsfproxy_out) +- ln -s $(gsfproxy_out) $(gsfproxy_build) ++ ln -sf $(gsfproxy_out) $(gsfproxy_build) + echo "sdk.dir=$(ANDROID_HOME)" > $(gsfproxy_root)/local.properties + cd $(gsfproxy_root) && git submodule update --recursive --init + cd $(gsfproxy_root)/$(gsfproxy_dir) && JAVA_TOOL_OPTIONS="$(JAVA_TOOL_OPTIONS) -Dfile.encoding=UTF8" ../gradlew assembleRelease +diff --git a/services-framework-proxy/build.gradle b/services-framework-proxy/build.gradle +index 6824f94..7243816 100644 +--- a/services-framework-proxy/build.gradle ++++ b/services-framework-proxy/build.gradle +@@ -44,8 +44,8 @@ int getMyVersionCode() { + } + + android { +- compileSdkVersion 23 +- buildToolsVersion "23.0.2" ++ compileSdkVersion 24 ++ buildToolsVersion "25.0.1" + + defaultConfig { + versionName getMyVersionName() +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_Nfc/0001-Disable_NFC.patch b/Patches/LineageOS-14.1/android_packages_apps_Nfc/0001-Disable_NFC.patch new file mode 100644 index 00000000..84a282fa --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_Nfc/0001-Disable_NFC.patch @@ -0,0 +1,29 @@ +From 5cb02870e993ec2704645ade6d5fb79ed56ee710 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 09:38:09 -0500 +Subject: [PATCH] Disable NFC and NDEF by default + +Change-Id: I227fa330916166346e6dfc1aff36b40c993fa57f +--- + src/com/android/nfc/NfcService.java | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java +index ab50f23..bd78f77 100755 +--- a/src/com/android/nfc/NfcService.java ++++ b/src/com/android/nfc/NfcService.java +@@ -105,9 +105,9 @@ public class NfcService implements DeviceHostListener { + public static final String PREF = "NfcServicePrefs"; + + static final String PREF_NFC_ON = "nfc_on"; +- static final boolean NFC_ON_DEFAULT = true; ++ static final boolean NFC_ON_DEFAULT = false; + static final String PREF_NDEF_PUSH_ON = "ndef_push_on"; +- static final boolean NDEF_PUSH_ON_DEFAULT = true; ++ static final boolean NDEF_PUSH_ON_DEFAULT = false; + static final String PREF_FIRST_BEAM = "first_beam"; + static final String PREF_FIRST_BOOT = "first_boot"; + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_Settings/0001-Hide_Passwords.patch b/Patches/LineageOS-14.1/android_packages_apps_Settings/0001-Hide_Passwords.patch new file mode 100644 index 00000000..a794e1d6 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_Settings/0001-Hide_Passwords.patch @@ -0,0 +1,40 @@ +From 40a15771d3907c6bb883e8f4829a89db241d15fe Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 09:41:02 -0500 +Subject: [PATCH] Hide passwords by default + +Change-Id: I5329a76ea7a93da95fbb4e02a114b0aa5fd368bd +--- + src/com/android/settings/CryptKeeperConfirm.java | 2 +- + src/com/android/settings/SecuritySettings.java | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java +index 1cc5b6a..4162232 100644 +--- a/src/com/android/settings/CryptKeeperConfirm.java ++++ b/src/com/android/settings/CryptKeeperConfirm.java +@@ -129,7 +129,7 @@ public class CryptKeeperConfirm extends InstrumentedFragment { + } + int value = Settings.System.getInt(getContext().getContentResolver(), + Settings.System.TEXT_SHOW_PASSWORD, +- 1); ++ 0); + utils.setVisiblePasswordEnabled(value != 0, UserHandle.USER_SYSTEM); + + Intent intent = new Intent(getActivity(), Blank.class); +diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java +index 106eedf..f3c0976 100644 +--- a/src/com/android/settings/SecuritySettings.java ++++ b/src/com/android/settings/SecuritySettings.java +@@ -621,7 +621,7 @@ public class SecuritySettings extends SettingsPreferenceFragment + + if (mShowPassword != null) { + mShowPassword.setChecked(Settings.System.getInt(getContentResolver(), +- Settings.System.TEXT_SHOW_PASSWORD, 1) != 0); ++ Settings.System.TEXT_SHOW_PASSWORD, 0) != 0); + } + + if (mResetCredentials != null && !mResetCredentials.isDisabledByAdmin()) { +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_packages_apps_SetupWizard/0001-Remove_Analytics.patch b/Patches/LineageOS-14.1/android_packages_apps_SetupWizard/0001-Remove_Analytics.patch new file mode 100644 index 00000000..6a6eeb93 --- /dev/null +++ b/Patches/LineageOS-14.1/android_packages_apps_SetupWizard/0001-Remove_Analytics.patch @@ -0,0 +1,898 @@ +From 16ad98fe210328d994c264e258d77379e350d8fb Mon Sep 17 00:00:00 2001 +From: Tad +Date: Fri, 23 Dec 2016 22:21:15 -0500 +Subject: [PATCH] Remove stats + +Change-Id: I4fbf5ce0d2878d7ffce49771b025d6a35b12ed29 +--- + AndroidManifest.xml | 1 - + .../setupwizard/cmstats/SetupStats.java | 163 --------------------- + .../setupwizard/cmstats/StatsUtils.java | 44 ------ + .../setupwizard/setup/BluetoothSetupPage.java | 7 - + .../setupwizard/setup/ChooseDataSimPage.java | 6 +- + .../setupwizard/setup/CyanogenServicesPage.java | 13 -- + .../setupwizard/setup/CyanogenSettingsPage.java | 20 --- + .../setupwizard/setup/DateTimePage.java | 19 --- + .../setupwizard/setup/FingerprintSetupPage.java | 4 - + .../setupwizard/setup/GmsAccountPage.java | 25 +--- + .../setupwizard/setup/MobileDataPage.java | 4 - + .../setupwizard/setup/OtherSettingsPage.java | 13 -- + .../setupwizard/setup/ScreenLockSetupPage.java | 4 - + .../cyanogenmod/setupwizard/setup/SetupPage.java | 7 - + .../cyanogenmod/setupwizard/setup/WelcomePage.java | 16 -- + .../setupwizard/setup/WifiSetupPage.java | 25 ---- + .../setupwizard/ui/SetupPageFragment.java | 3 - + .../setupwizard/ui/SetupWizardActivity.java | 6 - + .../util/EnableAccessibilityController.java | 3 - + 19 files changed, 2 insertions(+), 381 deletions(-) + delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java + delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java + +diff --git a/AndroidManifest.xml b/AndroidManifest.xml +index deb607c..c5878fa 100644 +--- a/AndroidManifest.xml ++++ b/AndroidManifest.xml +@@ -43,7 +43,6 @@ + + + +- + + + +diff --git a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java b/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java +deleted file mode 100644 +index f3a47b3..0000000 +--- a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java ++++ /dev/null +@@ -1,163 +0,0 @@ +-/* +- * Copyright (C) 2014 The CyanogenMod 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. +- */ +- +-package com.cyanogenmod.setupwizard.cmstats; +- +-import android.content.Context; +-import android.content.Intent; +-import android.os.UserHandle; +-import android.util.Log; +- +-import java.util.LinkedList; +- +- +-public class SetupStats { +- +- private static final String TAG = SetupStats.class.getSimpleName(); +- +- private static final String ANALYTIC_INTENT = "com.cyngn.stats.action.SEND_ANALYTIC_EVENT"; +- private static final String ANALYTIC_PERMISSION = "com.cyngn.stats.SEND_ANALYTICS"; +- +- public static final String TRACKING_ID = "tracking_id"; +- +- private final LinkedList mEvents = new LinkedList(); +- +- private static final SetupStats sInstance = new SetupStats(); +- +- private static final boolean DEBUG = false; +- +- private SetupStats() {} +- +- public static void addEvent(String category, String action, +- String label, String value) { +- sInstance.mEvents.add(new Event(category, action, label, value)); +- } +- +- public static void addEvent(String category, String action) { +- sInstance.mEvents.add(new Event(category, action, null, null)); +- } +- +- public static void sendEvents(Context context) { +- while (!sInstance.mEvents.isEmpty()) { +- sInstance.sendEvent(context, sInstance.mEvents.remove()); +- } +- } +- +- private void sendEvent(Context context, Event event) { +- +- if (!StatsUtils.isStatsPackageInstalled(context) +- || !StatsUtils.isStatsCollectionEnabled(context)) { +- return; +- } +- +- // Create new intent +- Intent intent = new Intent(); +- intent.setAction(ANALYTIC_INTENT); +- +- // add tracking id +- intent.putExtra(TRACKING_ID, context.getPackageName()); +- // append +- intent.putExtra(Fields.EVENT_CATEGORY, event.category); +- if (DEBUG) Log.d(TAG, Fields.EVENT_CATEGORY + "=" + event.category); +- intent.putExtra(Fields.EVENT_ACTION, event.action); +- if (DEBUG) Log.d(TAG, Fields.EVENT_ACTION + "=" + event.action); +- // check if exist +- if (event.label != null) { +- intent.putExtra(Fields.EVENT_LABEL, event.label); +- if (DEBUG) Log.d(TAG, Fields.EVENT_LABEL + "=" + event.label); +- } +- +- if (event.value != null) { +- intent.putExtra(Fields.EVENT_VALUE, event.value); +- if (DEBUG) Log.d(TAG, Fields.EVENT_VALUE + "=" + event.value); +- } +- +- // broadcast for internal package +- context.sendBroadcastAsUser(intent, +- new UserHandle(UserHandle.USER_CURRENT), ANALYTIC_PERMISSION); +- } +- +- private static final class Event { +- private final String category; +- private final String action; +- private final String label; +- private final String value; +- +- public Event(String category, String action, String label, String value) { +- this.action = action; +- this.category = category; +- this.label = label; +- this.value = value; +- } +- } +- +- public static final class Fields { +- public static final String EVENT_CATEGORY = "category"; +- public static final String EVENT_ACTION = "action"; +- public static final String EVENT_LABEL = "label"; +- public static final String EVENT_VALUE = "value"; +- } +- +- public static final class Categories { +- public static final String APP_LAUNCH = "app_launch"; +- public static final String APP_FINISHED = "app_finish"; +- public static final String PAGE_LOAD = "page_load"; +- public static final String EXTERNAL_PAGE_LOAD = "external_page_load"; +- public static final String BUTTON_CLICK = "button_click"; +- public static final String SETTING_CHANGED = "setting_changed"; +- } +- +- public static final class Action { +- public static final String PAGE_LOADED = "page_loaded"; +- public static final String PREVIOUS_BUTTON = "previous_button"; +- public static final String NEXT_BUTTON = "next_button"; +- public static final String CHANGE_LOCALE = "change_local"; +- public static final String EXTERNAL_PAGE_LAUNCH = "external_page_launch"; +- public static final String EXTERNAL_PAGE_RESULT = "external_page_result"; +- public static final String ENABLE_MOBILE_DATA = "enable_mobile_data"; +- public static final String PREFERRED_DATA_SIM = "preferred_data_sim"; +- public static final String APPLY_CUSTOM_THEME = "apply_custom_theme"; +- public static final String USE_SECURE_SMS = "use_secure_sms"; +- public static final String ENABLE_BACKUP = "enable_backup"; +- public static final String ENABLE_NAV_KEYS = "enable_nav_keys"; +- public static final String ENABLE_LOCATION = "enable_location"; +- public static final String ENABLE_NETWORK_LOCATION = "enable_network_location"; +- public static final String ENABLE_GPS_LOCATION = "enable_gps_location"; +- public static final String DATE_CHANGED = "date_changed"; +- public static final String TIME_CHANGED = "time_changed"; +- public static final String TIMEZONE_CHANGED = "timezone_changed"; +- } +- +- public static final class Label { +- public static final String PAGE = "page"; +- public static final String LOCALE = "local"; +- public static final String RESULT = "result"; +- public static final String WIFI_SETUP = "wifi_setup"; +- public static final String BLUETOOTH_SETUP = "bluetooth_setup"; +- public static final String CYANOGEN_ACCOUNT = "cyanogen_account_setup"; +- public static final String CAPTIVE_PORTAL_LOGIN = "captive_portal_login"; +- public static final String EMERGENCY_CALL = "emergency_call"; +- public static final String GMS_ACCOUNT = "gms_account"; +- public static final String RESTORE = "restore"; +- public static final String CHECKED = "checked"; +- public static final String VALUE = "value"; +- public static final String SLOT = "slot"; +- public static final String TOTAL_TIME = "total_time"; +- public static final String FINGERPRINT_SETUP = "fingerprint_setup"; +- public static final String LOCKSCREEN_SETUP = "lockscreen_setup"; +- } +- +-} +diff --git a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java b/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java +deleted file mode 100644 +index 8be8fad..0000000 +--- a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java ++++ /dev/null +@@ -1,44 +0,0 @@ +- +-/* +- * Copyright (C) 2014 The CyanogenMod 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. +- */ +- +-package com.cyanogenmod.setupwizard.cmstats; +- +-import android.content.Context; +-import android.content.pm.ApplicationInfo; +-import android.content.pm.PackageInfo; +-import android.content.pm.PackageManager; +- +-import cyanogenmod.providers.CMSettings; +- +-public class StatsUtils { +- private static final String STATS_PACKAGE = "com.cyngn.stats"; +- +- public static boolean isStatsCollectionEnabled(Context context) { +- return CMSettings.Secure.getInt(context.getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION, 1) != 0; +- } +- +- public static boolean isStatsPackageInstalled(Context context) { +- try { +- PackageInfo pi = context.getPackageManager().getPackageInfo(STATS_PACKAGE, 0); +- return pi.applicationInfo.enabled +- && ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0); +- } catch (PackageManager.NameNotFoundException e) { +- return false; +- } +- } +-} +diff --git a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java +index 915abec..8609dbb 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java +@@ -28,7 +28,6 @@ import android.util.Log; + + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.LoadingFragment; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; +@@ -91,9 +90,6 @@ public class BluetoothSetupPage extends SetupPage { + @Override + public boolean onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.BLUETOOTH_SETUP, "success"); + getCallbacks().onNextPage(); + } else { + return false; +@@ -111,9 +107,6 @@ public class BluetoothSetupPage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.BLUETOOTH_SETUP); + mLoadingFragment.startActivityForResult(intent, + SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH, options.toBundle()); + } +diff --git a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java +index a302d8f..5505031 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java +@@ -48,7 +48,6 @@ import com.android.internal.telephony.TelephonyIntents; + + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; + +@@ -355,10 +354,7 @@ public class ChooseDataSimPage extends SetupPage { + for (int i = 0; i < mCheckBoxes.size(); i++) { + if (subInfoRecord.getSimSlotIndex() == i) { + mCheckBoxes.get(i).setChecked(true); +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.PREFERRED_DATA_SIM, +- SetupStats.Label.SLOT, String.valueOf(i + 1)); +- } else { ++ } else { + mCheckBoxes.get(i).setChecked(false); + } + +diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java +index e71dd79..5bfe3b0 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java +@@ -32,7 +32,6 @@ import android.util.Log; + + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.LoadingFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; + +@@ -95,10 +94,6 @@ public class CyanogenServicesPage extends SetupPage { + public boolean onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN) { + if (resultCode == Activity.RESULT_OK || resultCode == Activity.RESULT_FIRST_USER) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.CYANOGEN_ACCOUNT, +- resultCode == Activity.RESULT_OK ? "success" : "skipped"); + if (SetupWizardUtils.accountExists(mContext, + mContext.getString(R.string.cm_account_type))) { + if (SetupWizardUtils.isDeviceLocked()) { +@@ -108,9 +103,6 @@ public class CyanogenServicesPage extends SetupPage { + } + getCallbacks().onNextPage(); + } else if (resultCode == Activity.RESULT_CANCELED) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.CYANOGEN_ACCOUNT, "canceled"); + getCallbacks().onPreviousPage(); + } + } +@@ -136,11 +128,6 @@ public class CyanogenServicesPage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats +- .addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, +- SetupStats.Label.CYANOGEN_ACCOUNT); + mFragment.startActivityForResult(intent, + SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN, + options.toBundle()); +diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java +index 03a04b6..080e9b1 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java +@@ -42,7 +42,6 @@ import android.widget.TextView; + + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; + +@@ -116,37 +115,18 @@ public class CyanogenSettingsPage extends SetupPage { + @Override + public void run() { + if (getData().containsKey(DISABLE_NAV_KEYS)) { +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.ENABLE_NAV_KEYS, +- SetupStats.Label.CHECKED, +- String.valueOf(getData().getBoolean(DISABLE_NAV_KEYS))); + writeDisableNavkeysOption(mContext, getData().getBoolean(DISABLE_NAV_KEYS)); + } + } + }); +- handleEnableMetrics(); + handleDefaultThemeSetup(); + } + +- private void handleEnableMetrics() { +- Bundle privacyData = getData(); +- if (privacyData != null +- && privacyData.containsKey(KEY_SEND_METRICS)) { +- CMSettings.Secure.putInt(mContext.getContentResolver(), +- CMSettings.Secure.STATS_COLLECTION, privacyData.getBoolean(KEY_SEND_METRICS) +- ? 1 : 0); +- } +- } +- + private void handleDefaultThemeSetup() { + Bundle privacyData = getData(); + if (!SetupWizardUtils.getDefaultThemePackageName(mContext).equals( + ThemeConfig.SYSTEM_DEFAULT) && privacyData != null && + privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)) { +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.APPLY_CUSTOM_THEME, +- SetupStats.Label.CHECKED, +- String.valueOf(privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME))); + Log.i(TAG, "Applying default theme"); + final ThemeManager tm = ThemeManager.getInstance(mContext); + tm.applyDefaultTheme(); +diff --git a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java +index 7a5922b..a669163 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java +@@ -42,7 +42,6 @@ import android.widget.TextView; + import android.widget.TimePicker; + + import com.cyanogenmod.setupwizard.R; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + + import org.xmlpull.v1.XmlPullParserException; +@@ -136,8 +135,6 @@ public class DateTimePage extends SetupPage { + mDateView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, +- "date_picker"); + showDatePicker(); + } + }); +@@ -145,8 +142,6 @@ public class DateTimePage extends SetupPage { + mTimeView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, +- "time_picker"); + showTimePicker(); + } + }); +@@ -167,17 +162,11 @@ public class DateTimePage extends SetupPage { + final Map map = (Map) adapterView.getItemAtPosition(position); + final String tzId = (String) map.get(KEY_ID); + if (mCurrentTimeZone != null && !mCurrentTimeZone.getID().equals(tzId)) { +- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, +- "timezone_picker"); + // Update the system timezone value + final Activity activity = getActivity(); + final AlarmManager alarm = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE); + alarm.setTimeZone(tzId); + mCurrentTimeZone = TimeZone.getTimeZone(tzId); +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.TIMEZONE_CHANGED, +- SetupStats.Label.VALUE, +- mCurrentTimeZone.getDisplayName()); + } + + } +@@ -232,10 +221,6 @@ public class DateTimePage extends SetupPage { + if (activity != null) { + setDate(activity, year, month, day); + updateTimeAndDateDisplay(activity); +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.DATE_CHANGED, +- SetupStats.Label.VALUE, +- month+"/"+day+"/"+year); + } + } + +@@ -245,10 +230,6 @@ public class DateTimePage extends SetupPage { + if (activity != null) { + setTime(activity, hourOfDay, minute); + updateTimeAndDateDisplay(activity); +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.TIME_CHANGED, +- SetupStats.Label.VALUE, +- hourOfDay+":"+minute); + } + } + +diff --git a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java +index 890a4f6..c9174c6 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java +@@ -28,7 +28,6 @@ import android.widget.TextView; + import com.android.internal.widget.LockPatternUtils; + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + + public class FingerprintSetupPage extends SetupPage { +@@ -113,9 +112,6 @@ public class FingerprintSetupPage extends SetupPage { + ActivityOptions.makeCustomAnimation(getActivity(), + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.FINGERPRINT_SETUP); + startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT, + options.toBundle()); + } +diff --git a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java +index 436da08..79b5f2c 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java +@@ -35,7 +35,6 @@ import android.util.Log; + import com.android.setupwizardlib.util.ResultCodes; + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.LoadingFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; + +@@ -148,10 +147,6 @@ public class GmsAccountPage extends SetupPage { + boolean restorePicker = !data.hasExtra(EXTRA_RESTORE_TOKEN) + && !data.hasExtra(EXTRA_RESTORE_ACCOUNT) && + data.hasExtra(EXTRA_AUTH_ACCOUNT); +- +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.GMS_ACCOUNT, "success"); + launchGmsRestorePage(restorePicker); + } else { + handleResult(requestCode, resultCode); +@@ -179,24 +174,12 @@ public class GmsAccountPage extends SetupPage { + + private void handleResult(int requestCode, int resultCode) { + if (resultCode == Activity.RESULT_CANCELED) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ? +- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "canceled"); + getCallbacks().onPreviousPage(); + } else { + if (resultCode == Activity.RESULT_OK) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ? +- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "success"); + getCallbacks().onNextPage(); + } else { + if (canSkip()) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ? +- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "skipped"); + getCallbacks().onNextPage(); + } else { + getCallbacks().onPreviousPage(); +@@ -236,9 +219,6 @@ public class GmsAccountPage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.RESTORE); + mFragment.startActivityForResult( + intent, + SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle()); +@@ -310,10 +290,7 @@ public class GmsAccountPage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.GMS_ACCOUNT); +- mFragment.startActivityForResult(intent, ++ mFragment.startActivityForResult(intent, + SetupWizardApp.REQUEST_CODE_SETUP_GMS, options.toBundle()); + } catch (OperationCanceledException e) { + error = true; +diff --git a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java +index 9f96b1d..cfbc676 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java +@@ -38,7 +38,6 @@ import android.widget.TextView; + + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; + +@@ -147,9 +146,6 @@ public class MobileDataPage extends SetupPage { + } else { + onDataStateReady(); + } +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.ENABLE_MOBILE_DATA, +- SetupStats.Label.CHECKED, String.valueOf(checked)); + } + }; + +diff --git a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java +index 7ed23dc..270ac41 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java +@@ -17,7 +17,6 @@ + package com.cyanogenmod.setupwizard.setup; + + import com.cyanogenmod.setupwizard.R; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; + +@@ -229,10 +228,6 @@ public class OtherSettingsPage extends SetupPage { + } + + private void onToggleLocationAccess(boolean checked) { +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.ENABLE_LOCATION, +- SetupStats.Label.CHECKED, String.valueOf(checked)); +- + if (checked) { + setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY); + } else { +@@ -241,10 +236,6 @@ public class OtherSettingsPage extends SetupPage { + } + + private void onToggleBatterySaving(boolean checked) { +- /* SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.ENABLE_BATTERY_SAVING_LOCATION, +- SetupStats.Label.CHECKED, String.valueOf(checked)); */ +- + if (checked) { + setLocationMode(Settings.Secure.LOCATION_MODE_BATTERY_SAVING); + } else { +@@ -253,10 +244,6 @@ public class OtherSettingsPage extends SetupPage { + } + + private void onToggleNetwork(boolean checked) { +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.ENABLE_NETWORK_LOCATION, +- SetupStats.Label.CHECKED, String.valueOf(checked)); +- + if (checked) { + setLocationMode(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY); + } else { +diff --git a/src/com/cyanogenmod/setupwizard/setup/ScreenLockSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/ScreenLockSetupPage.java +index 3c9da33..72ee3f7 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/ScreenLockSetupPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/ScreenLockSetupPage.java +@@ -27,7 +27,6 @@ import android.view.View; + import android.widget.TextView; + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + + public class ScreenLockSetupPage extends SetupPage { +@@ -106,9 +105,6 @@ public class ScreenLockSetupPage extends SetupPage { + ActivityOptions.makeCustomAnimation(getActivity(), + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.LOCKSCREEN_SETUP); + startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_LOCKSCREEN, + options.toBundle()); + } +diff --git a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java +index 05bf9c5..142c04a 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java +@@ -26,7 +26,6 @@ import android.transition.Transition; + import android.view.Gravity; + + import com.cyanogenmod.setupwizard.R; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + + + public abstract class SetupPage implements Page { +@@ -81,18 +80,12 @@ public abstract class SetupPage implements Page { + public void doLoadAction(FragmentManager fragmentManager, int action) { + Fragment fragment = getFragment(fragmentManager, action); + if (action == Page.ACTION_NEXT) { +- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, +- SetupStats.Action.NEXT_BUTTON, getKey(), +- String.valueOf(System.currentTimeMillis())); + Transition t = new Slide(Gravity.RIGHT); + fragment.setEnterTransition(t); + fragmentManager.beginTransaction() + .replace(R.id.content,fragment, getKey()) + .commit(); + } else { +- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, +- SetupStats.Action.PREVIOUS_BUTTON, getKey(), +- String.valueOf(System.currentTimeMillis())); + Transition t = new Slide(Gravity.LEFT); + fragment.setEnterTransition(t); + fragmentManager.beginTransaction() +diff --git a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java +index 460a0ac..3a3d029 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java +@@ -42,7 +42,6 @@ import android.widget.Toast; + import com.android.internal.telephony.MccTable; + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.LocalePicker; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; +@@ -86,9 +85,6 @@ public class WelcomePage extends SetupPage { + confirmCyanogenCredentials(mWelcomeFragment); + return true; + } else { +- if (mWelcomeFragment != null) { +- mWelcomeFragment.sendLocaleStats(); +- } + return super.doNextAction(); + } + } +@@ -102,10 +98,6 @@ public class WelcomePage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, SetupStats.Label.EMERGENCY_CALL); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.EMERGENCY_CALL); + mContext.startActivity(intent, options.toBundle()); + return true; + } +@@ -269,14 +261,6 @@ public class WelcomePage extends SetupPage { + return R.layout.setup_welcome_page; + } + +- public void sendLocaleStats() { +- if (!mCurrentLocale.equals(mInitialLocale)) { +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- SetupStats.Action.CHANGE_LOCALE, SetupStats.Label.LOCALE, +- mCurrentLocale.getDisplayName()); +- } +- } +- + public void fetchAndUpdateSimLocale() { + if (mIgnoreSimLocale || isDetached()) { + return; +diff --git a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java +index 2d8084a..3a131f7 100644 +--- a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java ++++ b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java +@@ -31,7 +31,6 @@ import android.util.Log; + + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.ui.LoadingFragment; + import com.cyanogenmod.setupwizard.ui.SetupPageFragment; + import com.cyanogenmod.setupwizard.util.SetupWizardUtils; +@@ -86,9 +85,6 @@ public class WifiSetupPage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.CAPTIVE_PORTAL_LOGIN); + mLoadingFragment.startActivityForResult(intent, + SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL, + options.toBundle()); +@@ -157,19 +153,10 @@ public class WifiSetupPage extends SetupPage { + public boolean onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_WIFI) { + if (resultCode == Activity.RESULT_CANCELED) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.WIFI_SETUP, "canceled"); + getCallbacks().onPreviousPage(); + } else if (resultCode == Activity.RESULT_OK) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.WIFI_SETUP, "success"); + checkForCaptivePortal(); + } else { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.WIFI_SETUP, "skipped"); + getCallbacks().onNextPage(); + } + } else if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL) { +@@ -179,20 +166,11 @@ public class WifiSetupPage extends SetupPage { + } + String token = data.getStringExtra("response_token"); + if (token != null && !token.equals(mResponseToken)) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "token_mismatch"); + launchWifiSetup(); + } else { + if (resultCode == Activity.RESULT_CANCELED) { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "canceled"); + launchWifiSetup(); + } else { +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_RESULT, +- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "success"); + getCallbacks().onNextPage(); + } + } +@@ -256,9 +234,6 @@ public class WifiSetupPage extends SetupPage { + ActivityOptions.makeCustomAnimation(mContext, + android.R.anim.fade_in, + android.R.anim.fade_out); +- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD, +- SetupStats.Action.EXTERNAL_PAGE_LAUNCH, +- SetupStats.Label.PAGE, SetupStats.Label.WIFI_SETUP); + mLoadingFragment.startActivityForResult(intent, + SetupWizardApp.REQUEST_CODE_SETUP_WIFI, options.toBundle()); + } +diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java +index b0df440..33c61c7 100644 +--- a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java ++++ b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java +@@ -26,7 +26,6 @@ import android.view.ViewGroup; + import android.widget.TextView; + + import com.cyanogenmod.setupwizard.R; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.setup.Page; + import com.cyanogenmod.setupwizard.setup.SetupDataCallbacks; + +@@ -43,8 +42,6 @@ public abstract class SetupPageFragment extends Fragment { + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setRetainInstance(true); +- SetupStats.addEvent(SetupStats.Categories.PAGE_LOAD, SetupStats.Action.PAGE_LOADED, +- mKey, String.valueOf(System.currentTimeMillis())); + } + + @Override +diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java +index 9f3b27a..bcc4425 100644 +--- a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java ++++ b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java +@@ -45,7 +45,6 @@ import android.widget.ProgressBar; + import com.android.setupwizardlib.util.SystemBarHelper; + import com.cyanogenmod.setupwizard.R; + import com.cyanogenmod.setupwizard.SetupWizardApp; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + import com.cyanogenmod.setupwizard.setup.CMSetupWizardData; + import com.cyanogenmod.setupwizard.setup.GmsAccountPage; + import com.cyanogenmod.setupwizard.setup.Page; +@@ -95,7 +94,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks, + } + SystemBarHelper.hideSystemBars(getWindow()); + if (sLaunchTime == 0) { +- SetupStats.addEvent(SetupStats.Categories.APP_LAUNCH, TAG); + sLaunchTime = System.nanoTime(); + } + setContentView(R.layout.setup_main); +@@ -371,9 +369,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks, + @Override + public void finishSetup() { + if (!mIsFinishing) { +- SetupStats.addEvent(SetupStats.Categories.APP_FINISHED, TAG, +- SetupStats.Label.TOTAL_TIME, String.valueOf( +- System.nanoTime() - sLaunchTime)); + final SetupWizardApp setupWizardApp = (SetupWizardApp)getApplication(); + setupWizardApp.sendStickyBroadcastAsUser( + new Intent(SetupWizardApp.ACTION_FINISHED), +@@ -463,7 +458,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks, + } + final ThemeManager tm = ThemeManager.getInstance(SetupWizardActivity.this); + tm.unregisterThemeChangeListener(SetupWizardActivity.this); +- SetupStats.sendEvents(SetupWizardActivity.this); + SetupWizardUtils.disableGMSSetupWizard(SetupWizardActivity.this); + final WallpaperManager wallpaperManager = + WallpaperManager.getInstance(SetupWizardActivity.this); +diff --git a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java +index 440129b..47d6de5 100644 +--- a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java ++++ b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java +@@ -39,7 +39,6 @@ import android.view.accessibility.AccessibilityManager; + import android.view.accessibility.IAccessibilityManager; + + import com.android.internal.R; +-import com.cyanogenmod.setupwizard.cmstats.SetupStats; + + import java.util.ArrayList; + import java.util.Iterator; +@@ -284,8 +283,6 @@ public class EnableAccessibilityController { + // Turn on accessibility mode last. + Settings.Secure.putIntForUser(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, + 1, userId); +- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED, +- "accessibility_enabled"); + } else if (keyguardLocked) { + try { + mAccessibilityManager.temporaryEnableAccessibilityStateUntilKeyguardRemoved( +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_system_core/0001-Hardening.patch b/Patches/LineageOS-14.1/android_system_core/0001-Hardening.patch new file mode 100644 index 00000000..172cbb3d --- /dev/null +++ b/Patches/LineageOS-14.1/android_system_core/0001-Hardening.patch @@ -0,0 +1,66 @@ +From b3c84ac50cce7f7f9a045a1b8a43adc77408bf6e Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 09:51:27 -0500 +Subject: [PATCH] Misc hardening + +Change-Id: I19525796263febdcf616fcf82eb5bb714a236a0d +--- + init/init.cpp | 6 +++--- + rootdir/init.rc | 16 ++++++++++++++++ + 2 files changed, 19 insertions(+), 3 deletions(-) + +diff --git a/init/init.cpp b/init/init.cpp +index 9992b47..fa82d3b 100755 +--- a/init/init.cpp ++++ b/init/init.cpp +@@ -573,10 +573,10 @@ int main(int argc, char** argv) { + mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755"); + mkdir("/dev/pts", 0755); + mkdir("/dev/socket", 0755); +- mount("devpts", "/dev/pts", "devpts", 0, NULL); ++ mount("devpts", "/dev/pts", "devpts", MS_NOSUID|MS_NOEXEC, NULL); + #define MAKE_STR(x) __STRING(x) +- mount("proc", "/proc", "proc", 0, "hidepid=2,gid=" MAKE_STR(AID_READPROC)); +- mount("sysfs", "/sys", "sysfs", 0, NULL); ++ mount("proc", "/proc", "proc", MS_NOSUID|MS_NODEV|MS_NOEXEC, "hidepid=2,gid=" MAKE_STR(AID_READPROC)); ++ mount("sysfs", "/sys", "sysfs", MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL); + } + + // We must have some place other than / to create the device nodes for +diff --git a/rootdir/init.rc b/rootdir/init.rc +index cd97776..38e68d1 100644 +--- a/rootdir/init.rc ++++ b/rootdir/init.rc +@@ -122,6 +122,7 @@ on init + write /proc/sys/kernel/sched_child_runs_first 0 + + write /proc/sys/kernel/randomize_va_space 2 ++ write /proc/sys/kernel/dmesg_restrict 1 + write /proc/sys/kernel/kptr_restrict 2 + write /proc/sys/vm/mmap_min_addr 32768 + write /proc/sys/net/ipv4/ping_group_range "0 2147483647" +@@ -140,6 +141,21 @@ on init + write /proc/sys/net/ipv4/conf/all/accept_redirects 0 + write /proc/sys/net/ipv6/conf/all/accept_redirects 0 + ++ # IPv4 hardening ++ # ++ # reverse path filtering is done with netfilter for consistency with IPv6 ++ write /proc/sys/net/ipv4/tcp_rfc1337 1 ++ write /proc/sys/net/ipv4/conf/all/accept_source_route 0 ++ write /proc/sys/net/ipv4/conf/default/accept_source_route 0 ++ write /proc/sys/net/ipv4/conf/default/accept_redirects 0 ++ write /proc/sys/net/ipv4/conf/all/send_redirects 0 ++ write /proc/sys/net/ipv4/conf/default/send_redirects 0 ++ ++ # IPv6 hardening ++ write /proc/sys/net/ipv6/conf/default/accept_redirects 0 ++ write /proc/sys/net/ipv6/conf/all/use_tempaddr 2 ++ write /proc/sys/net/ipv6/conf/default/use_tempaddr 2 ++ + # Create cgroup mount points for process groups + mkdir /dev/cpuctl + mount cgroup none /dev/cpuctl cpu +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_vendor_cm/0001-SCE.patch b/Patches/LineageOS-14.1/android_vendor_cm/0001-SCE.patch new file mode 100644 index 00000000..c0da5b79 --- /dev/null +++ b/Patches/LineageOS-14.1/android_vendor_cm/0001-SCE.patch @@ -0,0 +1,27 @@ +From 5b06904bd8fa8009881cf215a0ddecce2a48bdd5 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 10:40:41 -0500 +Subject: [PATCH] SC Extras + +Change-Id: Iee06a1cf026e00fc7312454d90a0fef6fcda16e3 +--- + config/common.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/config/common.mk b/config/common.mk +index ab54327..577235b 100644 +--- a/config/common.mk ++++ b/config/common.mk +@@ -125,6 +125,9 @@ include vendor/cm/config/cm_audio.mk + # Theme engine + include vendor/cm/config/themes_common.mk + ++# SC Extras ++include vendor/cm/config/sce.mk ++ + ifneq ($(TARGET_DISABLE_CMSDK), true) + # CMSDK + include vendor/cm/config/cmsdk_common.mk +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_vendor_cm/0002-Monochromium.patch b/Patches/LineageOS-14.1/android_vendor_cm/0002-Monochromium.patch new file mode 100644 index 00000000..f95b6484 --- /dev/null +++ b/Patches/LineageOS-14.1/android_vendor_cm/0002-Monochromium.patch @@ -0,0 +1,26 @@ +From 99c3d764e8d8f374d327735d729d7ece1c760c9e Mon Sep 17 00:00:00 2001 +From: Tad +Date: Sun, 18 Dec 2016 18:14:40 -0500 +Subject: [PATCH] Add Chromium webview support + +Change-Id: I58c429c88d224af0e7c55ddd27eda85a8448379e +--- + .../common/frameworks/base/core/res/res/xml/config_webview_packages.xml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml b/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml +index e05f4aa..fe6f40b 100644 +--- a/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml ++++ b/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml +@@ -32,6 +32,8 @@ + MIIDuzCCAqOgAwIBAgIJANi6DgBQG4ZTMA0GCSqGSIb3DQEBBQUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzAeFw0xNDA4MDgyMzIwMjBaFw00MTEyMjQyMzIwMjBaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbtaFX0r5aZJMAbPVMAgK1ZZ29dTn91VsGxXv2hqrQo7IpqEy2JmPvPnoMsSiuTAe+UcQy8oKDQ2aYVSAd1DGIy+nSRyFTt3LSIAdwSBkB1qT4a+OqkpsR6bSNXQXQ18lCQu9gREY3h3QlYBQAyzRxw4hRGlrXAzuSz1Ec4W+6x4nLG5DG61MAMR8ClF9XSqbmGB3kyZ70A0X9OPYYxiMWP1ExaYvpaVqjyZZcrPwr+vtW8oCuGBUtHpBUH3OoG+9s2YMcgLG7vCK9awKDqlPcJSpIAAj6uGs4gORmkqxZRMskLSTWbhP4p+3Ap8jYzTVB6Y1/DMVmYTWRMcPW0macCAwEAAaNQME4wHQYDVR0OBBYEFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMB8GA1UdIwQYMBaAFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAEQu8QiVxax7/diEiJrgKE1LwdXsIygJK/KnaKdnYEkAQpeu/QmrLiycm+OFbL1qHJIB7OuI/PQBUtcaNSiJSCVgtwtEbZWWIdsynqG/Nf4aGOndXegSQNRH54M05sRHLoeRycPrY7xQlEwGikNFR76+5UdwFBQI3Gn22g6puJnVukQm/wXQ+ajoiS4QclrNlixoDQsZ4STLH4+Wju2wIWKFFArIhVEIlbamq+p6BghuzH3aIz/Fy0YTQKi7SA+0fuNeCaqlSm5pYSt6p5CH89y1Fr+wFc5r3iLRnUwRcy08ESC7bZJnxV3d/YQ5valTxBbzku/dQbXVj/xg69H8l8M + + ++ ++ + + + +-- +2.9.3 + diff --git a/Patches/LineageOS-14.1/android_vendor_cm/sce.mk b/Patches/LineageOS-14.1/android_vendor_cm/sce.mk new file mode 100644 index 00000000..2bc55eb9 --- /dev/null +++ b/Patches/LineageOS-14.1/android_vendor_cm/sce.mk @@ -0,0 +1,10 @@ +# MicroG +PRODUCT_PACKAGES += \ + GmsCore \ + GsfProxy \ + FakeStore + +# F-Droid +PRODUCT_PACKAGES += \ + F-Droid \ + FDroidPrivilegedExtension diff --git a/Scripts/LAOS-14.1_Patches.sh b/Scripts/LAOS-14.1_Patches.sh index 38df2bc0..261d4856 100644 --- a/Scripts/LAOS-14.1_Patches.sh +++ b/Scripts/LAOS-14.1_Patches.sh @@ -15,8 +15,8 @@ #START OF PREPRATION # #Set some variables for use later on -base="/home/tad/Android/Build/LineageOS-14.1/" -patches="/home/tad/Android/Patches/LineageOS-14.1/" +base="/home/emy/Android/Build/LineageOS-14.1/" +patches="/home/emy/Android/Patches/LineageOS-14.1/" ANDROID_HOME=/home/tad/Android/Build/LineageOS-14.1/prebuilts/sdk/current #Download some out-of-tree files for use later on