diff options
author | jk7744.park <jk7744.park@samsung.com> | 2015-02-01 12:52:15 +0900 |
---|---|---|
committer | jk7744.park <jk7744.park@samsung.com> | 2015-02-01 12:52:15 +0900 |
commit | 6e33b00d211f2ead312c9615e11a11783e886242 (patch) | |
tree | c9f40c868454f9387b44c443d6c37c95e51df533 | |
parent | 39fc7cf9b2b691fcea7285758baf5a0c831685d9 (diff) | |
download | device-manager-plugin-exynos3250-tizen_2.3_release.tar.gz device-manager-plugin-exynos3250-tizen_2.3_release.tar.bz2 device-manager-plugin-exynos3250-tizen_2.3_release.zip |
tizen 2.3 releasetizen_2.3_releasesubmit/tizen_2.3/20150202.052551tizen_2.3
-rwxr-xr-x | include/devman_define_node_path.h | 2 | ||||
-rwxr-xr-x | src/device_manager_plugin_exynos3250.c | 62 |
2 files changed, 41 insertions, 23 deletions
diff --git a/include/devman_define_node_path.h b/include/devman_define_node_path.h index 46b88cf..18bbc41 100755 --- a/include/devman_define_node_path.h +++ b/include/devman_define_node_path.h @@ -37,6 +37,8 @@ #define IMAGE_ENHANCE_PATH "/sys/class/extension/mdnie/%s" #define IMAGE_ENHANCE_PATH_INFO "/sys/class/extension/mdnie" +#define DRM_PATH "/sys/devices/platform/exynos-drm/drm/card0" + #define DISPLAY_FRAME_RATE_PATH "/sys/class/graphics/fb0/dynamic_fps" #define DISPLAY_MISC_LCD_FPS_PATH "/sys/class/sec/sec_misc/lcd_fps" diff --git a/src/device_manager_plugin_exynos3250.c b/src/device_manager_plugin_exynos3250.c index 535dab3..6efd78d 100755 --- a/src/device_manager_plugin_exynos3250.c +++ b/src/device_manager_plugin_exynos3250.c @@ -799,36 +799,52 @@ int OEM_sys_set_backlight_elvss_control(int index, int value) int OEM_sys_get_lcd_power(int index, int *value) { - int ret = -1; - char path[MAX_NAME+1]; - - if (index >= DISP_MAX) { - devmgr_log("supports %d display node", DISP_MAX); - return ret; + static const char *str_conn = "connected"; + static const char *str_on = "On", *str_off = "Off"; + DIR *dir; + struct dirent *dent; + char path[PATH_MAX], buf[BUFF_MAX] = {0,}; + int ret, connected = 0; + + dir = opendir(DRM_PATH); + if (!dir) + return -errno; + + while ((dent = readdir(dir))) { + if (!(dent->d_type == DT_DIR && strstr(dent->d_name, "card0"))) + continue; + + snprintf(path, sizeof(path), "%s/%s/status", DRM_PATH, dent->d_name); + ret = sys_get_str(path, buf); + if (!strncmp(buf, str_conn, strlen(str_conn))) { + connected = 1; + break; + } } - snprintf(path, MAX_NAME, LCD_POWER_PATH, disp_info[index].lcd_name); - ret = sys_get_int(path, value); - /*devmgr_log("path[%s]value[%d]", path, *value);*/ + closedir(dir); - return ret; -} + if (!connected) + return -ENOENT; -int OEM_sys_set_lcd_power(int index, int value) -{ - int ret = -1; - char path[MAX_NAME+1]; + memset(buf, 0, sizeof(buf)); + snprintf(path, sizeof(path), "%s/%s/dpms", DRM_PATH, dent->d_name); + ret = sys_get_str(path, buf); - if (index >= DISP_MAX) { - devmgr_log("supports %d display node", DISP_MAX); - return ret; - } + if (!strncmp(buf, str_on, strlen(str_on))) + *value = 0; + else if (!strncmp(buf, str_off, strlen(str_off))) + *value = 4; + else + return -EPERM; - snprintf(path, MAX_NAME, LCD_POWER_PATH, disp_info[index].lcd_name); - devmgr_log("path[%s]value[%d]", path, value); - ret = sys_set_int(path, value); + devmgr_log("%s - %d", path, *value); + return 0; +} - return ret; +int OEM_sys_set_lcd_power(int index, int value) +{ + return -EPERM; } /* image_enhance */ |