Commit f9bd34e3 authored by Robin Murphy's avatar Robin Murphy Committed by Will Deacon

perf/arm_cspmu: Clean up ACPI dependency

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.
Reviewed-and-Tested-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: default avatarIlkka Koskinen <ilkka@os.amperecomputing.com>
Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/9d126711c7498b199b3e6f5cf48ca60ffb9df54c.1685983270.git.robin.murphy@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
parent 87b3b6d5
...@@ -4,8 +4,7 @@ ...@@ -4,8 +4,7 @@
config ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU config ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU
tristate "ARM Coresight Architecture PMU" tristate "ARM Coresight Architecture PMU"
depends on ARM64 && ACPI depends on ARM64 || COMPILE_TEST
depends on ACPI_APMT || COMPILE_TEST
help help
Provides support for performance monitoring unit (PMU) devices Provides support for performance monitoring unit (PMU) devices
based on ARM CoreSight PMU architecture. Note that this PMU based on ARM CoreSight PMU architecture. Note that this PMU
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/perf_event.h> #include <linux/perf_event.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <acpi/processor.h>
#include "arm_cspmu.h" #include "arm_cspmu.h"
#include "nvidia_cspmu.h" #include "nvidia_cspmu.h"
...@@ -1075,6 +1074,9 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu) ...@@ -1075,6 +1074,9 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu)
return 0; 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) static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid)
{ {
u32 acpi_uid; u32 acpi_uid;
...@@ -1099,7 +1101,7 @@ static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid) ...@@ -1099,7 +1101,7 @@ static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid)
return -ENODEV; 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 device *dev;
struct acpi_apmt_node *apmt_node; struct acpi_apmt_node *apmt_node;
...@@ -1135,6 +1137,17 @@ static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu) ...@@ -1135,6 +1137,17 @@ static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu)
return 0; 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) static int arm_cspmu_register_pmu(struct arm_cspmu *cspmu)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment