uterm: video: share set_dpms code
authorDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 12 Jan 2013 07:21:40 +0000 (08:21 +0100)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 12 Jan 2013 07:21:40 +0000 (08:21 +0100)
The set_dpms callback of dumb and drm backends is identical so share it in
drm-shared module.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
src/uterm_drm_shared.c
src/uterm_drm_shared_internal.h
src/uterm_video_drm.c
src/uterm_video_dumb.c
src/uterm_video_internal.h

index 72c2fe0..3a55b05 100644 (file)
@@ -281,6 +281,27 @@ void uterm_drm_display_deactivate(struct uterm_display *disp, int fd)
        ddrm->crtc_id = 0;
 }
 
+int uterm_drm_display_set_dpms(struct uterm_display *disp, int state)
+{
+       int ret;
+       struct uterm_drm_display *ddrm = disp->data;
+       struct uterm_drm_video *vdrm;
+
+       if (!display_is_conn(disp) || !video_is_awake(disp->video))
+               return -EINVAL;
+
+       vdrm = disp->video->data;
+       log_info("setting DPMS of display %p to %s", disp,
+                uterm_dpms_to_name(state));
+
+       ret = uterm_drm_set_dpms(vdrm->fd, ddrm->conn_id, state);
+       if (ret < 0)
+               return ret;
+
+       disp->dpms = ret;
+       return 0;
+}
+
 int uterm_drm_display_bind(struct uterm_video *video,
                           struct uterm_display *disp, drmModeRes *res,
                           drmModeConnector *conn, int fd)
index b00bc76..6b857c2 100644 (file)
@@ -79,6 +79,7 @@ int uterm_drm_display_bind(struct uterm_video *video,
                           struct uterm_display *disp, drmModeRes *res,
                           drmModeConnector *conn, int fd);
 void uterm_drm_display_unbind(struct uterm_display *disp);
+int uterm_drm_display_set_dpms(struct uterm_display *disp, int state);
 
 static inline void *uterm_drm_display_get_data(struct uterm_display *disp)
 {
index 7697add..d781a16 100644 (file)
@@ -312,27 +312,6 @@ static void display_deactivate(struct uterm_display *disp)
        disp->flags &= ~(DISPLAY_ONLINE | DISPLAY_VSYNC);
 }
 
-static int display_set_dpms(struct uterm_display *disp, int state)
-{
-       int ret;
-       struct uterm_drm_display *ddrm = disp->data;
-       struct uterm_drm_video *vdrm;
-
-       if (!display_is_conn(disp) || !video_is_awake(disp->video))
-               return -EINVAL;
-
-       vdrm = disp->video->data;
-       log_info("setting DPMS of display %p to %s", disp,
-                uterm_dpms_to_name(state));
-
-       ret = uterm_drm_set_dpms(vdrm->fd, ddrm->conn_id, state);
-       if (ret < 0)
-               return ret;
-
-       disp->dpms = ret;
-       return 0;
-}
-
 static int display_use(struct uterm_display *disp)
 {
        struct uterm_drm3d_display *d3d = uterm_drm_display_get_data(disp);
@@ -922,7 +901,7 @@ static const struct display_ops drm_display_ops = {
        .destroy = display_destroy,
        .activate = display_activate,
        .deactivate = display_deactivate,
-       .set_dpms = display_set_dpms,
+       .set_dpms = uterm_drm_display_set_dpms,
        .use = display_use,
        .swap = display_swap,
        .blit = display_blit,
index 95e0109..1b7aff3 100644 (file)
@@ -246,27 +246,6 @@ static void display_deactivate(struct uterm_display *disp)
        disp->flags &= ~(DISPLAY_ONLINE | DISPLAY_VSYNC);
 }
 
-static int display_set_dpms(struct uterm_display *disp, int state)
-{
-       int ret;
-       struct uterm_drm_display *ddrm = disp->data;
-       struct uterm_drm_video *vdrm;
-
-       if (!display_is_conn(disp) || !video_is_awake(disp->video))
-               return -EINVAL;
-
-       vdrm = disp->video->data;
-       log_info("setting DPMS of display %p to %s", disp,
-                uterm_dpms_to_name(state));
-
-       ret = uterm_drm_set_dpms(vdrm->fd, ddrm->conn_id, state);
-       if (ret < 0)
-               return ret;
-
-       disp->dpms = ret;
-       return 0;
-}
-
 static int display_swap(struct uterm_display *disp)
 {
        int ret;
@@ -477,7 +456,7 @@ static const struct display_ops dumb_display_ops = {
        .destroy = display_destroy,
        .activate = display_activate,
        .deactivate = display_deactivate,
-       .set_dpms = display_set_dpms,
+       .set_dpms = uterm_drm_display_set_dpms,
        .use = NULL,
        .swap = display_swap,
        .blit = display_blit,
index 27fa228..dc92aec 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * uterm - Linux User-Space Terminal
  *
- * Copyright (c) 2011-2012 David Herrmann <dh.herrmann@googlemail.com>
+ * Copyright (c) 2011-2013 David Herrmann <dh.herrmann@googlemail.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files