From nobody Wed Apr 15 04:23:11 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B15EFC433EF for ; Tue, 26 Jul 2022 09:41:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238104AbiGZJlU (ORCPT ); Tue, 26 Jul 2022 05:41:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232075AbiGZJlC (ORCPT ); Tue, 26 Jul 2022 05:41:02 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B4C152B1A3 for ; Tue, 26 Jul 2022 02:41:00 -0700 (PDT) Received: from localhost.localdomain (unknown [10.2.5.185]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Dxv9Ghtt9i7Wk5AA--.17387S3; Tue, 26 Jul 2022 17:40:49 +0800 (CST) From: Bibo Mao To: Huacai Chen Cc: WANG Xuerui , Jiaxun Yang , loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] LoongArch: Remove clock setting during cpu hotplug stage Date: Tue, 26 Jul 2022 17:40:48 +0800 Message-Id: <20220726094049.7200-2-maobibo@loongson.cn> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220726094049.7200-1-maobibo@loongson.cn> References: <20220726094049.7200-1-maobibo@loongson.cn> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: AQAAf9Dxv9Ghtt9i7Wk5AA--.17387S3 X-Coremail-Antispam: 1UD129KBjvJXoW7Kry5Jry8uryDGw1rurWDtwb_yoW8tFy5pr nxu3Z7Kr4kKwn7uw1ktryDCr15Cwn7Gw17ZFy7G34rAa4qyr1UuFyktFZ7XFWft3sFva1F gr1kurWjka4DWrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnUUvcSsGvfC2KfnxnUUI43ZEXa7xR_UUUUUUUUU== X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" On physical machine we can save power by disabling clock of hot removed cpu. However as different platforms require different methods to configure clocks, the code is platform-specific, and probably belongs to firmware/pmu or cpu regulator, rather than generic arch/loongarch code. Also there is no such register on QEMU virt machine since the clock/frequency regulation is not emulated. This patch removes the hard-coded clock register accessing in generic loongarch cpu hotplug flow. Signed-off-by: Bibo Mao Reviewed-by: WANG Xuerui --- arch/loongarch/kernel/smp.c | 29 ----------------------------- include/linux/cpuhotplug.h | 1 - 2 files changed, 30 deletions(-) diff --git a/arch/loongarch/kernel/smp.c b/arch/loongarch/kernel/smp.c index 73cec62504fb..98b3e059d344 100644 --- a/arch/loongarch/kernel/smp.c +++ b/arch/loongarch/kernel/smp.c @@ -359,35 +359,6 @@ void play_dead(void) play_dead_uncached(state_addr); } =20 -static int loongson3_enable_clock(unsigned int cpu) -{ - uint64_t core_id =3D cpu_data[cpu].core; - uint64_t package_id =3D cpu_data[cpu].package; - - LOONGSON_FREQCTRL(package_id) |=3D 1 << (core_id * 4 + 3); - - return 0; -} - -static int loongson3_disable_clock(unsigned int cpu) -{ - uint64_t core_id =3D cpu_data[cpu].core; - uint64_t package_id =3D cpu_data[cpu].package; - - LOONGSON_FREQCTRL(package_id) &=3D ~(1 << (core_id * 4 + 3)); - - return 0; -} - -static int register_loongson3_notifier(void) -{ - return cpuhp_setup_state_nocalls(CPUHP_LOONGARCH_SOC_PREPARE, - "loongarch/loongson:prepare", - loongson3_enable_clock, - loongson3_disable_clock); -} -early_initcall(register_loongson3_notifier); - #endif =20 /* diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h index 19f0dbfdd7fe..b66c5f389159 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -130,7 +130,6 @@ enum cpuhp_state { CPUHP_ZCOMP_PREPARE, CPUHP_TIMERS_PREPARE, CPUHP_MIPS_SOC_PREPARE, - CPUHP_LOONGARCH_SOC_PREPARE, CPUHP_BP_PREPARE_DYN, CPUHP_BP_PREPARE_DYN_END =3D CPUHP_BP_PREPARE_DYN + 20, CPUHP_BRINGUP_CPU, --=20 2.31.1 From nobody Wed Apr 15 04:23:11 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 130F4C43334 for ; Tue, 26 Jul 2022 09:41:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237911AbiGZJlQ (ORCPT ); Tue, 26 Jul 2022 05:41:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43138 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230339AbiGZJlC (ORCPT ); Tue, 26 Jul 2022 05:41:02 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B4D4D2B1BA for ; Tue, 26 Jul 2022 02:41:00 -0700 (PDT) Received: from localhost.localdomain (unknown [10.2.5.185]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Dxv9Ghtt9i7Wk5AA--.17387S4; Tue, 26 Jul 2022 17:40:49 +0800 (CST) From: Bibo Mao To: Huacai Chen Cc: WANG Xuerui , Jiaxun Yang , loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] LoongArch: Remove unused variable Date: Tue, 26 Jul 2022 17:40:49 +0800 Message-Id: <20220726094049.7200-3-maobibo@loongson.cn> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220726094049.7200-1-maobibo@loongson.cn> References: <20220726094049.7200-1-maobibo@loongson.cn> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: AQAAf9Dxv9Ghtt9i7Wk5AA--.17387S4 X-Coremail-Antispam: 1UD129KBjvJXoWxGryrCw1xAryrKF13GF1UGFg_yoW5XrWDpF 9xAwnagr4Ygrn5Zr98JFW5WF1jkasxGwnrZanFv3W8uFnrZ34UXrykCFykZFZFvaykAay0 qFZ5C3yvga1jgwUanT9S1TB71UUUUUDqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnUUvcSsGvfC2KfnxnUUI43ZEXa7xR_UUUUUUUUU== X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" There are some variables never used or referenced, this patch removes these varaibles and make the code cleaner. Signed-off-by: Bibo Mao Reviewed-by: WANG Xuerui --- arch/loongarch/include/asm/loongson.h | 12 ------------ arch/loongarch/kernel/env.c | 20 -------------------- 2 files changed, 32 deletions(-) diff --git a/arch/loongarch/include/asm/loongson.h b/arch/loongarch/include= /asm/loongson.h index 6a8038725ba7..2df649e73371 100644 --- a/arch/loongarch/include/asm/loongson.h +++ b/arch/loongarch/include/asm/loongson.h @@ -39,18 +39,6 @@ extern const struct plat_smp_ops loongson3_smp_ops; =20 #define MAX_PACKAGES 16 =20 -/* Chip Config register of each physical cpu package */ -extern u64 loongson_chipcfg[MAX_PACKAGES]; -#define LOONGSON_CHIPCFG(id) (*(volatile u32 *)(loongson_chipcfg[id])) - -/* Chip Temperature register of each physical cpu package */ -extern u64 loongson_chiptemp[MAX_PACKAGES]; -#define LOONGSON_CHIPTEMP(id) (*(volatile u32 *)(loongson_chiptemp[id])) - -/* Freq Control register of each physical cpu package */ -extern u64 loongson_freqctrl[MAX_PACKAGES]; -#define LOONGSON_FREQCTRL(id) (*(volatile u32 *)(loongson_freqctrl[id])) - #define xconf_readl(addr) readl(addr) #define xconf_readq(addr) readq(addr) =20 diff --git a/arch/loongarch/kernel/env.c b/arch/loongarch/kernel/env.c index 467946ecf451..82b478a5c665 100644 --- a/arch/loongarch/kernel/env.c +++ b/arch/loongarch/kernel/env.c @@ -17,21 +17,6 @@ u64 efi_system_table; struct loongson_system_configuration loongson_sysconf; EXPORT_SYMBOL(loongson_sysconf); =20 -u64 loongson_chipcfg[MAX_PACKAGES]; -u64 loongson_chiptemp[MAX_PACKAGES]; -u64 loongson_freqctrl[MAX_PACKAGES]; -unsigned long long smp_group[MAX_PACKAGES]; - -static void __init register_addrs_set(u64 *registers, const u64 addr, int = num) -{ - u64 i; - - for (i =3D 0; i < num; i++) { - *registers =3D (i << 44) | addr; - registers++; - } -} - void __init init_environ(void) { int efi_boot =3D fw_arg0; @@ -50,11 +35,6 @@ void __init init_environ(void) efi_memmap_init_early(&data); memblock_reserve(data.phys_map & PAGE_MASK, PAGE_ALIGN(data.size + (data.phys_map & ~PAGE_MASK))); - - register_addrs_set(smp_group, TO_UNCACHE(0x1fe01000), 16); - register_addrs_set(loongson_chipcfg, TO_UNCACHE(0x1fe00180), 16); - register_addrs_set(loongson_chiptemp, TO_UNCACHE(0x1fe0019c), 16); - register_addrs_set(loongson_freqctrl, TO_UNCACHE(0x1fe001d0), 16); } =20 static int __init init_cpu_fullname(void) --=20 2.31.1