Date: Sun, 13 Feb 2005 10:59:22 -0800 From: Nate Lawson <nate@root.org> To: acpi@FreeBSD.org Cc: current@FreeBSD.org Subject: [Fwd: cvs commit: src/sys/dev/acpica acpi_perf.c src/sys/kern kern_cpu.c] Message-ID: <420FA38A.6080009@root.org>
next in thread | raw e-mail | index | archive | help
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 -- Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?420FA38A.6080009>