From nobody Sat Feb 7 06:35:31 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A34C42836BE for ; Thu, 1 Jan 2026 09:02:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767258175; cv=none; b=tBO2sNOO77VIIsONiFUwKWcdVvXfevA0b7udSA7sgAVvFvk5+lr9i1qBEfOa7VJX+BoWj0HgKqGRfuqwkKOoKysOr69Ulg7fualUpQYe1wMCaGARNdY6980wVyuYhJh8+dwSR4sdO70FQCIlyFzbaayYM5V6SXqqnXXTGBqaPGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767258175; c=relaxed/simple; bh=HP3+BRpxCk9vu8k0Gmg3N76nZU0a4qyvZesmM5VNmx4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HSFSEh9JlRdHnx/iSOre06UudAAvf77wK1SaU51ihqb7CqxnoORLIB7MxAFRA3q+MOwtYeOlFRa4iVOWAly7zy52PHNBnufJXXqsIKe5n+aFJjPANlw2iodoYZ+kRdSzWtH8F9V1BXTkoFOuyaq0PKacOtmok+FfKEfE0zQKvpM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lLc/0gxD; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lLc/0gxD" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2a0833b5aeeso154920345ad.1 for ; Thu, 01 Jan 2026 01:02:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767258173; x=1767862973; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=LYhLngMqNJ6OldqM8uri9fztTRs+E1nPGgcMJFZEiIY=; b=lLc/0gxDo+Al9yzGv7K7Rzr1JUePmu0WP0ZJub+W3vXmfgpg8rwYt+ubibAKomeeig Q2fJxOeUKrUolS4Z7C4xM1hNP6B0UZZ8FR2KRw0IIkWSBhFzM920hdDTuWdmXNz+awPi tFYkf/h4MlAD5eoFItz5TkAxWsODkNqHPLRAWl48K8k1a78o2qy31yNVipUSS4XnH//d XGi4lCTB9aRsdwLs9CriRTGgeFyKZN11/1gJBhRkeG+olVcxCkLHnjmncvbJsdHpm+YX GbfFWL2JNasNyZaXNZiTxN6OHap7rrEfpcc5N9ykxxPscsfqxjYdUA6ED4D9TPz/TZ1z pgcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767258173; x=1767862973; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LYhLngMqNJ6OldqM8uri9fztTRs+E1nPGgcMJFZEiIY=; b=qmm8VL5P7X2+HZtiK5R5UpaGXLcYh5SZsSGTE6fvc3UffXQy1BmzPoBB++aObGEGmQ uwQs9ufOokVol7nKlmRVB8HWYp7Et3yy5aIh+weQiLEBQ4fop1wF8Vw8iaAM8KVH5lid L0WVXrFdzSw/hiI7hfG67Z4iijc/1dLaZ3zXkGK+pKw2RX1VQNiVBOMgEpEzlm2WkMI8 H58h9SMr41QRoAxM8SO58UvjctdS0cRJ5N7qfGIIciEc7JOANK6s6GpYv+mMPYquswqF tLchxc2lSblBTY76z/KcU9h+rZdKPc7xNM84HRX43+vx+K7cw2dlGDbLTBIkmpi99iJh 6i8g== X-Forwarded-Encrypted: i=1; AJvYcCXrudUMJv5ThPDSuC2NGqgZJ5vsgJLEzUpISNiAdyF+AQRidjJLwgsu4KbJORwJeRSkfLY6sfaSJZ+GrYs=@vger.kernel.org X-Gm-Message-State: AOJu0YzQyPZ31sHvVri7lbVCw9ASfJsTOn6iiyBujG//TwKVdqrju20I HrHOFUsl0BiiiDfSzt9K3drFkBNEAp+BXq030S10mn9gEZVOj17JkzfB X-Gm-Gg: AY/fxX43Vs0OwN9TaOJuhUuX7+D5Qgp2nmJlrh8rdY3/X4fESoTYDv6EVbagL8oJhk/ lRP74ofS7aGq1VdH1m5Xdw7Dnti3qJK7BghILSs7Bji8YZgS+N/dtdy091EjpCXPGYvbOa3m0GK phliI0+3yxwhBHDfn+Rdso/SrBKxY0KERiBS7m5wawN9kUGvmnDTnsCa65KiC90+cipcByDtD7h G80liU69/7h+OK7PNzOWH5E6QfeRzq2ihA/q7BNdDhODgsFjBvpnEnHr70vI5tfnBL+48V3PzDz 7wL0wquWjgZldeEiEv4ixgUK3M2uwjv8+U6w4Tr8R5dvGQgCWOhGZd3RtR1H1EVMJMG658vQwps DS8/C7a9+V294mBY3JTV3SzlJJSgVGpnNBp4tUv36BhqhwEWBAdpNuKwd+BNx3G6BWG26f9hwm1 sCOR8mZFsNowpF X-Google-Smtp-Source: AGHT+IF2DK/wudcCjuHS9KGm1WeGhjtlIUvpoPE63sH8WHjKNF73liEZe8dOYBfzDMRjLKw9kdzJgw== X-Received: by 2002:a17:903:1cd:b0:258:f033:3ff9 with SMTP id d9443c01a7336-2a2f2a4f072mr340888935ad.48.1767258172838; Thu, 01 Jan 2026 01:02:52 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-7ff7dfac29bsm37182957b3a.39.2026.01.01.01.02.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Jan 2026 01:02:52 -0800 (PST) From: Nick Chan Date: Thu, 01 Jan 2026 17:01:41 +0800 Subject: [PATCH v10 05/21] drivers/perf: apple_m1: Support configuring counters for 32-bit EL0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260101-apple-cpmu-v10-5-48812c529ffc@gmail.com> References: <20260101-apple-cpmu-v10-0-48812c529ffc@gmail.com> In-Reply-To: <20260101-apple-cpmu-v10-0-48812c529ffc@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1977; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=HP3+BRpxCk9vu8k0Gmg3N76nZU0a4qyvZesmM5VNmx4=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpVjgn0cIO4FislP7e3t8nidSA1+CQMnbCNH3pF h1xmqm6xcyJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaVY4JwAKCRABygi3psUI JDnRD/9gYiOUD+XFPH6CuOvFxz6OirPhj00mypSpKS6xPDABNlbRm6Gpq2c8l/14xhRKhcTEFWE wppVRTTwtKjb2bicRv0dx7ReyAY6SSGq9rLxVnWb85qXeNrxKut2up5+QYJr0v6L6X/wqF1IGIa UgQ24vn4LdN+SCNi59WaZ7X0QJRb3w93mznF6mCQJXYRiTIDWifB/sQteUprkUHxzlwT3ID2lvp hx8f3tl24RDYGH2qccljtXnVWrHO8tYZl35zov2s1cjkwQdINF4UO9UxGjo+GCHj/xTETx1atcF /SvGj0u91ifTnPB/j7/nizOSZh1JifhmoQO4kNd7acRZivFtzu036oKoIernRQvQsnWDsTrfvxg eYPZkSaFQL5eC259rFHjkJoVX7dsPExFJMEvkbbu9uhtJeYp7O2vji09NAFqiGRCOdBU4dkO1b0 CmIzcWKl6BvlzTKm8G5LJgm5XPtyWtdjddecvLRsDKkQC6Iy/vckYLjUj1eA3HOBWDp69NmyNeE n+vS1Z0/35HwheeHocy1/vDnuQXu2J8NfoLYa57FjXj1yJkQjZldfjGQ/O0e+I4vpf+MN0MchKs WYScYjbtt2U34OzHdfHxOhsSm4cQYiyHqCLm11bS+UoqE7qkQDzL+Llk7V3vajXFNv3myxXuNfV 5n2Iqm3zjmofrnA== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for configuring counters for 32-bit EL0 to allow adding support for implementations with 32-bit EL0. Signed-off-by: Nick Chan --- arch/arm64/include/asm/apple_m1_pmu.h | 2 ++ drivers/perf/apple_m1_cpu_pmu.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/arch/arm64/include/asm/apple_m1_pmu.h b/arch/arm64/include/asm= /apple_m1_pmu.h index 02e05d05851f739b985bf416f1aa3baeafd691dc..8a667e7f07a517419c22a4f9309= 47347be8546f7 100644 --- a/arch/arm64/include/asm/apple_m1_pmu.h +++ b/arch/arm64/include/asm/apple_m1_pmu.h @@ -38,8 +38,10 @@ =20 #define SYS_IMP_APL_PMCR1_EL1 sys_reg(3, 1, 15, 1, 0) #define SYS_IMP_APL_PMCR1_EL12 sys_reg(3, 1, 15, 7, 2) +#define PMCR1_COUNT_A32_EL0_0_7 GENMASK(7, 0) #define PMCR1_COUNT_A64_EL0_0_7 GENMASK(15, 8) #define PMCR1_COUNT_A64_EL1_0_7 GENMASK(23, 16) +#define PMCR1_COUNT_A32_EL0_8_9 GENMASK(33, 32) #define PMCR1_COUNT_A64_EL0_8_9 GENMASK(41, 40) #define PMCR1_COUNT_A64_EL1_8_9 GENMASK(49, 48) =20 diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index 0b0ee2b9ad4b555f66b9b478055a420b7eec8f3c..6340ff7d3b75d7f0c7ab159e411= 4d49cf031daca 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -348,10 +348,16 @@ static void __m1_pmu_configure_event_filter(unsigned = int index, bool user, case 0 ... 7: user_bit =3D BIT(get_bit_offset(index, PMCR1_COUNT_A64_EL0_0_7)); kernel_bit =3D BIT(get_bit_offset(index, PMCR1_COUNT_A64_EL1_0_7)); + + if (system_supports_32bit_el0()) + user_bit |=3D BIT(get_bit_offset(index, PMCR1_COUNT_A32_EL0_0_7)); break; case 8 ... 9: user_bit =3D BIT(get_bit_offset(index - 8, PMCR1_COUNT_A64_EL0_8_9)); kernel_bit =3D BIT(get_bit_offset(index - 8, PMCR1_COUNT_A64_EL1_8_9)); + + if (system_supports_32bit_el0()) + user_bit |=3D BIT(get_bit_offset(index - 8, PMCR1_COUNT_A32_EL0_8_9)); break; default: BUG(); --=20 2.52.0