static int display_start(enum device_flags flags)
{
- /* NORMAL MODE */
- if (flags & NORMAL_MODE) {
- if (flags & LCD_PANEL_OFF_MODE)
- /* standby on */
- display_panel_set_panel_state_by_standby_state(true);
- else
- /* normal lcd on */
- display_panel_set_panel_state_by_on_state(flags);
- return 0;
- }
-
- /* CORE LOGIC MODE */
- if (!(flags & CORE_LOGIC_MODE))
- return 0;
-
- display_get_display_ops_status(&status);
- if (status == DEVICE_OPS_STATUS_START)
- return -EALREADY;
-
- if (display_probe(NULL) < 0)
- return -EPERM;
-
- display_init(NULL);
+ if (flags & LCD_PANEL_OFF_MODE)
+ /* standby on */
+ display_panel_set_panel_state_by_standby_state(true);
+ else
+ /* normal lcd on */
+ display_panel_set_panel_state_by_on_state(flags);
return 0;
}
static int display_stop(enum device_flags flags)
{
- /* NORMAL MODE */
- if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) {
- display_panel_set_panel_state_by_off_state(flags);
- return 0;
- }
-
- /* CORE LOGIC MODE */
- if (!(flags & CORE_LOGIC_MODE))
- return 0;
-
- display_get_display_ops_status(&status);
- if (status == DEVICE_OPS_STATUS_STOP)
- return -EALREADY;
-
- display_exit(NULL);
+ display_panel_set_panel_state_by_off_state(flags);
return 0;
}
GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data)
{
static const struct device_ops *display_device_ops = NULL;
+ enum device_ops_status status;
if (!display_device_ops)
display_device_ops = find_device("display");
if (NOT_SUPPORT_OPS(display_device_ops))
goto out;
- display_device_ops->start(CORE_LOGIC_MODE);
+ display_get_display_ops_status(&status);
+ if (status == DEVICE_OPS_STATUS_START)
+ goto out;
+
+ if (display_device_ops->probe(NULL) < 0)
+ goto out;
+
+ display_device_ops->init(NULL);
out:
return gdbus_new_g_variant_tuple();
}
GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data)
{
static const struct device_ops *display_device_ops = NULL;
+ enum device_ops_status status;
if (!display_device_ops)
display_device_ops = find_device("display");
display_state_transition_request_state_transition_with_option(DEVICED_EVENT_DISPLAY, LCD_NORMAL);
- display_device_ops->stop(CORE_LOGIC_MODE);
+ display_get_display_ops_status(&status);
+ if (status == DEVICE_OPS_STATUS_STOP)
+ goto out;
+
+ display_device_ops->exit(NULL);
out:
return gdbus_new_g_variant_tuple();
}
static int display_start(enum device_flags flags)
{
- /* NORMAL MODE */
- if (flags & NORMAL_MODE) {
- if (flags & LCD_PANEL_OFF_MODE)
- /* standby on */
- display_panel_set_panel_state_by_standby_state(true);
- else
- /* normal lcd on */
- display_panel_set_panel_state_by_on_state(flags);
- return 0;
- }
-
- /* CORE LOGIC MODE */
- if (!(flags & CORE_LOGIC_MODE))
- return 0;
-
- if (display_ops_status == DEVICE_OPS_STATUS_START)
- return -EALREADY;
-
- if (display_probe(NULL) < 0)
- return -EPERM;
-
- display_init(NULL);
+ if (flags & LCD_PANEL_OFF_MODE)
+ /* standby on */
+ display_panel_set_panel_state_by_standby_state(true);
+ else
+ /* normal lcd on */
+ display_panel_set_panel_state_by_on_state(flags);
return 0;
}
static int display_stop(enum device_flags flags)
{
- /* NORMAL MODE */
- if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) {
- display_panel_set_panel_state_by_off_state(flags);
- return 0;
- }
-
- /* CORE LOGIC MODE */
- if (!(flags & CORE_LOGIC_MODE))
- return 0;
-
- if (display_ops_status == DEVICE_OPS_STATUS_STOP)
- return -EALREADY;
-
- display_exit(NULL);
+ display_panel_set_panel_state_by_off_state(flags);
return 0;
}
NORMAL_MODE = 0x00000001,
AMBIENT_MODE = 0x00000002,
FORCE_OFF_MODE = 0x00000004,
- CORE_LOGIC_MODE = 0x00001000,
TOUCH_SCREEN_OFF_MODE = 0x00002000,
LCD_PANEL_OFF_MODE = 0x00004000,
LCD_PHASED_TRANSIT_MODE = 0x00008000,