Hi Mark,
As we discussed before, I think it's time to re-consider the
construction of the current cpu power framework
before Anup implement T-state driver and I implement C-state driver.
The first thing in my mind is _PDC object. It does not only belong to
SpeedStep driver.
I'm thinking:
1) take cpu_acpi_init() and cpu_acpi_write_pdc() out of speedstep driver
and place into cpudrv_pm_init_module(),as follows:
boolean_t
cpudrv_pm_init_module(cpudrv_devstate_t *cpudsp)
{
cpu_acpi_init();
cpu_acpi_write_pdc();
walk----cpum_init()
}
Or 2) take _PDC object as a separate driver, write a simple driver and
put it into cpudrv_module_ops_table, as follows:
static struct cpudrv_module_ops *cpudrv_module_ops_table[] = {
&acpi_pdc_ops,
&cpu_idle_ops,
&speedstep_ops,
&cpu_throttling_ops,
NULL
};
And when evaluate _PDC, I still think we should enable all available
capabilities bits, besides p-state, we need to support c-state and
t-state.
Any suggestions?
Thanks,
-Aubrey