|
@@ -87,25 +87,31 @@ void sh_mobile_setup_cpuidle(void)
|
|
|
|
|
|
dev->safe_state = state;
|
|
|
|
|
|
- state = &dev->states[i++];
|
|
|
- snprintf(state->name, CPUIDLE_NAME_LEN, "C1");
|
|
|
- strncpy(state->desc, "SuperH Sleep Mode [SF]", CPUIDLE_DESC_LEN);
|
|
|
- state->exit_latency = 100;
|
|
|
- state->target_residency = 1 * 2;
|
|
|
- state->power_usage = 1;
|
|
|
- state->flags = 0;
|
|
|
- state->flags |= CPUIDLE_FLAG_TIME_VALID;
|
|
|
- state->enter = cpuidle_sleep_enter;
|
|
|
+ if (sh_mobile_sleep_supported & SUSP_SH_SF) {
|
|
|
+ state = &dev->states[i++];
|
|
|
+ snprintf(state->name, CPUIDLE_NAME_LEN, "C1");
|
|
|
+ strncpy(state->desc, "SuperH Sleep Mode [SF]",
|
|
|
+ CPUIDLE_DESC_LEN);
|
|
|
+ state->exit_latency = 100;
|
|
|
+ state->target_residency = 1 * 2;
|
|
|
+ state->power_usage = 1;
|
|
|
+ state->flags = 0;
|
|
|
+ state->flags |= CPUIDLE_FLAG_TIME_VALID;
|
|
|
+ state->enter = cpuidle_sleep_enter;
|
|
|
+ }
|
|
|
|
|
|
- state = &dev->states[i++];
|
|
|
- snprintf(state->name, CPUIDLE_NAME_LEN, "C2");
|
|
|
- strncpy(state->desc, "SuperH Mobile Standby Mode [SF]", CPUIDLE_DESC_LEN);
|
|
|
- state->exit_latency = 2300;
|
|
|
- state->target_residency = 1 * 2;
|
|
|
- state->power_usage = 1;
|
|
|
- state->flags = 0;
|
|
|
- state->flags |= CPUIDLE_FLAG_TIME_VALID;
|
|
|
- state->enter = cpuidle_sleep_enter;
|
|
|
+ if (sh_mobile_sleep_supported & SUSP_SH_STANDBY) {
|
|
|
+ state = &dev->states[i++];
|
|
|
+ snprintf(state->name, CPUIDLE_NAME_LEN, "C2");
|
|
|
+ strncpy(state->desc, "SuperH Mobile Standby Mode [SF]",
|
|
|
+ CPUIDLE_DESC_LEN);
|
|
|
+ state->exit_latency = 2300;
|
|
|
+ state->target_residency = 1 * 2;
|
|
|
+ state->power_usage = 1;
|
|
|
+ state->flags = 0;
|
|
|
+ state->flags |= CPUIDLE_FLAG_TIME_VALID;
|
|
|
+ state->enter = cpuidle_sleep_enter;
|
|
|
+ }
|
|
|
|
|
|
dev->state_count = i;
|
|
|
|