Author: andrew
Date: Tue Nov 22 09:39:31 2016
New Revision: 308965
URL: https://svnweb.freebsd.org/changeset/base/308965

Log:
  Split out the FDT parts of the pmu driver to make way for adding ACPI
  support.
  
  Obtained from:        ABT Systems Ltd
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/arm/arm/pmu.c

Modified: head/sys/arm/arm/pmu.c
==============================================================================
--- head/sys/arm/arm/pmu.c      Tue Nov 22 09:37:31 2016        (r308964)
+++ head/sys/arm/arm/pmu.c      Tue Nov 22 09:39:31 2016        (r308965)
@@ -36,6 +36,7 @@
 __FBSDID("$FreeBSD$");
 
 #include "opt_hwpmc_hooks.h"
+#include "opt_platform.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -49,9 +50,11 @@ __FBSDID("$FreeBSD$");
 #include <sys/pmc.h>
 #include <sys/pmckern.h>
 
+#ifdef FDT
 #include <dev/ofw/openfirm.h>
 #include <dev/ofw/ofw_bus.h>
 #include <dev/ofw/ofw_bus_subr.h>
+#endif
 
 #include <machine/bus.h>
 #include <machine/cpu.h>
@@ -69,22 +72,6 @@ struct pmu_softc {
        void                    *ih[MAX_RLEN];
 };
 
-static struct ofw_compat_data compat_data[] = {
-       {"arm,armv8-pmuv3",     1},
-       {"arm,cortex-a17-pmu",  1},
-       {"arm,cortex-a15-pmu",  1},
-       {"arm,cortex-a12-pmu",  1},
-       {"arm,cortex-a9-pmu",   1},
-       {"arm,cortex-a8-pmu",   1},
-       {"arm,cortex-a7-pmu",   1},
-       {"arm,cortex-a5-pmu",   1},
-       {"arm,arm11mpcore-pmu", 1},
-       {"arm,arm1176-pmu",     1},
-       {"arm,arm1136-pmu",     1},
-       {"qcom,krait-pmu",      1},
-       {NULL,                  0}
-};
-
 static struct resource_spec pmu_spec[] = {
        { SYS_RES_IRQ,          0,      RF_ACTIVE },
        /* We don't currently handle pmu events, other than on cpu 0 */
@@ -144,21 +131,6 @@ pmu_intr(void *arg)
 }
 
 static int
-pmu_probe(device_t dev)
-{
-
-       if (!ofw_bus_status_okay(dev))
-               return (ENXIO);
-
-       if (ofw_bus_search_compatible(dev, compat_data)->ocd_data != 0) {
-               device_set_desc(dev, "Performance Monitoring Unit");
-               return (BUS_PROBE_DEFAULT);
-       }
-
-       return (ENXIO);
-}
-
-static int
 pmu_attach(device_t dev)
 {
        struct pmu_softc *sc;
@@ -206,18 +178,51 @@ pmu_attach(device_t dev)
        return (0);
 }
 
-static device_method_t pmu_methods[] = {
-       DEVMETHOD(device_probe,         pmu_probe),
+#ifdef FDT
+static struct ofw_compat_data compat_data[] = {
+       {"arm,armv8-pmuv3",     1},
+       {"arm,cortex-a17-pmu",  1},
+       {"arm,cortex-a15-pmu",  1},
+       {"arm,cortex-a12-pmu",  1},
+       {"arm,cortex-a9-pmu",   1},
+       {"arm,cortex-a8-pmu",   1},
+       {"arm,cortex-a7-pmu",   1},
+       {"arm,cortex-a5-pmu",   1},
+       {"arm,arm11mpcore-pmu", 1},
+       {"arm,arm1176-pmu",     1},
+       {"arm,arm1136-pmu",     1},
+       {"qcom,krait-pmu",      1},
+       {NULL,                  0}
+};
+
+static int
+pmu_fdt_probe(device_t dev)
+{
+
+       if (!ofw_bus_status_okay(dev))
+               return (ENXIO);
+
+       if (ofw_bus_search_compatible(dev, compat_data)->ocd_data != 0) {
+               device_set_desc(dev, "Performance Monitoring Unit");
+               return (BUS_PROBE_DEFAULT);
+       }
+
+       return (ENXIO);
+}
+
+static device_method_t pmu_fdt_methods[] = {
+       DEVMETHOD(device_probe,         pmu_fdt_probe),
        DEVMETHOD(device_attach,        pmu_attach),
        { 0, 0 }
 };
 
-static driver_t pmu_driver = {
+static driver_t pmu_fdt_driver = {
        "pmu",
-       pmu_methods,
+       pmu_fdt_methods,
        sizeof(struct pmu_softc),
 };
 
-static devclass_t pmu_devclass;
+static devclass_t pmu_fdt_devclass;
 
-DRIVER_MODULE(pmu, simplebus, pmu_driver, pmu_devclass, 0, 0);
+DRIVER_MODULE(pmu, simplebus, pmu_fdt_driver, pmu_fdt_devclass, 0, 0);
+#endif
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to