Merge android12-5.10.19+ (c3bf09a) into msm-5.10

* refs/heads/tmp-c3bf09a:
  ANDROID: GKI: enable hid-playstation FF
  ANDROID: GKI: amlogic: enable GPIO LEDs as module
  ANDROID: Update abi_gki_aarch64_qcom with symbols for memory tests
  Revert "ANDROID: staging: debug-kinfo: remove unnecessary defer probe"
  ANDROID: kernel: add module info for debug_kinfo
  ANDROID: abi_gki_aarch64_qcom: Add add/remove_memory_subsection
  UPSTREAM: Bluetooth: hci_bcm: Add support for ISO packets
  ANDROID: thermal: Add vendor thermal genl event function
  ANDROID: sched: Add vendor hook for cpu_overutilized
  ANDROID: timer: calc_index vendor hook adjustment
  ANDROID: GKI: enable hid-playstation driver

Change-Id: I0fde8e43ae58b8bd31087e88e871952d20261569
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
This commit is contained in:
Ivaylo Georgiev 2021-03-01 04:01:17 -08:00
commit 578b68304a
15 changed files with 913 additions and 360 deletions

1200
android/abi_gki_aarch64_allsyms Normal file → Executable file

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@
add_cpu
add_device_randomness
add_memory
add_memory_subsection
add_taint
add_timer
add_timer_on
@ -1496,6 +1497,7 @@
of_phy_simple_xlate
of_platform_depopulate
of_platform_device_create
of_platform_device_destroy
of_platform_populate
of_property_count_elems_of_size
of_property_match_string
@ -1869,6 +1871,7 @@
release_sock
remap_pfn_range
remove_cpu
remove_memory_subsection
remove_proc_entry
remove_wait_queue
report_iommu_fault
@ -2014,6 +2017,7 @@
sg_miter_start
sg_miter_stop
sg_next
__sg_page_iter_dma_next
__sg_page_iter_next
__sg_page_iter_start
sg_pcopy_from_buffer

View File

@ -6,6 +6,7 @@ CONFIG_REGULATOR_PWM=m
CONFIG_PWRSEQ_EMMC=m
CONFIG_PWRSEQ_SIMPLE=m
CONFIG_USB_DWC2=m
CONFIG_LEDS_GPIO=m
#
# Networking

View File

@ -415,6 +415,8 @@ CONFIG_HID_MULTITOUCH=y
CONFIG_HID_NINTENDO=y
CONFIG_HID_PICOLCD=y
CONFIG_HID_PLANTRONICS=y
CONFIG_HID_PLAYSTATION=y
CONFIG_PLAYSTATION_FF=y
CONFIG_HID_ROCCAT=y
CONFIG_HID_SONY=y
CONFIG_SONY_FF=y

View File

@ -374,6 +374,8 @@ CONFIG_HID_MULTITOUCH=y
CONFIG_HID_NINTENDO=y
CONFIG_HID_PICOLCD=y
CONFIG_HID_PLANTRONICS=y
CONFIG_HID_PLAYSTATION=y
CONFIG_PLAYSTATION_FF=y
CONFIG_HID_ROCCAT=y
CONFIG_HID_SONY=y
CONFIG_SONY_FF=y

View File

@ -36,6 +36,7 @@
#include <trace/hooks/power.h>
#include <trace/hooks/fault.h>
#include <trace/hooks/iommu.h>
#include <trace/hooks/thermal.h>
/*
* Export tracepoints that act as a bare tracehook (ie: have no trace event
@ -99,6 +100,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_sugov_update);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_overutilized);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_setaffinity);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_cpus_allowed);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_skip_swapcache_flags);
@ -156,3 +158,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_pagecache_get_page);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_genl_check);

View File

@ -654,6 +654,7 @@ static const struct h4_recv_pkt bcm_recv_pkts[] = {
{ H4_RECV_ACL, .recv = hci_recv_frame },
{ H4_RECV_SCO, .recv = hci_recv_frame },
{ H4_RECV_EVENT, .recv = hci_recv_frame },
{ H4_RECV_ISO, .recv = hci_recv_frame },
{ BCM_RECV_LM_DIAG, .recv = hci_recv_diag },
{ BCM_RECV_NULL, .recv = hci_recv_diag },
{ BCM_RECV_TYPE49, .recv = hci_recv_diag },

View File

@ -110,6 +110,11 @@ static int debug_kinfo_probe(struct platform_device *pdev)
return -ENODEV;
}
/* Need to wait for reserved memory to be mapped */
if (!rmem->priv) {
return -EPROBE_DEFER;
}
if (!rmem->base || !rmem->size) {
dev_warn(&pdev->dev, "unexpected reserved memory\n");
return -EINVAL;
@ -150,6 +155,10 @@ static int debug_kinfo_probe(struct platform_device *pdev)
info->thread_size = THREAD_SIZE;
info->swapper_pg_dir_pa = (u64)virt_to_phys(swapper_pg_dir);
strlcpy(info->last_uts_release, init_utsname()->release, sizeof(info->last_uts_release));
info->enabled_modules_tree_lookup = IS_ENABLED(CONFIG_MODULES_TREE_LOOKUP);
info->mod_core_layout_offset = offsetof(struct module, core_layout);
info->mod_init_layout_offset = offsetof(struct module, init_layout);
info->mod_kallsyms_offset = offsetof(struct module, kallsyms);
update_kernel_all_info(all_info);

View File

@ -52,6 +52,12 @@ struct kernel_info {
/* Info of running build */
__u8 build_info[BUILD_INFO_LEN];
/* For module kallsyms */
__u32 enabled_modules_tree_lookup;
__u32 mod_core_layout_offset;
__u32 mod_init_layout_offset;
__u32 mod_kallsyms_offset;
} __packed;
struct kernel_all_info {

View File

@ -9,6 +9,7 @@
#include <linux/module.h>
#include <linux/kernel.h>
#include <net/genetlink.h>
#include <trace/hooks/thermal.h>
#include <uapi/linux/thermal.h>
#include "thermal_core.h"
@ -229,6 +230,11 @@ static int thermal_genl_send_event(enum thermal_genl_event event,
struct sk_buff *msg;
int ret = -EMSGSIZE;
void *hdr;
int enable_thermal_genl = 1;
trace_android_vh_enable_thermal_genl_check(event, &enable_thermal_genl);
if (!enable_thermal_genl)
return 0;
msg = genlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
if (!msg)

View File

@ -1,3 +1,4 @@
arch/arm64/crypto/aes-ce-core.S
arch/arm64/crypto/aes-ce-glue.c
arch/arm64/crypto/aes-ce.S
arch/arm64/crypto/aes-ce-setkey.h
@ -904,6 +905,7 @@ drivers/hid/hid-picolcd_core.c
drivers/hid/hid-picolcd_debugfs.c
drivers/hid/hid-picolcd.h
drivers/hid/hid-plantronics.c
drivers/hid/hid-playstation.c
drivers/hid/hid-prodikeys.c
drivers/hid/hid-quirks.c
drivers/hid/hidraw.c
@ -3823,6 +3825,7 @@ include/trace/hooks/rwsem.h
include/trace/hooks/sched.h
include/trace/hooks/softlockup.h
include/trace/hooks/sysrqcrash.h
include/trace/hooks/thermal.h
include/trace/hooks/timer.h
include/trace/hooks/topology.h
include/trace/hooks/vendor_hooks.h

View File

@ -112,17 +112,25 @@ DECLARE_RESTRICTED_HOOK(android_rvh_resume_cpus,
DECLARE_RESTRICTED_HOOK(android_rvh_find_energy_efficient_cpu,
TP_PROTO(struct task_struct *p, int prev_cpu, int sync, int *new_cpu),
TP_ARGS(p, prev_cpu, sync, new_cpu), 1);
struct sched_attr;
DECLARE_HOOK(android_vh_set_sugov_sched_attr,
TP_PROTO(struct sched_attr *attr),
TP_ARGS(attr));
DECLARE_RESTRICTED_HOOK(android_rvh_set_iowait,
TP_PROTO(struct task_struct *p, int *should_iowait_boost),
TP_ARGS(p, should_iowait_boost), 1);
struct sugov_policy;
DECLARE_RESTRICTED_HOOK(android_rvh_set_sugov_update,
TP_PROTO(struct sugov_policy *sg_policy, unsigned int next_freq, bool *should_update),
TP_ARGS(sg_policy, next_freq, should_update), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_cpu_overutilized,
TP_PROTO(int cpu, int *overutilized),
TP_ARGS(cpu, overutilized), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_sched_setaffinity,
TP_PROTO(struct task_struct *p, const struct cpumask *in_mask, int *retval),
TP_ARGS(p, in_mask, retval), 1);

View File

@ -0,0 +1,20 @@
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM thermal
#define TRACE_INCLUDE_PATH trace/hooks
#if !defined(_TRACE_HOOK_THERMAL_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_THERMAL_H
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
DECLARE_HOOK(android_vh_enable_thermal_genl_check,
TP_PROTO(int event, int *enable_thermal_genl),
TP_ARGS(event, enable_thermal_genl));
#endif /* _TRACE_HOOK_THERMAL_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@ -5451,6 +5451,12 @@ static inline unsigned long cpu_util(int cpu);
static inline bool cpu_overutilized(int cpu)
{
int overutilized = -1;
trace_android_rvh_cpu_overutilized(cpu, &overutilized);
if (overutilized != -1)
return overutilized;
return !fits_capacity(cpu_util(cpu), capacity_of(cpu));
}

View File

@ -506,8 +506,8 @@ static inline unsigned calc_index(unsigned long expires, unsigned lvl,
*
* Round up with level granularity to prevent this.
*/
expires = (expires + LVL_GRAN(lvl)) >> LVL_SHIFT(lvl);
trace_android_vh_timer_calc_index(lvl, &expires);
expires = (expires + LVL_GRAN(lvl)) >> LVL_SHIFT(lvl);
*bucket_expiry = expires << LVL_SHIFT(lvl);
return LVL_OFFS(lvl) + (expires & LVL_MASK);
}