@@ -73,16 +73,20 @@ static int at91_init_cpuidle(void)
device->states[0].exit_latency = 1;
device->states[0].target_residency = 10000;
device->states[0].flags = CPUIDLE_FLAG_TIME_VALID;
- strcpy(device->states[0].name, "WFI");
- strcpy(device->states[0].desc, "Wait for interrupt");
+ snprintf(device->states[0].name, CPUIDLE_NAME_LEN, "WFI");
+ snprintf(device->states[0].desc, CPUIDLE_DESC_LEN,
+ "Wait for interrupt");
+ snprintf(device->states[0].abbr, CPUIDLE_ABBR_LEN, "W");
/* Wait for interrupt and RAM self refresh state */
device->states[1].enter = at91_enter_idle;
device->states[1].exit_latency = 10;
device->states[1].target_residency = 10000;
device->states[1].flags = CPUIDLE_FLAG_TIME_VALID;
- strcpy(device->states[1].name, "RAM_SR");
- strcpy(device->states[1].desc, "WFI and RAM Self Refresh");
+ snprintf(device->states[1].name, CPUIDLE_NAME_LEN, "RAM SR");
+ snprintf(device->states[1].desc, CPUIDLE_DESC_LEN,
+ "WFI and RAM Self Refresh");
+ snprintf(device->states[1].abbr, CPUIDLE_ABBR_LEN, "WSR");
if (cpuidle_register_device(device)) {
printk(KERN_ERR "at91_init_cpuidle: Failed registering\n");
@@ -127,16 +127,21 @@ static int __init davinci_cpuidle_probe(struct platform_device *pdev)
device->states[0].exit_latency = 1;
device->states[0].target_residency = 10000;
device->states[0].flags = CPUIDLE_FLAG_TIME_VALID;
- strcpy(device->states[0].name, "WFI");
- strcpy(device->states[0].desc, "Wait for interrupt");
+ snprintf(device->states[0].name, CPUIDLE_NAME_LEN, "WFI");
+ snprintf(device->states[0].desc, CPUIDLE_DESC_LEN,
+ "Wait for interrupt");
+ snprintf(device->states[0].abbr, CPUIDLE_ABBR_LEN, "W");
/* Wait for interrupt and DDR self refresh state */
device->states[1].enter = davinci_enter_idle;
device->states[1].exit_latency = 10;
device->states[1].target_residency = 10000;
device->states[1].flags = CPUIDLE_FLAG_TIME_VALID;
- strcpy(device->states[1].name, "DDR SR");
- strcpy(device->states[1].desc, "WFI and DDR Self Refresh");
+ snprintf(device->states[1].name, CPUIDLE_NAME_LEN, "RAM SR");
+ snprintf(device->states[1].desc, CPUIDLE_DESC_LEN,
+ "WFI and RAM Self Refresh");
+ snprintf(device->states[1].abbr, CPUIDLE_ABBR_LEN, "WSR");
+
if (pdata->ddr2_pdown)
davinci_states[1].flags |= DAVINCI_CPUIDLE_FLAGS_DDR2_PWDN;
cpuidle_set_statedata(&device->states[1], &davinci_states[1]);
@@ -75,16 +75,20 @@ static int kirkwood_init_cpuidle(void)
device->states[0].exit_latency = 1;
device->states[0].target_residency = 10000;
device->states[0].flags = CPUIDLE_FLAG_TIME_VALID;
- strcpy(device->states[0].name, "WFI");
- strcpy(device->states[0].desc, "Wait for interrupt");
+ snprintf(device->states[0].name, CPUIDLE_NAME_LEN, "WFI");
+ snprintf(device->states[0].desc, CPUIDLE_DESC_LEN,
+ "Wait for interrupt");
+ snprintf(device->states[0].abbr, CPUIDLE_ABBR_LEN, "W");
/* Wait for interrupt and DDR self refresh state */
device->states[1].enter = kirkwood_enter_idle;
device->states[1].exit_latency = 10;
device->states[1].target_residency = 10000;
device->states[1].flags = CPUIDLE_FLAG_TIME_VALID;
- strcpy(device->states[1].name, "DDR SR");
- strcpy(device->states[1].desc, "WFI and DDR Self Refresh");
+ snprintf(device->states[1].name, CPUIDLE_NAME_LEN, "RAM SR");
+ snprintf(device->states[1].desc, CPUIDLE_DESC_LEN,
+ "WFI and RAM Self Refresh");
+ snprintf(device->states[1].abbr, CPUIDLE_ABBR_LEN, "WSR");
if (cpuidle_register_device(device)) {
printk(KERN_ERR "kirkwood_init_cpuidle: Failed registering\n");
@@ -496,7 +496,8 @@ int __init omap3_idle_init(void)
omap3_enter_idle_bm : omap3_enter_idle;
if (cx->type == OMAP3_STATE_C1)
dev->safe_state = state;
- sprintf(state->name, "C%d", count+1);
+ snprintf(state->name, CPUIDLE_NAME_LEN, "C%d", count+1);
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "C%d", count+1);
count++;
}
@@ -75,8 +75,9 @@ void sh_mobile_setup_cpuidle(void)
i = CPUIDLE_DRIVER_STATE_START;
state = &dev->states[i++];
- snprintf(state->name, CPUIDLE_NAME_LEN, "C0");
- strncpy(state->desc, "SuperH Sleep Mode", CPUIDLE_DESC_LEN);
+ snprintf(state->name, CPUIDLE_NAME_LEN, "SuperH");
+ snprintf(state->desc, CPUIDLE_DESC_LEN, "SuperH Sleep Mode");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "SH");
state->exit_latency = 1;
state->target_residency = 1 * 2;
state->power_usage = 3;
@@ -89,9 +90,10 @@ void sh_mobile_setup_cpuidle(void)
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);
+ snprintf(state->name, CPUIDLE_NAME_LEN, "SuperH [SF]");
+ snprintf(state->desc, CPUIDLE_DESC_LEN,
+ "SuperH Sleep Mode [SF]");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "SHF");
state->exit_latency = 100;
state->target_residency = 1 * 2;
state->power_usage = 1;
@@ -102,9 +104,10 @@ void sh_mobile_setup_cpuidle(void)
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);
+ snprintf(state->name, CPUIDLE_NAME_LEN, "SuperH Standby [SF]");
+ snprintf(state->desc, CPUIDLE_DESC_LEN,
+ "SuperH Mobile Standby Mode [SF]");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "SHS");
state->exit_latency = 2300;
state->target_residency = 1 * 2;
state->power_usage = 1;
@@ -1023,6 +1023,7 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
switch (cx->type) {
case ACPI_STATE_C1:
snprintf(state->name, CPUIDLE_NAME_LEN, "C1");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "C1");
state->flags |= CPUIDLE_FLAG_SHALLOW;
if (cx->entry_method == ACPI_CSTATE_FFH)
state->flags |= CPUIDLE_FLAG_TIME_VALID;
@@ -1033,6 +1034,7 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
case ACPI_STATE_C2:
snprintf(state->name, CPUIDLE_NAME_LEN, "C2");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "C2");
state->flags |= CPUIDLE_FLAG_BALANCED;
state->flags |= CPUIDLE_FLAG_TIME_VALID;
state->enter = acpi_idle_enter_simple;
@@ -1041,6 +1043,7 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
case ACPI_STATE_C3:
snprintf(state->name, CPUIDLE_NAME_LEN, "C3");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "C3");
state->flags |= CPUIDLE_FLAG_DEEP;
state->flags |= CPUIDLE_FLAG_TIME_VALID;
state->flags |= CPUIDLE_FLAG_CHECK_BM;
@@ -268,6 +268,7 @@ static void poll_idle_init(struct cpuidle_device *dev)
snprintf(state->name, CPUIDLE_NAME_LEN, "POLL");
snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
+ snprintf(state->abbr, CPUIDLE_ABBR_LEN, "P");
state->exit_latency = 0;
state->target_residency = 0;
state->power_usage = -1;
@@ -249,9 +249,11 @@ define_show_state_ull_function(usage)
define_show_state_ull_function(time)
define_show_state_str_function(name)
define_show_state_str_function(desc)
+define_show_state_str_function(abbr)
define_one_state_ro(name, show_state_name);
define_one_state_ro(desc, show_state_desc);
+define_one_state_ro(abbr, show_state_abbr);
define_one_state_ro(latency, show_state_exit_latency);
define_one_state_ro(power, show_state_power_usage);
define_one_state_ro(usage, show_state_usage);
@@ -260,6 +262,7 @@ define_one_state_ro(time, show_state_time);
static struct attribute *cpuidle_state_default_attrs[] = {
&attr_name.attr,
&attr_desc.attr,
+ &attr_abbr.attr,
&attr_latency.attr,
&attr_power.attr,
&attr_usage.attr,
@@ -91,6 +91,7 @@ static struct cpuidle_state nehalem_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C1 */
.name = "NHM-C1",
.desc = "MWAIT 0x00",
+ .abbr = "C1",
.driver_data = (void *) 0x00,
.flags = CPUIDLE_FLAG_TIME_VALID,
.exit_latency = 3,
@@ -99,6 +100,7 @@ static struct cpuidle_state nehalem_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C2 */
.name = "NHM-C3",
.desc = "MWAIT 0x10",
+ .abbr = "C3",
.driver_data = (void *) 0x10,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 20,
@@ -107,6 +109,7 @@ static struct cpuidle_state nehalem_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C3 */
.name = "NHM-C6",
.desc = "MWAIT 0x20",
+ .abbr = "C6",
.driver_data = (void *) 0x20,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 200,
@@ -119,6 +122,7 @@ static struct cpuidle_state snb_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C1 */
.name = "SNB-C1",
.desc = "MWAIT 0x00",
+ .abbr = "C1",
.driver_data = (void *) 0x00,
.flags = CPUIDLE_FLAG_TIME_VALID,
.exit_latency = 1,
@@ -127,6 +131,7 @@ static struct cpuidle_state snb_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C2 */
.name = "SNB-C3",
.desc = "MWAIT 0x10",
+ .abbr = "C3",
.driver_data = (void *) 0x10,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 80,
@@ -135,6 +140,7 @@ static struct cpuidle_state snb_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C3 */
.name = "SNB-C6",
.desc = "MWAIT 0x20",
+ .abbr = "C6",
.driver_data = (void *) 0x20,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 104,
@@ -143,6 +149,7 @@ static struct cpuidle_state snb_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C4 */
.name = "SNB-C7",
.desc = "MWAIT 0x30",
+ .abbr = "C7",
.driver_data = (void *) 0x30,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 109,
@@ -155,6 +162,7 @@ static struct cpuidle_state atom_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C1 */
.name = "ATM-C1",
.desc = "MWAIT 0x00",
+ .abbr = "C1",
.driver_data = (void *) 0x00,
.flags = CPUIDLE_FLAG_TIME_VALID,
.exit_latency = 1,
@@ -163,6 +171,7 @@ static struct cpuidle_state atom_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C2 */
.name = "ATM-C2",
.desc = "MWAIT 0x10",
+ .abbr = "C2",
.driver_data = (void *) 0x10,
.flags = CPUIDLE_FLAG_TIME_VALID,
.exit_latency = 20,
@@ -172,6 +181,7 @@ static struct cpuidle_state atom_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C4 */
.name = "ATM-C4",
.desc = "MWAIT 0x30",
+ .abbr = "C4",
.driver_data = (void *) 0x30,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 100,
@@ -181,6 +191,7 @@ static struct cpuidle_state atom_cstates[MWAIT_MAX_NUM_CSTATES] = {
{ /* MWAIT C6 */
.name = "ATM-C6",
.desc = "MWAIT 0x52",
+ .abbr = "C6",
.driver_data = (void *) 0x52,
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 140,
@@ -20,6 +20,7 @@
#define CPUIDLE_STATE_MAX 8
#define CPUIDLE_NAME_LEN 16
#define CPUIDLE_DESC_LEN 32
+#define CPUIDLE_ABBR_LEN 3
struct cpuidle_device;
@@ -31,6 +32,7 @@ struct cpuidle_device;
struct cpuidle_state {
char name[CPUIDLE_NAME_LEN];
char desc[CPUIDLE_DESC_LEN];
+ char abbr[CPUIDLE_ABBR_LEN];
void *driver_data;
unsigned int flags;