/* Detect supported states */ if (!cps_pm_support_state(CPS_PM_POWER_GATED))
cps_driver.state_count = STATE_CLOCK_GATED + 1; if (!cps_pm_support_state(CPS_PM_CLOCK_GATED))
cps_driver.state_count = STATE_NC_WAIT + 1; if (!cps_pm_support_state(CPS_PM_NC_WAIT))
cps_driver.state_count = STATE_WAIT + 1;
/* Inform the user if some states are unavailable */ if (cps_driver.state_count < STATE_COUNT) {
pr_info("cpuidle-cps: limited to "); switch (cps_driver.state_count - 1) { case STATE_WAIT:
pr_cont("coherent wait\n"); break; case STATE_NC_WAIT:
pr_cont("non-coherent wait\n"); break; case STATE_CLOCK_GATED:
pr_cont("clock gating\n"); break;
}
}
/* *Setthecoupledflagontheappropriatestatesifthissystem *requiresit.
*/ if (coupled_coherence) for (i = STATE_NC_WAIT; i < cps_driver.state_count; i++)
cps_driver.states[i].flags |= CPUIDLE_FLAG_COUPLED;
err = cpuidle_register_driver(&cps_driver); if (err) {
pr_err("Failed to register CPS cpuidle driver\n"); return err;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.