From e25005d5ca07ddc3636d5db2c1f5324e88aa1107 Mon Sep 17 00:00:00 2001 From: AyushR1 Date: Mon, 19 Jun 2017 11:18:24 +0530 Subject: [PATCH 1/2] Add support for Franco's simplified thermal driver. Signed-off-by: AyushR1 --- .../fragments/kernel/ThermalFragment.java | 92 +++++++++++++++++++ .../utils/kernel/thermal/MSMThermal.java | 70 ++++++++++++++ app/src/main/res/values/strings.xml | 13 ++- 3 files changed, 173 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/grarak/kerneladiutor/fragments/kernel/ThermalFragment.java b/app/src/main/java/com/grarak/kerneladiutor/fragments/kernel/ThermalFragment.java index bd392a31e..0d83c509c 100755 --- a/app/src/main/java/com/grarak/kerneladiutor/fragments/kernel/ThermalFragment.java +++ b/app/src/main/java/com/grarak/kerneladiutor/fragments/kernel/ThermalFragment.java @@ -679,6 +679,98 @@ public void onStop(SeekBarView seekBarView, int position, String value) { items.add(shutDownTemp); } + + if (MSMThermal.hasFrancoThermalStep()) { + List list = new ArrayList<>(); + for (int i = 1; i < 7; i++){ + list.add(String.valueOf(i));} + SeekBarView francothermalstep = new SeekBarView(); + francothermalstep.setTitle(getString(R.string.franco_thermal_step)); + francothermalstep.setSummary(getString(R.string.franco_thermal_step_summary)); + francothermalstep.setMax(10); + francothermalstep.setMin(0); + francothermalstep.setProgress(MSMThermal.getFrancoThermalStep()); + francothermalstep.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() { + @Override + public void onMove(SeekBarView seekBarView, int position, String value) { + } + + @Override + public void onStop(SeekBarView seekBarView, int position, String value) { + MSMThermal.setFrancoThermalStep(position, getActivity()); + } + }); + + items.add(francothermalstep); + } + + if (MSMThermal.hasFrancoThermalStageOne()) { + List freqs = new ArrayList<>(); + SelectView mFrancoThermalStageOneCard = new SelectView(); + mFrancoThermalStageOneCard.setTitle(getString(R.string.thermal_franco_stage_one)); + mFrancoThermalStageOneCard.setSummary(getString(R.string.throttle_at) + (MSMThermal.getCurTempLimit()) + getString(R.string.throttle_tempc)); + mFrancoThermalStageOneCard.setItems(CPUFreq.getAdjustedFreq(getActivity())); + mFrancoThermalStageOneCard.setItem((MSMThermal.getFrancoThermalStageOne() / 1000) + getString(R.string.mhz)); + mFrancoThermalStageOneCard.setOnItemSelected(new SelectView.OnItemSelected() { + @Override + public void onItemSelected(SelectView selectView, int position, String item) { + MSMThermal.setFrancoThermalStageOne(CPUFreq.getFreqs().get(position), getActivity()); + } + }); + + items.add(mFrancoThermalStageOneCard); + } + + if (MSMThermal.hasFrancoThermalStageTwo()) { + List freqs = new ArrayList<>(); + SelectView mFrancoThermalStageTwoCard = new SelectView(); + mFrancoThermalStageTwoCard.setTitle(getString(R.string.thermal_franco_stage_two)); + mFrancoThermalStageTwoCard.setSummary(getString(R.string.throttle_at) + ((MSMThermal.getCurTempLimit()) + (MSMThermal.getFrancoThermalStep())) + getString(R.string.throttle_tempc)); + mFrancoThermalStageTwoCard.setItems(CPUFreq.getAdjustedFreq(getActivity())); + mFrancoThermalStageTwoCard.setItem((MSMThermal.getFrancoThermalStageTwo() / 1000) + getString(R.string.mhz)); + mFrancoThermalStageTwoCard.setOnItemSelected(new SelectView.OnItemSelected() { + @Override + public void onItemSelected(SelectView selectView, int position, String item) { + MSMThermal.setFrancoThermalStageTwo(CPUFreq.getFreqs().get(position), getActivity()); + } + }); + + items.add(mFrancoThermalStageTwoCard); + } + + if (MSMThermal.hasFrancoThermalStageThree()) { + List freqs = new ArrayList<>(); + SelectView mFrancoThermalStageThreeCard = new SelectView(); + mFrancoThermalStageThreeCard.setTitle(getString(R.string.thermal_franco_stage_three)); + mFrancoThermalStageThreeCard.setSummary(getString(R.string.throttle_at) + ((MSMThermal.getCurTempLimit()) + (MSMThermal.getFrancoThermalStep() * 2)) + getString(R.string.throttle_tempc)); + mFrancoThermalStageThreeCard.setItems(CPUFreq.getAdjustedFreq(getActivity())); + mFrancoThermalStageThreeCard.setItem((MSMThermal.getFrancoThermalStageThree() / 1000) + getString(R.string.mhz)); + mFrancoThermalStageThreeCard.setOnItemSelected(new SelectView.OnItemSelected() { + @Override + public void onItemSelected(SelectView selectView, int position, String item) { + MSMThermal.setFrancoThermalStageThree(CPUFreq.getFreqs().get(position), getActivity()); + } + }); + + items.add(mFrancoThermalStageThreeCard); + } + if (MSMThermal.hasFrancoThermalStageFour()) { + List freqs = new ArrayList<>(); + SelectView mFrancoThermalStageFourCard = new SelectView(); + mFrancoThermalStageFourCard.setTitle(getString(R.string.thermal_franco_stage_four)); + mFrancoThermalStageFourCard.setSummary(getString(R.string.throttle_at) + ((MSMThermal.getCurTempLimit()) + (MSMThermal.getFrancoThermalStep() * 3)) + getString(R.string.throttle_tempc)); + mFrancoThermalStageFourCard.setItems(CPUFreq.getAdjustedFreq(getActivity())); + mFrancoThermalStageFourCard.setItem((MSMThermal.getFrancoThermalStageFour() / 1000) + getString(R.string.mhz)); + mFrancoThermalStageFourCard.setOnItemSelected(new SelectView.OnItemSelected() { + @Override + public void onItemSelected(SelectView selectView, int position, String item) { + MSMThermal.setFrancoThermalStageFour(CPUFreq.getFreqs().get(position), getActivity()); + } + }); + + items.add(mFrancoThermalStageFourCard); + } + } diff --git a/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/thermal/MSMThermal.java b/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/thermal/MSMThermal.java index 2127ee9f3..496d005aa 100755 --- a/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/thermal/MSMThermal.java +++ b/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/thermal/MSMThermal.java @@ -53,6 +53,11 @@ public class MSMThermal { private static final String PARAMETERS_THERMAL_LIMIT_HIGH = "parameters/thermal_limit_high"; private static final String PARAMETERS_TEMP_SAFETY = "parameters/temp_safety"; private static final String MSM_THERMAL_TEMP_THROTTLE = MSM_THERMAL + "/" + PARAMETERS_ENABLED; + private static final String THERMAL_FRANCO_STEP = "/sys/module/msm_thermal/parameters/temp_step"; + private static final String THERMAL_FRANCO_STAGE_ONE = "/sys/module/msm_thermal/parameters/freq_warm"; + private static final String THERMAL_FRANCO_STAGE_TWO = "/sys/module/msm_thermal/parameters/freq_hot"; + private static final String THERMAL_FRANCO_STAGE_THREE = "/sys/module/msm_thermal/parameters/freq_very_hot"; + private static final String THERMAL_FRANCO_STAGE_FOUR = "/sys/module/msm_thermal/parameters/freq_hell"; private static final String MSM_THERMAL_THROTTLE_TEMP = MSM_THERMAL + "/parameters/throttle_temp"; private static final String MSM_THERMAL_TEMP_MAX = MSM_THERMAL + "/parameters/temp_max"; @@ -525,5 +530,70 @@ public static boolean supported() { private static void run(String command, String id, Context context) { Control.runSetting(command, ApplyOnBootFragment.THERMAL, id, context); } + + public static void setFrancoThermalStep(int value, Context context) { + run(Control.write(String.valueOf(value), THERMAL_FRANCO_STEP), + THERMAL_FRANCO_STEP, context); + } + + public static int getFrancoThermalStep() { + return Utils.strToInt(Utils.readFile(THERMAL_FRANCO_STEP)); + } + + public static boolean hasFrancoThermalStep() { + return Utils.existFile(THERMAL_FRANCO_STEP); + } + + public static void setFrancoThermalStageOne(int freq, Context context) { + run(Control.write(String.valueOf(freq), THERMAL_FRANCO_STAGE_ONE), + THERMAL_FRANCO_STAGE_ONE, context); + } + + public static int getFrancoThermalStageOne() { + return Utils.strToInt(Utils.readFile(THERMAL_FRANCO_STAGE_ONE)); + } + + public static boolean hasFrancoThermalStageOne() { + return Utils.existFile(THERMAL_FRANCO_STAGE_ONE); + } + + public static void setFrancoThermalStageTwo(int freq, Context context) { + run(Control.write(String.valueOf(freq), THERMAL_FRANCO_STAGE_TWO), + THERMAL_FRANCO_STAGE_TWO, context); + } + + public static int getFrancoThermalStageTwo() { + return Utils.strToInt(Utils.readFile(THERMAL_FRANCO_STAGE_TWO)); + } + + public static boolean hasFrancoThermalStageTwo() { + return Utils.existFile(THERMAL_FRANCO_STAGE_TWO); + } + + public static void setFrancoThermalStageThree(int freq, Context context) { + run(Control.write(String.valueOf(freq), THERMAL_FRANCO_STAGE_THREE), + THERMAL_FRANCO_STAGE_THREE, context); + } + + public static int getFrancoThermalStageThree() { + return Utils.strToInt(Utils.readFile(THERMAL_FRANCO_STAGE_THREE)); + } + + public static boolean hasFrancoThermalStageThree() { + return Utils.existFile(THERMAL_FRANCO_STAGE_THREE); + } + + public static void setFrancoThermalStageFour(int freq, Context context) { + run(Control.write(String.valueOf(freq), THERMAL_FRANCO_STAGE_FOUR), + THERMAL_FRANCO_STAGE_FOUR, context); + } + + public static int getFrancoThermalStageFour() { + return Utils.strToInt(Utils.readFile(THERMAL_FRANCO_STAGE_FOUR)); + } + + public static boolean hasFrancoThermalStageFour() { + return Utils.existFile(THERMAL_FRANCO_STAGE_FOUR); + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1bac799c8..24fcfb0a9 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -386,8 +386,17 @@ Phase 3: Allowed Max Frequency Check Interval Shutdown Temperature - - + Thermal Step Value + This value is added on top of threshold to create trigger thresholds between each stage + First stage limiting Frequency + Second stage limiting Frequency + Third stage limiting Frequency + Fourth stage limiting Frequency + This frequency is set as max frequency at : + °C + + + Frequencies GPU 2D Frequency GPU 2D Maximum Frequency From 456c57ad2aecc056553da61cebfbcb54f5d6d7d9 Mon Sep 17 00:00:00 2001 From: AyushR1 Date: Tue, 13 Jun 2017 20:05:20 +0530 Subject: [PATCH 2/2] Add missing strings for wakelock and Add BlueDroid wakelock toggle. Signed-off-by: AyushR1 --- .../utils/kernel/misc/Wakelocks.java | 20 +++++++++++++------ app/src/main/res/values/strings.xml | 14 +++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/misc/Wakelocks.java b/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/misc/Wakelocks.java index a25f67199..0c2acda58 100755 --- a/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/misc/Wakelocks.java +++ b/app/src/main/java/com/grarak/kerneladiutor/utils/kernel/misc/Wakelocks.java @@ -116,12 +116,20 @@ public boolean exists() { R.string.wlan_wakelock, R.string.wlan_wakelock_summary)); sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_bluesleep_ws", R.string.bluesleep_wakelock, R.string.bluesleep_wakelock_summary)); - sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_ipa_ws")); - sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_netlink_ws")); - sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_qcom_rx_wakelock_ws")); - sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_timerfd_ws")); - sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_wlan_extscan_wl_ws")); - sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_wlan_ws")); + sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_ipa_ws", + R.string.ipa_wakelock, R.string.ipa_wakelock_summary)); + sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_netlink_ws", + R.string.netlink_wakelock, R.string.netlink_wakelock_summary)); + sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_qcom_rx_wakelock_ws", + R.string.qcom_rx_wakelock, R.string.qcom_rx_wakelock_summary)); + sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_timerfd_ws", + R.string.timerfd_wakelock, R.string.timerfd_wakelock_summary)); + sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_wlan_extscan_wl_ws", + R.string.wlan_extscan_wl_ws_wakelock, R.string.wlan_extscan_wl_ws_wakelock_summary)); + sWakelocks.add(new Wakelock("/sys/module/wakeup/parameters/enable_wlan_ws", + R.string.wlan_ws_wakelock, R.string.wlan_ws_wakelock_summary)); + sWakelocks.add(new Wakelock("sys/module/wakeup/parameters/enable_bluedroid_timer_ws", + R.string.bluedroid_timer_wakelock, R.string.bluedroid_timer_wakelock_summary)); } public static void setBCMDHDDivider(int value, Context context) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 24fcfb0a9..04d28a22d 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -693,6 +693,20 @@ Prevent wlan wakelock. BlueSleep Wakelock Prevent BlueSleep wakelock. + Ipa Wakelock + Prevent Ipa wakelock. + NetLink Wakelock + Prevent NetLink wakelock. + Qcom rx Wakelock + Prevent Qcom rx wakelock. + Timerfd Wakelock + Prevent Timerfd wakelock. + Extscan Wakelock + Prevent Extscan wakelock. + wlan_ws Wakelock + Prevent wlan_ws wakelock. + Bluedroid Timer Wakelock + Prevent Bluedroid Timer wakelock. wlan_rx Wakelock Divider wlan_ctrl Wakelock Divider msm_hsic Wakelock Divider