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

Reply via email to