summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjk7744.park <jk7744.park@samsung.com>2015-02-01 12:52:15 +0900
committerjk7744.park <jk7744.park@samsung.com>2015-02-01 12:52:15 +0900
commit6e33b00d211f2ead312c9615e11a11783e886242 (patch)
treec9f40c868454f9387b44c443d6c37c95e51df533
parent39fc7cf9b2b691fcea7285758baf5a0c831685d9 (diff)
downloaddevice-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
-rwxr-xr-xinclude/devman_define_node_path.h2
-rwxr-xr-xsrc/device_manager_plugin_exynos3250.c62
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 */