input: add hack to allow abs-only devices
[picodrive.git] / platform / pandora / picorestore.c
1 #include <stdio.h>
2 #include <sys/types.h>
3 #include <sys/stat.h>
4 #include <fcntl.h>
5 #include <unistd.h>
6 #include <sys/ioctl.h>
7 #include <linux/fb.h>
8 #include <linux/omapfb.h>
9 #include <linux/kd.h>
10
11 int main()
12 {
13         struct fb_var_screeninfo fbvar;
14         struct omapfb_plane_info pi;
15         struct omapfb_mem_info mi;
16         int ret, fbdev, kbdfd;
17
18         fbdev = open("/dev/fb0", O_RDWR);
19         if (fbdev == -1) {
20                 perror("open fb0");
21                 goto end_fb0;
22         }
23
24         ret = ioctl(fbdev, FBIOGET_VSCREENINFO, &fbvar);
25         if (ret == -1) {
26                 perror("FBIOGET_VSCREENINFO ioctl");
27                 goto end_fb0;
28         }
29
30         if (fbvar.yoffset != 0) {
31                 printf("fixing yoffset.. ");
32                 fbvar.yoffset = 0;
33                 ret = ioctl(fbdev, FBIOPAN_DISPLAY, &fbvar);
34                 if (ret < 0)
35                         perror("ioctl FBIOPAN_DISPLAY");
36                 else
37                         printf("ok\n");
38         }
39
40 end_fb0:
41         if (fbdev >= 0)
42                 close(fbdev);
43
44         fbdev = open("/dev/fb1", O_RDWR);
45         if (fbdev == -1) {
46                 perror("open fb1");
47                 goto end_fb1;
48         }
49
50         ret  = ioctl(fbdev, OMAPFB_QUERY_PLANE, &pi);
51         ret |= ioctl(fbdev, OMAPFB_QUERY_MEM, &mi);
52         if (ret != 0)
53                 perror("QUERY_*");
54
55         pi.enabled = 0;
56         ret = ioctl(fbdev, OMAPFB_SETUP_PLANE, &pi);
57         if (ret != 0)
58                 perror("SETUP_PLANE");
59
60         mi.size = 0;
61         ret = ioctl(fbdev, OMAPFB_SETUP_MEM, &mi);
62         if (ret != 0)
63                 perror("SETUP_MEM");
64
65 end_fb1:
66         if (fbdev >= 0)
67                 close(fbdev);
68
69         kbdfd = open("/dev/tty", O_RDWR);
70         if (kbdfd == -1) {
71                 perror("open /dev/tty");
72                 return 1;
73         }
74
75         if (ioctl(kbdfd, KDSETMODE, KD_TEXT) == -1)
76                 perror("KDSETMODE KD_TEXT");
77
78         close(kbdfd);
79
80         return 0;
81 }