The commit below allows acpi_perf(4) to attach to FFixedHW devices and export settings to other drivers (say, EST and Powernow). The code snippet for foo_probe() to do this is as follows: /* Find an acpi_perf child under our common parent. */ device_t child; child = device_find_child(device_get_parent(dev), "acpi_perf", -1); if (child == NULL || !device_is_attached(child)) ... do whatever you can from static tables or fail ... /* Get its settings so we know what frequencies it offers. */ error = CPUFREQ_DRV_SETTINGS(child, sets, &count, &type); if (error) ... fall back to static tables ... /* * If the device is not offering info, it thinks it can control * settings itself. We fail out of our probe in this case since * it is already in charge. */ if ((type & CPUFREQ_FLAG_INFO_ONLY) == 0) return (ENXIO); /* Loop through all settings and match up to our levels */ for () powernow_sets[i].freq = sets[i].freq powernow_sets[i].power = sets[i].power; ... -------- Original Message -------- njl 2005-02-13 18:49:48 UTC FreeBSD src repository Modified files: sys/dev/acpica acpi_perf.c sys/kern kern_cpu.c Log: Add support for the CPUFREQ_FLAG_INFO_ONLY flag. Devices that report this are not added to the list(s) of available settings. However, other drivers can call the CPUFREQ_DRV_SETTINGS() method on those devices directly to get info about available settings. Update the acpi_perf(4) driver to use this flag in the presence of "functional fixed hardware." Thus, future drivers like Powernow can query acpi_perf for platform info but perform frequency transitions themselves. Revision Changes Path 1.7 +39 -12 src/sys/dev/acpica/acpi_perf.c 1.4 +8 -1 src/sys/kern/kern_cpu.c -- NateReceived on Sun Feb 13 2005 - 17:59:24 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:28 UTC