annotate vidix/drivers/genfb_vid.c @ 4181:159b3d0f517d

patch by Fredrik Kuivinen <freku045@student.liu.se>
author pl
date Tue, 15 Jan 2002 21:30:45 +0000
parents 96d51d3c856b
children 62a6135d090e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4127
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
1 #include <errno.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
2 #include <stdio.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
3 #include <stdlib.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
4 #include <string.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
5 #include <math.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
6 #include <inttypes.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
7 #include <fcntl.h>
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
8
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
9 #include "../vidix.h"
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
10 #include "../fourcc.h"
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
11 #include "../../libdha/libdha.h"
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
12 #include "../../libdha/pci_ids.h"
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
13
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
14 static int fd;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
15
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
16 static void *mmio_base = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
17 static void *mem_base = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
18 static int32_t overlay_offset = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
19 static uint32_t ram_size = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
20
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
21 static int probed = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
22
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
23 /* VIDIX exports */
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
24
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
25 static vidix_capability_t genfb_cap =
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
26 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
27 "General Framebuffer",
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
28 TYPE_OUTPUT,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
29 0,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
30 1,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
31 0,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
32 0,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
33 1024,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
34 768,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
35 4,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
36 4,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
37 -1,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
38 FLAG_UPSCALER|FLAG_DOWNSCALER,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
39 -1,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
40 -1,
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
41 { 0, 0, 0, 0 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
42 };
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
43
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
44 unsigned int vixGetVersion(void)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
45 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
46 return(VIDIX_VERSION);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
47 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
48
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
49 int vixProbe(int verbose)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
50 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
51 int err = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
52
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
53 printf("[genfb] probe\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
54
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
55 fd = open("/dev/fb0", O_RDWR);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
56 if (fd < 0)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
57 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
58 printf("Error occured durint open: %s\n", strerror(errno));
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
59 err = errno;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
60 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
61
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
62 probed = 1;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
63
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
64 return(err);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
65 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
66
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
67 int vixInit(void)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
68 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
69 printf("[genfb] init\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
70
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
71 if (!probed)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
72 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
73 printf("Driver was not probed but is being initialized\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
74 return(EINTR);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
75 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
76
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
77 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
78 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
79
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
80 void vixDestroy(void)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
81 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
82 printf("[genfb] destory\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
83 return;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
84 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
85
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
86 int vixGetCapability(vidix_capability_t *to)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
87 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
88 memcpy(to, &genfb_cap, sizeof(vidix_capability_t));
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
89 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
90 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
91
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
92 int vixQueryFourcc(vidix_fourcc_t *to)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
93 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
94 printf("[genfb] query fourcc (%x)\n", to->fourcc);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
95
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
96 to->depth = VID_DEPTH_1BPP | VID_DEPTH_2BPP |
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
97 VID_DEPTH_4BPP | VID_DEPTH_8BPP |
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
98 VID_DEPTH_12BPP | VID_DEPTH_15BPP |
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
99 VID_DEPTH_16BPP | VID_DEPTH_24BPP |
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
100 VID_DEPTH_32BPP;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
101
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
102 to->flags = 0;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
103 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
104 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
105
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
106 int vixConfigPlayback(vidix_playback_t *info)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
107 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
108 printf("[genfb] config playback\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
109
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
110 info->num_frames = 2;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
111 info->frame_size = info->src.w*info->src.h+(info->src.w*info->src.h)/2;
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
112 info->dga_addr = malloc(info->num_frames*info->frame_size);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
113 printf("[genfb] frame_size: %d, dga_addr: %x\n",
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
114 info->frame_size, info->dga_addr);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
115
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
116 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
117 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
118
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
119 int vixPlaybackOn(void)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
120 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
121 printf("[genfb] playback on\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
122 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
123 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
124
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
125 int vixPlaybackOff(void)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
126 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
127 printf("[genfb] playback off\n");
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
128 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
129 }
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
130
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
131 int vixPlaybackFrameSelect(unsigned int frame)
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
132 {
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
133 return(0);
96d51d3c856b just a dummy for now (for developement)
alex
parents:
diff changeset
134 }