diff options
l--------- | .clang-format | 1 | ||||
-rw-r--r-- | Android.mk | 48 | ||||
-rw-r--r-- | Power.cpp | 19 | ||||
-rw-r--r-- | Power.h | 4 | ||||
-rw-r--r-- | hint-data.c | 9 | ||||
-rw-r--r-- | hint-data.h | 49 | ||||
-rw-r--r-- | list.c | 42 | ||||
-rw-r--r-- | list.h | 18 | ||||
-rw-r--r-- | metadata-defs.h | 14 | ||||
-rw-r--r-- | metadata-parser.c | 50 | ||||
-rw-r--r-- | performance.h | 12 | ||||
-rw-r--r-- | power-660.c | 212 | ||||
-rw-r--r-- | power-710.c | 66 | ||||
-rw-r--r-- | power-8084.c | 32 | ||||
-rw-r--r-- | power-8226.c | 24 | ||||
-rw-r--r-- | power-845.c | 148 | ||||
-rw-r--r-- | power-8610.c | 24 | ||||
-rw-r--r-- | power-8909.c | 50 | ||||
-rw-r--r-- | power-8916.c | 219 | ||||
-rw-r--r-- | power-8952.c | 240 | ||||
-rw-r--r-- | power-8953.c | 235 | ||||
-rw-r--r-- | power-8974.c | 32 | ||||
-rw-r--r-- | power-8992.c | 40 | ||||
-rw-r--r-- | power-8994.c | 40 | ||||
-rw-r--r-- | power-8996.c | 47 | ||||
-rw-r--r-- | power-8998.c | 92 | ||||
-rw-r--r-- | power-common.c | 60 | ||||
-rw-r--r-- | power-common.h | 13 | ||||
-rw-r--r-- | power-msmnile.c | 69 | ||||
-rw-r--r-- | service.cpp | 10 | ||||
-rw-r--r-- | utils.c | 150 | ||||
-rw-r--r-- | utils.h | 9 |
32 files changed, 920 insertions, 1158 deletions
diff --git a/.clang-format b/.clang-format new file mode 120000 index 0000000..0457b53 --- /dev/null +++ b/.clang-format @@ -0,0 +1 @@ +../../../../build/soong/scripts/system-clang-format
\ No newline at end of file @@ -2,53 +2,70 @@ LOCAL_PATH := $(call my-dir) ifeq ($(call is-vendor-board-platform,QCOM),true) -# HAL module implemenation stored in -# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so include $(CLEAR_VARS) LOCAL_MODULE_RELATIVE_PATH := hw -LOCAL_SHARED_LIBRARIES := liblog libcutils libdl libbase libhidlbase libhidltransport libutils android.hardware.power@1.2 -LOCAL_HEADER_LIBRARIES += libhardware_headers -LOCAL_SRC_FILES := power-common.c metadata-parser.c utils.c list.c hint-data.c service.cpp Power.cpp + +LOCAL_SHARED_LIBRARIES := \ + liblog \ + libcutils \ + libdl \ + libbase \ + libhidlbase \ + libhidltransport \ + libutils \ + android.hardware.power@1.2 + +LOCAL_HEADER_LIBRARIES := \ + libhardware_headers + +LOCAL_SRC_FILES := \ + power-common.c \ + metadata-parser.c \ + utils.c \ + list.c \ + hint-data.c \ + service.cpp \ + Power.cpp ifneq ($(BOARD_POWER_CUSTOM_BOARD_LIB),) LOCAL_WHOLE_STATIC_LIBRARIES += $(BOARD_POWER_CUSTOM_BOARD_LIB) else # Include target-specific files. -ifeq ($(call is-board-platform-in-list, msm8974), true) +ifeq ($(call is-board-platform-in-list,msm8974), true) LOCAL_SRC_FILES += power-8974.c endif -ifeq ($(call is-board-platform-in-list, msm8226), true) +ifeq ($(call is-board-platform-in-list,msm8226), true) LOCAL_SRC_FILES += power-8226.c endif -ifeq ($(call is-board-platform-in-list, msm8610), true) +ifeq ($(call is-board-platform-in-list,msm8610), true) LOCAL_SRC_FILES += power-8610.c endif -ifeq ($(call is-board-platform-in-list, apq8084), true) +ifeq ($(call is-board-platform-in-list,apq8084), true) LOCAL_SRC_FILES += power-8084.c endif -ifeq ($(call is-board-platform-in-list, msm8909), true) +ifeq ($(call is-board-platform-in-list,msm8909), true) LOCAL_SRC_FILES += power-8909.c endif -ifeq ($(call is-board-platform-in-list, msm8916), true) +ifeq ($(call is-board-platform-in-list,msm8916), true) LOCAL_SRC_FILES += power-8916.c endif -ifeq ($(call is-board-platform-in-list, msm8992), true) +ifeq ($(call is-board-platform-in-list,msm8992), true) LOCAL_SRC_FILES += power-8992.c endif -ifeq ($(call is-board-platform-in-list, msm8994), true) +ifeq ($(call is-board-platform-in-list,msm8994), true) LOCAL_SRC_FILES += power-8994.c endif -ifeq ($(call is-board-platform-in-list, msm8996), true) +ifeq ($(call is-board-platform-in-list,msm8996), true) LOCAL_SRC_FILES += power-8996.c endif @@ -88,7 +105,7 @@ ifeq ($(call is-board-platform-in-list,msmnile), true) LOCAL_SRC_FILES += power-msmnile.c endif -endif # End of board specific list +endif # End of board specific list ifneq ($(TARGET_POWER_SET_FEATURE_LIB),) LOCAL_STATIC_LIBRARIES += $(TARGET_POWER_SET_FEATURE_LIB) @@ -111,6 +128,7 @@ LOCAL_MODULE := android.hardware.power@1.2-service-qti LOCAL_INIT_RC := android.hardware.power@1.2-service-qti.rc LOCAL_MODULE_TAGS := optional LOCAL_VENDOR_MODULE := true + include $(BUILD_EXECUTABLE) endif @@ -29,9 +29,9 @@ #define LOG_TAG "android.hardware.power@1.2-service-qti" +#include "Power.h" #include <android-base/file.h> #include <log/log.h> -#include "Power.h" #include "power-common.h" #include "power-feature.h" @@ -41,31 +41,30 @@ namespace power { namespace V1_2 { namespace implementation { +using ::android::hardware::hidl_vec; +using ::android::hardware::Return; +using ::android::hardware::Void; using ::android::hardware::power::V1_0::Feature; using ::android::hardware::power::V1_0::PowerHint; using ::android::hardware::power::V1_0::PowerStatePlatformSleepState; using ::android::hardware::power::V1_0::Status; using ::android::hardware::power::V1_1::PowerStateSubsystem; -using ::android::hardware::hidl_vec; -using ::android::hardware::Return; -using ::android::hardware::Void; Power::Power() { power_init(); } Return<void> Power::setInteractive(bool interactive) { - set_interactive(interactive ? 1:0); + set_interactive(interactive ? 1 : 0); return Void(); } Return<void> Power::powerHint(PowerHint_1_0 hint, int32_t data) { - power_hint(static_cast<power_hint_t>(hint), data ? (&data) : NULL); return Void(); } -Return<void> Power::setFeature(Feature feature, bool activate) { +Return<void> Power::setFeature(Feature feature, bool activate) { switch (feature) { #ifdef TAP_TO_WAKE_NODE case Feature::POWER_FEATURE_DOUBLE_TAP_TO_WAKE: @@ -80,7 +79,6 @@ Return<void> Power::setFeature(Feature feature, bool activate) { } Return<void> Power::getPlatformLowPowerStats(getPlatformLowPowerStats_cb _hidl_cb) { - hidl_vec<PowerStatePlatformSleepState> states; states.resize(0); @@ -89,7 +87,6 @@ Return<void> Power::getPlatformLowPowerStats(getPlatformLowPowerStats_cb _hidl_c } Return<void> Power::getSubsystemLowPowerStats(getSubsystemLowPowerStats_cb _hidl_cb) { - hidl_vec<PowerStateSubsystem> subsystems; _hidl_cb(subsystems, Status::SUCCESS); @@ -97,13 +94,11 @@ Return<void> Power::getSubsystemLowPowerStats(getSubsystemLowPowerStats_cb _hidl } Return<void> Power::powerHintAsync(PowerHint_1_0 hint, int32_t data) { - return powerHint(hint, data); } Return<void> Power::powerHintAsync_1_2(PowerHint_1_2 hint, int32_t data) { - - return powerHint(static_cast<PowerHint_1_0> (hint), data); + return powerHint(static_cast<PowerHint_1_0>(hint), data); } } // namespace implementation @@ -31,9 +31,9 @@ #define ANDROID_HARDWARE_POWER_V1_2_POWER_H #include <android/hardware/power/1.2/IPower.h> +#include <hardware/power.h> #include <hidl/MQDescriptor.h> #include <hidl/Status.h> -#include <hardware/power.h> namespace android { namespace hardware { @@ -44,9 +44,9 @@ namespace implementation { using ::android::hardware::power::V1_0::Feature; using PowerHint_1_0 = ::android::hardware::power::V1_0::PowerHint; using PowerHint_1_2 = ::android::hardware::power::V1_2::PowerHint; -using ::android::hardware::power::V1_2::IPower; using ::android::hardware::Return; using ::android::hardware::Void; +using ::android::hardware::power::V1_2::IPower; struct Power : public IPower { // Methods from ::android::hardware::power::V1_0::IPower follow. diff --git a/hint-data.c b/hint-data.c index bd41cf0..0aae830 100644 --- a/hint-data.c +++ b/hint-data.c @@ -31,19 +31,16 @@ #include "hint-data.h" -int hint_compare(struct hint_data *first_hint, - struct hint_data *other_hint) { +int hint_compare(struct hint_data* first_hint, struct hint_data* other_hint) { if (first_hint == other_hint) { return 0; - } else if ((first_hint && other_hint) && - (first_hint->hint_id == other_hint->hint_id)) { + } else if ((first_hint && other_hint) && (first_hint->hint_id == other_hint->hint_id)) { return 0; } else { return 1; } } -void hint_dump(struct hint_data *hint) -{ +void hint_dump(struct hint_data* hint) { ALOGV("hint_id: %lu", hint->hint_id); } diff --git a/hint-data.h b/hint-data.h index 48909c7..629a01e 100644 --- a/hint-data.h +++ b/hint-data.h @@ -28,33 +28,33 @@ */ /* Default use-case hint IDs */ -#define DEFAULT_VIDEO_ENCODE_HINT_ID (0x0A00) -#define DEFAULT_VIDEO_DECODE_HINT_ID (0x0B00) -#define DISPLAY_STATE_HINT_ID (0x0C00) -#define DISPLAY_STATE_HINT_ID_2 (0x0D00) -#define CAM_PREVIEW_HINT_ID (0x0E00) -#define SUSTAINED_PERF_HINT_ID (0x0F00) -#define VR_MODE_HINT_ID (0x1000) -#define VR_MODE_SUSTAINED_PERF_HINT_ID (0x1001) +#define DEFAULT_VIDEO_ENCODE_HINT_ID (0x0A00) +#define DEFAULT_VIDEO_DECODE_HINT_ID (0x0B00) +#define DISPLAY_STATE_HINT_ID (0x0C00) +#define DISPLAY_STATE_HINT_ID_2 (0x0D00) +#define CAM_PREVIEW_HINT_ID (0x0E00) +#define SUSTAINED_PERF_HINT_ID (0x0F00) +#define VR_MODE_HINT_ID (0x1000) +#define VR_MODE_SUSTAINED_PERF_HINT_ID (0x1001) -#define AOSP_DELTA (0x1200) +#define AOSP_DELTA (0x1200) -#define VSYNC_HINT AOSP_DELTA + POWER_HINT_VSYNC -#define INTERACTION_HINT AOSP_DELTA + POWER_HINT_INTERACTION -#define VIDEO_DECODE_HINT AOSP_DELTA + POWER_HINT_VIDEO_DECODE -#define VIDEO_ENCODE_HINT AOSP_DELTA + POWER_HINT_VIDEO_ENCODE -#define LOW_POWER_HINT AOSP_DELTA + POWER_HINT_LOW_POWER -#define SUSTAINED_PERF_HINT AOSP_DELTA + POWER_HINT_SUSTAINED_PERFORMANCE -#define VR_MODE_HINT AOSP_DELTA + POWER_HINT_VR_MODE -#define LAUNCH_HINT AOSP_DELTA + POWER_HINT_LAUNCH -#define DISABLE_TOUCH_HINT AOSP_DELTA + POWER_HINT_DISABLE_TOUCH +#define VSYNC_HINT AOSP_DELTA + POWER_HINT_VSYNC +#define INTERACTION_HINT AOSP_DELTA + POWER_HINT_INTERACTION +#define VIDEO_DECODE_HINT AOSP_DELTA + POWER_HINT_VIDEO_DECODE +#define VIDEO_ENCODE_HINT AOSP_DELTA + POWER_HINT_VIDEO_ENCODE +#define LOW_POWER_HINT AOSP_DELTA + POWER_HINT_LOW_POWER +#define SUSTAINED_PERF_HINT AOSP_DELTA + POWER_HINT_SUSTAINED_PERFORMANCE +#define VR_MODE_HINT AOSP_DELTA + POWER_HINT_VR_MODE +#define LAUNCH_HINT AOSP_DELTA + POWER_HINT_LAUNCH +#define DISABLE_TOUCH_HINT AOSP_DELTA + POWER_HINT_DISABLE_TOUCH -//update NUM_HINTS if hints are added to AOSP -#define NUM_HINTS (POWER_HINT_DISABLE_TOUCH +1) +// update NUM_HINTS if hints are added to AOSP +#define NUM_HINTS (POWER_HINT_DISABLE_TOUCH + 1) -#define VR_MODE_SUSTAINED_PERF_HINT (0x1301) +#define VR_MODE_SUSTAINED_PERF_HINT (0x1301) -struct hint_handles{ +struct hint_handles { int handle; int ref_count; }; @@ -64,6 +64,5 @@ struct hint_data { unsigned long perflock_handle; }; -int hint_compare(struct hint_data *first_hint, - struct hint_data *other_hint); -void hint_dump(struct hint_data *hint); +int hint_compare(struct hint_data* first_hint, struct hint_data* other_hint); +void hint_dump(struct hint_data* hint); @@ -31,23 +31,20 @@ #include <stdlib.h> #include <string.h> -#include "list.h" #include <log/log.h> +#include "list.h" -int init_list_head(struct list_node *head) -{ - if (head == NULL) - return -1; +int init_list_head(struct list_node* head) { + if (head == NULL) return -1; memset(head, 0, sizeof(*head)); return 0; } -struct list_node *add_list_node(struct list_node *head, void *data) -{ +struct list_node* add_list_node(struct list_node* head, void* data) { /* Create a new list_node. And put 'data' into it. */ - struct list_node *new_node; + struct list_node* new_node; if (head == NULL) { return NULL; @@ -66,18 +63,16 @@ struct list_node *add_list_node(struct list_node *head, void *data) return new_node; } -int is_list_empty(struct list_node *head) -{ +int is_list_empty(struct list_node* head) { return (head == NULL || head->next == NULL); } /* * Delink and de-allocate 'node'. */ -int remove_list_node(struct list_node *head, struct list_node *del_node) -{ - struct list_node *current_node; - struct list_node *saved_node; +int remove_list_node(struct list_node* head, struct list_node* del_node) { + struct list_node* current_node; + struct list_node* saved_node; if (head == NULL || head->next == NULL) { return -1; @@ -107,12 +102,10 @@ int remove_list_node(struct list_node *head, struct list_node *del_node) return 0; } -void dump_list(struct list_node *head) -{ - struct list_node *current_node = head; +void dump_list(struct list_node* head) { + struct list_node* current_node = head; - if (head == NULL) - return; + if (head == NULL) return; ALOGV("List:\n"); @@ -123,17 +116,14 @@ void dump_list(struct list_node *head) } } -struct list_node *find_node(struct list_node *head, void *comparison_data) -{ - struct list_node *current_node = head; +struct list_node* find_node(struct list_node* head, void* comparison_data) { + struct list_node* current_node = head; - if (head == NULL) - return NULL; + if (head == NULL) return NULL; while ((current_node = current_node->next)) { if (current_node->compare) { - if (current_node->compare(current_node->data, - comparison_data) == 0) { + if (current_node->compare(current_node->data, comparison_data) == 0) { /* Match found. Return current_node. */ return current_node; } @@ -28,14 +28,14 @@ */ struct list_node { - struct list_node *next; - void *data; - int (*compare)(void *data1, void *data2); - void (*dump)(void *data); + struct list_node* next; + void* data; + int (*compare)(void* data1, void* data2); + void (*dump)(void* data); }; -int init_list_head(struct list_node *head); -struct list_node * add_list_node(struct list_node *head, void *data); -int remove_list_node(struct list_node *head, struct list_node *del_node); -void dump_list(struct list_node *head); -struct list_node *find_node(struct list_node *head, void *comparison_data); +int init_list_head(struct list_node* head); +struct list_node* add_list_node(struct list_node* head, void* data); +int remove_list_node(struct list_node* head, struct list_node* del_node); +void dump_list(struct list_node* head); +struct list_node* find_node(struct list_node* head, void* comparison_data); diff --git a/metadata-defs.h b/metadata-defs.h index e3ce944..bbc5fbf 100644 --- a/metadata-defs.h +++ b/metadata-defs.h @@ -34,7 +34,7 @@ #define METADATA_PARSING_CONTINUE (0) #define METADATA_PARSING_DONE (1) -#define MIN(x,y) (((x)>(y))?(y):(x)) +#define MIN(x, y) (((x) > (y)) ? (y) : (x)) struct video_encode_metadata_t { int hint_id; @@ -46,9 +46,9 @@ struct video_decode_metadata_t { int state; }; -int parse_metadata(char *metadata, char **metadata_saveptr, - char *attribute, unsigned int attribute_size, char *value, unsigned int value_size); -int parse_video_encode_metadata(char *metadata, - struct video_encode_metadata_t *video_encode_metadata); -int parse_video_decode_metadata(char *metadata, - struct video_decode_metadata_t *video_decode_metadata); +int parse_metadata(char* metadata, char** metadata_saveptr, char* attribute, + unsigned int attribute_size, char* value, unsigned int value_size); +int parse_video_encode_metadata(char* metadata, + struct video_encode_metadata_t* video_encode_metadata); +int parse_video_decode_metadata(char* metadata, + struct video_decode_metadata_t* video_decode_metadata); diff --git a/metadata-parser.c b/metadata-parser.c index ffe092b..4a8bc30 100644 --- a/metadata-parser.c +++ b/metadata-parser.c @@ -28,29 +28,25 @@ */ #include <stdio.h> -#include <string.h> #include <stdlib.h> +#include <string.h> #include "metadata-defs.h" -int parse_metadata(char *metadata, char **metadata_saveptr, - char *attribute, unsigned int attribute_size, char *value, unsigned int value_size) -{ - char *attribute_string; - char *attribute_value_delim; +int parse_metadata(char* metadata, char** metadata_saveptr, char* attribute, + unsigned int attribute_size, char* value, unsigned int value_size) { + char* attribute_string; + char* attribute_value_delim; unsigned int bytes_to_copy; - attribute_string = strtok_r(metadata, ATTRIBUTE_STRING_DELIM, - metadata_saveptr); + attribute_string = strtok_r(metadata, ATTRIBUTE_STRING_DELIM, metadata_saveptr); - if (attribute_string == NULL) - return METADATA_PARSING_DONE; + if (attribute_string == NULL) return METADATA_PARSING_DONE; attribute[0] = value[0] = '\0'; - if ((attribute_value_delim = strchr(attribute_string, - ATTRIBUTE_VALUE_DELIM)) != NULL) { - unsigned int attribute_len = (unsigned int) (attribute_value_delim - attribute_string); + if ((attribute_value_delim = strchr(attribute_string, ATTRIBUTE_VALUE_DELIM)) != NULL) { + unsigned int attribute_len = (unsigned int)(attribute_value_delim - attribute_string); /* copy only attribute len + NUL character, or as much as can be fit */ bytes_to_copy = MIN(attribute_len + 1, attribute_size); @@ -61,15 +57,14 @@ int parse_metadata(char *metadata, char **metadata_saveptr, return METADATA_PARSING_CONTINUE; } -int parse_video_encode_metadata(char *metadata, - struct video_encode_metadata_t *video_encode_metadata) -{ +int parse_video_encode_metadata(char* metadata, + struct video_encode_metadata_t* video_encode_metadata) { char attribute[1024], value[1024], *saveptr; - char *temp_metadata = metadata; + char* temp_metadata = metadata; int parsing_status; - while ((parsing_status = parse_metadata(temp_metadata, &saveptr, - attribute, sizeof(attribute), value, sizeof(value))) == METADATA_PARSING_CONTINUE) { + while ((parsing_status = parse_metadata(temp_metadata, &saveptr, attribute, sizeof(attribute), + value, sizeof(value))) == METADATA_PARSING_CONTINUE) { if (strlen(attribute) == strlen("hint_id") && (strncmp(attribute, "hint_id", strlen("hint_id")) == 0)) { if (strlen(value) > 0) { @@ -87,21 +82,19 @@ int parse_video_encode_metadata(char *metadata, temp_metadata = NULL; } - if (parsing_status == METADATA_PARSING_ERR) - return -1; + if (parsing_status == METADATA_PARSING_ERR) return -1; return 0; } -int parse_video_decode_metadata(char *metadata, - struct video_decode_metadata_t *video_decode_metadata) -{ +int parse_video_decode_metadata(char* metadata, + struct video_decode_metadata_t* video_decode_metadata) { char attribute[1024], value[1024], *saveptr; - char *temp_metadata = metadata; + char* temp_metadata = metadata; int parsing_status; - while ((parsing_status = parse_metadata(temp_metadata, &saveptr, - attribute, sizeof(attribute), value, sizeof(value))) == METADATA_PARSING_CONTINUE) { + while ((parsing_status = parse_metadata(temp_metadata, &saveptr, attribute, sizeof(attribute), + value, sizeof(value))) == METADATA_PARSING_CONTINUE) { if (strlen(attribute) == strlen("hint_id") && (strncmp(attribute, "hint_id", strlen("hint_id")) == 0)) { if (strlen(value) > 0) { @@ -119,8 +112,7 @@ int parse_video_decode_metadata(char *metadata, temp_metadata = NULL; } - if (parsing_status == METADATA_PARSING_ERR) - return -1; + if (parsing_status == METADATA_PARSING_ERR) return -1; return 0; } diff --git a/performance.h b/performance.h index 5196076..5d3a08c 100644 --- a/performance.h +++ b/performance.h @@ -31,15 +31,15 @@ extern "C" { #endif -#define FAILED -1 -#define SUCCESS 0 -#define INDEFINITE_DURATION 0 +#define FAILED -1 +#define SUCCESS 0 +#define INDEFINITE_DURATION 0 /* Hints sent to perf HAL from power HAL * These have to be kept in sync with Perf HAL side definitions */ -#define VENDOR_HINT_DISPLAY_OFF 0x00001040 -#define VENDOR_HINT_DISPLAY_ON 0x00001041 +#define VENDOR_HINT_DISPLAY_OFF 0x00001040 +#define VENDOR_HINT_DISPLAY_ON 0x00001041 enum SCREEN_DISPLAY_TYPE { DISPLAY_OFF = 0x00FF, @@ -184,7 +184,7 @@ enum INTERACTIVE_OPCODES { enum INTERACTIVE_HISPEED_FREQ_LVL { HS_FREQ_1026 = 0xF0A, - HS_FREQ_800 = 0xF08, + HS_FREQ_800 = 0xF08, }; enum INTERACTIVE_HISPEED_LOAD_LVL { diff --git a/power-660.c b/power-660.c index f6cacf7..ce7c19b 100644 --- a/power-660.c +++ b/power-660.c @@ -29,27 +29,27 @@ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" -#define MIN_VAL(X,Y) ((X>Y)?(Y):(X)) +#define MIN_VAL(X, Y) ((X > Y) ? (Y) : (X)) static int saved_interactive_mode = -1; static int display_hint_sent; @@ -57,14 +57,13 @@ static int video_encode_hint_sent; static int cam_preview_hint_sent; static int camera_hint_ref_count; -static void process_video_encode_hint(void *metadata); -//static void process_cam_preview_hint(void *metadata); +static void process_video_encode_hint(void* metadata); +// static void process_cam_preview_hint(void *metadata); /* Returns true is target is SDM630/SDM455 else false*/ -static bool is_target_SDM630() -{ +static bool is_target_SDM630() { int fd; - bool is_target_SDM630=false; + bool is_target_SDM630 = false; char buf[10] = {0}; fd = open("/sys/devices/soc0/soc_id", O_RDONLY); if (fd >= 0) { @@ -82,14 +81,11 @@ static bool is_target_SDM630() return is_target_SDM630; } -int power_hint_override(power_hint_t hint, void *data) -{ - - switch(hint) { +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { case POWER_HINT_VSYNC: break; - case POWER_HINT_VIDEO_ENCODE: - { + case POWER_HINT_VIDEO_ENCODE: { process_video_encode_hint(data); return HINT_HANDLED; } @@ -97,8 +93,7 @@ int power_hint_override(power_hint_t hint, void *data) return HINT_NONE; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; char tmp_str[NODE_MAX]; int resource_values[20]; @@ -108,10 +103,10 @@ int set_interactive_override(int on) ALOGI("Got set_interactive hint"); - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU3) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { ALOGE("Can't obtain scaling governor."); return HINT_HANDLED; } @@ -121,67 +116,56 @@ int set_interactive_override(int on) if (!on) { /* Display off. */ - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - /* - 1. CPUfreq params - - hispeed freq for big - 1113Mhz - - go hispeed load for big - 95 - - above_hispeed_delay for big - 40ms - 2. BusDCVS V2 params - - Sample_ms of 10ms - */ - if(is_target_SDM630()){ - int res[] = { 0x41414000, 0x459, - 0x41410000, 0x5F, - 0x41400000, 0x4, - 0x41820000, 0xA }; + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + /* + 1. CPUfreq params + - hispeed freq for big - 1113Mhz + - go hispeed load for big - 95 + - above_hispeed_delay for big - 40ms + 2. BusDCVS V2 params + - Sample_ms of 10ms + */ + if (is_target_SDM630()) { + int res[] = {0x41414000, 0x459, 0x41410000, 0x5F, 0x41400000, 0x4, 0x41820000, 0xA}; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); } - /* - 1. CPUfreq params - - hispeed freq for little - 902Mhz - - go hispeed load for little - 95 - - above_hispeed_delay for little - 40ms - 2. BusDCVS V2 params - - Sample_ms of 10ms - 3. Sched group upmigrate - 500 - */ - else{ - int res[] = { 0x41414100, 0x386, - 0x41410100, 0x5F, - 0x41400100, 0x4, - 0x41820000, 0xA, - 0x40C54000, 0x1F4}; + /* + 1. CPUfreq params + - hispeed freq for little - 902Mhz + - go hispeed load for little - 95 + - above_hispeed_delay for little - 40ms + 2. BusDCVS V2 params + - Sample_ms of 10ms + 3. Sched group upmigrate - 500 + */ + else { + int res[] = {0x41414100, 0x386, 0x41410100, 0x5F, 0x41400100, + 0x4, 0x41820000, 0xA, 0x40C54000, 0x1F4}; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); - + num_resources = sizeof(res) / sizeof(res[0]); } - if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, num_resources); - display_hint_sent = 1; - } - } + if (!display_hint_sent) { + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, num_resources); + display_hint_sent = 1; + } + } } else { /* Display on. */ - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - - undo_hint_action(DISPLAY_STATE_HINT_ID); - display_hint_sent = 0; - } - } + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + undo_hint_action(DISPLAY_STATE_HINT_ID); + display_hint_sent = 0; + } + } saved_interactive_mode = !!on; return HINT_HANDLED; } - /* Video Encode Hint */ -static void process_video_encode_hint(void *metadata) -{ +static void process_video_encode_hint(void* metadata) { char governor[80]; int resource_values[20]; int num_resources; @@ -189,19 +173,15 @@ static void process_video_encode_hint(void *metadata) ALOGI("Got process_video_encode_hint"); - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU3) == -1) { - ALOGE("Can't obtain scaling governor."); - // return HINT_HANDLED; - } - } + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { + ALOGE("Can't obtain scaling governor."); + // return HINT_HANDLED; + } } + } } /* Initialize encode metadata struct fields. */ @@ -210,8 +190,7 @@ static void process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, - &video_encode_metadata) == -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return; } @@ -220,28 +199,23 @@ static void process_video_encode_hint(void *metadata) } if (video_encode_metadata.state == 1) { - if ((strncmp(governor, INTERACTIVE_GOVERNOR, - strlen(INTERACTIVE_GOVERNOR)) == 0) && + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - /* - 1. CPUfreq params - - hispeed freq for big - 1113Mhz - - go hispeed load for big - 95 - - above_hispeed_delay for big - 40ms - - target loads - 95 - - nr_run - 5 - 2. BusDCVS V2 params - - Sample_ms of 10ms - */ - if(is_target_SDM630()){ - int res[] = { 0x41414000, 0x459, - 0x41410000, 0x5F, - 0x41400000, 0x4, - 0x41420000, 0x5F, - 0x40C2C000, 0X5, - 0x41820000, 0xA}; + /* + 1. CPUfreq params + - hispeed freq for big - 1113Mhz + - go hispeed load for big - 95 + - above_hispeed_delay for big - 40ms + - target loads - 95 + - nr_run - 5 + 2. BusDCVS V2 params + - Sample_ms of 10ms + */ + if (is_target_SDM630()) { + int res[] = {0x41414000, 0x459, 0x41410000, 0x5F, 0x41400000, 0x4, + 0x41420000, 0x5F, 0x40C2C000, 0X5, 0x41820000, 0xA}; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); } /* @@ -252,36 +226,30 @@ static void process_video_encode_hint(void *metadata) 2. BusDCVS V2 params - Sample_ms of 10ms */ - else{ - int res[] = { 0x41414100, 0x386, - 0x41410100, 0x5F, - 0x41400100, 0x4, - 0x41820000, 0xA}; + else { + int res[] = {0x41414100, 0x386, 0x41410100, 0x5F, 0x41400100, 0x4, 0x41820000, 0xA}; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); } camera_hint_ref_count++; if (camera_hint_ref_count == 1) { if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + num_resources); video_encode_hint_sent = 1; } - } + } } } else if (video_encode_metadata.state == 0) { - if ((strncmp(governor, INTERACTIVE_GOVERNOR, - strlen(INTERACTIVE_GOVERNOR)) == 0) && + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { camera_hint_ref_count--; if (!camera_hint_ref_count) { undo_hint_action(video_encode_metadata.hint_id); video_encode_hint_sent = 0; } - return ; + return; } } return; } - - diff --git a/power-710.c b/power-710.c index e51a06c..75094a0 100644 --- a/power-710.c +++ b/power-710.c @@ -26,73 +26,63 @@ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - - +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_fd; #define SYS_DISPLAY_PWR "/sys/kernel/hbtp/display_pwr" -int set_interactive_override(int on) -{ - static const char *display_on = "1"; - static const char *display_off = "0"; +int set_interactive_override(int on) { + static const char* display_on = "1"; + static const char* display_off = "0"; char err_buf[80]; static int init_interactive_hint = 0; static int set_i_count = 0; int rc = 0; - set_i_count ++; + set_i_count++; ALOGI("Got set_interactive hint on= %d, count= %d\n", on, set_i_count); - if (init_interactive_hint == 0) - { - //First time the display is turned off + if (init_interactive_hint == 0) { + // First time the display is turned off display_fd = TEMP_FAILURE_RETRY(open(SYS_DISPLAY_PWR, O_RDWR)); if (display_fd < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); + strerror_r(errno, err_buf, sizeof(err_buf)); ALOGE("Error opening %s: %s\n", SYS_DISPLAY_PWR, err_buf); - } - else + } else init_interactive_hint = 1; - } - else - if (!on ) { - /* Display off. */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); - } + } else if (!on) { + /* Display off. */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); } - else { - /* Display on */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); - } + } else { + /* Display on */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); } + } return HINT_HANDLED; /* Don't excecute this code path, not in use */ } - - diff --git a/power-8084.c b/power-8084.c index b66e09f..677546c 100644 --- a/power-8084.c +++ b/power-8084.c @@ -28,32 +28,31 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; static int display_hint2_sent; static int first_display_off_hint; extern int display_boost; -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; if (get_scaling_governor(governor, sizeof(governor)) == -1) { @@ -81,12 +80,13 @@ int set_interactive_override(int on) } if ((strncmp(governor, ONDEMAND_GOVERNOR, strlen(ONDEMAND_GOVERNOR)) == 0) && - (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { - int resource_values[] = {MS_500, SYNC_FREQ_600, OPTIMAL_FREQ_600, THREAD_MIGRATION_SYNC_OFF}; + (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { + int resource_values[] = {MS_500, SYNC_FREQ_600, OPTIMAL_FREQ_600, + THREAD_MIGRATION_SYNC_OFF}; if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); display_hint_sent = 1; } @@ -96,13 +96,13 @@ int set_interactive_override(int on) /* Display on */ if (display_boost && display_hint2_sent) { int resource_values2[] = {CPUS_ONLINE_MIN_2}; - perform_hint_action(DISPLAY_STATE_HINT_ID_2, - resource_values2, sizeof(resource_values2)/sizeof(resource_values2[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID_2, resource_values2, + sizeof(resource_values2) / sizeof(resource_values2[0])); display_hint2_sent = 0; } if ((strncmp(governor, ONDEMAND_GOVERNOR, strlen(ONDEMAND_GOVERNOR)) == 0) && - (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { + (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { undo_hint_action(DISPLAY_STATE_HINT_ID); display_hint_sent = 0; diff --git a/power-8226.c b/power-8226.c index a5961a2..8c3a445 100644 --- a/power-8226.c +++ b/power-8226.c @@ -28,36 +28,34 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; -int power_hint_override(power_hint_t hint, void *data) -{ - switch(hint) { - case POWER_HINT_INTERACTION: - { +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { + case POWER_HINT_INTERACTION: { int resources[] = {0x702, 0x20B, 0x30B}; int duration = 3000; - interaction(duration, sizeof(resources)/sizeof(resources[0]), resources); + interaction(duration, sizeof(resources) / sizeof(resources[0]), resources); return HINT_HANDLED; } } diff --git a/power-845.c b/power-845.c index 98fec8b..621a882 100644 --- a/power-845.c +++ b/power-845.c @@ -27,57 +27,56 @@ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_fd; #define SYS_DISPLAY_PWR "/sys/kernel/hbtp/display_pwr" -#define CHECK_HANDLE(x) ((x)>0) -#define NUM_PERF_MODES 3 +#define CHECK_HANDLE(x) ((x) > 0) +#define NUM_PERF_MODES 3 typedef enum { - NORMAL_MODE = 0, - SUSTAINED_MODE = 1, - VR_MODE = 2, - VR_SUSTAINED_MODE = (SUSTAINED_MODE|VR_MODE), - INVALID_MODE = 0xFF -}perf_mode_type_t; + NORMAL_MODE = 0, + SUSTAINED_MODE = 1, + VR_MODE = 2, + VR_SUSTAINED_MODE = (SUSTAINED_MODE | VR_MODE), + INVALID_MODE = 0xFF +} perf_mode_type_t; typedef struct perf_mode { perf_mode_type_t type; int perf_hint_id; -}perf_mode_t; +} perf_mode_t; -perf_mode_t perf_modes[NUM_PERF_MODES] = { { SUSTAINED_MODE, SUSTAINED_PERF_HINT }, - { VR_MODE, VR_MODE_HINT }, - { VR_SUSTAINED_MODE, VR_MODE_SUSTAINED_PERF_HINT } }; +perf_mode_t perf_modes[NUM_PERF_MODES] = {{SUSTAINED_MODE, SUSTAINED_PERF_HINT}, + {VR_MODE, VR_MODE_HINT}, + {VR_SUSTAINED_MODE, VR_MODE_SUSTAINED_PERF_HINT}}; static int current_mode = NORMAL_MODE; -static inline int get_perfd_hint_id(perf_mode_type_t type) { +static inline int get_perfd_hint_id(perf_mode_type_t type) { int i; - for(i=0; i<NUM_PERF_MODES; i++) { + for (i = 0; i < NUM_PERF_MODES; i++) { if (perf_modes[i].type == type) { ALOGD("Hint id is 0x%x for mode 0x%x", perf_modes[i].perf_hint_id, type); return perf_modes[i].perf_hint_id; @@ -88,7 +87,6 @@ static inline int get_perfd_hint_id(perf_mode_type_t type) { } static int switch_mode(perf_mode_type_t mode) { - int hint_id = 0; static int perfd_mode_handle = -1; @@ -100,7 +98,7 @@ static int switch_mode(perf_mode_type_t mode) { } // switch to a perf mode hint_id = get_perfd_hint_id(mode); - if(hint_id != 0) { + if (hint_id != 0) { perfd_mode_handle = perf_hint_enable(hint_id, 0); if (!CHECK_HANDLE(perfd_mode_handle)) { ALOGE("Failed perf_hint_interaction for mode: 0x%x", mode); @@ -111,33 +109,32 @@ static int switch_mode(perf_mode_type_t mode) { return 0; } -static int process_perf_hint(void *data, perf_mode_type_t mode) { - +static int process_perf_hint(void* data, perf_mode_type_t mode) { // enable - if (data){ + if (data) { ALOGI("Enable request for mode: 0x%x", mode); // check if mode is current mode - if ( current_mode & mode ) { + if (current_mode & mode) { ALOGD("Mode 0x%x already enabled", mode); return HINT_HANDLED; } // enable requested mode - if ( 0 != switch_mode(current_mode | mode)) { + if (0 != switch_mode(current_mode | mode)) { ALOGE("Couldn't enable mode 0x%x", mode); return HINT_NONE; } current_mode |= mode; ALOGI("Current mode is 0x%x", current_mode); - // disable + // disable } else { ALOGI("Disable request for mode: 0x%x", mode); // check if mode is enabled - if ( !(current_mode & mode) ) { + if (!(current_mode & mode)) { ALOGD("Mode 0x%x already disabled", mode); return HINT_HANDLED; } - //disable requested mode - if ( 0 != switch_mode(current_mode & ~mode)) { + // disable requested mode + if (0 != switch_mode(current_mode & ~mode)) { ALOGE("Couldn't disable mode 0x%x", mode); return HINT_NONE; } @@ -148,14 +145,12 @@ static int process_perf_hint(void *data, perf_mode_type_t mode) { return HINT_HANDLED; } -static int process_video_encode_hint(void *metadata) -{ +static int process_video_encode_hint(void* metadata) { char governor[80]; struct video_encode_metadata_t video_encode_metadata; static int video_encode_handle = 0; - if(!metadata) - return HINT_NONE; + if (!metadata) return HINT_NONE; if (get_scaling_governor(governor, sizeof(governor)) == -1) { ALOGE("Can't obtain scaling governor."); @@ -167,21 +162,19 @@ static int process_video_encode_hint(void *metadata) memset(&video_encode_metadata, 0, sizeof(struct video_encode_metadata_t)); video_encode_metadata.state = -1; - if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == - -1) { - ALOGE("Error occurred while parsing metadata."); - return HINT_NONE; + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { + ALOGE("Error occurred while parsing metadata."); + return HINT_NONE; } if (video_encode_metadata.state == 1) { - if (is_interactive_governor(governor)) { - video_encode_handle = perf_hint_enable( - VIDEO_ENCODE_HINT, 0); - ALOGI("Video encode hint start"); - return HINT_HANDLED; + if (is_interactive_governor(governor)) { + video_encode_handle = perf_hint_enable(VIDEO_ENCODE_HINT, 0); + ALOGI("Video encode hint start"); + return HINT_HANDLED; } } else if (video_encode_metadata.state == 0) { - if (is_interactive_governor(governor)) { + if (is_interactive_governor(governor)) { release_request(video_encode_handle); ALOGI("Video Encode hint stop"); return HINT_HANDLED; @@ -193,10 +186,9 @@ static int process_video_encode_hint(void *metadata) /* Declare function before use */ void interaction(int duration, int num_args, int opt_list[]); -int power_hint_override(power_hint_t hint, void *data) -{ +int power_hint_override(power_hint_t hint, void* data) { int ret_val = HINT_NONE; - switch(hint) { + switch (hint) { case POWER_HINT_VIDEO_ENCODE: ret_val = process_video_encode_hint(data); break; @@ -206,60 +198,52 @@ int power_hint_override(power_hint_t hint, void *data) case POWER_HINT_VR_MODE: ret_val = process_perf_hint(data, VR_MODE); break; - case POWER_HINT_INTERACTION: - { + case POWER_HINT_INTERACTION: { int resources[] = {0x40800100, 0x514}; int duration = 100; - interaction(duration, sizeof(resources)/sizeof(resources[0]), resources); + interaction(duration, sizeof(resources) / sizeof(resources[0]), resources); ret_val = HINT_HANDLED; - } - break; + } break; default: break; } return ret_val; } -int set_interactive_override(int on) -{ - static const char *display_on = "1"; - static const char *display_off = "0"; +int set_interactive_override(int on) { + static const char* display_on = "1"; + static const char* display_off = "0"; char err_buf[80]; static int init_interactive_hint = 0; static int set_i_count = 0; int rc = 0; - set_i_count ++; + set_i_count++; ALOGI("Got set_interactive hint on= %d, count= %d\n", on, set_i_count); - if (init_interactive_hint == 0) - { - //First time the display is turned off + if (init_interactive_hint == 0) { + // First time the display is turned off display_fd = TEMP_FAILURE_RETRY(open(SYS_DISPLAY_PWR, O_RDWR)); if (display_fd < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); + strerror_r(errno, err_buf, sizeof(err_buf)); ALOGE("Error opening %s: %s\n", SYS_DISPLAY_PWR, err_buf); - } - else + } else init_interactive_hint = 1; - } - else - if (!on ) { - /* Display off. */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); - } + } else if (!on) { + /* Display off. */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); } - else { - /* Display on */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); - } + } else { + /* Display on */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); } + } return HINT_HANDLED; /* Don't excecute this code path, not in use */ } diff --git a/power-8610.c b/power-8610.c index a5961a2..8c3a445 100644 --- a/power-8610.c +++ b/power-8610.c @@ -28,36 +28,34 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; -int power_hint_override(power_hint_t hint, void *data) -{ - switch(hint) { - case POWER_HINT_INTERACTION: - { +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { + case POWER_HINT_INTERACTION: { int resources[] = {0x702, 0x20B, 0x30B}; int duration = 3000; - interaction(duration, sizeof(resources)/sizeof(resources[0]), resources); + interaction(duration, sizeof(resources) / sizeof(resources[0]), resources); return HINT_HANDLED; } } diff --git a/power-8909.c b/power-8909.c index 5f07841..219117c 100644 --- a/power-8909.c +++ b/power-8909.c @@ -28,28 +28,26 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" - -static void process_video_encode_hint(void *metadata) -{ +static void process_video_encode_hint(void* metadata) { char governor[80]; struct video_encode_metadata_t video_encode_metadata; char tmp_str[NODE_MAX]; @@ -66,8 +64,7 @@ static void process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == - -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return; } @@ -77,31 +74,26 @@ static void process_video_encode_hint(void *metadata) if (video_encode_metadata.state == 1) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { int resource_values[] = {HS_FREQ_800, THREAD_MIGRATION_SYNC_OFF}; - perform_hint_action(video_encode_metadata.hint_id, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); } } else if (video_encode_metadata.state == 0) { - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - undo_hint_action(video_encode_metadata.hint_id); + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + undo_hint_action(video_encode_metadata.hint_id); } } } -int power_hint_override(power_hint_t hint, void *data) -{ - switch(hint) { - case POWER_HINT_VIDEO_ENCODE: - { - process_video_encode_hint(data); - return HINT_HANDLED; - } - default: - { - break; +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { + case POWER_HINT_VIDEO_ENCODE: { + process_video_encode_hint(data); + return HINT_HANDLED; } + default: { break; } } return HINT_NONE; } diff --git a/power-8916.c b/power-8916.c index 6181a27..a685c40 100644 --- a/power-8916.c +++ b/power-8916.c @@ -29,34 +29,32 @@ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" #define MIN_FREQ_CPU0_DISP_OFF 400000 -#define MIN_FREQ_CPU0_DISP_ON 960000 +#define MIN_FREQ_CPU0_DISP_ON 960000 -char scaling_min_freq[4][80] ={ - "sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq", - "sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq", - "sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq", - "sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq" -}; +char scaling_min_freq[4][80] = {"sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq", + "sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq", + "sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq", + "sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq"}; static int saved_dcvs_cpu0_slack_max = -1; static int saved_dcvs_cpu0_slack_min = -1; @@ -70,7 +68,7 @@ int display_boost; static int is_target_8916() /* Returns value=8916 if target is 8916 else value 0 */ { int fd; - int is_target_8916=0; + int is_target_8916 = 0; char buf[10] = {0}; fd = open("/sys/devices/soc0/soc_id", O_RDONLY); @@ -80,8 +78,8 @@ static int is_target_8916() /* Returns value=8916 if target is 8916 else value 0 is_target_8916 = 0; } else { int soc_id = atoi(buf); - if (soc_id == 206 || (soc_id >= 247 && soc_id <= 250)) { - is_target_8916 = 8916; /* Above SOCID for 8916 */ + if (soc_id == 206 || (soc_id >= 247 && soc_id <= 250)) { + is_target_8916 = 8916; /* Above SOCID for 8916 */ } } } @@ -89,18 +87,15 @@ static int is_target_8916() /* Returns value=8916 if target is 8916 else value 0 return is_target_8916; } -int power_hint_override(power_hint_t hint, void *data) -{ - - switch(hint) { +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { case POWER_HINT_VSYNC: - break; - case POWER_HINT_INTERACTION: - { + break; + case POWER_HINT_INTERACTION: { int resources[] = {0x702, 0x20F, 0x30F}; int duration = 3000; - interaction(duration, sizeof(resources)/sizeof(resources[0]), resources); + interaction(duration, sizeof(resources) / sizeof(resources[0]), resources); } return HINT_HANDLED; case POWER_HINT_VIDEO_ENCODE: /* Do nothing for encode case */ @@ -110,21 +105,20 @@ int power_hint_override(power_hint_t hint, void *data) default: return HINT_HANDLED; } -return HINT_NONE; + return HINT_NONE; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; char tmp_str[NODE_MAX]; struct video_encode_metadata_t video_encode_metadata; int rc; ALOGI("Got set_interactive hint"); - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU3) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { ALOGE("Can't obtain scaling governor."); return HINT_HANDLED; } @@ -134,96 +128,87 @@ int set_interactive_override(int on) if (!on) { /* Display off. */ - switch(is_target_8916()) { - - case 8916: - { - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - int resource_values[] = {TR_MS_50, THREAD_MIGRATION_SYNC_OFF}; - - if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); - display_hint_sent = 1; - } - } /* Perf time rate set for 8916 target*/ - } /* End of Switch case for 8916 */ - break ; - - default: - { - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - int resource_values[] = {TR_MS_CPU0_50,TR_MS_CPU4_50, THREAD_MIGRATION_SYNC_OFF}; - - /* Set CPU0 MIN FREQ to 400Mhz avoid extra peak power - impact in volume key press */ - snprintf(tmp_str, NODE_MAX, "%d", MIN_FREQ_CPU0_DISP_OFF); - if (sysfs_write(scaling_min_freq[0], tmp_str) != 0) { - if (sysfs_write(scaling_min_freq[1], tmp_str) != 0) { - if (sysfs_write(scaling_min_freq[2], tmp_str) != 0) { - if (sysfs_write(scaling_min_freq[3], tmp_str) != 0) { - if(!slack_node_rw_failed) { - ALOGE("Failed to write to %s",SCALING_MIN_FREQ ); - } - rc = 1; - } - } - } - } - - if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); - display_hint_sent = 1; - } - } /* Perf time rate set for CORE0,CORE4 8939 target*/ - }/* End of Switch case for 8939 */ - break ; - } + switch (is_target_8916()) { + case 8916: { + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + int resource_values[] = {TR_MS_50, THREAD_MIGRATION_SYNC_OFF}; + + if (!display_hint_sent) { + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); + display_hint_sent = 1; + } + } /* Perf time rate set for 8916 target*/ + } /* End of Switch case for 8916 */ + break; + + default: { + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + int resource_values[] = {TR_MS_CPU0_50, TR_MS_CPU4_50, + THREAD_MIGRATION_SYNC_OFF}; + + /* Set CPU0 MIN FREQ to 400Mhz avoid extra peak power + impact in volume key press */ + snprintf(tmp_str, NODE_MAX, "%d", MIN_FREQ_CPU0_DISP_OFF); + if (sysfs_write(scaling_min_freq[0], tmp_str) != 0) { + if (sysfs_write(scaling_min_freq[1], tmp_str) != 0) { + if (sysfs_write(scaling_min_freq[2], tmp_str) != 0) { + if (sysfs_write(scaling_min_freq[3], tmp_str) != 0) { + if (!slack_node_rw_failed) { + ALOGE("Failed to write to %s", SCALING_MIN_FREQ); + } + rc = 1; + } + } + } + } + + if (!display_hint_sent) { + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); + display_hint_sent = 1; + } + } /* Perf time rate set for CORE0,CORE4 8939 target*/ + } /* End of Switch case for 8939 */ + break; + } } else { /* Display on. */ - switch(is_target_8916()){ - case 8916: - { - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - undo_hint_action(DISPLAY_STATE_HINT_ID); - display_hint_sent = 0; - } - } - break ; - default : - { - - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - - /* Recovering MIN_FREQ in display ON case */ - snprintf(tmp_str, NODE_MAX, "%d", MIN_FREQ_CPU0_DISP_ON); - if (sysfs_write(scaling_min_freq[0], tmp_str) != 0) { - if (sysfs_write(scaling_min_freq[1], tmp_str) != 0) { - if (sysfs_write(scaling_min_freq[2], tmp_str) != 0) { - if (sysfs_write(scaling_min_freq[3], tmp_str) != 0) { - if(!slack_node_rw_failed) { - ALOGE("Failed to write to %s",SCALING_MIN_FREQ ); - } - rc = 1; - } - } - } + switch (is_target_8916()) { + case 8916: { + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + undo_hint_action(DISPLAY_STATE_HINT_ID); + display_hint_sent = 0; + } + } break; + default: { + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + /* Recovering MIN_FREQ in display ON case */ + snprintf(tmp_str, NODE_MAX, "%d", MIN_FREQ_CPU0_DISP_ON); + if (sysfs_write(scaling_min_freq[0], tmp_str) != 0) { + if (sysfs_write(scaling_min_freq[1], tmp_str) != 0) { + if (sysfs_write(scaling_min_freq[2], tmp_str) != 0) { + if (sysfs_write(scaling_min_freq[3], tmp_str) != 0) { + if (!slack_node_rw_failed) { + ALOGE("Failed to write to %s", SCALING_MIN_FREQ); + } + rc = 1; + } + } + } + } + undo_hint_action(DISPLAY_STATE_HINT_ID); + display_hint_sent = 0; } - undo_hint_action(DISPLAY_STATE_HINT_ID); - display_hint_sent = 0; - } - } - break ; - } /* End of check condition during the DISPLAY ON case */ - } + } break; + } /* End of check condition during the DISPLAY ON case */ + } saved_interactive_mode = !!on; return HINT_HANDLED; } - diff --git a/power-8952.c b/power-8952.c index ec23dd3..9ae1292 100644 --- a/power-8952.c +++ b/power-8952.c @@ -29,33 +29,33 @@ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" -#define MIN_VAL(X,Y) ((X>Y)?(Y):(X)) +#define MIN_VAL(X, Y) ((X > Y) ? (Y) : (X)) static int saved_interactive_mode = -1; static int display_hint_sent; static int video_encode_hint_sent; static int camera_hint_ref_count; -static void process_video_encode_hint(void *metadata); +static void process_video_encode_hint(void* metadata); static int display_fd; #define SYS_DISPLAY_PWR "/sys/kernel/hbtp/display_pwr" @@ -80,14 +80,11 @@ static bool is_target_SDM439() /* Returns value=1 if target is Hathi else value return is_target_SDM439; } -int power_hint_override(power_hint_t hint, void *data) -{ - - switch(hint) { +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { case POWER_HINT_VSYNC: break; - case POWER_HINT_VIDEO_ENCODE: - { + case POWER_HINT_VIDEO_ENCODE: { process_video_encode_hint(data); return HINT_HANDLED; } @@ -95,25 +92,24 @@ int power_hint_override(power_hint_t hint, void *data) return HINT_NONE; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; char tmp_str[NODE_MAX]; struct video_encode_metadata_t video_encode_metadata; int rc = 0; - static const char *display_on = "1"; - static const char *display_off = "0"; + static const char* display_on = "1"; + static const char* display_off = "0"; char err_buf[80]; static int init_interactive_hint = 0; static int set_i_count = 0; ALOGI("Got set_interactive hint"); - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU3) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { ALOGE("Can't obtain scaling governor."); return HINT_HANDLED; } @@ -123,69 +119,62 @@ int set_interactive_override(int on) if (!on) { /* Display off. */ - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - int resource_values[] = {INT_OP_CLUSTER0_TIMER_RATE, BIG_LITTLE_TR_MS_50, - INT_OP_CLUSTER1_TIMER_RATE, BIG_LITTLE_TR_MS_50, - INT_OP_NOTIFY_ON_MIGRATE, 0x00}; + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + int resource_values[] = {INT_OP_CLUSTER0_TIMER_RATE, BIG_LITTLE_TR_MS_50, + INT_OP_CLUSTER1_TIMER_RATE, BIG_LITTLE_TR_MS_50, + INT_OP_NOTIFY_ON_MIGRATE, 0x00}; - if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); - display_hint_sent = 1; - } - } /* Perf time rate set for CORE0,CORE4 8952 target*/ + if (!display_hint_sent) { + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); + display_hint_sent = 1; + } + } /* Perf time rate set for CORE0,CORE4 8952 target*/ } else { /* Display on. */ - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - - undo_hint_action(DISPLAY_STATE_HINT_ID); - display_hint_sent = 0; - } - } + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + undo_hint_action(DISPLAY_STATE_HINT_ID); + display_hint_sent = 0; + } + } saved_interactive_mode = !!on; - set_i_count ++; + set_i_count++; ALOGI("Got set_interactive hint on= %d, count= %d\n", on, set_i_count); - if (init_interactive_hint == 0) - { - //First time the display is turned off + if (init_interactive_hint == 0) { + // First time the display is turned off display_fd = TEMP_FAILURE_RETRY(open(SYS_DISPLAY_PWR, O_RDWR)); if (display_fd < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); + strerror_r(errno, err_buf, sizeof(err_buf)); ALOGE("Error opening %s: %s\n", SYS_DISPLAY_PWR, err_buf); return HINT_HANDLED; - } - else + } else init_interactive_hint = 1; - } - else - if (!on ) { - /* Display off. */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); - } + } else if (!on) { + /* Display off. */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); } - else { - /* Display on */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); - } + } else { + /* Display on */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); } + } return HINT_HANDLED; } /* Video Encode Hint */ -static void process_video_encode_hint(void *metadata) -{ +static void process_video_encode_hint(void* metadata) { char governor[80] = {0}; int resource_values[20] = {0}; int num_resources = 0; @@ -193,19 +182,15 @@ static void process_video_encode_hint(void *metadata) ALOGI("Got process_video_encode_hint"); - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU3) == -1) { - ALOGE("Can't obtain scaling governor."); - return; - } - } + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { + ALOGE("Can't obtain scaling governor."); + return; + } } + } } /* Initialize encode metadata struct fields. */ @@ -214,8 +199,7 @@ static void process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, - &video_encode_metadata) == -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return; } @@ -224,93 +208,77 @@ static void process_video_encode_hint(void *metadata) } if (video_encode_metadata.state == 1) { - if((strncmp(governor, SCHEDUTIL_GOVERNOR, - strlen(SCHEDUTIL_GOVERNOR)) == 0) && + if ((strncmp(governor, SCHEDUTIL_GOVERNOR, strlen(SCHEDUTIL_GOVERNOR)) == 0) && (strlen(governor) == strlen(SCHEDUTIL_GOVERNOR))) { - if(is_target_SDM439()) { + if (is_target_SDM439()) { /* sample_ms = 10mS - * SLB for Core0 = -6 - * SLB for Core1 = -6 - * SLB for Core2 = -6 - * SLB for Core3 = -6 - * hispeed load = 95 - * hispeed freq = 998Mhz */ - int res[] = {0x41820000, 0xa, - 0x40c68100, 0xfffffffa, - 0x40c68110, 0xfffffffa, - 0x40c68120, 0xfffffffa, - 0x40c68130, 0xfffffffa, - 0x41440100, 0x5f, - 0x4143c100, 0x3e6, - }; + * SLB for Core0 = -6 + * SLB for Core1 = -6 + * SLB for Core2 = -6 + * SLB for Core3 = -6 + * hispeed load = 95 + * hispeed freq = 998Mhz */ + int res[] = { + 0x41820000, 0xa, 0x40c68100, 0xfffffffa, 0x40c68110, + 0xfffffffa, 0x40c68120, 0xfffffffa, 0x40c68130, 0xfffffffa, + 0x41440100, 0x5f, 0x4143c100, 0x3e6, + }; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); camera_hint_ref_count++; if (camera_hint_ref_count == 1) { if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + num_resources); video_encode_hint_sent = 1; } } - } - else { + } else { /* sample_ms = 10mS */ - int res[] = {0x41820000, 0xa, - }; + int res[] = { + 0x41820000, + 0xa, + }; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); camera_hint_ref_count++; if (camera_hint_ref_count == 1) { if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + num_resources); video_encode_hint_sent = 1; } } } - } - else if ((strncmp(governor, INTERACTIVE_GOVERNOR, - strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - /* Sched_load and migration_notif*/ - int res[] = {INT_OP_CLUSTER0_USE_SCHED_LOAD, - 0x1, - INT_OP_CLUSTER1_USE_SCHED_LOAD, - 0x1, - INT_OP_CLUSTER0_USE_MIGRATION_NOTIF, - 0x1, - INT_OP_CLUSTER1_USE_MIGRATION_NOTIF, - 0x1, - INT_OP_CLUSTER0_TIMER_RATE, - BIG_LITTLE_TR_MS_40, - INT_OP_CLUSTER1_TIMER_RATE, - BIG_LITTLE_TR_MS_40 - }; + } else if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + /* Sched_load and migration_notif*/ + int res[] = {INT_OP_CLUSTER0_USE_SCHED_LOAD, 0x1, + INT_OP_CLUSTER1_USE_SCHED_LOAD, 0x1, + INT_OP_CLUSTER0_USE_MIGRATION_NOTIF, 0x1, + INT_OP_CLUSTER1_USE_MIGRATION_NOTIF, 0x1, + INT_OP_CLUSTER0_TIMER_RATE, BIG_LITTLE_TR_MS_40, + INT_OP_CLUSTER1_TIMER_RATE, BIG_LITTLE_TR_MS_40}; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); camera_hint_ref_count++; if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values,num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, num_resources); video_encode_hint_sent = 1; } } } else if (video_encode_metadata.state == 0) { - if (((strncmp(governor, INTERACTIVE_GOVERNOR, - strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) || - ((strncmp(governor, SCHEDUTIL_GOVERNOR, - strlen(SCHEDUTIL_GOVERNOR)) == 0) && - (strlen(governor) == strlen(SCHEDUTIL_GOVERNOR)))) { + if (((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) || + ((strncmp(governor, SCHEDUTIL_GOVERNOR, strlen(SCHEDUTIL_GOVERNOR)) == 0) && + (strlen(governor) == strlen(SCHEDUTIL_GOVERNOR)))) { camera_hint_ref_count--; if (!camera_hint_ref_count) { undo_hint_action(video_encode_metadata.hint_id); video_encode_hint_sent = 0; } - return ; + return; } } return; } - diff --git a/power-8953.c b/power-8953.c index 5e98089..1ecd119 100644 --- a/power-8953.c +++ b/power-8953.c @@ -29,27 +29,27 @@ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" -#define MIN_VAL(X,Y) ((X>Y)?(Y):(X)) +#define MIN_VAL(X, Y) ((X > Y) ? (Y) : (X)) static int saved_interactive_mode = -1; static int display_hint_sent; @@ -57,8 +57,8 @@ static int video_encode_hint_sent; static int cam_preview_hint_sent; static int camera_hint_ref_count; -static void process_video_encode_hint(void *metadata); -//static void process_cam_preview_hint(void *metadata); +static void process_video_encode_hint(void* metadata); +// static void process_cam_preview_hint(void *metadata); static int display_fd; #define SYS_DISPLAY_PWR "/sys/kernel/hbtp/display_pwr" @@ -84,14 +84,11 @@ static bool is_target_SDM632() /* Returns value=632 if target is SDM632 else val return is_target_SDM632; } -int power_hint_override(power_hint_t hint, void *data) -{ - - switch(hint) { +int power_hint_override(power_hint_t hint, void* data) { + switch (hint) { case POWER_HINT_VSYNC: break; - case POWER_HINT_VIDEO_ENCODE: - { + case POWER_HINT_VIDEO_ENCODE: { process_video_encode_hint(data); return HINT_HANDLED; } @@ -99,25 +96,24 @@ int power_hint_override(power_hint_t hint, void *data) return HINT_NONE; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; char tmp_str[NODE_MAX]; struct video_encode_metadata_t video_encode_metadata; int rc = 0; - static const char *display_on = "1"; - static const char *display_off = "0"; + static const char* display_on = "1"; + static const char* display_off = "0"; char err_buf[80]; static int init_interactive_hint = 0; static int set_i_count = 0; ALOGI("Got set_interactive hint"); - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, sizeof(governor),CPU3) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { ALOGE("Can't obtain scaling governor."); return HINT_HANDLED; } @@ -127,69 +123,63 @@ int set_interactive_override(int on) if (!on) { /* Display off. */ - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { /* timer rate - 40mS*/ - int resource_values[] = {0x41424000, 0x28, - }; - if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); - display_hint_sent = 1; - } - } /* Perf time rate set for CORE0,CORE4 8952 target*/ + int resource_values[] = { + 0x41424000, + 0x28, + }; + if (!display_hint_sent) { + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); + display_hint_sent = 1; + } + } /* Perf time rate set for CORE0,CORE4 8952 target*/ } else { /* Display on. */ - if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { - - undo_hint_action(DISPLAY_STATE_HINT_ID); - display_hint_sent = 0; - } - } + if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + undo_hint_action(DISPLAY_STATE_HINT_ID); + display_hint_sent = 0; + } + } saved_interactive_mode = !!on; - set_i_count ++; + set_i_count++; ALOGI("Got set_interactive hint on= %d, count= %d\n", on, set_i_count); - if (init_interactive_hint == 0) - { - //First time the display is turned off + if (init_interactive_hint == 0) { + // First time the display is turned off display_fd = TEMP_FAILURE_RETRY(open(SYS_DISPLAY_PWR, O_RDWR)); if (display_fd < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); + strerror_r(errno, err_buf, sizeof(err_buf)); ALOGE("Error opening %s: %s\n", SYS_DISPLAY_PWR, err_buf); return HINT_HANDLED; - } - else + } else init_interactive_hint = 1; - } - else - if (!on ) { - /* Display off. */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); - } + } else if (!on) { + /* Display off. */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); } - else { - /* Display on */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); - } + } else { + /* Display on */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); } + } return HINT_HANDLED; } - /* Video Encode Hint */ -static void process_video_encode_hint(void *metadata) -{ +static void process_video_encode_hint(void* metadata) { char governor[80] = {0}; int resource_values[20] = {0}; int num_resources = 0; @@ -197,19 +187,15 @@ static void process_video_encode_hint(void *metadata) ALOGI("Got process_video_encode_hint"); - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU0) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU1) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU2) == -1) { - if (get_scaling_governor_check_cores(governor, - sizeof(governor),CPU3) == -1) { - ALOGE("Can't obtain scaling governor."); - // return HINT_HANDLED; - } - } + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU0) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU1) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU2) == -1) { + if (get_scaling_governor_check_cores(governor, sizeof(governor), CPU3) == -1) { + ALOGE("Can't obtain scaling governor."); + // return HINT_HANDLED; + } } + } } /* Initialize encode metadata struct fields. */ @@ -218,8 +204,7 @@ static void process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, - &video_encode_metadata) == -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return; } @@ -228,88 +213,78 @@ static void process_video_encode_hint(void *metadata) } if (video_encode_metadata.state == 1) { - if((strncmp(governor, SCHEDUTIL_GOVERNOR, - strlen(SCHEDUTIL_GOVERNOR)) == 0) && + if ((strncmp(governor, SCHEDUTIL_GOVERNOR, strlen(SCHEDUTIL_GOVERNOR)) == 0) && (strlen(governor) == strlen(SCHEDUTIL_GOVERNOR))) { - if(is_target_SDM632()) { + if (is_target_SDM632()) { /* sample_ms = 10mS - * SLB for Core0 = -6 - * SLB for Core1 = -6 - * SLB for Core2 = -6 - * SLB for Core3 = -6 - * hispeed load = 95 - * hispeed freq = 1036 */ - int res[] = {0x41820000, 0xa, - 0x40c68100, 0xfffffffa, - 0x40c68110, 0xfffffffa, - 0x40c68120, 0xfffffffa, - 0x40c68130, 0xfffffffa, - 0x41440100, 0x5f, - 0x4143c100, 0x40c, - }; + * SLB for Core0 = -6 + * SLB for Core1 = -6 + * SLB for Core2 = -6 + * SLB for Core3 = -6 + * hispeed load = 95 + * hispeed freq = 1036 */ + int res[] = { + 0x41820000, 0xa, 0x40c68100, 0xfffffffa, 0x40c68110, + 0xfffffffa, 0x40c68120, 0xfffffffa, 0x40c68130, 0xfffffffa, + 0x41440100, 0x5f, 0x4143c100, 0x40c, + }; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); camera_hint_ref_count++; if (camera_hint_ref_count == 1) { if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + num_resources); video_encode_hint_sent = 1; } } - } - else { + } else { /* sample_ms = 10mS */ - int res[] = {0x41820000, 0xa, - }; + int res[] = { + 0x41820000, + 0xa, + }; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); camera_hint_ref_count++; if (camera_hint_ref_count == 1) { if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + num_resources); video_encode_hint_sent = 1; } } } - } - else if ((strncmp(governor, INTERACTIVE_GOVERNOR, - strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + } else if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { /* Sched_load and migration_notification disable - * timer rate - 40mS*/ - int res[] = {0x41430000, 0x1, - 0x41434000, 0x1, - 0x41424000, 0x28, - }; + * timer rate - 40mS*/ + int res[] = { + 0x41430000, 0x1, 0x41434000, 0x1, 0x41424000, 0x28, + }; memcpy(resource_values, res, MIN_VAL(sizeof(resource_values), sizeof(res))); - num_resources = sizeof(res)/sizeof(res[0]); + num_resources = sizeof(res) / sizeof(res[0]); camera_hint_ref_count++; if (camera_hint_ref_count == 1) { if (!video_encode_hint_sent) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, num_resources); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + num_resources); video_encode_hint_sent = 1; } - } + } } } else if (video_encode_metadata.state == 0) { - if (((strncmp(governor, INTERACTIVE_GOVERNOR, - strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) || - ((strncmp(governor, SCHEDUTIL_GOVERNOR, - strlen(SCHEDUTIL_GOVERNOR)) == 0) && - (strlen(governor) == strlen(SCHEDUTIL_GOVERNOR)))) { + if (((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) || + ((strncmp(governor, SCHEDUTIL_GOVERNOR, strlen(SCHEDUTIL_GOVERNOR)) == 0) && + (strlen(governor) == strlen(SCHEDUTIL_GOVERNOR)))) { camera_hint_ref_count--; if (!camera_hint_ref_count) { undo_hint_action(video_encode_metadata.hint_id); video_encode_hint_sent = 0; } - return ; + return; } } return; } - - diff --git a/power-8974.c b/power-8974.c index 152081a..9aa560b 100644 --- a/power-8974.c +++ b/power-8974.c @@ -28,32 +28,31 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; static int display_hint2_sent; static int first_display_off_hint; extern int display_boost; -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; if (get_scaling_governor(governor, sizeof(governor)) == -1) { @@ -81,12 +80,13 @@ int set_interactive_override(int on) } if ((strncmp(governor, ONDEMAND_GOVERNOR, strlen(ONDEMAND_GOVERNOR)) == 0) && - (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { - int resource_values[] = {MS_500, SYNC_FREQ_600, OPTIMAL_FREQ_600, THREAD_MIGRATION_SYNC_OFF}; + (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { + int resource_values[] = {MS_500, SYNC_FREQ_600, OPTIMAL_FREQ_600, + THREAD_MIGRATION_SYNC_OFF}; if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); display_hint_sent = 1; } @@ -96,13 +96,13 @@ int set_interactive_override(int on) /* Display on */ if (display_boost && display_hint2_sent) { int resource_values2[] = {CPUS_ONLINE_MIN_2}; - perform_hint_action(DISPLAY_STATE_HINT_ID_2, - resource_values2, sizeof(resource_values2)/sizeof(resource_values2[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID_2, resource_values2, + sizeof(resource_values2) / sizeof(resource_values2[0])); display_hint2_sent = 0; } if ((strncmp(governor, ONDEMAND_GOVERNOR, strlen(ONDEMAND_GOVERNOR)) == 0) && - (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { + (strlen(governor) == strlen(ONDEMAND_GOVERNOR))) { undo_hint_action(DISPLAY_STATE_HINT_ID); display_hint_sent = 0; diff --git a/power-8992.c b/power-8992.c index 4fe15a4..3a6c5d4 100644 --- a/power-8992.c +++ b/power-8992.c @@ -28,29 +28,28 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; -static int process_video_encode_hint(void *metadata) -{ +static int process_video_encode_hint(void* metadata) { char governor[80]; struct video_encode_metadata_t video_encode_metadata; @@ -66,8 +65,7 @@ static int process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == - -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return HINT_NONE; } @@ -77,7 +75,7 @@ static int process_video_encode_hint(void *metadata) if (video_encode_metadata.state == 1) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { /* sched and cpufreq params * hispeed freq - 768 MHz * target load - 90 @@ -86,13 +84,13 @@ static int process_video_encode_hint(void *metadata) */ int resource_values[] = {0x2C07, 0x2F5A, 0x2704, 0x4032}; - perform_hint_action(video_encode_metadata.hint_id, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); return HINT_HANDLED; } } else if (video_encode_metadata.state == 0) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { undo_hint_action(video_encode_metadata.hint_id); return HINT_HANDLED; } @@ -100,10 +98,9 @@ static int process_video_encode_hint(void *metadata) return HINT_NONE; } -int power_hint_override(power_hint_t hint, void *data) -{ +int power_hint_override(power_hint_t hint, void* data) { int ret_val = HINT_NONE; - switch(hint) { + switch (hint) { case POWER_HINT_VIDEO_ENCODE: ret_val = process_video_encode_hint(data); break; @@ -113,8 +110,7 @@ int power_hint_override(power_hint_t hint, void *data) return ret_val; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; if (get_scaling_governor(governor, sizeof(governor)) == -1) { @@ -129,8 +125,8 @@ int set_interactive_override(int on) (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { int resource_values[] = {0x777}; /* 4+0 core config in display off */ if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); display_hint_sent = 1; return HINT_HANDLED; } diff --git a/power-8994.c b/power-8994.c index 07ed174..7ad7d17 100644 --- a/power-8994.c +++ b/power-8994.c @@ -28,29 +28,28 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; -static int process_video_encode_hint(void *metadata) -{ +static int process_video_encode_hint(void* metadata) { char governor[80]; struct video_encode_metadata_t video_encode_metadata; @@ -66,8 +65,7 @@ static int process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == - -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return HINT_NONE; } @@ -77,7 +75,7 @@ static int process_video_encode_hint(void *metadata) if (video_encode_metadata.state == 1) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { /* sched and cpufreq params * hispeed freq - 768 MHz * target load - 90 @@ -86,13 +84,13 @@ static int process_video_encode_hint(void *metadata) */ int resource_values[] = {0x2C07, 0x2F5A, 0x2704, 0x4032}; - perform_hint_action(video_encode_metadata.hint_id, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); return HINT_HANDLED; } } else if (video_encode_metadata.state == 0) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { undo_hint_action(video_encode_metadata.hint_id); return HINT_HANDLED; } @@ -100,10 +98,9 @@ static int process_video_encode_hint(void *metadata) return HINT_NONE; } -int power_hint_override(power_hint_t hint, void *data) -{ +int power_hint_override(power_hint_t hint, void* data) { int ret_val = HINT_NONE; - switch(hint) { + switch (hint) { case POWER_HINT_VIDEO_ENCODE: ret_val = process_video_encode_hint(data); break; @@ -113,8 +110,7 @@ int power_hint_override(power_hint_t hint, void *data) return ret_val; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { char governor[80]; if (get_scaling_governor(governor, sizeof(governor)) == -1) { @@ -129,8 +125,8 @@ int set_interactive_override(int on) (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { int resource_values[] = {0x777}; /* 4+0 core config in display off */ if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); display_hint_sent = 1; return HINT_HANDLED; } diff --git a/power-8996.c b/power-8996.c index 94bb1cd..440e9be 100644 --- a/power-8996.c +++ b/power-8996.c @@ -28,30 +28,29 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" static int display_hint_sent; static int camera_hint_ref_count; -static int process_video_encode_hint(void *metadata) -{ +static int process_video_encode_hint(void* metadata) { char governor[80]; struct video_encode_metadata_t video_encode_metadata; @@ -67,8 +66,7 @@ static int process_video_encode_hint(void *metadata) video_encode_metadata.hint_id = DEFAULT_VIDEO_ENCODE_HINT_ID; if (metadata) { - if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == - -1) { + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { ALOGE("Error occurred while parsing metadata."); return HINT_NONE; } @@ -78,7 +76,7 @@ static int process_video_encode_hint(void *metadata) if (video_encode_metadata.state == 1) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { /* 1. cpufreq params * -above_hispeed_delay for LVT - 40ms * -go hispeed load for LVT - 95 @@ -96,21 +94,22 @@ static int process_video_encode_hint(void *metadata) * -sample_ms of 10 ms * -sLVT hispeed freq to 806MHz */ - int resource_values[] = {0x41400000, 0x4, 0x41410000, 0x5F, 0x41414000, 0x326, - 0x41420000, 0x5A, 0x41400100, 0x4, 0x41410100, 0x5F, 0x41414100, 0x22C, 0x41420100, 0x5A, - 0x41810000, 0x9C4, 0x41814000, 0x32, 0x4180C000, 0x0, 0x41820000, 0xA}; + int resource_values[] = {0x41400000, 0x4, 0x41410000, 0x5F, 0x41414000, 0x326, + 0x41420000, 0x5A, 0x41400100, 0x4, 0x41410100, 0x5F, + 0x41414100, 0x22C, 0x41420100, 0x5A, 0x41810000, 0x9C4, + 0x41814000, 0x32, 0x4180C000, 0x0, 0x41820000, 0xA}; camera_hint_ref_count++; if (camera_hint_ref_count == 1) { - perform_hint_action(video_encode_metadata.hint_id, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(video_encode_metadata.hint_id, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); } ALOGI("Video Encode hint start"); return HINT_HANDLED; } } else if (video_encode_metadata.state == 0) { if ((strncmp(governor, INTERACTIVE_GOVERNOR, strlen(INTERACTIVE_GOVERNOR)) == 0) && - (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { + (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { camera_hint_ref_count--; if (!camera_hint_ref_count) { undo_hint_action(video_encode_metadata.hint_id); @@ -123,10 +122,9 @@ static int process_video_encode_hint(void *metadata) return HINT_NONE; } -int power_hint_override(power_hint_t hint, void *data) -{ +int power_hint_override(power_hint_t hint, void* data) { int ret_val = HINT_NONE; - switch(hint) { + switch (hint) { case POWER_HINT_VIDEO_ENCODE: ret_val = process_video_encode_hint(data); break; @@ -136,8 +134,7 @@ int power_hint_override(power_hint_t hint, void *data) return ret_val; } -int set_interactive_override(int on) -{ +int set_interactive_override(int on) { return HINT_HANDLED; /* Don't excecute this code path, not in use */ char governor[80]; @@ -153,8 +150,8 @@ int set_interactive_override(int on) (strlen(governor) == strlen(INTERACTIVE_GOVERNOR))) { int resource_values[] = {}; /* dummy node */ if (!display_hint_sent) { - perform_hint_action(DISPLAY_STATE_HINT_ID, - resource_values, sizeof(resource_values)/sizeof(resource_values[0])); + perform_hint_action(DISPLAY_STATE_HINT_ID, resource_values, + sizeof(resource_values) / sizeof(resource_values[0])); display_hint_sent = 1; ALOGI("Display Off hint start"); return HINT_HANDLED; diff --git a/power-8998.c b/power-8998.c index 913c764..e786f5c 100644 --- a/power-8998.c +++ b/power-8998.c @@ -28,51 +28,51 @@ */ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" -#include "metadata-defs.h" #include "hint-data.h" +#include "metadata-defs.h" #include "performance.h" #include "power-common.h" +#include "utils.h" -#define CHECK_HANDLE(x) ((x)>0) -#define NUM_PERF_MODES 3 +#define CHECK_HANDLE(x) ((x) > 0) +#define NUM_PERF_MODES 3 typedef enum { - NORMAL_MODE = 0, - SUSTAINED_MODE = 1, - VR_MODE = 2, - VR_SUSTAINED_MODE = (SUSTAINED_MODE|VR_MODE), - INVALID_MODE = 0xFF -}perf_mode_type_t; + NORMAL_MODE = 0, + SUSTAINED_MODE = 1, + VR_MODE = 2, + VR_SUSTAINED_MODE = (SUSTAINED_MODE | VR_MODE), + INVALID_MODE = 0xFF +} perf_mode_type_t; typedef struct perf_mode { perf_mode_type_t type; int perf_hint_id; -}perf_mode_t; +} perf_mode_t; -perf_mode_t perf_modes[NUM_PERF_MODES] = { { SUSTAINED_MODE, SUSTAINED_PERF_HINT }, - { VR_MODE, VR_MODE_HINT }, - { VR_SUSTAINED_MODE, VR_MODE_SUSTAINED_PERF_HINT } }; +perf_mode_t perf_modes[NUM_PERF_MODES] = {{SUSTAINED_MODE, SUSTAINED_PERF_HINT}, + {VR_MODE, VR_MODE_HINT}, + {VR_SUSTAINED_MODE, VR_MODE_SUSTAINED_PERF_HINT}}; static int current_mode = NORMAL_MODE; -static inline int get_perfd_hint_id(perf_mode_type_t type) { +static inline int get_perfd_hint_id(perf_mode_type_t type) { int i; - for(i=0; i<NUM_PERF_MODES; i++) { + for (i = 0; i < NUM_PERF_MODES; i++) { if (perf_modes[i].type == type) { ALOGD("Hint id is 0x%x for mode 0x%x", perf_modes[i].perf_hint_id, type); return perf_modes[i].perf_hint_id; @@ -83,7 +83,6 @@ static inline int get_perfd_hint_id(perf_mode_type_t type) { } static int switch_mode(perf_mode_type_t mode) { - int hint_id = 0; static int perfd_mode_handle = -1; @@ -95,7 +94,7 @@ static int switch_mode(perf_mode_type_t mode) { } // switch to a perf mode hint_id = get_perfd_hint_id(mode); - if(hint_id != 0) { + if (hint_id != 0) { perfd_mode_handle = perf_hint_enable(hint_id, 0); if (!CHECK_HANDLE(perfd_mode_handle)) { ALOGE("Failed perf_hint_interaction for mode: 0x%x", mode); @@ -106,33 +105,32 @@ static int switch_mode(perf_mode_type_t mode) { return 0; } -static int process_perf_hint(void *data, perf_mode_type_t mode) { - +static int process_perf_hint(void* data, perf_mode_type_t mode) { // enable - if (data){ + if (data) { ALOGI("Enable request for mode: 0x%x", mode); // check if mode is current mode - if ( current_mode & mode ) { + if (current_mode & mode) { ALOGD("Mode 0x%x already enabled", mode); return HINT_HANDLED; } // enable requested mode - if ( 0 != switch_mode(current_mode | mode)) { + if (0 != switch_mode(current_mode | mode)) { ALOGE("Couldn't enable mode 0x%x", mode); return HINT_NONE; } current_mode |= mode; ALOGI("Current mode is 0x%x", current_mode); - // disable + // disable } else { ALOGI("Disable request for mode: 0x%x", mode); // check if mode is enabled - if ( !(current_mode & mode) ) { + if (!(current_mode & mode)) { ALOGD("Mode 0x%x already disabled", mode); return HINT_HANDLED; } - //disable requested mode - if ( 0 != switch_mode(current_mode & ~mode)) { + // disable requested mode + if (0 != switch_mode(current_mode & ~mode)) { ALOGE("Couldn't disable mode 0x%x", mode); return HINT_NONE; } @@ -143,14 +141,12 @@ static int process_perf_hint(void *data, perf_mode_type_t mode) { return HINT_HANDLED; } -static int process_video_encode_hint(void *metadata) -{ +static int process_video_encode_hint(void* metadata) { char governor[80]; struct video_encode_metadata_t video_encode_metadata; static int video_encode_handle = 0; - if(!metadata) - return HINT_NONE; + if (!metadata) return HINT_NONE; if (get_scaling_governor(governor, sizeof(governor)) == -1) { ALOGE("Can't obtain scaling governor."); @@ -162,20 +158,18 @@ static int process_video_encode_hint(void *metadata) memset(&video_encode_metadata, 0, sizeof(struct video_encode_metadata_t)); video_encode_metadata.state = -1; - if (parse_video_encode_metadata((char *)metadata, &video_encode_metadata) == - -1) { - ALOGE("Error occurred while parsing metadata."); - return HINT_NONE; + if (parse_video_encode_metadata((char*)metadata, &video_encode_metadata) == -1) { + ALOGE("Error occurred while parsing metadata."); + return HINT_NONE; } if (video_encode_metadata.state == 1) { - if (is_interactive_governor(governor)) { - video_encode_handle = perf_hint_enable( - VIDEO_ENCODE_HINT, 0); - return HINT_HANDLED; + if (is_interactive_governor(governor)) { + video_encode_handle = perf_hint_enable(VIDEO_ENCODE_HINT, 0); + return HINT_HANDLED; } } else if (video_encode_metadata.state == 0) { - if (is_interactive_governor(governor)) { + if (is_interactive_governor(governor)) { release_request(video_encode_handle); ALOGI("Video Encode hint stop"); return HINT_HANDLED; @@ -184,10 +178,9 @@ static int process_video_encode_hint(void *metadata) return HINT_NONE; } -int power_hint_override(power_hint_t hint, void *data) -{ +int power_hint_override(power_hint_t hint, void* data) { int ret_val = HINT_NONE; - switch(hint) { + switch (hint) { case POWER_HINT_VIDEO_ENCODE: ret_val = process_video_encode_hint(data); break; @@ -208,7 +201,6 @@ int power_hint_override(power_hint_t hint, void *data) return ret_val; } -int set_interactive_override(int UNUSED(on)) -{ +int set_interactive_override(int UNUSED(on)) { return HINT_HANDLED; /* Don't excecute this code path, not in use */ } diff --git a/power-common.c b/power-common.c index 30ea135..6719158 100644 --- a/power-common.c +++ b/power-common.c @@ -29,75 +29,68 @@ #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <dlfcn.h> #include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> -#include "utils.h" #include "hint-data.h" #include "performance.h" #include "power-common.h" #include "power-feature.h" +#include "utils.h" static struct hint_handles handles[NUM_HINTS]; -void power_init() -{ +void power_init() { ALOGI("Initing"); - for (int i=0; i<NUM_HINTS; i++) { - handles[i].handle = 0; - handles[i].ref_count = 0; + for (int i = 0; i < NUM_HINTS; i++) { + handles[i].handle = 0; + handles[i].ref_count = 0; } } -int __attribute__ ((weak)) power_hint_override(power_hint_t UNUSED(hint), - void *UNUSED(data)) -{ +int __attribute__((weak)) power_hint_override(power_hint_t UNUSED(hint), void* UNUSED(data)) { return HINT_NONE; } /* Declare function before use */ void interaction(int duration, int num_args, int opt_list[]); -void power_hint(power_hint_t hint, void *data) -{ +void power_hint(power_hint_t hint, void* data) { /* Check if this hint has been overridden. */ if (power_hint_override(hint, data) == HINT_HANDLED) { /* The power_hint has been handled. We can skip the rest. */ return; } - switch(hint) { + switch (hint) { case POWER_HINT_VR_MODE: ALOGI("VR mode power hint not handled in power_hint_override"); - break; - case POWER_HINT_INTERACTION: - { + break; + case POWER_HINT_INTERACTION: { int resources[] = {0x702, 0x20F, 0x30F}; int duration = 3000; - interaction(duration, sizeof(resources)/sizeof(resources[0]), resources); - } - break; - //fall through below, hints will fail if not defined in powerhint.xml + interaction(duration, sizeof(resources) / sizeof(resources[0]), resources); + } break; + // fall through below, hints will fail if not defined in powerhint.xml case POWER_HINT_SUSTAINED_PERFORMANCE: case POWER_HINT_VIDEO_ENCODE: if (data) { if (handles[hint].ref_count == 0) handles[hint].handle = perf_hint_enable((AOSP_DELTA + hint), 0); - if (handles[hint].handle > 0) - handles[hint].ref_count++; + if (handles[hint].handle > 0) handles[hint].ref_count++; } else { if (handles[hint].handle > 0) { if (--handles[hint].ref_count == 0) { @@ -108,14 +101,13 @@ void power_hint(power_hint_t hint, void *data) ALOGE("Lock for hint: %X was not acquired, cannot be released", hint); } } - break; + break; default: - break; + break; } } -int __attribute__ ((weak)) set_interactive_override(int UNUSED(on)) -{ +int __attribute__((weak)) set_interactive_override(int UNUSED(on)) { return HINT_NONE; } @@ -123,8 +115,7 @@ int __attribute__ ((weak)) set_interactive_override(int UNUSED(on)) extern void power_set_interactive_ext(int on); #endif -void set_interactive(int on) -{ +void set_interactive(int on) { if (!on) { /* Send Display OFF hint to perf HAL */ perf_hint_enable(VENDOR_HINT_DISPLAY_OFF, 0); @@ -144,6 +135,5 @@ void set_interactive(int on) ALOGI("Got set_interactive hint"); } -void __attribute__((weak)) set_device_specific_feature(feature_t UNUSED(feature), int UNUSED(state)) -{ -} +void __attribute__((weak)) +set_device_specific_feature(feature_t UNUSED(feature), int UNUSED(state)) {} diff --git a/power-common.h b/power-common.h index f586f09..0ec18ff 100644 --- a/power-common.h +++ b/power-common.h @@ -51,21 +51,16 @@ extern "C" { #include <hardware/power.h> -enum CPU_GOV_CHECK { - CPU0 = 0, - CPU1 = 1, - CPU2 = 2, - CPU3 = 3 -}; +enum CPU_GOV_CHECK { CPU0 = 0, CPU1 = 1, CPU2 = 2, CPU3 = 3 }; void power_init(void); -void power_hint(power_hint_t hint, void *data); +void power_hint(power_hint_t hint, void* data); void set_interactive(int on); -#define UNUSED(x) UNUSED_ ## x __attribute__((__unused__)) +#define UNUSED(x) UNUSED_##x __attribute__((__unused__)) #ifdef __cplusplus } #endif -#endif //__POWER_COMMON_H___ +#endif //__POWER_COMMON_H___ diff --git a/power-msmnile.c b/power-msmnile.c index 7a64b08..3c22138 100644 --- a/power-msmnile.c +++ b/power-msmnile.c @@ -27,82 +27,73 @@ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #define LOG_NIDEBUG 0 +#include <dlfcn.h> #include <errno.h> -#include <sys/types.h> -#include <sys/stat.h> #include <fcntl.h> -#include <unistd.h> -#include <dlfcn.h> #include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> #define LOG_TAG "QTI PowerHAL" -#include <log/log.h> #include <hardware/hardware.h> #include <hardware/power.h> +#include <log/log.h> #include "power-common.h" static int display_fd; #define SYS_DISPLAY_PWR "/sys/kernel/hbtp/display_pwr" -int set_interactive_override(int on) -{ - static const char *display_on = "1"; - static const char *display_off = "0"; +int set_interactive_override(int on) { + static const char* display_on = "1"; + static const char* display_off = "0"; char err_buf[80]; static int init_interactive_hint = 0; static int set_i_count = 0; int rc = 0; - set_i_count ++; + set_i_count++; ALOGI("Got set_interactive hint on= %d, count= %d\n", on, set_i_count); - if (init_interactive_hint == 0) - { - //First time the display is turned off + if (init_interactive_hint == 0) { + // First time the display is turned off display_fd = TEMP_FAILURE_RETRY(open(SYS_DISPLAY_PWR, O_RDWR)); if (display_fd < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); + strerror_r(errno, err_buf, sizeof(err_buf)); ALOGE("Error opening %s: %s\n", SYS_DISPLAY_PWR, err_buf); - } - else + } else init_interactive_hint = 1; - } - else - if (!on ) { - /* Display off. */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); - } + } else if (!on) { + /* Display off. */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_off, strlen(display_off))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_off, SYS_DISPLAY_PWR, err_buf); } - else { - /* Display on */ - rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); - if (rc < 0) { - strerror_r(errno,err_buf,sizeof(err_buf)); - ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); - } + } else { + /* Display on */ + rc = TEMP_FAILURE_RETRY(write(display_fd, display_on, strlen(display_on))); + if (rc < 0) { + strerror_r(errno, err_buf, sizeof(err_buf)); + ALOGE("Error writing %s to %s: %s\n", display_on, SYS_DISPLAY_PWR, err_buf); } + } return HINT_HANDLED; } void interaction(int duration, int num_args, int opt_list[]); -int power_hint_override(power_hint_t hint, void *data) -{ +int power_hint_override(power_hint_t hint, void* data) { int ret_val = HINT_NONE; - switch(hint) { - case POWER_HINT_INTERACTION: - { + switch (hint) { + case POWER_HINT_INTERACTION: { int resources[] = {0x40800100, 0x514}; int duration = 100; - interaction(duration, sizeof(resources)/sizeof(resources[0]), resources); + interaction(duration, sizeof(resources) / sizeof(resources[0]), resources); ret_val = HINT_HANDLED; } default: diff --git a/service.cpp b/service.cpp index f36141e..c8100b9 100644 --- a/service.cpp +++ b/service.cpp @@ -29,14 +29,14 @@ #define LOG_TAG "android.hardware.power@1.2-service-qti" -#include <log/log.h> -#include <hidl/HidlTransportSupport.h> #include <hardware/power.h> +#include <hidl/HidlTransportSupport.h> +#include <log/log.h> #include "Power.h" +using android::OK; using android::sp; using android::status_t; -using android::OK; // libhwbinder: using android::hardware::configureRpcThreadpool; @@ -47,7 +47,6 @@ using android::hardware::power::V1_2::IPower; using android::hardware::power::V1_2::implementation::Power; int main() { - status_t status; android::sp<IPower> service = nullptr; @@ -70,7 +69,7 @@ int main() { ALOGI("Power Service is ready"); joinRpcThreadpool(); - //Should not pass this line + // Should not pass this line shutdown: // In normal operation, we don't expect the thread pool to exit @@ -78,4 +77,3 @@ shutdown: ALOGE("Power Service is shutting down"); return 1; } - @@ -29,53 +29,47 @@ #define LOG_NIDEBUG 0 #include <dlfcn.h> -#include <fcntl.h> #include <errno.h> +#include <fcntl.h> #include <stdlib.h> #include <string.h> #include <unistd.h> -#include "utils.h" -#include "list.h" #include "hint-data.h" +#include "list.h" #include "power-common.h" +#include "utils.h" #define LOG_TAG "QTI PowerHAL" #include <log/log.h> -char scaling_gov_path[4][80] ={ - "sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", - "sys/devices/system/cpu/cpu1/cpufreq/scaling_governor", - "sys/devices/system/cpu/cpu2/cpufreq/scaling_governor", - "sys/devices/system/cpu/cpu3/cpufreq/scaling_governor" -}; +char scaling_gov_path[4][80] = {"sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", + "sys/devices/system/cpu/cpu1/cpufreq/scaling_governor", + "sys/devices/system/cpu/cpu2/cpufreq/scaling_governor", + "sys/devices/system/cpu/cpu3/cpufreq/scaling_governor"}; #define PERF_HAL_PATH "libqti-perfd-client.so" -static void *qcopt_handle; -static int (*perf_lock_acq)(int handle, int duration, - int list[], int numArgs); +static void* qcopt_handle; +static int (*perf_lock_acq)(int handle, int duration, int list[], int numArgs); static int (*perf_lock_rel)(int handle); -static int (*perf_hint)(int, const char *, int, int); +static int (*perf_hint)(int, const char*, int, int); static struct list_node active_hint_list_head; -const char *pkg = "QTI PowerHAL"; +const char* pkg = "QTI PowerHAL"; -static void *get_qcopt_handle() -{ - void *handle = NULL; +static void* get_qcopt_handle() { + void* handle = NULL; dlerror(); handle = dlopen(PERF_HAL_PATH, RTLD_NOW); if (!handle) { - ALOGE("Unable to open %s: %s\n", PERF_HAL_PATH, - dlerror()); + ALOGE("Unable to open %s: %s\n", PERF_HAL_PATH, dlerror()); } return handle; } -static void __attribute__ ((constructor)) initialize(void) -{ +static void __attribute__((constructor)) initialize(void) { qcopt_handle = get_qcopt_handle(); if (!qcopt_handle) { @@ -105,16 +99,13 @@ static void __attribute__ ((constructor)) initialize(void) } } -static void __attribute__ ((destructor)) cleanup(void) -{ +static void __attribute__((destructor)) cleanup(void) { if (qcopt_handle) { - if (dlclose(qcopt_handle)) - ALOGE("Error occurred while closing qc-opt library."); + if (dlclose(qcopt_handle)) ALOGE("Error occurred while closing qc-opt library."); } } -int sysfs_read(char *path, char *s, int num_bytes) -{ +int sysfs_read(char* path, char* s, int num_bytes) { char buf[80]; int count; int ret = 0; @@ -141,8 +132,7 @@ int sysfs_read(char *path, char *s, int num_bytes) return ret; } -int sysfs_write(char *path, char *s) -{ +int sysfs_write(char* path, char* s) { char buf[80]; int len; int ret = 0; @@ -151,7 +141,7 @@ int sysfs_write(char *path, char *s) if (fd < 0) { strerror_r(errno, buf, sizeof(buf)); ALOGE("Error opening %s: %s\n", path, buf); - return -1 ; + return -1; } len = write(fd, s, strlen(s)); @@ -167,10 +157,8 @@ int sysfs_write(char *path, char *s) return ret; } -int get_scaling_governor(char governor[], int size) -{ - if (sysfs_read(SCALING_GOVERNOR_PATH, governor, - size) == -1) { +int get_scaling_governor(char governor[], int size) { + if (sysfs_read(SCALING_GOVERNOR_PATH, governor, size) == -1) { // Can't obtain the scaling governor. Return. return -1; } else { @@ -179,18 +167,14 @@ int get_scaling_governor(char governor[], int size) len--; - while (len >= 0 && (governor[len] == '\n' || governor[len] == '\r')) - governor[len--] = '\0'; + while (len >= 0 && (governor[len] == '\n' || governor[len] == '\r')) governor[len--] = '\0'; } return 0; } -int get_scaling_governor_check_cores(char governor[], int size,int core_num) -{ - - if (sysfs_read(scaling_gov_path[core_num], governor, - size) == -1) { +int get_scaling_governor_check_cores(char governor[], int size, int core_num) { + if (sysfs_read(scaling_gov_path[core_num], governor, size) == -1) { // Can't obtain the scaling governor. Return. return -1; } @@ -198,99 +182,81 @@ int get_scaling_governor_check_cores(char governor[], int size,int core_num) // Strip newline at the end. int len = strlen(governor); len--; - while (len >= 0 && (governor[len] == '\n' || governor[len] == '\r')) - governor[len--] = '\0'; + while (len >= 0 && (governor[len] == '\n' || governor[len] == '\r')) governor[len--] = '\0'; return 0; } int is_interactive_governor(char* governor) { - if (strncmp(governor, INTERACTIVE_GOVERNOR, (strlen(INTERACTIVE_GOVERNOR)+1)) == 0) - return 1; - return 0; + if (strncmp(governor, INTERACTIVE_GOVERNOR, (strlen(INTERACTIVE_GOVERNOR) + 1)) == 0) return 1; + return 0; } #ifndef INTERACTION_BOOST -void interaction(int UNUSED(duration), int UNUSED(num_args), int UNUSED(opt_list[])) -{ +void interaction(int UNUSED(duration), int UNUSED(num_args), int UNUSED(opt_list[])) { #else -void interaction(int duration, int num_args, int opt_list[]) -{ +void interaction(int duration, int num_args, int opt_list[]) { static int lock_handle = 0; - if (duration < 0 || num_args < 1 || opt_list[0] == 0) - return; + if (duration < 0 || num_args < 1 || opt_list[0] == 0) return; if (qcopt_handle) { if (perf_lock_acq) { lock_handle = perf_lock_acq(lock_handle, duration, opt_list, num_args); - if (lock_handle == -1) - ALOGE("Failed to acquire lock."); + if (lock_handle == -1) ALOGE("Failed to acquire lock."); } } #endif } -int interaction_with_handle(int lock_handle, int duration, int num_args, int opt_list[]) -{ - if (duration < 0 || num_args < 1 || opt_list[0] == 0) - return 0; +int interaction_with_handle(int lock_handle, int duration, int num_args, int opt_list[]) { + if (duration < 0 || num_args < 1 || opt_list[0] == 0) return 0; if (qcopt_handle) { if (perf_lock_acq) { lock_handle = perf_lock_acq(lock_handle, duration, opt_list, num_args); - if (lock_handle == -1) - ALOGE("Failed to acquire lock."); + if (lock_handle == -1) ALOGE("Failed to acquire lock."); } } return lock_handle; } -//this is interaction_with_handle using perf_hint instead of -//perf_lock_acq -int perf_hint_enable(int hint_id , int duration) -{ +// this is interaction_with_handle using perf_hint instead of +// perf_lock_acq +int perf_hint_enable(int hint_id, int duration) { int lock_handle = 0; - if (duration < 0) - return 0; + if (duration < 0) return 0; if (qcopt_handle) { if (perf_hint) { lock_handle = perf_hint(hint_id, pkg, duration, -1); - if (lock_handle == -1) - ALOGE("Failed to acquire lock for hint_id: %X.", hint_id); + if (lock_handle == -1) ALOGE("Failed to acquire lock for hint_id: %X.", hint_id); } } return lock_handle; } - void release_request(int lock_handle) { - if (qcopt_handle && perf_lock_rel) - perf_lock_rel(lock_handle); + if (qcopt_handle && perf_lock_rel) perf_lock_rel(lock_handle); } -void perform_hint_action(int hint_id, int resource_values[], int num_resources) -{ +void perform_hint_action(int hint_id, int resource_values[], int num_resources) { if (qcopt_handle) { if (perf_lock_acq) { /* Acquire an indefinite lock for the requested resources. */ - int lock_handle = perf_lock_acq(0, 0, resource_values, - num_resources); + int lock_handle = perf_lock_acq(0, 0, resource_values, num_resources); if (lock_handle == -1) { ALOGE("Failed to acquire lock."); } else { /* Add this handle to our internal hint-list. */ - struct hint_data *new_hint = - (struct hint_data *)malloc(sizeof(struct hint_data)); + struct hint_data* new_hint = (struct hint_data*)malloc(sizeof(struct hint_data)); if (new_hint) { if (!active_hint_list_head.compare) { - active_hint_list_head.compare = - (int (*)(void *, void *))hint_compare; - active_hint_list_head.dump = (void (*)(void *))hint_dump; + active_hint_list_head.compare = (int (*)(void*, void*))hint_compare; + active_hint_list_head.dump = (void (*)(void*))hint_dump; } new_hint->hint_id = hint_id; @@ -299,15 +265,13 @@ void perform_hint_action(int hint_id, int resource_values[], int num_resources) if (add_list_node(&active_hint_list_head, new_hint) == NULL) { free(new_hint); /* Can't keep track of this lock. Release it. */ - if (perf_lock_rel) - perf_lock_rel(lock_handle); + if (perf_lock_rel) perf_lock_rel(lock_handle); ALOGE("Failed to process hint."); } } else { /* Can't keep track of this lock. Release it. */ - if (perf_lock_rel) - perf_lock_rel(lock_handle); + if (perf_lock_rel) perf_lock_rel(lock_handle); ALOGE("Failed to process hint."); } @@ -316,23 +280,18 @@ void perform_hint_action(int hint_id, int resource_values[], int num_resources) } } -void undo_hint_action(int hint_id) -{ +void undo_hint_action(int hint_id) { if (qcopt_handle) { if (perf_lock_rel) { /* Get hint-data associated with this hint-id */ - struct list_node *found_node; - struct hint_data temp_hint_data = { - .hint_id = hint_id - }; + struct list_node* found_node; + struct hint_data temp_hint_data = {.hint_id = hint_id}; - found_node = find_node(&active_hint_list_head, - &temp_hint_data); + found_node = find_node(&active_hint_list_head, &temp_hint_data); if (found_node) { /* Release this lock. */ - struct hint_data *found_hint_data = - (struct hint_data *)(found_node->data); + struct hint_data* found_hint_data = (struct hint_data*)(found_node->data); if (found_hint_data) { if (perf_lock_rel(found_hint_data->perflock_handle) == -1) @@ -356,8 +315,7 @@ void undo_hint_action(int hint_id) * Used to release initial lock holding * two cores online when the display is on */ -void undo_initial_hint_action() -{ +void undo_initial_hint_action() { if (qcopt_handle) { if (perf_lock_rel) { perf_lock_rel(1); @@ -29,18 +29,17 @@ #include <cutils/properties.h> -int sysfs_read(char *path, char *s, int num_bytes); -int sysfs_write(char *path, char *s); +int sysfs_read(char* path, char* s, int num_bytes); +int sysfs_write(char* path, char* s); int get_scaling_governor(char governor[], int size); -int get_scaling_governor_check_cores(char governor[], int size,int core_num); +int get_scaling_governor_check_cores(char governor[], int size, int core_num); int is_interactive_governor(char*); void vote_ondemand_io_busy_off(); void unvote_ondemand_io_busy_off(); void vote_ondemand_sdf_low(); void unvote_ondemand_sdf_low(); -void perform_hint_action(int hint_id, int resource_values[], - int num_resources); +void perform_hint_action(int hint_id, int resource_values[], int num_resources); void undo_hint_action(int hint_id); void undo_initial_hint_action(); void release_request(int lock_handle); |