summaryrefslogtreecommitdiff
path: root/tests/modedemo
diff options
context:
space:
mode:
Diffstat (limited to 'tests/modedemo')
-rw-r--r--tests/modedemo/demo.c39
1 files changed, 33 insertions, 6 deletions
diff --git a/tests/modedemo/demo.c b/tests/modedemo/demo.c
index 0882fc91..6b6997ad 100644
--- a/tests/modedemo/demo.c
+++ b/tests/modedemo/demo.c
@@ -1,11 +1,16 @@
-
+#define CLEAN_FBDEV
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <string.h>
-
+#ifdef CLEAN_FBDEV
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <linux/fb.h>
+#endif
#include "xf86drm.h"
#include "xf86drmMode.h"
@@ -20,6 +25,11 @@ void testCursor(int fd, uint32_t crtc);
void prettyColors(int fd, unsigned int handle);
void prettyCursor(int fd, unsigned int handle, unsigned int color);
+#ifdef CLEAN_FBDEV
+struct fb_var_screeninfo var;
+struct fb_fix_screeninfo fix;
+#endif
+
/* structs for the demo_driver */
struct demo_driver;
@@ -90,6 +100,19 @@ int main(int argc, char **argv)
struct demo_driver *driver;
int num;
int i;
+#ifdef CLEAN_FBDEV
+ int fbdev_fd;
+
+ fbdev_fd = open("/dev/fb0", O_RDWR);
+
+ memset(&var, 0, sizeof(struct fb_var_screeninfo));
+ memset(&fix, 0, sizeof(struct fb_fix_screeninfo));
+
+ if (ioctl(fbdev_fd, FBIOGET_VSCREENINFO, &var))
+ printf("var %s\n", strerror(errno));
+ if (ioctl(fbdev_fd, FBIOGET_FSCREENINFO, &fix))
+ printf("fix %s\n", strerror(errno));
+#endif
printf("starting demo\n");
@@ -131,9 +154,13 @@ int main(int argc, char **argv)
testCursor(driver->fd, driver->screens[i].crtc->crtc_id);
}
- sleep(2);
- printf("ok\n");
- return 0;
+#ifdef CLEAN_FBDEV
+ if (ioctl(fbdev_fd, FBIOPUT_VSCREENINFO, &var))
+ printf("var %s\n", strerror(errno));
+#endif
+
+ printf("ok\n");
+ return 0;
}
int demoCreateScreens(struct demo_driver *driver)
@@ -260,7 +287,7 @@ struct demo_driver* demoCreateDriver(void)
memset(driver, 0, sizeof(struct demo_driver));
- driver->fd = drmOpenControl(0);
+ driver->fd = drmOpen("i915", NULL);
if (driver->fd < 0) {
printf("Failed to open the card fb\n");