Skip to content

Commit

Permalink
Merge branch 'QK-eleven' into upstreamed-common
Browse files Browse the repository at this point in the history
  • Loading branch information
Official-Ayrton990 committed Jan 2, 2022
2 parents c3e2585 + 4063bd9 commit b95c360
Show file tree
Hide file tree
Showing 22 changed files with 740 additions and 284 deletions.
7 changes: 6 additions & 1 deletion arch/arm64/configs/vendor/alioth_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
# CONFIG_SCHED_WALT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
Expand Down Expand Up @@ -83,7 +88,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
7 changes: 6 additions & 1 deletion arch/arm64/configs/vendor/apollo_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
# CONFIG_SCHED_WALT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
Expand Down Expand Up @@ -83,7 +88,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
7 changes: 6 additions & 1 deletion arch/arm64/configs/vendor/cas_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
# CONFIG_SCHED_WALT is not set
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
Expand Down Expand Up @@ -85,7 +90,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
7 changes: 6 additions & 1 deletion arch/arm64/configs/vendor/cmi_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
# CONFIG_SCHED_WALT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
Expand Down Expand Up @@ -86,7 +91,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
14 changes: 7 additions & 7 deletions arch/arm64/configs/vendor/lmi_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
# CONFIG_SCHED_WALT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
Expand All @@ -25,22 +30,17 @@ CONFIG_LOG_BUF_SHIFT=21
CONFIG_LOG_CPU_MAX_BUF_SHIFT=17
# CONFIG_MEMCG=y
# CONFIG_MEMCG_SWAP=y

CONFIG_UCLAMP_TASK=y
CONFIG_UCLAMP_BUCKETS_COUNT=5
CONFIG_UCLAMP_ASSIST=y
CONFIG_CGROUPS=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_SCHED=y
CONFIG_UCLAMP_TASK_GROUP=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_BPF=y
# CONFIG_SCHED_CORE_CTL is not set
CONFIG_NAMESPACES=y
# CONFIG_PID_NS is not set
# CONFIG_SCHED_TUNE is not set
CONFIG_SCHED_TUNE=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
Expand Down Expand Up @@ -90,7 +90,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
7 changes: 6 additions & 1 deletion arch/arm64/configs/vendor/thyme_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
# CONFIG_SCHED_WALT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
Expand Down Expand Up @@ -82,7 +87,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
7 changes: 6 additions & 1 deletion arch/arm64/configs/vendor/umi_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_SCHEDUTIL_UP_RATE_LIMIT=500
CONFIG_SCHEDUTIL_DOWN_RATE_LIMIT=20000
CONFIG_CPU_INPUT_BOOST=y
CONFIG_INPUT_BOOST_DURATION_MS=58
CONFIG_MAX_BOOST_FREQ_LP=1708800
CONFIG_MAX_BOOST_FREQ_PERF=2150400
CONFIG_MAX_BOOST_FREQ_PRIME=2553600
# CONFIG_SCHED_WALT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
Expand Down Expand Up @@ -85,7 +90,7 @@ CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
CONFIG_WIREGUARD=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
Expand Down
8 changes: 7 additions & 1 deletion drivers/base/superuser.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <linux/mman.h>
#include <linux/ptrace.h>
#include <linux/syscalls.h>
#include <linux/version.h>

static bool is_su(const char __user *filename)
{
Expand Down Expand Up @@ -61,7 +62,12 @@ static long new_faccessat(int dfd, const char __user *filename, int mode)
return old_faccessat(dfd, sh_user_path(), mode);
}

#if (KERNEL_VERSION(4, 16, 0) > LINUX_VERSION_CODE)
extern int selinux_enforcing;
#else
int selinux_enforcing;
#endif

static long (*old_execve)(const char __user *filename,
const char __user *const __user *argv,
const char __user *const __user *envp);
Expand Down Expand Up @@ -102,7 +108,7 @@ static long new_execve(const char __user *filename,
memset(&cred->cap_bset, 0xff, sizeof(cred->cap_bset));
memset(&cred->cap_ambient, 0xff, sizeof(cred->cap_ambient));

sys_write(2, userspace_stack_buffer(now_root, sizeof(now_root)),
ksys_write(2, userspace_stack_buffer(now_root, sizeof(now_root)),
sizeof(now_root) - 1);
return old_execve(sh_user_path(), argv, envp);
}
Expand Down
62 changes: 62 additions & 0 deletions drivers/cpufreq/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,68 @@ config SCHEDUTIL_DOWN_RATE_LIMIT

endif

config CPU_INPUT_BOOST
bool "CPU Input Boost"
help
Boosts the CPU on touchscreen and touchpad input, and allows for
boosting on other custom events, mainly which is intended to be for
boosting when there is a new frame ready to be rendered to the
display. The boost frequencies for this driver should be set so that
frame drops are near-zero at the boosted frequencies and power
consumption is minimized at said frequency combination.

if CPU_INPUT_BOOST

config INPUT_BOOST_DURATION_MS
int "Input boost duration"
default "100"
help
Input boost duration in milliseconds.

config WAKE_BOOST_DURATION_MS
int "Wake boost duration"
default "1000"
help
Wake boost duration in milliseconds.

config INPUT_BOOST_FREQ_LP
int "Low-power cluster boost freq"
default "0"
help
Input boost frequency for the low-power CPU cluster.

config INPUT_BOOST_FREQ_PERF
int "Performance cluster boost freq"
default "0"
help
Input boost frequency for the performance CPU cluster.

config INPUT_BOOST_FREQ_PRIME
int "Prime cluster boost freq"
default "0"
help
Input boost frequency for the prime CPU cluster.

config MAX_BOOST_FREQ_LP
int "Low-power cluster max-boost freq"
default "0"
help
Max-boost frequency for the low-power CPU cluster.

config MAX_BOOST_FREQ_PERF
int "Performance cluster max-boost freq"
default "0"
help
Max-boost frequency for the performance CPU cluster.

config MAX_BOOST_FREQ_PRIME
int "Prime cluster max-boost freq"
default "0"
help
Max-boost frequency for the prime CPU cluster.

endif

comment "CPU frequency scaling drivers"

config CPUFREQ_DT
Expand Down
3 changes: 3 additions & 0 deletions drivers/cpufreq/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ obj-$(CONFIG_CPU_FREQ_GOV_COMMON) += cpufreq_governor.o
obj-$(CONFIG_CPU_FREQ_GOV_ATTR_SET) += cpufreq_governor_attr_set.o
obj-$(CONFIG_CPU_BOOST) += cpu-boost.o

# CPU Input Boost
obj-$(CONFIG_CPU_INPUT_BOOST) += cpu_input_boost.o

obj-$(CONFIG_CPUFREQ_DT) += cpufreq-dt.o
obj-$(CONFIG_CPUFREQ_DT_PLATDEV) += cpufreq-dt-platdev.o

Expand Down
Loading

0 comments on commit b95c360

Please sign in to comment.