Received: by 2002:a05:7412:8d1c:b0:fa:4c10:6cad with SMTP id bj28csp270546rdb; Wed, 17 Jan 2024 01:02:44 -0800 (PST) X-Google-Smtp-Source: AGHT+IHIvSnA1X/5JiJN6iII0HGTEQ53+BWuIlHppC51YNfSt603MJZPHczAxH4JT2mj38Ca07Cx X-Received: by 2002:a05:6122:2004:b0:4b6:b153:4cbd with SMTP id l4-20020a056122200400b004b6b1534cbdmr4811406vkd.1.1705482163807; Wed, 17 Jan 2024 01:02:43 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705482163; cv=pass; d=google.com; s=arc-20160816; b=Tb88ZgH1v0FFOmSFWh/7lj0G0FxuW6F1s3frNX/X3igLsJ0JpbSrJgOwBK4LZ64+hX eWb5pxnaR3l60l5upaOrAm3el4iy7AUmckTE5mMZTjDQ9c4ew7WGH6Ld/JPVxxI5rJSv YaeRcVonYVSg23jdYOP12A0ua6d32cawvEJsa/VjCfzCJMnsasDAaQ4r1AodB0rccNIY qQoygfxMHhnWK3jcstA1Us8OBc6Xr8Y0PokfmyuIQh/RuDPrG6JJHm7Xzo+x4CzqO9tB StqJ/C1dQE2YHWOS5ZOpOmVZlYQW3hRi6GUFrgDjMn2KxoWFI2w0TxWeGJL8NJQowcWA 94Tg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=2/PbZ2LFL+zHb0wIuWs2NamV6gGYw+i7Dew+TSYsG/8=; fh=zBtx1e4UUNAnVTfS4oRyQURuKZ0DM/XUei4C2a8932o=; b=sth6LsGSYQlSeY0LSO+XykwSQIZcvhaK/rwjsZmJbDNOhyyAyPxQXV3hNDqNvVTiuz zcaQ+8FzmP/yvmnwTNKKBjCHJNTiqArwoYQbwmEenTq0IyWNhc8LLJpvhM+qj4c/9+Mk uPZZKwTAtCZzyKEpZQmEqw8IvMsboCdJHpO4EvqzVW5jhxOp5Mt4GFbpTAyE6dkaWkNk S/CiciC4wAR8w3Mq/mlBTNnRrop1Jgd93vhpCXTOcWx+EMHNHELYHS3tHdfXT8JrF+O+ Oa3ls3eIdgqI5r48Xvv4N2yDw4cX11gBeLFh1QPd+SfDW5BlRWboR1JznwwJmTF0f3YD 8NJQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@atishpatra.org header.s=google header.b=L4sW872T; arc=pass (i=1 spf=pass spfdomain=atishpatra.org dkim=pass dkdomain=atishpatra.org); spf=pass (google.com: domain of linux-kernel+bounces-28683-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-28683-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id q26-20020a0c8b1a000000b0067ee3520aefsi11282145qva.151.2024.01.17.01.02.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 01:02:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-28683-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@atishpatra.org header.s=google header.b=L4sW872T; arc=pass (i=1 spf=pass spfdomain=atishpatra.org dkim=pass dkdomain=atishpatra.org); spf=pass (google.com: domain of linux-kernel+bounces-28683-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-28683-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 397161C249EC for ; Wed, 17 Jan 2024 09:02:43 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0902613FF9; Wed, 17 Jan 2024 09:02:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=atishpatra.org header.i=@atishpatra.org header.b="L4sW872T" Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) (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 105AB12E76 for ; Wed, 17 Jan 2024 09:02:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705482136; cv=none; b=gwrSQGSSXcCz9nqTFLcpxPfv0i1s0zHBfS3jN2GGmSn9FKFDIW++Pj160vrSNYtz9ui9fPPyzmodATjRpzzAmQaWJNF0cbrNxQZZRye4/9Di5jXmj7W2ADbBbpBnx0ZvffTxRKMd+r7zMtEuJNJ5dAWuKizfBIBYt8EKvjsHq2M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705482136; c=relaxed/simple; bh=puRVKYujRv19Euu3uCKE6b2lLc1q25jr/jyvX/tb6c0=; h=Received:DKIM-Signature:X-Google-DKIM-Signature: X-Gm-Message-State:X-Google-Smtp-Source:X-Received:MIME-Version: References:In-Reply-To:From:Date:Message-ID:Subject:To:Cc: Content-Type:Content-Transfer-Encoding; b=czZnlQ0iq/icDX/fMar01GmoIAzgk7KIW3B+GqtUe/0kWlLRnVhOEVwq1Rrk6y83cvPM0PuQzSavhkWUjpkXwQTWUJaf3I6ssyFIkYExx5sRb6COHHWnbOj6Rl2pD3bmFPu6rshq5stvp22HP2KUGdnrxpFNPLlohElUKBU9jWg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=atishpatra.org; spf=pass smtp.mailfrom=atishpatra.org; dkim=pass (1024-bit key) header.d=atishpatra.org header.i=@atishpatra.org header.b=L4sW872T; arc=none smtp.client-ip=209.85.208.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=atishpatra.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=atishpatra.org Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2cd853c159eso75169621fa.2 for ; Wed, 17 Jan 2024 01:02:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; t=1705482132; x=1706086932; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=2/PbZ2LFL+zHb0wIuWs2NamV6gGYw+i7Dew+TSYsG/8=; b=L4sW872TVJ3R+9R09+KdYDTIMFu/5Sl2xW1jGtmgYSeDNjxx+TY44JTnU5SudiS38y Mj998LreOA4Lw8ZFbvrFKM75h/T5mbP7AzYERhzd/G1ZmxnHss0pPURRomIx+BLezjK6 OZ7qf/D/HegfnIMBfMZMVodlHps+l7/yEtZOc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705482132; x=1706086932; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2/PbZ2LFL+zHb0wIuWs2NamV6gGYw+i7Dew+TSYsG/8=; b=TDG46hE5DHa/GK13UdhHoLe8l9k4n0MQThFpSOt6j4ihudu6o/Gr2egwPQdHWeqwNI rm8+eoFYAiGn/mmIpqnYfp26yqm7OkxsdQtLB7/T65s+OcHSt7NajqtASzJiw8Ie+kQz J0PTJZ0VY2EC116oSxIEUvPwy/C9j8KstxILUxcbCQ6l6rov8BlqzXH91AvHs7w4Ynda uCGv0elqcTEdri8X3Dg8pnS3SZcqAvv3CuiFdQ2BzBuAQX0fGO/Hp3GkP1LP9zmW5tjl G00CecprxVCLAG4NBF0jPRVhqVQZEUWm+VG+kwkB0b5AIH4LKCMpYOFO0lG+L56tuaNJ BK5A== X-Gm-Message-State: AOJu0YwGLTf4xWT5CghY9QJlDWcFMzFgJ1vho1aT07M1ozcTKcfBJW7W Yu2BYvTdtd0H9Qy7E306wXPKf6+xuKYnxmjmVj/uhe0h63ZD X-Received: by 2002:a2e:8852:0:b0:2cd:dba6:c810 with SMTP id z18-20020a2e8852000000b002cddba6c810mr1365034ljj.68.1705482130526; Wed, 17 Jan 2024 01:02:10 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240110073917.2398826-1-peterlin@andestech.com> <20240110073917.2398826-8-peterlin@andestech.com> In-Reply-To: From: Atish Patra Date: Wed, 17 Jan 2024 01:01:58 -0800 Message-ID: Subject: Re: [PATCH v7 07/16] RISC-V: Move T-Head PMU to CPU feature alternative framework To: Anup Patel Cc: Yu Chien Peter Lin , mark.rutland@arm.com, irogers@google.com, heiko@sntech.de, geert+renesas@glider.be, alexander.shishkin@linux.intel.com, linux-kernel@vger.kernel.org, conor.dooley@microchip.com, guoren@kernel.org, krzysztof.kozlowski+dt@linaro.org, linux-riscv@lists.infradead.org, will@kernel.org, linux-renesas-soc@vger.kernel.org, tim609@andestech.com, samuel@sholland.org, anup@brainfault.org, dminus@andestech.com, magnus.damm@gmail.com, jernej.skrabec@gmail.com, peterz@infradead.org, wens@csie.org, mingo@redhat.com, jszhang@kernel.org, inochiama@outlook.com, linux-sunxi@lists.linux.dev, ajones@ventanamicro.com, devicetree@vger.kernel.org, conor+dt@kernel.org, aou@eecs.berkeley.edu, andre.przywara@arm.com, locus84@andestech.com, acme@kernel.org, prabhakar.mahadev-lad.rj@bp.renesas.com, robh+dt@kernel.org, paul.walmsley@sifive.com, namhyung@kernel.org, tglx@linutronix.de, linux-arm-kernel@lists.infradead.org, ycliang@andestech.com, n.shubin@yadro.com, rdunlap@infradead.org, chao.wei@sophgo.com, adrian.hunter@intel.com, conor@kernel.org, linux-perf-users@vger.kernel.org, evan@rivosinc.com, palmer@dabbelt.com, jolsa@kernel.org, unicorn_wang@outlook.com, wefu@redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 16, 2024 at 7:35=E2=80=AFPM Anup Patel wrote: > > On Wed, Jan 17, 2024 at 2:26=E2=80=AFAM Atish Patra wrote: > > > > On Tue, Jan 9, 2024 at 11:40=E2=80=AFPM Yu Chien Peter Lin > > wrote: > > > > > > The custom PMU extension aims to support perf event sampling prior > > > to the ratification of Sscofpmf. Instead of diverting the bits and > > > register reserved for future standard, a set of custom registers is > > > added. Hence, we may consider it as a CPU feature rather than an > > > erratum. > > > > > > > I don't think we should do that. Any custom implementation that > > violates the standard RISC-V spec should > > be an errata not a feature. > > As per my understanding, a vendor can call an extension custom ISA > > extension if the same feature is not available > > in the standard ISA extensions or the mechanism is completely > > different. It must also not violate any standard spec as well. > > I agree with Atish here. There is a well defined encoding space for > custom extensions. > > If a custom extension spills over to standard encoding space then > it should be treated as an errata and not a proper custom extension. > > > > > In this case, a standard sscofpmf is already available. Moreover, both > > Andes and T-head extensions violate the standard > > spec by reusing local interrupt numbers (17(Thead) & 18(Andes)) which > > are clearly specified as reserved for standard local interrupts > > in the AIA specification. > > > > Please implementation Andes PMU support as an errata as well similar to= T-head > > > > > > > T-Head cores need to append "xtheadpmu" to the riscv,isa-extensions > > > for each cpu node in device tree, and enable CONFIG_THEAD_CUSTOM_PMU > > > for proper functioning as of this commit. > > T-Head has many violations of using standard encoding space. I don't see > why this series should be touching T-Head erratas. > > If Andes custom PMU CSRs are defined in custom encoding space then > Andes PMU can be treated as proper custom extension. > The PMU CSRs are in custom extension space. However, the interrupt ID(18) violates the standard encoding space defined in AIA. > Regards, > Anup > > > > > > > Signed-off-by: Yu Chien Peter Lin > > > Reviewed-by: Guo Ren > > > Reviewed-by: Conor Dooley > > > --- > > > Changes v1 -> v2: > > > - New patch > > > Changes v2 -> v3: > > > - Removed m{vendor/arch/imp}id checks in pmu_sbi_setup_irqs() > > > Changes v3 -> v4: > > > - No change > > > Changes v4 -> v5: > > > - Include Guo's Reviewed-by > > > - Let THEAD_CUSTOM_PMU depend on ARCH_THEAD > > > Changes v5 -> v6: > > > - Include Conor's Reviewed-by > > > Changes v6 -> v7: > > > - No change > > > --- > > > arch/riscv/Kconfig.errata | 13 ------------- > > > arch/riscv/errata/thead/errata.c | 19 ------------------- > > > arch/riscv/include/asm/errata_list.h | 15 +-------------- > > > arch/riscv/include/asm/hwcap.h | 1 + > > > arch/riscv/kernel/cpufeature.c | 1 + > > > drivers/perf/Kconfig | 13 +++++++++++++ > > > drivers/perf/riscv_pmu_sbi.c | 19 ++++++++++++++----- > > > 7 files changed, 30 insertions(+), 51 deletions(-) > > > > > > diff --git a/arch/riscv/Kconfig.errata b/arch/riscv/Kconfig.errata > > > index e2c731cfed8c..0d19f47d1018 100644 > > > --- a/arch/riscv/Kconfig.errata > > > +++ b/arch/riscv/Kconfig.errata > > > @@ -86,17 +86,4 @@ config ERRATA_THEAD_CMO > > > > > > If you don't know what to do here, say "Y". > > > > > > -config ERRATA_THEAD_PMU > > > - bool "Apply T-Head PMU errata" > > > - depends on ERRATA_THEAD && RISCV_PMU_SBI > > > - default y > > > - help > > > - The T-Head C9xx cores implement a PMU overflow extension ve= ry > > > - similar to the core SSCOFPMF extension. > > > - > > > - This will apply the overflow errata to handle the non-stand= ard > > > - behaviour via the regular SBI PMU driver and interface. > > > - > > > - If you don't know what to do here, say "Y". > > > - > > > endmenu # "CPU errata selection" > > > diff --git a/arch/riscv/errata/thead/errata.c b/arch/riscv/errata/the= ad/errata.c > > > index 0554ed4bf087..5de5f7209132 100644 > > > --- a/arch/riscv/errata/thead/errata.c > > > +++ b/arch/riscv/errata/thead/errata.c > > > @@ -53,22 +53,6 @@ static bool errata_probe_cmo(unsigned int stage, > > > return true; > > > } > > > > > > -static bool errata_probe_pmu(unsigned int stage, > > > - unsigned long arch_id, unsigned long imp= id) > > > -{ > > > - if (!IS_ENABLED(CONFIG_ERRATA_THEAD_PMU)) > > > - return false; > > > - > > > - /* target-c9xx cores report arch_id and impid as 0 */ > > > - if (arch_id !=3D 0 || impid !=3D 0) > > > - return false; > > > - > > > - if (stage =3D=3D RISCV_ALTERNATIVES_EARLY_BOOT) > > > - return false; > > > - > > > - return true; > > > -} > > > - > > > static u32 thead_errata_probe(unsigned int stage, > > > unsigned long archid, unsigned long imp= id) > > > { > > > @@ -80,9 +64,6 @@ static u32 thead_errata_probe(unsigned int stage, > > > if (errata_probe_cmo(stage, archid, impid)) > > > cpu_req_errata |=3D BIT(ERRATA_THEAD_CMO); > > > > > > - if (errata_probe_pmu(stage, archid, impid)) > > > - cpu_req_errata |=3D BIT(ERRATA_THEAD_PMU); > > > - > > > return cpu_req_errata; > > > } > > > > > > diff --git a/arch/riscv/include/asm/errata_list.h b/arch/riscv/includ= e/asm/errata_list.h > > > index 4ed21a62158c..9bccc2ba0eb5 100644 > > > --- a/arch/riscv/include/asm/errata_list.h > > > +++ b/arch/riscv/include/asm/errata_list.h > > > @@ -25,8 +25,7 @@ > > > #ifdef CONFIG_ERRATA_THEAD > > > #define ERRATA_THEAD_PBMT 0 > > > #define ERRATA_THEAD_CMO 1 > > > -#define ERRATA_THEAD_PMU 2 > > > -#define ERRATA_THEAD_NUMBER 3 > > > +#define ERRATA_THEAD_NUMBER 2 > > > #endif > > > > > > #ifdef __ASSEMBLY__ > > > @@ -147,18 +146,6 @@ asm volatile(ALTERNATIVE_2( = \ > > > "r"((unsigned long)(_start) + (_size)) = \ > > > : "a0") > > > > > > -#define THEAD_C9XX_RV_IRQ_PMU 17 > > > -#define THEAD_C9XX_CSR_SCOUNTEROF 0x5c5 > > > - > > > -#define ALT_SBI_PMU_OVERFLOW(__ovl) = \ > > > -asm volatile(ALTERNATIVE( = \ > > > - "csrr %0, " __stringify(CSR_SSCOUNTOVF), = \ > > > - "csrr %0, " __stringify(THEAD_C9XX_CSR_SCOUNTEROF), = \ > > > - THEAD_VENDOR_ID, ERRATA_THEAD_PMU, = \ > > > - CONFIG_ERRATA_THEAD_PMU) = \ > > > - : "=3Dr" (__ovl) : = \ > > > - : "memory") > > > - > > > #endif /* __ASSEMBLY__ */ > > > > > > #endif > > > diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/= hwcap.h > > > index 5340f818746b..480f9da7fba7 100644 > > > --- a/arch/riscv/include/asm/hwcap.h > > > +++ b/arch/riscv/include/asm/hwcap.h > > > @@ -80,6 +80,7 @@ > > > #define RISCV_ISA_EXT_ZFA 71 > > > #define RISCV_ISA_EXT_ZTSO 72 > > > #define RISCV_ISA_EXT_ZACAS 73 > > > +#define RISCV_ISA_EXT_XTHEADPMU 74 > > > > > > #define RISCV_ISA_EXT_MAX 128 > > > #define RISCV_ISA_EXT_INVALID U32_MAX > > > diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufe= ature.c > > > index e32591e9da90..4aded5bf8fc3 100644 > > > --- a/arch/riscv/kernel/cpufeature.c > > > +++ b/arch/riscv/kernel/cpufeature.c > > > @@ -303,6 +303,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = =3D { > > > __RISCV_ISA_EXT_DATA(svinval, RISCV_ISA_EXT_SVINVAL), > > > __RISCV_ISA_EXT_DATA(svnapot, RISCV_ISA_EXT_SVNAPOT), > > > __RISCV_ISA_EXT_DATA(svpbmt, RISCV_ISA_EXT_SVPBMT), > > > + __RISCV_ISA_EXT_DATA(xtheadpmu, RISCV_ISA_EXT_XTHEADPMU), > > > }; > > > > > > const size_t riscv_isa_ext_count =3D ARRAY_SIZE(riscv_isa_ext); > > > diff --git a/drivers/perf/Kconfig b/drivers/perf/Kconfig > > > index 273d67ecf6d2..6cef15ec7c25 100644 > > > --- a/drivers/perf/Kconfig > > > +++ b/drivers/perf/Kconfig > > > @@ -86,6 +86,19 @@ config RISCV_PMU_SBI > > > full perf feature support i.e. counter overflow, privilege = mode > > > filtering, counter configuration. > > > > > > +config THEAD_CUSTOM_PMU > > > + bool "T-Head custom PMU support" > > > + depends on ARCH_THEAD && RISCV_ALTERNATIVE && RISCV_PMU_SBI > > > + default y > > > + help > > > + The T-Head C9xx cores implement a PMU overflow extension ve= ry > > > + similar to the core SSCOFPMF extension. > > > + > > > + This will patch the overflow CSR and handle the non-standar= d > > > + behaviour via the regular SBI PMU driver and interface. > > > + > > > + If you don't know what to do here, say "Y". > > > + > > > config ARM_PMU_ACPI > > > depends on ARM_PMU && ACPI > > > def_bool y > > > diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sb= i.c > > > index 2edbc37abadf..31ca79846399 100644 > > > --- a/drivers/perf/riscv_pmu_sbi.c > > > +++ b/drivers/perf/riscv_pmu_sbi.c > > > @@ -20,10 +20,21 @@ > > > #include > > > #include > > > > > > -#include > > > #include > > > #include > > > > > > +#define THEAD_C9XX_RV_IRQ_PMU 17 > > > +#define THEAD_C9XX_CSR_SCOUNTEROF 0x5c5 > > > + > > > +#define ALT_SBI_PMU_OVERFLOW(__ovl) = \ > > > +asm volatile(ALTERNATIVE( = \ > > > + "csrr %0, " __stringify(CSR_SSCOUNTOVF), = \ > > > + "csrr %0, " __stringify(THEAD_C9XX_CSR_SCOUNTEROF), = \ > > > + 0, RISCV_ISA_EXT_XTHEADPMU, = \ > > > + CONFIG_THEAD_CUSTOM_PMU) = \ > > > + : "=3Dr" (__ovl) : = \ > > > + : "memory") > > > + > > > #define SYSCTL_NO_USER_ACCESS 0 > > > #define SYSCTL_USER_ACCESS 1 > > > #define SYSCTL_LEGACY 2 > > > @@ -808,10 +819,8 @@ static int pmu_sbi_setup_irqs(struct riscv_pmu *= pmu, struct platform_device *pde > > > if (riscv_isa_extension_available(NULL, SSCOFPMF)) { > > > riscv_pmu_irq_num =3D RV_IRQ_PMU; > > > riscv_pmu_use_irq =3D true; > > > - } else if (IS_ENABLED(CONFIG_ERRATA_THEAD_PMU) && > > > - riscv_cached_mvendorid(0) =3D=3D THEAD_VENDOR_ID &= & > > > - riscv_cached_marchid(0) =3D=3D 0 && > > > - riscv_cached_mimpid(0) =3D=3D 0) { > > > + } else if (riscv_isa_extension_available(NULL, XTHEADPMU) && > > > + IS_ENABLED(CONFIG_THEAD_CUSTOM_PMU)) { > > > riscv_pmu_irq_num =3D THEAD_C9XX_RV_IRQ_PMU; > > > riscv_pmu_use_irq =3D true; > > > } > > > -- > > > 2.34.1 > > > > > > > > > -- > > Regards, > > Atish > > > > _______________________________________________ > > linux-riscv mailing list > > linux-riscv@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-riscv --=20 Regards, Atish