|
@@ -24,6 +24,7 @@
|
|
#include <asm/sysreg.h>
|
|
#include <asm/sysreg.h>
|
|
#include <asm/virt.h>
|
|
#include <asm/virt.h>
|
|
|
|
|
|
|
|
+#include <linux/acpi.h>
|
|
#include <linux/of.h>
|
|
#include <linux/of.h>
|
|
#include <linux/perf/arm_pmu.h>
|
|
#include <linux/perf/arm_pmu.h>
|
|
#include <linux/platform_device.h>
|
|
#include <linux/platform_device.h>
|
|
@@ -1056,9 +1057,19 @@ static const struct of_device_id armv8_pmu_of_device_ids[] = {
|
|
{},
|
|
{},
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static const struct pmu_probe_info armv8_pmu_probe_table[] = {
|
|
|
|
+ PMU_PROBE(0, 0, armv8_pmuv3_init), /* if all else fails... */
|
|
|
|
+ { /* sentinel value */ }
|
|
|
|
+};
|
|
|
|
+
|
|
static int armv8_pmu_device_probe(struct platform_device *pdev)
|
|
static int armv8_pmu_device_probe(struct platform_device *pdev)
|
|
{
|
|
{
|
|
- return arm_pmu_device_probe(pdev, armv8_pmu_of_device_ids, NULL);
|
|
|
|
|
|
+ if (acpi_disabled)
|
|
|
|
+ return arm_pmu_device_probe(pdev, armv8_pmu_of_device_ids,
|
|
|
|
+ NULL);
|
|
|
|
+
|
|
|
|
+ return arm_pmu_device_probe(pdev, armv8_pmu_of_device_ids,
|
|
|
|
+ armv8_pmu_probe_table);
|
|
}
|
|
}
|
|
|
|
|
|
static struct platform_driver armv8_pmu_driver = {
|
|
static struct platform_driver armv8_pmu_driver = {
|