summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Murray <timmurray@google.com>2015-10-05 13:31:51 -0700
committerTim Murray <timmurray@google.com>2015-10-05 13:51:31 -0700
commit7bafe338e7998c7dd9e639f94698909400227c97 (patch)
treed273500ea06008f58f95a6f3b9f6fc3d8e22cca5
parent7f67479423cf079825a82b88ecbd8024c1cd0adf (diff)
downloadangler-7bafe338e7998c7dd9e639f94698909400227c97.tar.gz
Enable touch boost during camera.
Previously, the video encode hint would hotplug the big cores off while the camera was running in order to improve thermals and power consumption. Instead, have the camera run the big cores at 384MHz so we can still apply POWER_HINT_INTERACTION. This also restricts mm-qcamera-daemon to the small cluster in order to prevent it from being boosted by touch boost. bug 24583227 Change-Id: Ifb32729f4bc47bf71ea868d22589fa37b40a3007
-rwxr-xr-xinit.angler.rc1
-rw-r--r--power/power-8994.c11
-rw-r--r--power/power.c4
-rw-r--r--power/utils.c2
4 files changed, 9 insertions, 9 deletions
diff --git a/init.angler.rc b/init.angler.rc
index 795fbc0..82199a2 100755
--- a/init.angler.rc
+++ b/init.angler.rc
@@ -327,6 +327,7 @@ service qcamerasvr /system/bin/mm-qcamera-daemon
class late_start
user camera
group camera system inet input graphics
+ writepid /dev/cpuset/system-background/tasks
service fingerprintd /system/bin/fingerprintd
class late_start
diff --git a/power/power-8994.c b/power/power-8994.c
index 46febc9..6ca1110 100644
--- a/power/power-8994.c
+++ b/power/power-8994.c
@@ -38,7 +38,7 @@
#include <pthread.h>
#include <stdbool.h>
-#define LOG_TAG "QCOM PowerHAL"
+#define LOG_TAG "QCOMPowerHAL"
#include <utils/Log.h>
#include <hardware/hardware.h>
#include <hardware/power.h>
@@ -78,11 +78,10 @@ static void* video_encode_hint_function(void* arg) {
// if should_enable is false, we've already quit the camera
if (video_encode_hint_should_enable == true && video_encode_hint_counter == expected_counter) {
/* sched and cpufreq params
- * A57 - offlines
- * A53 - 4 cores online at 1.2GHz
- */
- int resource_values[] = {0x150C, 0x160C, 0x170C, 0x180C, 0x3DFF};
-
+ A53: 4 cores online at 1.2GHz max, 960 min
+ A57: 4 cores online at 384 max, 384 min
+ */
+ int resource_values[] = {0x150C, 0x1F03, 0x2303};
perform_hint_action(new_hint_id,
resource_values, sizeof(resource_values)/sizeof(resource_values[0]));
cur_hint_id = new_hint_id;
diff --git a/power/power.c b/power/power.c
index da8e9ed..308ea0c 100644
--- a/power/power.c
+++ b/power/power.c
@@ -37,7 +37,7 @@
#include <dlfcn.h>
#include <stdlib.h>
-#define LOG_TAG "QCOM PowerHAL"
+#define LOG_TAG "QCOMPowerHAL"
#include <utils/Log.h>
#include <hardware/hardware.h>
#include <hardware/power.h>
@@ -221,7 +221,7 @@ static void power_hint(struct power_module *module, power_hint_t hint,
static int handle_little = 0;
// big core freq bump for 500ms
- int resources_big[] = {0x1F08};
+ int resources_big[] = {0x2312, 0x1F08};
int duration_big = 500;
static int handle_big = 0;
diff --git a/power/utils.c b/power/utils.c
index 0e7670e..199425b 100644
--- a/power/utils.c
+++ b/power/utils.c
@@ -39,7 +39,7 @@
#include "hint-data.h"
#include "power-common.h"
-#define LOG_TAG "QCOM PowerHAL"
+#define LOG_TAG "QCOMPowerHAL"
#include <utils/Log.h>
#define INTERACTION_BOOST