display_service_load/display_service_free() is used as display hal-backend loader/unloader.
However, display core should treat hal-backend using during display probe,exit process.
Thus, display_service_load/display_service_free() are removed.
Also, display_set_hal_backend_available() is removed.
Because display core(display.c) only decides whether the display hal-backend using or not.
Change-Id: I6533145b0d558c2bae831eee1ea04ab313f286ac
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
*/
static int display_probe(void *data)
{
- int ret;
struct display_plugin *dp = (struct display_plugin *) data;
assert(dp);
if (!is_feature_display_supported())
return -ENODEV;
- /**
- * load display service
- * if there is no display shared library,
- * deviced does not provide any method and function of display.
- */
- ret = display_service_load();
- if (ret)
- return ret;
-
return 0;
}
display_unregister_dependent_device();
free_lock_info_list();
- /* free display service */
- display_service_free();
-
_I("Stop power manager.");
}
#include "display-panel.h"
static struct display_backlight_ops backlight_ops;
-static bool display_dev_available = false;
static const struct display_config *display_conf;
inline struct display_backlight_ops *get_var_backlight_ops(void)
return &backlight_ops;
}
-bool display_dev_ready(void)
-{
- return display_dev_available;
-}
-
static struct display_backlight_ops backlight_ops = {
.get_lcd_power = display_panel_get_dpms_cached_state,
.set_brightness = NULL,
.transit_brt = NULL,
};
-int display_service_load(void)
-{
- int r;
-
- if (display_dev_available)
- return 0;
-
- r = hal_device_display_get_backend();
- if (r < 0) {
- _E("There is no HAL for display.");
- display_dev_available = false;
- display_set_hal_backend_available(display_dev_available);
- return 0;
- }
-
- display_dev_available = true;
- display_set_hal_backend_available(display_dev_available);
- _D("Display device structure load success.");
- return 0;
-}
-
-int display_service_free(void)
-{
- display_dev_available = false;
- return hal_device_display_put_backend();
-}
-
/* Dummy. Do not consider detached display state */
int is_lcdon_blocked(void)
{
*/
static int display_probe(void *data)
{
- int ret;
struct display_plugin *dp = (struct display_plugin *) data;
assert(dp);
dp->is_lcdon_blocked = is_lcdon_blocked;
dp->proc_change_state = default_proc_change_state;
- /**
- * load display service
- * if there is no display shared library,
- * deviced does not provide any method and function of display.
- */
- ret = display_service_load();
- if (ret)
- return ret;
-
return 0;
}
display_unregister_dependent_device();
free_lock_info_list();
- /* free display service */
- display_service_free();
-
_I("Stop power manager.");
}
#include "power/power-suspend.h"
static struct display_backlight_ops backlight_ops;
-static bool display_dev_available = false;
static const struct display_config *display_conf;
inline struct display_backlight_ops *get_var_backlight_ops(void)
return &backlight_ops;
}
-bool display_dev_ready(void)
-{
- return display_dev_available;
-}
-
static struct display_backlight_ops backlight_ops = {
.get_lcd_power = display_panel_get_dpms_cached_state,
.set_brightness = NULL,
.transit_brt = NULL,
};
-int display_service_load(void)
-{
- int r;
-
- if (display_dev_available)
- return 0;
-
- r = hal_device_display_get_backend();
- if (r < 0) {
- _E("There is no HAL for display.");
- display_dev_available = false;
- display_set_hal_backend_available(display_dev_available);
- return 0;
- }
-
- display_dev_available = true;
- display_set_hal_backend_available(display_dev_available);
- _D("Display device structure load success.");
- return 0;
-}
-
-int display_service_free(void)
-{
- display_dev_available = false;
- return hal_device_display_put_backend();
-}
-
static int delayed_init_done(void *data)
{
static int done = false;
*/
static int display_probe(void *data)
{
- int ret;
struct display_plugin *dp = (struct display_plugin *) data;
assert(dp);
dp->is_lcdon_blocked = is_lcdon_blocked;
dp->proc_change_state = NULL;
- /**
- * load display service
- * if there is no display shared library,
- * deviced does not provide any method and function of display.
- */
- ret = display_service_load();
- if (ret)
- return ret;
-
return 0;
}
display_unregister_dependent_device();
free_lock_info_list();
- /* free display service */
- display_service_free();
-
_I("Stop power manager.");
}
#include "display-lock.h"
static struct display_backlight_ops backlight_ops;
-static bool display_dev_available = false;
static const struct display_config *display_conf;
inline struct display_backlight_ops *get_var_backlight_ops(void)
return &backlight_ops;
}
-bool display_dev_ready(void)
-{
- return display_dev_available;
-}
-
static struct display_backlight_ops backlight_ops = {
.get_lcd_power = display_panel_get_dpms_cached_state,
.set_brightness = NULL,
.transit_brt = NULL,
};
-int display_service_load(void)
-{
- int r;
-
- if (display_dev_available)
- return 0;
-
- r = hal_device_display_get_backend();
- if (r < 0) {
- _E("There is no HAL for display.");
- display_dev_available = false;
- display_set_hal_backend_available(display_dev_available);
- return 0;
- }
-
- display_dev_available = true;
- display_set_hal_backend_available(display_dev_available);
- _D("Display device structure load success.");
- return 0;
-}
-
-int display_service_free(void)
-{
- display_dev_available = false;
- return hal_device_display_put_backend();
-}
-
/* Dummy. Do not consider detached display state */
int is_lcdon_blocked(void)
{
*/
static int display_probe(void *data)
{
- int ret;
struct display_plugin *dp = (struct display_plugin *) data;
assert(dp);
dp->is_lcdon_blocked = is_lcdon_blocked;
dp->proc_change_state = default_proc_change_state;
- /**
- * load display service
- * if there is no display shared library,
- * deviced does not provide any method and function of display.
- */
- ret = display_service_load();
- if (ret)
- return ret;
-
return 0;
}
display_unregister_dependent_device();
free_lock_info_list();
- /* free display service */
- display_service_free();
-
_I("Stop power manager.");
}
static struct display_backlight_ops backlight_ops;
static struct battery_plugin *battery_plgn;
-static bool display_dev_available = false;
static int aod_max_level = -1;
static int aod_normal_level = -1;
static int aod_min_level = -1;
return &backlight_ops;
}
-bool display_dev_ready(void)
-{
- return display_dev_available;
-}
-
static int set_brightness(int val)
{
int max, ret;
display_backlight_get_default_brightness(&default_brightness);
display_backlight_get_force_brightness(&force_brightness);
- if (!display_dev_available) {
+ if (!display_is_hal_backend_available()) {
_E("There is no display device.");
return -ENOENT;
}
.transit_brt = NULL,
};
-int display_service_load(void)
-{
- int r;
-
- if (display_dev_available)
- return 0;
-
- r = hal_device_display_get_backend();
- if (r < 0) {
- _E("There is no HAL for display.");
- display_dev_available = false;
- display_set_hal_backend_available(display_dev_available);
- return 0;
- }
-
- display_dev_available = true;
- display_set_hal_backend_available(display_dev_available);
- _D("Display device structure load success.");
- return 0;
-}
-
-int display_service_free(void)
-{
- display_dev_available = false;
- return hal_device_display_put_backend();
-}
-
int is_lcdon_blocked(void)
{
int state = display_panel_get_dpms_cached_state();
if (ret < 0)
_E("Failed to init dbus method, %d.", ret);
- display_dev_available = display_dev_ready();
+ display_dev_available = display_is_hal_backend_available();
_I("LBM setting value is %d.", lbm_setting_mode);
}
int init_sysfs(unsigned int);
int exit_sysfs(void);
-int display_service_load(void);
-int display_service_free(void);
struct display_backlight_ops *get_var_backlight_ops(void);
-bool display_dev_ready(void);
void dpms_set_running_state(int val);
enum lcdon_block_state {
static int pm_old_state;
static unsigned int pm_status_flag;
static enum display_init_direction_e g_display_init_direction;
-static bool g_display_hal_backend_available;
+static bool g_display_hal_backend_available = false;
static GList *display_dependent_device_ops;
static enum device_ops_status display_ops_status = DEVICE_OPS_STATUS_UNINIT;
}
}
-/* FIXME: This function is for temporary use, should be fixed after plugin refactoring */
-void display_set_hal_backend_available(bool display_hal_backend_available)
-{
- g_display_hal_backend_available = display_hal_backend_available;
-}
-
-/* FIXME: This function is for temporary use, should be fixed after plugin refactoring */
bool display_is_hal_backend_available(void)
{
return g_display_hal_backend_available;
display_register_dependent_device(ops);
}
+static void load_display_hal_backend(void)
+{
+ int ret;
+
+ if (g_display_hal_backend_available)
+ return;
+
+ ret = hal_device_display_get_backend();
+ if (ret < 0) {
+ _W("There is no HAL for display.");
+ g_display_hal_backend_available = false;
+ }
+
+ g_display_hal_backend_available = true;
+ _W("Display device structure load success.");
+}
+
+static int unload_display_hal_backend(void)
+{
+ g_display_hal_backend_available = false;
+ return hal_device_display_put_backend();
+}
+
static int display_probe(void *data)
{
+ int ret = 0;
+
display_plugin_device_ops = find_device("display-plugin");
if (!display_plugin_device_ops || !display_plugin_device_ops->probe)
return 0;
- return display_plugin_device_ops->probe(&g_display_plugin);
+ ret = display_plugin_device_ops->probe(&g_display_plugin);
+ if (ret < 0)
+ return ret;
+
+ /**
+ * load display hal backend
+ * if there is no display shared library,
+ * deviced does not provide any method and function of display.
+ */
+ load_display_hal_backend();
+ return 0;
}
static int input_init_handler(void)
unregister_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
unregister_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback);
unregister_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done);
+
+ unload_display_hal_backend();
}
static int display_start(enum device_flags flags)
void clear_pm_status_flag(unsigned int status_flag);
enum display_init_direction_e get_display_init_direction(void);
void set_display_init_direction(enum display_init_direction_e display_init_direction);
-void display_set_hal_backend_available(bool display_hal_backend_available);
bool display_is_hal_backend_available(void);
void display_start_dependent_device(unsigned long flags);
void display_stop_dependent_device(unsigned long flags);