pandora: use hw scaler (resolves 32x+sms), frontend refactoring
[libpicofe.git] / pandora / picorestore.c
CommitLineData
f6eaae4f 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>
c66f49e6 8#include <linux/omapfb.h>
f6eaae4f 9#include <linux/kd.h>
10
11int main()
12{
13 struct fb_var_screeninfo fbvar;
f6eaae4f 14 int ret, fbdev, kbdfd;
f6eaae4f 15
16 fbdev = open("/dev/fb0", O_RDWR);
17 if (fbdev == -1) {
c66f49e6 18 perror("open fb0");
19 goto end_fb0;
f6eaae4f 20 }
21
22 ret = ioctl(fbdev, FBIOGET_VSCREENINFO, &fbvar);
23 if (ret == -1) {
24 perror("FBIOGET_VSCREENINFO ioctl");
c66f49e6 25 goto end_fb0;
f6eaae4f 26 }
27
28 if (fbvar.yoffset != 0) {
29 printf("fixing yoffset.. ");
30 fbvar.yoffset = 0;
31 ret = ioctl(fbdev, FBIOPAN_DISPLAY, &fbvar);
32 if (ret < 0)
33 perror("ioctl FBIOPAN_DISPLAY");
34 else
35 printf("ok\n");
36 }
37
c66f49e6 38end_fb0:
39 if (fbdev >= 0)
40 close(fbdev);
41
42 fbdev = open("/dev/fb1", O_RDWR);
43 if (fbdev == -1) {
44 perror("open fb1");
45 goto end_fb1;
46 }
47
48 ret = ioctl(fd, OMAPFB_QUERY_PLANE, &pi);
49 ret |= ioctl(fd, OMAPFB_QUERY_MEM, &mi);
50 if (ret != 0)
51 perror("QUERY_*");
52
53 pi.enabled = 0;
54 ret = ioctl(fd, OMAPFB_SETUP_PLANE, &pi);
55 if (ret != 0)
56 perror("SETUP_PLANE");
57
58 mi.size = 0;
59 ret = ioctl(fd, OMAPFB_SETUP_MEM, &mi);
60 if (ret != 0)
61 perror("SETUP_MEM");
62
63end_fb1:
64 if (fbdev >= 0)
65 close(fbdev);
f6eaae4f 66
57e9b4d3 67 kbdfd = open("/dev/tty", O_RDWR);
68 if (kbdfd == -1) {
69 perror("open /dev/tty");
70 return 1;
71 }
f6eaae4f 72
57e9b4d3 73 if (ioctl(kbdfd, KDSETMODE, KD_TEXT) == -1)
74 perror("KDSETMODE KD_TEXT");
f6eaae4f 75
57e9b4d3 76 close(kbdfd);
f6eaae4f 77
78 return 0;
79}