From 800cac4b33b120783548aba4f04f6fce05453e27 Mon Sep 17 00:00:00 2001 From: Vinayak Yadawad Date: Wed, 29 Nov 2023 18:20:43 +0530 Subject: [PATCH 1/7] FROMGIT: wifi: nl80211: Extend del pmksa support for SAE and OWE security Current handling of del pmksa with SSID is limited to FILS security. In the current change the del pmksa support is extended to SAE/OWE security offloads as well. For OWE/SAE offloads, the PMK is generated and cached at driver/FW, so user app needs the capability to request cache deletion based on SSID for drivers supporting SAE/OWE offload. Signed-off-by: Vinayak Yadawad Link: https://msgid.link/ecdae726459e0944c377a6a6f6cb2c34d2e057d0.1701262123.git.vinayak.yadawad@broadcom.com [drop whitespace-damaged rdev_ops pointer completely, enabling tracing] Signed-off-by: Johannes Berg Bug: 301410304 (cherry picked from commit aa0887c4f18e280f8c2aa6964af602bd16c37f54 https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main) Change-Id: Ia665b9760279eb77347e79c97d177cba3beaa107 Signed-off-by: Paul Chen --- include/uapi/linux/nl80211.h | 3 +- net/wireless/nl80211.c | 94 +++++++++++++++++++++++++----------- 2 files changed, 69 insertions(+), 28 deletions(-) diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index f3af16ce1f64..50a59769828a 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -567,7 +567,8 @@ * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC * (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID, * %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS - * authentication. + * authentication. Additionally in case of SAE offload and OWE offloads + * PMKSA entry can be deleted using %NL80211_ATTR_SSID. * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries. * * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index d919eff62ebe..0fdf95420bec 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -12017,16 +12017,18 @@ static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info) return err; } -static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info) +static int nl80211_set_pmksa(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; - int (*rdev_ops)(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_pmksa *pmksa) = NULL; struct net_device *dev = info->user_ptr[1]; struct cfg80211_pmksa pmksa; + bool ap_pmksa_caching_support = false; memset(&pmksa, 0, sizeof(struct cfg80211_pmksa)); + ap_pmksa_caching_support = wiphy_ext_feature_isset(&rdev->wiphy, + NL80211_EXT_FEATURE_AP_PMKSA_CACHING); + if (!info->attrs[NL80211_ATTR_PMKID]) return -EINVAL; @@ -12035,16 +12037,15 @@ static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info) if (info->attrs[NL80211_ATTR_MAC]) { pmksa.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); } else if (info->attrs[NL80211_ATTR_SSID] && - info->attrs[NL80211_ATTR_FILS_CACHE_ID] && - (info->genlhdr->cmd == NL80211_CMD_DEL_PMKSA || - info->attrs[NL80211_ATTR_PMK])) { + info->attrs[NL80211_ATTR_FILS_CACHE_ID] && + info->attrs[NL80211_ATTR_PMK]) { pmksa.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); pmksa.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); - pmksa.cache_id = - nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]); + pmksa.cache_id = nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]); } else { return -EINVAL; } + if (info->attrs[NL80211_ATTR_PMK]) { pmksa.pmk = nla_data(info->attrs[NL80211_ATTR_PMK]); pmksa.pmk_len = nla_len(info->attrs[NL80211_ATTR_PMK]); @@ -12056,32 +12057,71 @@ static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info) if (info->attrs[NL80211_ATTR_PMK_REAUTH_THRESHOLD]) pmksa.pmk_reauth_threshold = - nla_get_u8( - info->attrs[NL80211_ATTR_PMK_REAUTH_THRESHOLD]); + nla_get_u8(info->attrs[NL80211_ATTR_PMK_REAUTH_THRESHOLD]); if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION && dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT && - !(dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP && - wiphy_ext_feature_isset(&rdev->wiphy, - NL80211_EXT_FEATURE_AP_PMKSA_CACHING))) + !((dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP || + dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO) && + ap_pmksa_caching_support)) return -EOPNOTSUPP; - switch (info->genlhdr->cmd) { - case NL80211_CMD_SET_PMKSA: - rdev_ops = rdev->ops->set_pmksa; - break; - case NL80211_CMD_DEL_PMKSA: - rdev_ops = rdev->ops->del_pmksa; - break; - default: - WARN_ON(1); - break; + if (!rdev->ops->set_pmksa) + return -EOPNOTSUPP; + + return rdev_set_pmksa(rdev, dev, &pmksa); +} + +static int nl80211_del_pmksa(struct sk_buff *skb, struct genl_info *info) +{ + struct cfg80211_registered_device *rdev = info->user_ptr[0]; + struct net_device *dev = info->user_ptr[1]; + struct cfg80211_pmksa pmksa; + bool sae_offload_support = false; + bool owe_offload_support = false; + bool ap_pmksa_caching_support = false; + + memset(&pmksa, 0, sizeof(struct cfg80211_pmksa)); + + sae_offload_support = wiphy_ext_feature_isset(&rdev->wiphy, + NL80211_EXT_FEATURE_SAE_OFFLOAD); + owe_offload_support = wiphy_ext_feature_isset(&rdev->wiphy, + NL80211_EXT_FEATURE_OWE_OFFLOAD); + ap_pmksa_caching_support = wiphy_ext_feature_isset(&rdev->wiphy, + NL80211_EXT_FEATURE_AP_PMKSA_CACHING); + + if (info->attrs[NL80211_ATTR_PMKID]) + pmksa.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]); + + if (info->attrs[NL80211_ATTR_MAC]) { + pmksa.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); + } else if (info->attrs[NL80211_ATTR_SSID]) { + /* SSID based pmksa flush suppported only for FILS, + * OWE/SAE OFFLOAD cases + */ + if (info->attrs[NL80211_ATTR_FILS_CACHE_ID] && + info->attrs[NL80211_ATTR_PMK]) { + pmksa.cache_id = nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]); + } else if (!sae_offload_support && !owe_offload_support) { + return -EINVAL; + } + pmksa.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); + pmksa.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); + } else { + return -EINVAL; } - if (!rdev_ops) + if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION && + dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT && + !((dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP || + dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO) && + ap_pmksa_caching_support)) return -EOPNOTSUPP; - return rdev_ops(&rdev->wiphy, dev, &pmksa); + if (!rdev->ops->del_pmksa) + return -EOPNOTSUPP; + + return rdev_del_pmksa(rdev, dev, &pmksa); } static int nl80211_flush_pmksa(struct sk_buff *skb, struct genl_info *info) @@ -16817,7 +16857,7 @@ static const struct genl_small_ops nl80211_small_ops[] = { { .cmd = NL80211_CMD_SET_PMKSA, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .doit = nl80211_setdel_pmksa, + .doit = nl80211_set_pmksa, .flags = GENL_UNS_ADMIN_PERM, .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_CLEAR_SKB), @@ -16825,7 +16865,7 @@ static const struct genl_small_ops nl80211_small_ops[] = { { .cmd = NL80211_CMD_DEL_PMKSA, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .doit = nl80211_setdel_pmksa, + .doit = nl80211_del_pmksa, .flags = GENL_UNS_ADMIN_PERM, .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), }, From 82bf9e7625bebc1aef7271ea8f0c9b256b2a89ce Mon Sep 17 00:00:00 2001 From: Kalesh Singh Date: Tue, 9 Jan 2024 17:22:33 -0800 Subject: [PATCH 2/7] FROMGIT: BACKPORT: mm/cma: fix placement of trace_cma_alloc_start/finish The current placement of trace_cma_alloc_start/finish misses the fail cases: !cma || !cma->count || !cma->bitmap. trace_cma_alloc_finish is also not emitted for the failure case where bitmap_count > bitmap_maxno. Fix these missed cases by moving the start event before the failure checks and moving the finish event to the out label. Link: https://lkml.kernel.org/r/20240110012234.3793639-1-kaleshsingh@google.com Fixes: 7bc1aec5e287 ("mm: cma: add trace events for CMA alloc perf testing") Change-Id: I61153fe078da4f9f3338147f1fbb7697a5554078 Signed-off-by: Kalesh Singh Cc: Minchan Kim Cc: Liam Mark Signed-off-by: Andrew Morton (cherry picked from commit 3b08ab9a811caebe1327f25f51557f95200d94bf https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable) Bug: 315897033 [ Remove ret arg from trace_cma_alloc_finish - Kalesh Singh ] Signed-off-by: Kalesh Singh --- mm/cma.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/cma.c b/mm/cma.c index b64768625d82..6d466c77630f 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -438,6 +438,9 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count, int ret = -ENOMEM; int num_attempts = 0; int max_retries = 5; + const char *name = cma ? cma->name : NULL; + + trace_cma_alloc_start(name, count, align); if (WARN_ON_ONCE((gfp_mask & GFP_KERNEL) == 0 || (gfp_mask & ~(GFP_KERNEL|__GFP_NOWARN|__GFP_NORETRY)) != 0)) @@ -452,8 +455,6 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count, if (!count) goto out; - trace_cma_alloc_start(cma->name, count, align); - mask = cma_bitmap_aligned_mask(cma, align); offset = cma_bitmap_aligned_offset(cma, align); bitmap_maxno = cma_bitmap_maxno(cma); @@ -522,8 +523,6 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count, start = bitmap_no + mask + 1; } - trace_cma_alloc_finish(cma->name, pfn, page, count, align); - /* * CMA can allocate multiple page blocks, which results in different * blocks being marked with different tags. Reset the tags to ignore @@ -542,6 +541,7 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count, pr_debug("%s(): returned %p\n", __func__, page); out: + trace_cma_alloc_finish(name, pfn, page, count, align); if (page) { count_vm_event(CMA_ALLOC_SUCCESS); cma_sysfs_account_success_pages(cma, count); From fd40c1d9017aae068ebbd569f1319588e3f78a34 Mon Sep 17 00:00:00 2001 From: Nikita Ioffe Date: Thu, 11 Jan 2024 10:49:01 +0000 Subject: [PATCH 3/7] ANDROID: add 16k targets for Microdroid kernel Bug: 317201718 Test: tools/bazel run //common:kernel_aarch64_microdroid_16k_dist Change-Id: I542f07d1d0b4f2b6a3c4c58185eee16b2b7f1667 Signed-off-by: Nikita Ioffe --- BUILD.bazel | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/BUILD.bazel b/BUILD.bazel index 6f4d747cdc94..1c1dc8627744 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -198,6 +198,34 @@ copy_to_dist_dir( log = "info", ) +kernel_build( + name = "kernel_aarch64_microdroid_16k", + srcs = ["//common:kernel_aarch64_sources"], + outs = [ + "Image", + "System.map", + "modules.builtin", + "modules.builtin.modinfo", + "vmlinux", + "vmlinux.symvers", + ], + build_config = "build.config.microdroid.aarch64", + make_goals = [ + "Image", + ], + page_size = "16k", +) + +copy_to_dist_dir( + name = "kernel_aarch64_microdroid_16k_dist", + data = [ + ":kernel_aarch64_microdroid_16k", + ], + dist_dir = "out/kernel_aarch64_microdroid_16k/dist", + flat = True, + log = "info", +) + # Microdroid is not a real device. The kernel image is built with special # configs to reduce the size. Hence, not using mixed build. kernel_build( From d4db0d5d081dfa2e41a2895c076c33aeb463f21f Mon Sep 17 00:00:00 2001 From: Lianjun Huang Date: Tue, 12 Dec 2023 15:51:36 +0800 Subject: [PATCH 4/7] ANDROID: GKI: add vendor hooks for swapping in ahead Add vendor hooks to capture demand paging during APP launch, so we can do it in advance in next launch. Bug: 315913896 Signed-off-by: Lianjun Huang Signed-off-by: Lianjun Huang Change-Id: I2698fefd347745fb4ff84b111caedbb3bb365ce3 --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/mm.h | 3 +++ mm/readahead.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index ee68032b1918..14bb47fcf8b0 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -312,6 +312,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_unregister); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_thermal_zone_device); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_power_cap); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_read_pages); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_reclaim_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_failure_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_pageout_swap_entry); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 0bd0c34e17b9..50addc57dc10 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -76,6 +76,9 @@ struct slabinfo; DECLARE_HOOK(android_vh_cache_show, TP_PROTO(struct seq_file *m, struct slabinfo *sinfo, struct kmem_cache *s), TP_ARGS(m, sinfo, s)); +DECLARE_HOOK(android_vh_read_pages, + TP_PROTO(struct readahead_control *ractl), + TP_ARGS(ractl)); DECLARE_HOOK(android_vh_alloc_pages_reclaim_bypass, TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags, int migratetype, struct page **page), diff --git a/mm/readahead.c b/mm/readahead.c index a8620cac2d83..dc5cc73775e7 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -167,6 +167,7 @@ static void read_pages(struct readahead_control *rac) psi_memstall_enter(&rac->_pflags); blk_start_plug(&plug); + trace_android_vh_read_pages(rac); if (aops->readahead) { aops->readahead(rac); /* From a70d3b7bdd7822665db5248f9b556fae267b116c Mon Sep 17 00:00:00 2001 From: Lianjun Huang Date: Mon, 8 Jan 2024 10:59:49 +0800 Subject: [PATCH 5/7] ANDROID: GKI: add symbols of vendor hooks to ABI for swapping in ahead Add symbols of vendor hooks to capture demand paging during APP launch, so we can do it in advance in next launch. INFO: 1 function symbol(s) added 'int __traceiter_android_vh_read_pages(void*, struct readahead_control*)' 1 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_read_pages' Bug: 315913896 Signed-off-by: Lianjun Huang Signed-off-by: Lianjun Huang Change-Id: Ibb1e31b6912f7b6b92b76727f7e5043897434def --- android/abi_gki_aarch64.stg | 26 ++++++++++++++++++++++++++ android/abi_gki_aarch64_xiaomi | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 573e477d70d3..8da5d4a06705 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -317298,6 +317298,12 @@ function { parameter_id: 0x064d6086 parameter_id: 0x064d6086 } +function { + id: 0x9b32d0a3 + return_type_id: 0x6720d32f + parameter_id: 0x18bd6530 + parameter_id: 0x275ab027 +} function { id: 0x9b32f2ad return_type_id: 0x6720d32f @@ -337670,6 +337676,15 @@ elf_symbol { type_id: 0x9b3343fb full_name: "__traceiter_android_vh_ra_tuning_max_page" } +elf_symbol { + id: 0xb35da0ec + name: "__traceiter_android_vh_read_pages" + is_defined: true + symbol_type: FUNCTION + crc: 0x4cb21384 + type_id: 0x9b32d0a3 + full_name: "__traceiter_android_vh_read_pages" +} elf_symbol { id: 0x7d069e91 name: "__traceiter_android_vh_record_mutex_lock_starttime" @@ -341675,6 +341690,15 @@ elf_symbol { type_id: 0x18ccbd2c full_name: "__tracepoint_android_vh_ra_tuning_max_page" } +elf_symbol { + id: 0x9fc2933e + name: "__tracepoint_android_vh_read_pages" + is_defined: true + symbol_type: OBJECT + crc: 0xb3878023 + type_id: 0x18ccbd2c + full_name: "__tracepoint_android_vh_read_pages" +} elf_symbol { id: 0x761f292f name: "__tracepoint_android_vh_record_mutex_lock_starttime" @@ -399443,6 +399467,7 @@ interface { symbol_id: 0xf2c39651 symbol_id: 0x93303c51 symbol_id: 0x3a545b61 + symbol_id: 0xb35da0ec symbol_id: 0x7d069e91 symbol_id: 0x0fa39b81 symbol_id: 0x1a91ec8c @@ -399888,6 +399913,7 @@ interface { symbol_id: 0x0e92ee53 symbol_id: 0xb0c197a3 symbol_id: 0x811d5fab + symbol_id: 0x9fc2933e symbol_id: 0x761f292f symbol_id: 0xef7ad117 symbol_id: 0x158c4cfa diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi index 1ca73267f242..d502877c9b2c 100644 --- a/android/abi_gki_aarch64_xiaomi +++ b/android/abi_gki_aarch64_xiaomi @@ -341,3 +341,7 @@ #required by zram.ko bioset_init bioset_exit + +#required by mi_asap.ko + __traceiter_android_vh_read_pages + __tracepoint_android_vh_read_pages From 66cd99ccdbea66677398e65065a275d0bdc43482 Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Thu, 2 Feb 2023 13:53:29 -0800 Subject: [PATCH 6/7] BACKPORT: UPSTREAM: phy: qcom-qmp: Introduce Kconfig symbols for discrete drivers Introduce a config option for each QMP PHY driver now that the QMP PHY mega-driver has been split up into different modules. This allows kernel configurators to limit the binary size of the kernel by only compiling in the QMP PHY driver that they need. Leave the old config QCOM_QMP in place and make it into a menuconfig so that 'make olddefconfig' continues to work. Furthermore, set the default of the new Kconfig symbols to be QCOM_QMP so that the transition is smooth. Reviewed-by: Dmitry Baryshkov Reviewed-by: Johan Hovold Signed-off-by: Stephen Boyd Link: https://lore.kernel.org/all/20230202215330.2152726-1-swboyd@chromium.org/ Bug: 319064658 Change-Id: I633e6e1bbc3e79292bfde927e46f84219f0178ae (cherry picked from commit d1abd69534bec16c43c633313e8e937af1354a7a) [quic_kuruva: Resolved minor conflict in drivers/phy/qualcomm/Kconfig ] Signed-off-by: Rajashekar kuruva --- drivers/phy/qualcomm/Kconfig | 50 ++++++++++++++++++++++++++++++++--- drivers/phy/qualcomm/Makefile | 12 ++++----- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/drivers/phy/qualcomm/Kconfig b/drivers/phy/qualcomm/Kconfig index 5c98850f5a36..1d3a8062e651 100644 --- a/drivers/phy/qualcomm/Kconfig +++ b/drivers/phy/qualcomm/Kconfig @@ -50,13 +50,55 @@ config PHY_QCOM_PCIE2 Enable this to support the Qualcomm PCIe PHY, used with the Synopsys based PCIe controller. -config PHY_QCOM_QMP - tristate "Qualcomm QMP PHY Driver" +menuconfig PHY_QCOM_QMP + tristate "Qualcomm QMP PHY Drivers" depends on OF && COMMON_CLK && (ARCH_QCOM || COMPILE_TEST) + +if PHY_QCOM_QMP + +config PHY_QCOM_QMP_COMBO + tristate "Qualcomm QMP Combo PHY Driver" + default PHY_QCOM_QMP select GENERIC_PHY help - Enable this to support the QMP PHY transceiver that is used - with controllers such as PCIe, UFS, and USB on Qualcomm chips. + Enable this to support the QMP Combo PHY transceiver that is used + with USB3 and DisplayPort controllers on Qualcomm chips. + +config PHY_QCOM_QMP_PCIE + tristate "Qualcomm QMP PCIe PHY Driver" + depends on PCI || COMPILE_TEST + select GENERIC_PHY + default PHY_QCOM_QMP + help + Enable this to support the QMP PCIe PHY transceiver that is used + with PCIe controllers on Qualcomm chips. + +config PHY_QCOM_QMP_PCIE_8996 + tristate "Qualcomm QMP PCIe 8996 PHY Driver" + depends on PCI || COMPILE_TEST + select GENERIC_PHY + default PHY_QCOM_QMP + help + Enable this to support the QMP PCIe PHY transceiver that is used + with PCIe controllers on Qualcomm msm8996 chips. + +config PHY_QCOM_QMP_UFS + tristate "Qualcomm QMP UFS PHY Driver" + select GENERIC_PHY + default PHY_QCOM_QMP + help + Enable this to support the QMP UFS PHY transceiver that is used + with UFS controllers on Qualcomm chips. + +config PHY_QCOM_QMP_USB + tristate "Qualcomm QMP USB PHY Driver" + select GENERIC_PHY + default PHY_QCOM_QMP + help + Enable this to support the QMP USB PHY transceiver that is used + with USB3 controllers on Qualcomm chips. + +endif # PHY_QCOM_QMP config PHY_QCOM_QUSB2 tristate "Qualcomm QUSB2 PHY Driver" diff --git a/drivers/phy/qualcomm/Makefile b/drivers/phy/qualcomm/Makefile index 65f6c30a3e93..79dd4e507961 100644 --- a/drivers/phy/qualcomm/Makefile +++ b/drivers/phy/qualcomm/Makefile @@ -5,12 +5,12 @@ obj-$(CONFIG_PHY_QCOM_EDP) += phy-qcom-edp.o obj-$(CONFIG_PHY_QCOM_IPQ4019_USB) += phy-qcom-ipq4019-usb.o obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA) += phy-qcom-ipq806x-sata.o obj-$(CONFIG_PHY_QCOM_PCIE2) += phy-qcom-pcie2.o -obj-$(CONFIG_PHY_QCOM_QMP) += \ - phy-qcom-qmp-combo.o \ - phy-qcom-qmp-pcie.o \ - phy-qcom-qmp-pcie-msm8996.o \ - phy-qcom-qmp-ufs.o \ - phy-qcom-qmp-usb.o + +obj-$(CONFIG_PHY_QCOM_QMP_COMBO) += phy-qcom-qmp-combo.o +obj-$(CONFIG_PHY_QCOM_QMP_PCIE) += phy-qcom-qmp-pcie.o +obj-$(CONFIG_PHY_QCOM_QMP_PCIE_8996) += phy-qcom-qmp-pcie-msm8996.o +obj-$(CONFIG_PHY_QCOM_QMP_UFS) += phy-qcom-qmp-ufs.o +obj-$(CONFIG_PHY_QCOM_QMP_USB) += phy-qcom-qmp-usb.o obj-$(CONFIG_PHY_QCOM_QUSB2) += phy-qcom-qusb2.o obj-$(CONFIG_PHY_QCOM_USB_HS) += phy-qcom-usb-hs.o From df1cdb0a703318d8804872fa93e30208ad14398c Mon Sep 17 00:00:00 2001 From: Qian-Hao Huang Date: Mon, 15 Jan 2024 19:58:07 +0800 Subject: [PATCH 7/7] ANDROID: Update the pixel symbol list These symbols are needed as part of an upgrade to v6.1: - add_uevent_var - aes_encrypt - aes_expandkey - alloc_skb_with_frags - cpufreq_quick_get_max - cpuidle_governor_latency_req - cpu_topology - crypto_shash_final - datagram_poll - debugfs_create_blob - dev_pm_qos_add_notifier - dev_pm_qos_add_request - dev_pm_qos_remove_notifier - dev_pm_qos_remove_request - dma_direct_alloc - dma_direct_free - dma_get_sgtable_attrs - firmware_request_nowarn - idr_alloc_cyclic - in_egroup_p - init_user_ns - iov_iter_revert - __ipv6_addr_type - kernel_bind - kernel_connect - kernel_getsockname - kernel_recvmsg - kernel_sendmsg - kmem_cache_create_usercopy - ksize - lock_sock_nested - mempool_alloc - mempool_alloc_slab - mempool_create - mempool_destroy - mempool_free - mempool_free_slab - napi_gro_flush - netif_tx_lock - netif_tx_unlock - ns_capable_noaudit - param_get_string - param_set_copystring - param_set_int - pci_disable_msi - pcie_capability_read_word - pci_iomap - pci_iounmap - pci_irq_vector - pci_release_region - pci_request_region - pm_system_wakeup - proto_register - proto_unregister - radix_tree_iter_delete - radix_tree_next_chunk - _raw_read_lock_irq - _raw_read_unlock_irq - _raw_write_lock_bh - _raw_write_unlock_bh - refcount_dec_not_one - register_netevent_notifier - regulator_set_load - release_sock - seq_vprintf - sk_alloc - skb_coalesce_rx_frag - skb_copy_datagram_iter - skb_free_datagram - __skb_pad - skb_recv_datagram - skb_set_owner_w - skb_store_bits - sk_free - sock_alloc_send_pskb - sock_create_kern - sock_gettstamp - sock_init_data - sock_no_accept - sock_no_listen - sock_no_mmap - sock_no_sendpage - sock_no_shutdown - sock_no_socketpair - sock_queue_rcv_skb_reason - sock_register - sock_setsockopt - sock_unregister - strchrnul - unregister_netevent_notifier - vscnprintf - wait_for_completion_killable - wireless_send_event - __xa_insert - xa_store Bug: 303533633 Bug: 308924989 Change-Id: Ifbc09d5025f1bd3416f136fabd344ef2452390a8 Signed-off-by: Qian-Hao Huang --- android/abi_gki_aarch64.stg | 30 +++++++++++ android/abi_gki_aarch64_pixel | 95 +++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) diff --git a/android/abi_gki_aarch64.stg b/android/abi_gki_aarch64.stg index 8da5d4a06705..a7a7e77c8c92 100644 --- a/android/abi_gki_aarch64.stg +++ b/android/abi_gki_aarch64.stg @@ -354353,6 +354353,24 @@ elf_symbol { type_id: 0x1023f4f6 full_name: "dma_contiguous_default_area" } +elf_symbol { + id: 0x279bd3a7 + name: "dma_direct_alloc" + is_defined: true + symbol_type: FUNCTION + crc: 0xb02b3af0 + type_id: 0x55df36a2 + full_name: "dma_direct_alloc" +} +elf_symbol { + id: 0x0e847130 + name: "dma_direct_free" + is_defined: true + symbol_type: FUNCTION + crc: 0x051debf6 + type_id: 0x13db1955 + full_name: "dma_direct_free" +} elf_symbol { id: 0xd13969dd name: "dma_fence_add_callback" @@ -372911,6 +372929,15 @@ elf_symbol { type_id: 0xfcd23386 full_name: "ns_capable" } +elf_symbol { + id: 0x27a870d1 + name: "ns_capable_noaudit" + is_defined: true + symbol_type: FUNCTION + crc: 0x3c75b0e0 + type_id: 0xfcd23386 + full_name: "ns_capable_noaudit" +} elf_symbol { id: 0xf68f8b33 name: "ns_to_kernel_old_timeval" @@ -401319,6 +401346,8 @@ interface { symbol_id: 0x710f1fc2 symbol_id: 0xaa54a71f symbol_id: 0x5f554bc7 + symbol_id: 0x279bd3a7 + symbol_id: 0x0e847130 symbol_id: 0xd13969dd symbol_id: 0xe2ee283f symbol_id: 0xf5808a3e @@ -403381,6 +403410,7 @@ interface { symbol_id: 0xea37502b symbol_id: 0x0bb7f730 symbol_id: 0xb65e3baf + symbol_id: 0x27a870d1 symbol_id: 0xf68f8b33 symbol_id: 0xfab02ca8 symbol_id: 0xd7668767 diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel index d0f6d7be74ff..fac865d11e03 100644 --- a/android/abi_gki_aarch64_pixel +++ b/android/abi_gki_aarch64_pixel @@ -3,8 +3,11 @@ add_cpu add_timer add_timer_on + add_uevent_var add_wait_queue adjust_managed_page_count + aes_encrypt + aes_expandkey alarm_cancel alarm_init alarm_start_relative @@ -19,6 +22,7 @@ __alloc_percpu __alloc_percpu_gfp __alloc_skb + alloc_skb_with_frags alloc_workqueue alt_cb_patch_nops amba_bustype @@ -243,6 +247,7 @@ cpufreq_get_policy cpufreq_policy_transition_delay_us cpufreq_quick_get + cpufreq_quick_get_max cpufreq_register_driver cpufreq_register_governor cpufreq_register_notifier @@ -261,6 +266,7 @@ cpu_hwcaps cpuidle_driver_state_disabled cpuidle_get_driver + cpuidle_governor_latency_req cpu_latency_qos_add_request cpu_latency_qos_remove_request cpu_latency_qos_update_request @@ -276,6 +282,7 @@ cpus_read_lock cpus_read_unlock cpu_subsys + cpu_topology crc32_be crc32_le crc8 @@ -298,6 +305,7 @@ crypto_register_shash crypto_req_done crypto_shash_digest + crypto_shash_final crypto_shash_finup crypto_shash_setkey crypto_shash_update @@ -311,10 +319,12 @@ csum_partial csum_tcpudp_nofold _ctype + datagram_poll deactivate_task debugfs_attr_read debugfs_attr_write debugfs_create_atomic_t + debugfs_create_blob debugfs_create_bool debugfs_create_devm_seqfile debugfs_create_dir @@ -499,7 +509,11 @@ dev_pm_opp_of_remove_table dev_pm_opp_put dev_pm_opp_set_config + dev_pm_qos_add_notifier + dev_pm_qos_add_request dev_pm_qos_read_value + dev_pm_qos_remove_notifier + dev_pm_qos_remove_request dev_pm_qos_update_request _dev_printk dev_printk_emit @@ -540,6 +554,8 @@ dma_buf_unmap_attachment dma_buf_vmap dma_buf_vunmap + dma_direct_alloc + dma_direct_free dmaengine_unmap_put dma_fence_add_callback dma_fence_array_create @@ -559,6 +575,7 @@ dma_fence_wait_timeout dma_free_attrs dma_free_pages + dma_get_sgtable_attrs dma_get_slave_caps dma_get_slave_channel dma_heap_add @@ -865,6 +882,7 @@ find_task_by_vpid find_vma_intersection finish_wait + firmware_request_nowarn flush_dcache_page flush_delayed_work flush_work @@ -1037,6 +1055,7 @@ ida_destroy ida_free idr_alloc + idr_alloc_cyclic idr_destroy idr_find idr_for_each @@ -1056,6 +1075,7 @@ in6_pton in_aton inc_zone_page_state + in_egroup_p inet_csk_get_port init_dummy_netdev init_iova_domain @@ -1065,6 +1085,7 @@ __init_swait_queue_head init_task init_timer_key + init_user_ns init_uts_ns init_wait_entry __init_waitqueue_head @@ -1132,8 +1153,10 @@ io_schedule_timeout iounmap iova_domain_init_rcaches + iov_iter_revert ip_compute_csum ip_send_check + __ipv6_addr_type __irq_alloc_descs __irq_apply_affinity_hint irq_create_mapping_affinity @@ -1165,11 +1188,16 @@ jiffies_to_usecs kasan_flag_enabled kasprintf + kernel_bind + kernel_connect kernel_cpustat + kernel_getsockname kernel_kobj kernel_param_lock kernel_param_unlock + kernel_recvmsg kernel_restart + kernel_sendmsg kernfs_find_and_get_ns kernfs_notify kernfs_path_from_node @@ -1196,6 +1224,7 @@ kmalloc_trace kmem_cache_alloc kmem_cache_create + kmem_cache_create_usercopy kmem_cache_destroy kmem_cache_free kmemdup @@ -1210,6 +1239,7 @@ kobject_uevent_env kobj_sysfs_ops krealloc + ksize kstat kstrdup kstrndup @@ -1274,6 +1304,7 @@ __list_del_entry_valid list_sort __local_bh_enable_ip + lock_sock_nested log_abnormal_wakeup_reason log_post_read_mmio log_post_write_mmio @@ -1299,6 +1330,12 @@ memdup_user_nul memmove memparse + mempool_alloc + mempool_alloc_slab + mempool_create + mempool_destroy + mempool_free + mempool_free_slab memremap mem_section memset @@ -1350,6 +1387,7 @@ napi_complete_done napi_disable napi_enable + napi_gro_flush napi_gro_receive __napi_schedule napi_schedule_prep @@ -1366,7 +1404,9 @@ netif_receive_skb netif_receive_skb_list netif_rx + netif_tx_lock netif_tx_stop_all_queues + netif_tx_unlock netif_tx_wake_queue netlink_broadcast __netlink_kernel_create @@ -1393,6 +1433,7 @@ nr_cpu_ids nr_irqs ns_capable + ns_capable_noaudit nsec_to_clock_t ns_to_timespec64 __num_online_cpus @@ -1494,6 +1535,7 @@ panic_notifier_list param_array_ops param_get_int + param_get_string param_ops_bool param_ops_byte param_ops_charp @@ -1502,10 +1544,14 @@ param_ops_string param_ops_uint param_ops_ulong + param_set_copystring + param_set_int pci_alloc_irq_vectors_affinity pci_assign_resource pci_clear_master pci_disable_device + pci_disable_msi + pcie_capability_read_word pci_enable_device pci_enable_wake pci_find_bus @@ -1513,6 +1559,9 @@ pci_find_ext_capability pci_free_irq_vectors pci_get_device + pci_iomap + pci_iounmap + pci_irq_vector pci_load_and_free_saved_state pci_load_saved_state pci_msi_mask_irq @@ -1520,7 +1569,9 @@ pci_read_config_dword pci_read_config_word __pci_register_driver + pci_release_region pci_release_regions + pci_request_region pci_rescan_bus pci_restore_msi_state pci_restore_state @@ -1618,6 +1669,7 @@ __pm_runtime_use_autosuspend __pm_stay_awake pm_stay_awake + pm_system_wakeup pm_wakeup_dev_event pm_wakeup_ws_event power_supply_changed @@ -1652,6 +1704,8 @@ proc_remove proc_set_size proc_symlink + proto_register + proto_unregister pskb_expand_head __pskb_pull_tail ___pskb_trim @@ -1672,7 +1726,9 @@ radix_tree_delete_item radix_tree_gang_lookup radix_tree_insert + radix_tree_iter_delete radix_tree_lookup + radix_tree_next_chunk radix_tree_preload ___ratelimit raw_notifier_call_chain @@ -1680,9 +1736,11 @@ raw_notifier_chain_unregister _raw_read_lock _raw_read_lock_bh + _raw_read_lock_irq _raw_read_lock_irqsave _raw_read_unlock _raw_read_unlock_bh + _raw_read_unlock_irq _raw_read_unlock_irqrestore _raw_spin_lock _raw_spin_lock_bh @@ -1696,9 +1754,11 @@ _raw_spin_unlock_irq _raw_spin_unlock_irqrestore _raw_write_lock + _raw_write_lock_bh _raw_write_lock_irq _raw_write_lock_irqsave _raw_write_unlock + _raw_write_unlock_bh _raw_write_unlock_irq _raw_write_unlock_irqrestore rb_erase @@ -1713,6 +1773,7 @@ rdev_get_drvdata rdev_get_id reboot_mode + refcount_dec_not_one refcount_warn_saturate __refrigerator regcache_cache_only @@ -1730,6 +1791,7 @@ register_netdev register_netdevice register_netdevice_notifier + register_netevent_notifier register_oom_notifier register_pernet_device register_pernet_subsys @@ -1772,11 +1834,13 @@ regulator_notifier_call_chain regulator_put regulator_set_active_discharge_regmap + regulator_set_load regulator_set_voltage regulator_set_voltage_sel_regmap regulator_unregister release_firmware __release_region + release_sock remap_pfn_range remap_vmalloc_range remove_cpu @@ -1877,6 +1941,7 @@ seq_read seq_release seq_release_private + seq_vprintf seq_write set_capacity set_capacity_and_notify @@ -1917,20 +1982,25 @@ single_open single_open_size single_release + sk_alloc skb_add_rx_frag skb_checksum skb_checksum_help skb_clone skb_clone_sk + skb_coalesce_rx_frag skb_complete_wifi_ack skb_copy skb_copy_bits + skb_copy_datagram_iter skb_copy_expand skb_dequeue skb_dequeue_tail skb_ensure_writable + skb_free_datagram __skb_get_hash __skb_gso_segment + __skb_pad skb_pull skb_push skb_put @@ -1938,7 +2008,11 @@ skb_queue_purge skb_queue_tail skb_realloc_headroom + skb_recv_datagram + skb_set_owner_w + skb_store_bits skb_trim + sk_free skip_spaces smp_call_function smp_call_function_single @@ -2015,8 +2089,22 @@ snd_soc_unregister_component snprintf soc_device_register + sock_alloc_send_pskb __sock_create + sock_create_kern + sock_gettstamp + sock_init_data + sock_no_accept + sock_no_listen + sock_no_mmap + sock_no_sendpage + sock_no_shutdown + sock_no_socketpair + sock_queue_rcv_skb_reason + sock_register sock_release + sock_setsockopt + sock_unregister sock_wfree softnet_data sort @@ -2054,6 +2142,7 @@ strcasecmp strcat strchr + strchrnul strcmp strcpy strcspn @@ -2456,6 +2545,7 @@ unregister_netdevice_many unregister_netdevice_notifier unregister_netdevice_queue + unregister_netevent_notifier unregister_oom_notifier unregister_pernet_device unregister_pernet_subsys @@ -2604,6 +2694,7 @@ vring_del_virtqueue vring_interrupt vring_new_virtqueue + vscnprintf vsnprintf vunmap vzalloc @@ -2611,6 +2702,7 @@ wait_for_completion wait_for_completion_interruptible wait_for_completion_interruptible_timeout + wait_for_completion_killable wait_for_completion_timeout wait_woken __wake_up @@ -2628,6 +2720,7 @@ watchdog_set_restart_priority watchdog_unregister_device wireless_nlevent_flush + wireless_send_event woken_wake_function work_busy __write_overflow_field @@ -2639,11 +2732,13 @@ xa_find xa_find_after xa_get_mark + __xa_insert xa_load xa_set_mark xas_find xas_pause __xa_store + xa_store __xfrm_state_destroy xfrm_state_lookup_byspi xfrm_stateonly_find