Index: sys/dev/acpica/acpi_cpu.c
===================================================================
--- sys/dev/acpica/acpi_cpu.c	(revision 252537)
+++ sys/dev/acpica/acpi_cpu.c	(working copy)
@@ -279,9 +279,7 @@
     struct acpi_cpu_softc *sc;
     struct acpi_softc	  *acpi_sc;
     ACPI_STATUS		   status;
-    u_int		   features;
-    int			   cpu_id, drv_count, i;
-    driver_t 		  **drivers;
+    int			   cpu_id;
     uint32_t		   cap_set[3];
 
     /* UUID needed by _OSC evaluation */
@@ -344,13 +342,12 @@
      * SMP control where each CPU can have different settings.
      */
     sc->cpu_features = ACPI_CAP_SMP_SAME | ACPI_CAP_SMP_SAME_C3;
-    if (devclass_get_drivers(acpi_cpu_devclass, &drivers, &drv_count) == 0) {
-	for (i = 0; i < drv_count; i++) {
-	    if (ACPI_GET_FEATURES(drivers[i], &features) == 0)
-		sc->cpu_features |= features;
-	}
-	free(drivers, M_TEMP);
-    }
+    /* est */
+    sc->cpu_features |= ACPI_CAP_PERF_MSRS | ACPI_CAP_C1_IO_HALT;
+    /* p4tcc */
+    sc->cpu_features |= ACPI_CAP_THR_MSRS;
+    /* hwpstate */
+    sc->cpu_features |= ACPI_CAP_PERF_MSRS;
 
     /*
      * CPU capabilities are specified in
Index: sys/dev/acpica/acpi_if.m
===================================================================
--- sys/dev/acpica/acpi_if.m	(revision 252537)
+++ sys/dev/acpica/acpi_if.m	(working copy)
@@ -159,19 +159,6 @@
 };
 
 #
-# Query a given driver for its supported feature(s).  This should be
-# called by the parent bus before the driver is probed.
-#
-# driver_t *driver:  child driver
-#
-# u_int *features:  returned bitmask of all supported features
-#
-STATICMETHOD int get_features {
-	driver_t	*driver;
-	u_int		*features;
-};
-
-#
 # Read embedded controller (EC) address space
 #
 # device_t dev:  EC device
Index: sys/x86/cpufreq/est.c
===================================================================
--- sys/x86/cpufreq/est.c	(revision 252537)
+++ sys/x86/cpufreq/est.c	(working copy)
@@ -899,7 +899,6 @@
 };
 
 static void	est_identify(driver_t *driver, device_t parent);
-static int	est_features(driver_t *driver, u_int *features);
 static int	est_probe(device_t parent);
 static int	est_attach(device_t parent);
 static int	est_detach(device_t parent);
@@ -928,9 +927,6 @@
 	DEVMETHOD(cpufreq_drv_type,	est_type),
 	DEVMETHOD(cpufreq_drv_settings,	est_settings),
 
-	/* ACPI interface */
-	DEVMETHOD(acpi_get_features,	est_features),
-
 	{0, 0}
 };
 
@@ -943,18 +939,6 @@
 static devclass_t est_devclass;
 DRIVER_MODULE(est, cpu, est_driver, est_devclass, 0, 0);
 
-static int
-est_features(driver_t *driver, u_int *features)
-{
-
-	/*
-	 * Notify the ACPI CPU that we support direct access to MSRs.
-	 * XXX C1 "I/O then Halt" seems necessary for some broken BIOS.
-	 */
-	*features = ACPI_CAP_PERF_MSRS | ACPI_CAP_C1_IO_HALT;
-	return (0);
-}
-
 static void
 est_identify(driver_t *driver, device_t parent)
 {
Index: sys/x86/cpufreq/hwpstate.c
===================================================================
--- sys/x86/cpufreq/hwpstate.c	(revision 252537)
+++ sys/x86/cpufreq/hwpstate.c	(working copy)
@@ -112,7 +112,6 @@
 static int	hwpstate_settings(device_t dev, struct cf_setting *sets, int *count);
 static int	hwpstate_type(device_t dev, int *type);
 static int	hwpstate_shutdown(device_t dev);
-static int	hwpstate_features(driver_t *driver, u_int *features);
 static int	hwpstate_get_info_from_acpi_perf(device_t dev, device_t perf_dev);
 static int	hwpstate_get_info_from_msr(device_t dev);
 static int	hwpstate_goto_pstate(device_t dev, int pstate_id);
@@ -136,9 +135,6 @@
 	DEVMETHOD(cpufreq_drv_settings,	hwpstate_settings),
 	DEVMETHOD(cpufreq_drv_type,	hwpstate_type),
 
-	/* ACPI interface */
-	DEVMETHOD(acpi_get_features,	hwpstate_features),
-
 	{0, 0}
 };
 
@@ -493,12 +489,3 @@
 	/* hwpstate_goto_pstate(dev, 0); */
 	return (0);
 }
-
-static int
-hwpstate_features(driver_t *driver, u_int *features)
-{
-
-	/* Notify the ACPI CPU that we support direct access to MSRs */
-	*features = ACPI_CAP_PERF_MSRS;
-	return (0);
-}
Index: sys/x86/cpufreq/p4tcc.c
===================================================================
--- sys/x86/cpufreq/p4tcc.c	(revision 252537)
+++ sys/x86/cpufreq/p4tcc.c	(working copy)
@@ -69,7 +69,6 @@
 #define TCC_REG_OFFSET		1
 #define TCC_SPEED_PERCENT(x)	((10000 * (x)) / TCC_NUM_SETTINGS)
 
-static int	p4tcc_features(driver_t *driver, u_int *features);
 static void	p4tcc_identify(driver_t *driver, device_t parent);
 static int	p4tcc_probe(device_t dev);
 static int	p4tcc_attach(device_t dev);
@@ -93,9 +92,6 @@
 	DEVMETHOD(cpufreq_drv_type,	p4tcc_type),
 	DEVMETHOD(cpufreq_drv_settings,	p4tcc_settings),
 
-	/* ACPI interface */
-	DEVMETHOD(acpi_get_features,	p4tcc_features),
-
 	{0, 0}
 };
 
@@ -108,15 +104,6 @@
 static devclass_t p4tcc_devclass;
 DRIVER_MODULE(p4tcc, cpu, p4tcc_driver, p4tcc_devclass, 0, 0);
 
-static int
-p4tcc_features(driver_t *driver, u_int *features)
-{
-
-	/* Notify the ACPI CPU that we support direct access to MSRs */
-	*features = ACPI_CAP_THR_MSRS;
-	return (0);
-}
-
 static void
 p4tcc_identify(driver_t *driver, device_t parent)
 {
