From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4ECC1C6FD1A for ; Mon, 6 Mar 2023 22:21:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=tX5R1BSvUUdstNg23yjEK4a+oGztERs+OUbBrGr7SNY=; b=lZT819bs397Y/+ H/sGe/vTpKODeNvWo+8+BH10xyrTPVWmq/yL0L2WXMt4RJkfIWzTuq1Ghn+5mfKYvNHBKpUpenO7+ 0mp1GFpWnyzEXUOIzz151C+PYvzPPesTQ1bK7om0DStshFbhlvCE4shCVzokKcsK8bYPpwrJSHcSK BJhUI3mxupRJcC2vUvNB/wiqrZm7LwSGVghSuuP/BSakb6RrrtTkfc3y+6ndaZF6p1uvdRnBPrAvE Ws26aMyq1E1JD4XMZOHLE087weJaw3dogxYH8mgZSAcRatHE8bbWCbYzIHvlHfRMAb+yS3mEY3b3y a7Jasv+cqUmzIAw/C3yw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZJCG-00FEx4-8D; Mon, 06 Mar 2023 22:20:44 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZJCC-00FEvI-PD for linux-arm-kernel@lists.infradead.org; Mon, 06 Mar 2023 22:20:42 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0079160F6B; Mon, 6 Mar 2023 22:20:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30B7AC433A0; Mon, 6 Mar 2023 22:20:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678141239; bh=VTfNMr9L+OZD61fr7gdaYm/jVX8qzkby7YMcuXZ9mFU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JAg71P6ctiIsp3OinvUbuklYSbxEQNHCJaI/ZeYXIB8NoTMsEmlyMkkwvmmRqoEFY E3m7LuMxCfHN9MhDjpolb5APS/kcKsaZmEMHdKQyruQPMvZ/7/EmtNf7NSuCTIwE3J 9fnRiAYO6eAaQ3J7znBejZKC8UudnzkTYtOj8WDeY0bTUs4xD6pTUUVge9pTC1l/Nj lbWS0XSJPjspt92Z28comwlS/tOVi7Br+ZzNPkH9ouFs5ur/P8cp4hSKQMYGjWXdoo AF2qutd3rFc0k+Meu1ziqVDJFsswMZquodLMj7QGQsAlgQEbYE/OqopiJhXRtmCBSx +ll9DngBkjrtQ== From: Mark Brown Date: Mon, 06 Mar 2023 22:20:23 +0000 Subject: [PATCH 1/3] arm64/cpufeature: Pull out helper for CPUID register definitions MIME-Version: 1.0 Message-Id: <20230303-arm64-cpufeature-helpers-v1-1-b16cf36acaea@kernel.org> References: <20230303-arm64-cpufeature-helpers-v1-0-b16cf36acaea@kernel.org> In-Reply-To: <20230303-arm64-cpufeature-helpers-v1-0-b16cf36acaea@kernel.org> To: Catalin Marinas , Will Deacon Cc: Suzuki K Poulose , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-bd1bf X-Developer-Signature: v=1; a=openpgp-sha256; l=2794; i=broonie@kernel.org; h=from:subject:message-id; bh=VTfNMr9L+OZD61fr7gdaYm/jVX8qzkby7YMcuXZ9mFU=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBkBmcx2Y5IxiHuDp4hea7brk355PUmvzDhPhmF8Ym6 zQik5RyJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZAZnMQAKCRAk1otyXVSH0G8SB/ 9/oeM1uv8BJc13DrXGX31mWlPAc13MPIZtUQqHVCGbSaBn9FhFf2KiNeTUEiLFgJ7ELv6vtat5sxvX 6sCPSPUASguAku2QrOpqPvsOTYRSZZbgutHwo3QiCgeXAh3AoHNRRxv0aqz18XXWetLBbcC/yW8uAz viwoR6jhD9kThahXuXeHqfwpifLxGxFCW99N7kC4Y51VVJlUSfRIUzxpEcWbByxifOE03B77EGT29b HUtBY+leSgaFW/CCr2+Lr6LVgH4PNrhlxcH6E6ykpCoZCKgA5/SZdUmwOW4vWceSQUfy2i9aErOD3E P4UeeXBXyg8M4WfXF0IKxcKAFqM+H5 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230306_142040_927843_C1DB9166 X-CRM114-Status: GOOD ( 11.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org We use the same structure to match hwcaps and CPU features so we can use the same helper to generate the fields required. Pull the portion of the current hwcaps helper that initialises the fields out into a separate define placed earlier in the file so we can use it for cpufeatures. No functional change. Signed-off-by: Mark Brown --- arch/arm64/kernel/cpufeature.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 2e3e55139777..77862b7c8908 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -140,6 +140,13 @@ void dump_cpu_features(void) pr_emerg("0x%*pb\n", ARM64_NCAPS, &cpu_hwcaps); } +#define ARM64_CPUID_FIELDS(reg, field, min_value) \ + .sys_reg = SYS_##reg, \ + .field_pos = reg##_##field##_SHIFT, \ + .field_width = reg##_##field##_WIDTH, \ + .sign = reg##_##field##_SIGNED, \ + .min_field_value = reg##_##field##_##min_value, + #define __ARM64_FTR_BITS(SIGNED, VISIBLE, STRICT, TYPE, SHIFT, WIDTH, SAFE_VAL) \ { \ .sign = SIGNED, \ @@ -2776,12 +2783,8 @@ static const struct arm64_cpu_capabilities arm64_features[] = { }; #define HWCAP_CPUID_MATCH(reg, field, min_value) \ - .matches = has_user_cpuid_feature, \ - .sys_reg = SYS_##reg, \ - .field_pos = reg##_##field##_SHIFT, \ - .field_width = reg##_##field##_WIDTH, \ - .sign = reg##_##field##_SIGNED, \ - .min_field_value = reg##_##field##_##min_value, + .matches = has_user_cpuid_feature, \ + ARM64_CPUID_FIELDS(reg, field, min_value) #define __HWCAP_CAP(name, cap_type, cap) \ .desc = name, \ @@ -2811,26 +2814,26 @@ static const struct arm64_cpu_capabilities arm64_features[] = { #ifdef CONFIG_ARM64_PTR_AUTH static const struct arm64_cpu_capabilities ptr_auth_hwcap_addr_matches[] = { { - HWCAP_CPUID_MATCH(ID_AA64ISAR1_EL1, APA, PAuth) + ARM64_CPUID_FIELDS(ID_AA64ISAR1_EL1, APA, PAuth) }, { - HWCAP_CPUID_MATCH(ID_AA64ISAR2_EL1, APA3, PAuth) + ARM64_CPUID_FIELDS(ID_AA64ISAR2_EL1, APA3, PAuth) }, { - HWCAP_CPUID_MATCH(ID_AA64ISAR1_EL1, API, PAuth) + ARM64_CPUID_FIELDS(ID_AA64ISAR1_EL1, API, PAuth) }, {}, }; static const struct arm64_cpu_capabilities ptr_auth_hwcap_gen_matches[] = { { - HWCAP_CPUID_MATCH(ID_AA64ISAR1_EL1, GPA, IMP) + ARM64_CPUID_FIELDS(ID_AA64ISAR1_EL1, GPA, IMP) }, { - HWCAP_CPUID_MATCH(ID_AA64ISAR2_EL1, GPA3, IMP) + ARM64_CPUID_FIELDS(ID_AA64ISAR2_EL1, GPA3, IMP) }, { - HWCAP_CPUID_MATCH(ID_AA64ISAR1_EL1, GPI, IMP) + ARM64_CPUID_FIELDS(ID_AA64ISAR1_EL1, GPI, IMP) }, {}, }; -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel