}
#ifdef ENABLE_PM_LOG
if (pinput->value == KEY_PRESSED)
- pm_history_save(PM_LOG_KEY_PRESS, pinput->code);
+ syscommon_resman_set_resource_attr_uint64_2(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_POWER),
+ DEVICED_POWER_ATTR_TUPLE2_SET_HISTORY_LOG,
+ SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_PRESS, pinput->code);
else if (pinput->value == KEY_RELEASED)
- pm_history_save(PM_LOG_KEY_RELEASE, pinput->code);
+ syscommon_resman_set_resource_attr_uint64_2(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_POWER),
+ DEVICED_POWER_ATTR_TUPLE2_SET_HISTORY_LOG,
+ SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_RELEASE, pinput->code);
#endif
return ignore;
}
}
#ifdef ENABLE_PM_LOG
if (pinput->value == KEY_PRESSED)
- pm_history_save(PM_LOG_KEY_PRESS, pinput->code);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_PRESS, pinput->code);
else if (pinput->value == KEY_RELEASED)
- pm_history_save(PM_LOG_KEY_RELEASE, pinput->code);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_RELEASE, pinput->code);
#endif
return ignore;
}
}
#ifdef ENABLE_PM_LOG
if (pinput->value == KEY_PRESSED)
- pm_history_save(PM_LOG_KEY_PRESS, pinput->code);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_PRESS, pinput->code);
else if (pinput->value == KEY_RELEASED)
- pm_history_save(PM_LOG_KEY_RELEASE, pinput->code);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_RELEASE, pinput->code);
#endif
return ignore;
}
go_suspend:
#ifdef ENABLE_PM_LOG
- pm_history_save(PM_LOG_SLEEP, get_pm_cur_state());
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_SLEEP, get_pm_cur_state());
#endif
power_request_change_state(DEVICED_POWER_STATE_SLEEP, HAL_DEVICE_POWER_TRANSITION_REASON_DISPLAY_OFF_TIMEOUT);
return 0;
}
#ifdef ENABLE_PM_LOG
if (pinput->value == KEY_PRESSED)
- pm_history_save(PM_LOG_KEY_PRESS, pinput->code);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_PRESS, pinput->code);
else if (pinput->value == KEY_RELEASED)
- pm_history_save(PM_LOG_KEY_RELEASE, pinput->code);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_KEY_RELEASE, pinput->code);
#endif
return ignore;
}
return ret;
if (!ret)
- pm_history_save(PM_LOG_LCD_DIM, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_DIM, current);
else
- pm_history_save(PM_LOG_LCD_DIM_FAIL, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_DIM_FAIL, current);
#endif
return ret;
}
return 0;
if (dpms_on == SYSCOMMON_DEVICED_DPMS_ON)
- pm_history_save(PM_LOG_LCD_ON_COMPLETE, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_ON_COMPLETE, current);
else if (dpms_on == SYSCOMMON_DEVICED_DPMS_OFF || dpms_on == SYSCOMMON_DEVICED_DPMS_FORCE_OFF)
- pm_history_save(PM_LOG_LCD_OFF_COMPLETE, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_OFF_COMPLETE, current);
else
- pm_history_save(PM_LOG_LCD_CONTROL_FAIL, dpms_on);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_CONTROL_FAIL, dpms_on);
#endif
return 0;
if (display_state_get_current(¤t) < 0)
return 0;
- pm_history_save(PM_LOG_LCD_ON, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_ON, current);
#endif
return ret;
}
if (display_state_get_current(¤t) < 0)
return ret;
- pm_history_save(PM_LOG_LCD_OFF, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_LCD_OFF, current);
#endif
return ret;
}
go_suspend:
#ifdef ENABLE_PM_LOG
- pm_history_save(PM_LOG_SLEEP, current);
+ pm_history_save(SYSCOMMON_DEVICED_POWER_LOG_TYPE_SLEEP, current);
#endif
syscommon_resman_set_resource_attr_uint64_4(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_POWER),
DEVICED_POWER_ATTR_SET_UINT64_4_CURRENT_STATE,
typedef struct _pm_history {
time_t time;
- enum pm_log_type log_type;
+ enum syscommon_deviced_power_log_type log_type;
int keycode;
} pm_history;
static pm_history pm_history_log[MAX_LOG_COUNT] = {{0, }, };
static int history_count = 0;
-static const char history_string[PM_LOG_MAX][15] = {
+static const char history_string[SYSCOMMON_DEVICED_POWER_LOG_TYPE_MAX][15] = {
"PRESS", "LONG PRESS", "RELEASE", "LCD ON", "LCD ON COMPL", "LCD ON FAIL",
"LCD DIM", "LCD DIM FAIL", "LCD OFF", "LCD OFF COMPL", "LCD OFF FAIL",
"LCD FAIL", "SLEEP"};
max_history_count = MAX_LOG_COUNT;
}
-void pm_history_save(enum pm_log_type log_type, int code)
+void pm_history_save(enum syscommon_deviced_power_log_type log_type, int code)
{
time_t now;
if (pm_history_log[index].time == 0)
continue;
- if (pm_history_log[index].log_type >= PM_LOG_MAX)
+ if (pm_history_log[index].log_type >= SYSCOMMON_DEVICED_POWER_LOG_TYPE_MAX)
continue;
ctime_r(&pm_history_log[index].time, time_buf);
time_buf[strlen(time_buf) - 1] = 0;
POWER_LOCK,
};
-enum pm_log_type {
- PM_LOG_MIN = 0,
- PM_LOG_KEY_PRESS = PM_LOG_MIN, /* key log */
- PM_LOG_KEY_LONG_PRESS,
- PM_LOG_KEY_RELEASE,
- PM_LOG_LCD_ON, /* lcd log */
- PM_LOG_LCD_ON_COMPLETE,
- PM_LOG_LCD_ON_FAIL,
- PM_LOG_LCD_DIM,
- PM_LOG_LCD_DIM_FAIL,
- PM_LOG_LCD_OFF,
- PM_LOG_LCD_OFF_COMPLETE,
- PM_LOG_LCD_OFF_FAIL,
- PM_LOG_LCD_CONTROL_FAIL,
- PM_LOG_SLEEP,
- PM_LOG_MAX
-};
-
-
extern bool timeout_sleep_support;
#ifdef ENABLE_PM_LOG
void pm_history_init(void);
-void pm_history_save(enum pm_log_type log_type, int code);
+void pm_history_save(enum syscommon_deviced_power_log_type log_type, int code);
void pm_history_print(int fd, int count);
#endif
bool vital_mode(void);
return 0;
}
+static int set_tuple2_power_attr_data(int resource_id,
+ const struct syscommon_resman_resource_attribute *attr,
+ const void *data1, const void *data2, int count1, int count2)
+{
+ if (!data1 || !data2)
+ return -EINVAL;
+
+ switch (attr->id) {
+ case DEVICED_POWER_ATTR_TUPLE2_SET_HISTORY_LOG:
+ {
+ enum syscommon_deviced_power_log_type type = *(enum syscommon_deviced_power_log_type *) data1;
+ int code = *(int *) data2;
+
+ pm_history_save(type, code);
+
+ return 0;
+ }
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+
static int get_power_attr_data(int resource_id,
const struct syscommon_resman_resource_attribute *attr, void *data)
{
.get = get_power_attr_data,
.is_supported = syscommon_resman_resource_attr_supported_always,
},
+ }, {
+ .name = "DEVICED_POWER_ATTR_TUPLE2_SET_HISTORY_LOG",
+ .id = DEVICED_POWER_ATTR_TUPLE2_SET_HISTORY_LOG,
+ .type = SYSCOMMON_RESMAN_DATA_TYPE_UINT64_UINT64,
+ .flag = SYSCOMMON_RESMAN_RESOURCE_FLAG_PUBLIC,
+ .ops = {
+ .set_2_tuple = set_tuple2_power_attr_data,
+ .is_supported = syscommon_resman_resource_attr_supported_always,
+ },
}
};