Message ID | 70067704d217cd7504d9552d8485a54e5c071c90.1685619571.git.robin.murphy@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | perf/arm_cspmu: Fixes and cleanups | expand |
On 01/06/2023 12:59, Robin Murphy wrote: > Build-wise, the ACPI dependency consists of only a couple of things > which could probably stand being factored out into ACPI helpers anyway. > However for the immediate concern of working towards Devicetree support > here, it's easy enough to make a few tweaks to contain the affected code > locally, such that we can relax the Kconfig dependency. > > Signed-off-by: Robin Murphy <robin.murphy@arm.com> > --- > drivers/perf/arm_cspmu/Kconfig | 3 +-- > drivers/perf/arm_cspmu/arm_cspmu.c | 17 +++++++++++++++-- > 2 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/drivers/perf/arm_cspmu/Kconfig b/drivers/perf/arm_cspmu/Kconfig > index 0b316fe69a45..25d25ded0983 100644 > --- a/drivers/perf/arm_cspmu/Kconfig > +++ b/drivers/perf/arm_cspmu/Kconfig > @@ -4,8 +4,7 @@ > > config ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU > tristate "ARM Coresight Architecture PMU" > - depends on ARM64 && ACPI > - depends on ACPI_APMT || COMPILE_TEST > + depends on ARM64 || COMPILE_TEST > help > Provides support for performance monitoring unit (PMU) devices > based on ARM CoreSight PMU architecture. Note that this PMU > diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c > index 72dc7a9e1ca8..3b91115c376d 100644 > --- a/drivers/perf/arm_cspmu/arm_cspmu.c > +++ b/drivers/perf/arm_cspmu/arm_cspmu.c > @@ -28,7 +28,6 @@ > #include <linux/module.h> > #include <linux/perf_event.h> > #include <linux/platform_device.h> > -#include <acpi/processor.h> > > #include "arm_cspmu.h" > #include "nvidia_cspmu.h" > @@ -1075,6 +1074,9 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu) > return 0; > } > > +#if defined(CONFIG_ACPI) && defined(CONFIG_ARM64) > +#include <acpi/processor.h> > + > static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) > { > u32 acpi_uid; > @@ -1099,7 +1101,7 @@ static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) > return -ENODEV; > } > > -static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) > +static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu) > { > struct device *dev; > struct acpi_apmt_node *apmt_node; > @@ -1135,6 +1137,17 @@ static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) > > return 0; > } > +#else > +static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu) > +{ > + return -ENODEV; > +} > +#endif > + > +static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) > +{ > + return arm_cspmu_acpi_get_cpus(cspmu); > +} > > static int arm_cspmu_register_pmu(struct arm_cspmu *cspmu) > { Reviewed-and-Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
On Thu, 1 Jun 2023, Robin Murphy wrote: > Build-wise, the ACPI dependency consists of only a couple of things > which could probably stand being factored out into ACPI helpers anyway. > However for the immediate concern of working towards Devicetree support > here, it's easy enough to make a few tweaks to contain the affected code > locally, such that we can relax the Kconfig dependency. > > Signed-off-by: Robin Murphy <robin.murphy@arm.com> Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com> > --- > drivers/perf/arm_cspmu/Kconfig | 3 +-- > drivers/perf/arm_cspmu/arm_cspmu.c | 17 +++++++++++++++-- > 2 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/drivers/perf/arm_cspmu/Kconfig b/drivers/perf/arm_cspmu/Kconfig > index 0b316fe69a45..25d25ded0983 100644 > --- a/drivers/perf/arm_cspmu/Kconfig > +++ b/drivers/perf/arm_cspmu/Kconfig > @@ -4,8 +4,7 @@ > > config ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU > tristate "ARM Coresight Architecture PMU" > - depends on ARM64 && ACPI > - depends on ACPI_APMT || COMPILE_TEST > + depends on ARM64 || COMPILE_TEST > help > Provides support for performance monitoring unit (PMU) devices > based on ARM CoreSight PMU architecture. Note that this PMU > diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c > index 72dc7a9e1ca8..3b91115c376d 100644 > --- a/drivers/perf/arm_cspmu/arm_cspmu.c > +++ b/drivers/perf/arm_cspmu/arm_cspmu.c > @@ -28,7 +28,6 @@ > #include <linux/module.h> > #include <linux/perf_event.h> > #include <linux/platform_device.h> > -#include <acpi/processor.h> > > #include "arm_cspmu.h" > #include "nvidia_cspmu.h" > @@ -1075,6 +1074,9 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu) > return 0; > } > > +#if defined(CONFIG_ACPI) && defined(CONFIG_ARM64) > +#include <acpi/processor.h> > + > static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) > { > u32 acpi_uid; > @@ -1099,7 +1101,7 @@ static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) > return -ENODEV; > } > > -static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) > +static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu) > { > struct device *dev; > struct acpi_apmt_node *apmt_node; > @@ -1135,6 +1137,17 @@ static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) > > return 0; > } > +#else > +static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu) > +{ > + return -ENODEV; > +} > +#endif > + > +static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) > +{ > + return arm_cspmu_acpi_get_cpus(cspmu); > +} > > static int arm_cspmu_register_pmu(struct arm_cspmu *cspmu) > { > -- > 2.39.2.101.g768bb238c484.dirty > >
diff --git a/drivers/perf/arm_cspmu/Kconfig b/drivers/perf/arm_cspmu/Kconfig index 0b316fe69a45..25d25ded0983 100644 --- a/drivers/perf/arm_cspmu/Kconfig +++ b/drivers/perf/arm_cspmu/Kconfig @@ -4,8 +4,7 @@ config ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU tristate "ARM Coresight Architecture PMU" - depends on ARM64 && ACPI - depends on ACPI_APMT || COMPILE_TEST + depends on ARM64 || COMPILE_TEST help Provides support for performance monitoring unit (PMU) devices based on ARM CoreSight PMU architecture. Note that this PMU diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c index 72dc7a9e1ca8..3b91115c376d 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.c +++ b/drivers/perf/arm_cspmu/arm_cspmu.c @@ -28,7 +28,6 @@ #include <linux/module.h> #include <linux/perf_event.h> #include <linux/platform_device.h> -#include <acpi/processor.h> #include "arm_cspmu.h" #include "nvidia_cspmu.h" @@ -1075,6 +1074,9 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu) return 0; } +#if defined(CONFIG_ACPI) && defined(CONFIG_ARM64) +#include <acpi/processor.h> + static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) { u32 acpi_uid; @@ -1099,7 +1101,7 @@ static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) return -ENODEV; } -static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) +static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu) { struct device *dev; struct acpi_apmt_node *apmt_node; @@ -1135,6 +1137,17 @@ static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) return 0; } +#else +static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu) +{ + return -ENODEV; +} +#endif + +static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) +{ + return arm_cspmu_acpi_get_cpus(cspmu); +} static int arm_cspmu_register_pmu(struct arm_cspmu *cspmu) {
Build-wise, the ACPI dependency consists of only a couple of things which could probably stand being factored out into ACPI helpers anyway. However for the immediate concern of working towards Devicetree support here, it's easy enough to make a few tweaks to contain the affected code locally, such that we can relax the Kconfig dependency. Signed-off-by: Robin Murphy <robin.murphy@arm.com> --- drivers/perf/arm_cspmu/Kconfig | 3 +-- drivers/perf/arm_cspmu/arm_cspmu.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-)