+}
+
+/* FXIME: enter action logic should be discussed and considered about better logic */
+/*
+ * default transition function
+ * 1. call check
+ * 2. transition
+ * 3. call enter action function
+ */
+int display_state_transition_do_state_transition(enum state_t state, int evt_type)
+{
+ const char* current_state_name = NULL;
+ const char* next_state_name = NULL;
+ enum state_t next_state;
+ int ret = 0;
+ int timeout = 0;
+
+ if (!display_state_transition_is_display_state_support_transition(state))
+ return -EPERM;
+
+ if (display_plugin_state_is_there_default_trans(state))
+ return display_plugin_state_do_default_trans(state, evt_type);
+
+ display_state_transition_get_next_transition_display_state(get_pm_cur_state(), &next_state, evt_type);
+
+ /* check conditions */
+ ret = display_state_transition_check_state_transition_condition(get_pm_cur_state(), next_state);
+ if (ret < 0) {
+ display_plugin_state_get_name(get_pm_cur_state(), ¤t_state_name);
+ display_plugin_state_get_name(next_state, &next_state_name);
+ /* There is a condition. */
+ _I("%s locked. Trans to %s failed.", current_state_name, next_state_name);
+ return -EPERM;
+ }
+
+ /* state transition */
+ set_pm_old_state(get_pm_cur_state());
+ set_pm_cur_state(next_state);
+
+ /* enter action */
+ if (display_plugin_state_is_there_default_action(get_pm_cur_state())) {
+ if (get_pm_cur_state() == S_LCDOFF)
+ display_state_transition_update_lcdoff_reason(VCONFKEY_PM_LCDOFF_BY_TIMEOUT);
+
+ if ((get_pm_cur_state() == S_NORMAL) || (get_pm_cur_state() == S_LCDOFF))
+ if (set_custom_lcdon_timeout(0) == true)
+ display_state_transition_update_display_state_timeout_by_priority();
+
+ if (display_state_transition_is_possible_to_go_lcdoff()) {
+ /* enter next state directly */
+ display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_TIMEOUT);
+ } else {
+ if ((get_pm_cur_state() == S_SLEEP) &&
+ (is_emulator() == true || timeout_sleep_support == false))
+ return 0;
+
+ display_plugin_state_get_timeout(get_pm_cur_state(), &timeout);
+ display_plugin_state_do_default_action(get_pm_cur_state(), timeout);
+ }
+ }
+ return 0;