cpudrv_pm
(cpudsp)->cpudrv_pm.timeout_id = \
(cpudsp), (((cpudsp)->cpudrv_pm.cur_spd == NULL) ? \
(cpudsp)->cpudrv_pm.cur_spd->quant_cnt)); \
tmp_tid = (cpudsp)->cpudrv_pm.timeout_id; \
(cpudsp)->cpudrv_pm.timeout_id = 0; \
mutex_enter(&(cpudsp)->cpudrv_pm.timeout_lock); \
while ((cpudsp)->cpudrv_pm.timeout_count != 0) \
cv_wait(&(cpudsp)->cpudrv_pm.timeout_cv, \
&(cpudsp)->cpudrv_pm.timeout_lock); \
mutex_exit(&(cpudsp)->cpudrv_pm.timeout_lock); \
cpudsp->cpudrv_pm.tq = ddi_taskq_create(dip,
mutex_init(&cpudsp->cpudrv_pm.timeout_lock, NULL,
cv_init(&cpudsp->cpudrv_pm.timeout_cv, NULL,
cpudsp->cpudrv_pm.cur_spd = NULL;
cpudsp->cpudrv_pm.pm_started = B_FALSE;
cpudsp->cpudrv_pm.cur_spd = NULL;
cv_destroy(&cpudsp->cpudrv_pm.timeout_cv);
mutex_destroy(&cpudsp->cpudrv_pm.timeout_lock);
ddi_taskq_destroy(cpudsp->cpudrv_pm.tq);
cpupm = &(cpudsp->cpudrv_pm);
cpudrvpm = &(cpudsp->cpudrv_pm);
cpudrv_pm_t *cpupm = &(cpudsp->cpudrv_pm);
cpudrv_pm_t *cpupm = &(cpudsp->cpudrv_pm);
cpudrv_pm_t *cpupm = &(cpudsp->cpudrv_pm);
if (ret == DDI_SUCCESS && cpudsp->cpudrv_pm.cur_spd == NULL) { \
cpudsp->cpudrv_pm.cur_spd = new_spd; \
mutex_enter(&cpudsp->cpudrv_pm.timeout_lock);
if ((ddi_taskq_dispatch(cpudsp->cpudrv_pm.tq, cpudrv_monitor, arg,
mutex_exit(&cpudsp->cpudrv_pm.timeout_lock);
cpudsp->cpudrv_pm.timeout_count++;
mutex_exit(&cpudsp->cpudrv_pm.timeout_lock);
cpupm = &(cpudsp->cpudrv_pm);
cpudrv_pm_t cpudrv_pm; /* power management data */
cpupm = &(cpudsp->cpudrv_pm);
cpupm = &(cpudsp->cpudrv_pm);