diff options
author | Knut Petersen <Knut_Petersen@t-online.de> | 2006-01-09 09:04:20 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-09 13:00:36 -0500 |
commit | 44637a12f80b80157d9c1bc5b7d6ef09c9e05713 (patch) | |
tree | 17384805725f7b429685ba4cad0d9488d93f9f25 /Documentation/fb/cyblafb | |
parent | 8b78e83bfbc12f7e9bdefd400abdfde9e6c9ac51 (diff) |
[PATCH] Update cyblafb driver
This is a major update to the cyblafb framebuffer driver. Most
of the stuff has been tested in the mm tree.
Main advantages:
============
- vxres > xres support
- ywrap and xpan support
- much faster for almost all modes (e.g. 1280x1024-16bpp
draws more than 41 full screens of text instead of about 25
full screens of text per second on authors Epia 5000)
- module init/exit code fixed
- bugs triggered by console rotation fixed
- lots of minor improvements
- startup modes suitable for high performance scrolling
in all directions
This diff also contains a lot of white space fixes.
No side effects are possible, only one single graphics core is affected.
Signed-off-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation/fb/cyblafb')
-rw-r--r-- | Documentation/fb/cyblafb/bugs | 1 | ||||
-rw-r--r-- | Documentation/fb/cyblafb/fb.modes | 57 | ||||
-rw-r--r-- | Documentation/fb/cyblafb/performance | 1 | ||||
-rw-r--r-- | Documentation/fb/cyblafb/todo | 5 | ||||
-rw-r--r-- | Documentation/fb/cyblafb/usage | 33 | ||||
-rw-r--r-- | Documentation/fb/cyblafb/whatsnew | 29 |
6 files changed, 81 insertions, 45 deletions
diff --git a/Documentation/fb/cyblafb/bugs b/Documentation/fb/cyblafb/bugs index f90cc66ea919..9443a6d72cdd 100644 --- a/Documentation/fb/cyblafb/bugs +++ b/Documentation/fb/cyblafb/bugs | |||
@@ -11,4 +11,3 @@ Untested features | |||
11 | 11 | ||
12 | All LCD stuff is untested. If it worked in tridentfb, it should work in | 12 | All LCD stuff is untested. If it worked in tridentfb, it should work in |
13 | cyblafb. Please test and report the results to Knut_Petersen@t-online.de. | 13 | cyblafb. Please test and report the results to Knut_Petersen@t-online.de. |
14 | |||
diff --git a/Documentation/fb/cyblafb/fb.modes b/Documentation/fb/cyblafb/fb.modes index cf4351fc32ff..fe0e5223ba86 100644 --- a/Documentation/fb/cyblafb/fb.modes +++ b/Documentation/fb/cyblafb/fb.modes | |||
@@ -14,142 +14,141 @@ | |||
14 | # | 14 | # |
15 | 15 | ||
16 | mode "640x480-50" | 16 | mode "640x480-50" |
17 | geometry 640 480 640 3756 8 | 17 | geometry 640 480 2048 4096 8 |
18 | timings 47619 4294967256 24 17 0 216 3 | 18 | timings 47619 4294967256 24 17 0 216 3 |
19 | endmode | 19 | endmode |
20 | 20 | ||
21 | mode "640x480-60" | 21 | mode "640x480-60" |
22 | geometry 640 480 640 3756 8 | 22 | geometry 640 480 2048 4096 8 |
23 | timings 39682 4294967256 24 17 0 216 3 | 23 | timings 39682 4294967256 24 17 0 216 3 |
24 | endmode | 24 | endmode |
25 | 25 | ||
26 | mode "640x480-70" | 26 | mode "640x480-70" |
27 | geometry 640 480 640 3756 8 | 27 | geometry 640 480 2048 4096 8 |
28 | timings 34013 4294967256 24 17 0 216 3 | 28 | timings 34013 4294967256 24 17 0 216 3 |
29 | endmode | 29 | endmode |
30 | 30 | ||
31 | mode "640x480-72" | 31 | mode "640x480-72" |
32 | geometry 640 480 640 3756 8 | 32 | geometry 640 480 2048 4096 8 |
33 | timings 33068 4294967256 24 17 0 216 3 | 33 | timings 33068 4294967256 24 17 0 216 3 |
34 | endmode | 34 | endmode |
35 | 35 | ||
36 | mode "640x480-75" | 36 | mode "640x480-75" |
37 | geometry 640 480 640 3756 8 | 37 | geometry 640 480 2048 4096 8 |
38 | timings 31746 4294967256 24 17 0 216 3 | 38 | timings 31746 4294967256 24 17 0 216 3 |
39 | endmode | 39 | endmode |
40 | 40 | ||
41 | mode "640x480-80" | 41 | mode "640x480-80" |
42 | geometry 640 480 640 3756 8 | 42 | geometry 640 480 2048 4096 8 |
43 | timings 29761 4294967256 24 17 0 216 3 | 43 | timings 29761 4294967256 24 17 0 216 3 |
44 | endmode | 44 | endmode |
45 | 45 | ||
46 | mode "640x480-85" | 46 | mode "640x480-85" |
47 | geometry 640 480 640 3756 8 | 47 | geometry 640 480 2048 4096 8 |
48 | timings 28011 4294967256 24 17 0 216 3 | 48 | timings 28011 4294967256 24 17 0 216 3 |
49 | endmode | 49 | endmode |
50 | 50 | ||
51 | mode "800x600-50" | 51 | mode "800x600-50" |
52 | geometry 800 600 800 3221 8 | 52 | geometry 800 600 2048 4096 8 |
53 | timings 30303 96 24 14 0 136 11 | 53 | timings 30303 96 24 14 0 136 11 |
54 | endmode | 54 | endmode |
55 | 55 | ||
56 | mode "800x600-60" | 56 | mode "800x600-60" |
57 | geometry 800 600 800 3221 8 | 57 | geometry 800 600 2048 4096 8 |
58 | timings 25252 96 24 14 0 136 11 | 58 | timings 25252 96 24 14 0 136 11 |
59 | endmode | 59 | endmode |
60 | 60 | ||
61 | mode "800x600-70" | 61 | mode "800x600-70" |
62 | geometry 800 600 800 3221 8 | 62 | geometry 800 600 2048 4096 8 |
63 | timings 21645 96 24 14 0 136 11 | 63 | timings 21645 96 24 14 0 136 11 |
64 | endmode | 64 | endmode |
65 | 65 | ||
66 | mode "800x600-72" | 66 | mode "800x600-72" |
67 | geometry 800 600 800 3221 8 | 67 | geometry 800 600 2048 4096 8 |
68 | timings 21043 96 24 14 0 136 11 | 68 | timings 21043 96 24 14 0 136 11 |
69 | endmode | 69 | endmode |
70 | 70 | ||
71 | mode "800x600-75" | 71 | mode "800x600-75" |
72 | geometry 800 600 800 3221 8 | 72 | geometry 800 600 2048 4096 8 |
73 | timings 20202 96 24 14 0 136 11 | 73 | timings 20202 96 24 14 0 136 11 |
74 | endmode | 74 | endmode |
75 | 75 | ||
76 | mode "800x600-80" | 76 | mode "800x600-80" |
77 | geometry 800 600 800 3221 8 | 77 | geometry 800 600 2048 4096 8 |
78 | timings 18939 96 24 14 0 136 11 | 78 | timings 18939 96 24 14 0 136 11 |
79 | endmode | 79 | endmode |
80 | 80 | ||
81 | mode "800x600-85" | 81 | mode "800x600-85" |
82 | geometry 800 600 800 3221 8 | 82 | geometry 800 600 2048 4096 8 |
83 | timings 17825 96 24 14 0 136 11 | 83 | timings 17825 96 24 14 0 136 11 |
84 | endmode | 84 | endmode |
85 | 85 | ||
86 | mode "1024x768-50" | 86 | mode "1024x768-50" |
87 | geometry 1024 768 1024 2815 8 | 87 | geometry 1024 768 2048 4096 8 |
88 | timings 19054 144 24 29 0 120 3 | 88 | timings 19054 144 24 29 0 120 3 |
89 | endmode | 89 | endmode |
90 | 90 | ||
91 | mode "1024x768-60" | 91 | mode "1024x768-60" |
92 | geometry 1024 768 1024 2815 8 | 92 | geometry 1024 768 2048 4096 8 |
93 | timings 15880 144 24 29 0 120 3 | 93 | timings 15880 144 24 29 0 120 3 |
94 | endmode | 94 | endmode |
95 | 95 | ||
96 | mode "1024x768-70" | 96 | mode "1024x768-70" |
97 | geometry 1024 768 1024 2815 8 | 97 | geometry 1024 768 2048 4096 8 |
98 | timings 13610 144 24 29 0 120 3 | 98 | timings 13610 144 24 29 0 120 3 |
99 | endmode | 99 | endmode |
100 | 100 | ||
101 | mode "1024x768-72" | 101 | mode "1024x768-72" |
102 | geometry 1024 768 1024 2815 8 | 102 | geometry 1024 768 2048 4096 8 |
103 | timings 13232 144 24 29 0 120 3 | 103 | timings 13232 144 24 29 0 120 3 |
104 | endmode | 104 | endmode |
105 | 105 | ||
106 | mode "1024x768-75" | 106 | mode "1024x768-75" |
107 | geometry 1024 768 1024 2815 8 | 107 | geometry 1024 768 2048 4096 8 |
108 | timings 12703 144 24 29 0 120 3 | 108 | timings 12703 144 24 29 0 120 3 |
109 | endmode | 109 | endmode |
110 | 110 | ||
111 | mode "1024x768-80" | 111 | mode "1024x768-80" |
112 | geometry 1024 768 1024 2815 8 | 112 | geometry 1024 768 2048 4096 8 |
113 | timings 11910 144 24 29 0 120 3 | 113 | timings 11910 144 24 29 0 120 3 |
114 | endmode | 114 | endmode |
115 | 115 | ||
116 | mode "1024x768-85" | 116 | mode "1024x768-85" |
117 | geometry 1024 768 1024 2815 8 | 117 | geometry 1024 768 2048 4096 8 |
118 | timings 11209 144 24 29 0 120 3 | 118 | timings 11209 144 24 29 0 120 3 |
119 | endmode | 119 | endmode |
120 | 120 | ||
121 | mode "1280x1024-50" | 121 | mode "1280x1024-50" |
122 | geometry 1280 1024 1280 2662 8 | 122 | geometry 1280 1024 2048 4096 8 |
123 | timings 11114 232 16 39 0 160 3 | 123 | timings 11114 232 16 39 0 160 3 |
124 | endmode | 124 | endmode |
125 | 125 | ||
126 | mode "1280x1024-60" | 126 | mode "1280x1024-60" |
127 | geometry 1280 1024 1280 2662 8 | 127 | geometry 1280 1024 2048 4096 8 |
128 | timings 9262 232 16 39 0 160 3 | 128 | timings 9262 232 16 39 0 160 3 |
129 | endmode | 129 | endmode |
130 | 130 | ||
131 | mode "1280x1024-70" | 131 | mode "1280x1024-70" |
132 | geometry 1280 1024 1280 2662 8 | 132 | geometry 1280 1024 2048 4096 8 |
133 | timings 7939 232 16 39 0 160 3 | 133 | timings 7939 232 16 39 0 160 3 |
134 | endmode | 134 | endmode |
135 | 135 | ||
136 | mode "1280x1024-72" | 136 | mode "1280x1024-72" |
137 | geometry 1280 1024 1280 2662 8 | 137 | geometry 1280 1024 2048 4096 8 |
138 | timings 7719 232 16 39 0 160 3 | 138 | timings 7719 232 16 39 0 160 3 |
139 | endmode | 139 | endmode |
140 | 140 | ||
141 | mode "1280x1024-75" | 141 | mode "1280x1024-75" |
142 | geometry 1280 1024 1280 2662 8 | 142 | geometry 1280 1024 2048 4096 8 |
143 | timings 7410 232 16 39 0 160 3 | 143 | timings 7410 232 16 39 0 160 3 |
144 | endmode | 144 | endmode |
145 | 145 | ||
146 | mode "1280x1024-80" | 146 | mode "1280x1024-80" |
147 | geometry 1280 1024 1280 2662 8 | 147 | geometry 1280 1024 2048 4096 8 |
148 | timings 6946 232 16 39 0 160 3 | 148 | timings 6946 232 16 39 0 160 3 |
149 | endmode | 149 | endmode |
150 | 150 | ||
151 | mode "1280x1024-85" | 151 | mode "1280x1024-85" |
152 | geometry 1280 1024 1280 2662 8 | 152 | geometry 1280 1024 2048 4096 8 |
153 | timings 6538 232 16 39 0 160 3 | 153 | timings 6538 232 16 39 0 160 3 |
154 | endmode | 154 | endmode |
155 | |||
diff --git a/Documentation/fb/cyblafb/performance b/Documentation/fb/cyblafb/performance index eb4e47a9cea6..8d15d5dfc6b3 100644 --- a/Documentation/fb/cyblafb/performance +++ b/Documentation/fb/cyblafb/performance | |||
@@ -77,4 +77,3 @@ patch that speeds up kernel bitblitting a lot ( > 20%). | |||
77 | | | | | | | 77 | | | | | | |
78 | | | | | | | 78 | | | | | | |
79 | +-----------+-----------------+-----------------+-----------------+ | 79 | +-----------+-----------------+-----------------+-----------------+ |
80 | |||
diff --git a/Documentation/fb/cyblafb/todo b/Documentation/fb/cyblafb/todo index 80fb2f89b6c1..c5f6d0eae545 100644 --- a/Documentation/fb/cyblafb/todo +++ b/Documentation/fb/cyblafb/todo | |||
@@ -22,11 +22,10 @@ accelerated color blitting Who needs it? The console driver does use color | |||
22 | everything else is done using color expanding | 22 | everything else is done using color expanding |
23 | blitting of 1bpp character bitmaps. | 23 | blitting of 1bpp character bitmaps. |
24 | 24 | ||
25 | xpanning Who needs it? | ||
26 | |||
27 | ioctls Who needs it? | 25 | ioctls Who needs it? |
28 | 26 | ||
29 | TV-out Will be done later | 27 | TV-out Will be done later. Use "vga= " at boot time |
28 | to set a suitable video mode. | ||
30 | 29 | ||
31 | ??? Feel free to contact me if you have any | 30 | ??? Feel free to contact me if you have any |
32 | feature requests | 31 | feature requests |
diff --git a/Documentation/fb/cyblafb/usage b/Documentation/fb/cyblafb/usage index e627c8f54211..a39bb3d402a2 100644 --- a/Documentation/fb/cyblafb/usage +++ b/Documentation/fb/cyblafb/usage | |||
@@ -40,6 +40,16 @@ Selecting Modes | |||
40 | None of the modes possible to select as startup modes are affected by | 40 | None of the modes possible to select as startup modes are affected by |
41 | the problems described at the end of the next subsection. | 41 | the problems described at the end of the next subsection. |
42 | 42 | ||
43 | For all startup modes cyblafb chooses a virtual x resolution of 2048, | ||
44 | the only exception is mode 1280x1024 in combination with 32 bpp. This | ||
45 | allows ywrap scrolling for all those modes if rotation is 0 or 2, and | ||
46 | also fast scrolling if rotation is 1 or 3. The default virtual y reso- | ||
47 | lution is 4096 for bpp == 8, 2048 for bpp==16 and 1024 for bpp == 32, | ||
48 | again with the only exception of 1280x1024 at 32 bpp. | ||
49 | |||
50 | Please do set your video memory size to 8 Mb in the Bios setup. Other | ||
51 | values will work, but performace is decreased for a lot of modes. | ||
52 | |||
43 | Mode changes using fbset | 53 | Mode changes using fbset |
44 | ======================== | 54 | ======================== |
45 | 55 | ||
@@ -54,20 +64,26 @@ Selecting Modes | |||
54 | - if a flat panel is found, cyblafb does not allow you | 64 | - if a flat panel is found, cyblafb does not allow you |
55 | to program a resolution higher than the physical | 65 | to program a resolution higher than the physical |
56 | resolution of the flat panel monitor | 66 | resolution of the flat panel monitor |
57 | - cyblafb does not allow xres to differ from xres_virtual | ||
58 | - cyblafb does not allow vclk to exceed 230 MHz. As 32 bpp | 67 | - cyblafb does not allow vclk to exceed 230 MHz. As 32 bpp |
59 | and (currently) 24 bit modes use a doubled vclk internally, | 68 | and (currently) 24 bit modes use a doubled vclk internally, |
60 | the dotclock limit as seen by fbset is 115 MHz for those | 69 | the dotclock limit as seen by fbset is 115 MHz for those |
61 | modes and 230 MHz for 8 and 16 bpp modes. | 70 | modes and 230 MHz for 8 and 16 bpp modes. |
71 | - cyblafb will allow you to select very high resolutions as | ||
72 | long as the hardware can be programmed to these modes. The | ||
73 | documented limit 1600x1200 is not enforced, but don't expect | ||
74 | perfect signal quality. | ||
62 | 75 | ||
63 | Any request that violates the rules given above will be ignored and | 76 | Any request that violates the rules given above will be either changed |
64 | fbset will return an error. | 77 | to something the hardware supports or an error value will be returned. |
65 | 78 | ||
66 | If you program a virtual y resolution higher than the hardware limit, | 79 | If you program a virtual y resolution higher than the hardware limit, |
67 | cyblafb will silently decrease that value to the highest possible | 80 | cyblafb will silently decrease that value to the highest possible |
68 | value. | 81 | value. The same is true for a virtual x resolution that is not |
82 | supported by the hardware. Cyblafb tries to adapt vyres first because | ||
83 | vxres decides if ywrap scrolling is possible or not. | ||
69 | 84 | ||
70 | Attempts to disable acceleration are ignored. | 85 | Attempts to disable acceleration are ignored, I believe that this is |
86 | safe. | ||
71 | 87 | ||
72 | Some video modes that should work do not work as expected. If you use | 88 | Some video modes that should work do not work as expected. If you use |
73 | the standard fb.modes, fbset 640x480-60 will program that mode, but | 89 | the standard fb.modes, fbset 640x480-60 will program that mode, but |
@@ -129,10 +145,6 @@ mode 640x480 or 800x600 or 1024x768 or 1280x1024 | |||
129 | verbosity 0 is the default, increase to at least 2 for every | 145 | verbosity 0 is the default, increase to at least 2 for every |
130 | bug report! | 146 | bug report! |
131 | 147 | ||
132 | vesafb allows cyblafb to be loaded after vesafb has been | ||
133 | loaded. See sections "Module unloading ...". | ||
134 | |||
135 | |||
136 | Development hints | 148 | Development hints |
137 | ================= | 149 | ================= |
138 | 150 | ||
@@ -195,7 +207,7 @@ a graphics mode. | |||
195 | After booting, load cyblafb without any mode and bpp parameter and assign | 207 | After booting, load cyblafb without any mode and bpp parameter and assign |
196 | cyblafb to individual ttys using con2fb, e.g.: | 208 | cyblafb to individual ttys using con2fb, e.g.: |
197 | 209 | ||
198 | modprobe cyblafb vesafb=1 | 210 | modprobe cyblafb |
199 | con2fb /dev/fb1 /dev/tty1 | 211 | con2fb /dev/fb1 /dev/tty1 |
200 | 212 | ||
201 | Unloading cyblafb works without problems after you assign vesafb to all | 213 | Unloading cyblafb works without problems after you assign vesafb to all |
@@ -203,4 +215,3 @@ ttys again, e.g.: | |||
203 | 215 | ||
204 | con2fb /dev/fb0 /dev/tty1 | 216 | con2fb /dev/fb0 /dev/tty1 |
205 | rmmod cyblafb | 217 | rmmod cyblafb |
206 | |||
diff --git a/Documentation/fb/cyblafb/whatsnew b/Documentation/fb/cyblafb/whatsnew new file mode 100644 index 000000000000..76c07a26e044 --- /dev/null +++ b/Documentation/fb/cyblafb/whatsnew | |||
@@ -0,0 +1,29 @@ | |||
1 | 0.62 | ||
2 | ==== | ||
3 | |||
4 | - the vesafb parameter has been removed as I decided to allow the | ||
5 | feature without any special parameter. | ||
6 | |||
7 | - Cyblafb does not use the vga style of panning any longer, now the | ||
8 | "right view" register in the graphics engine IO space is used. Without | ||
9 | that change it was impossible to use all available memory, and without | ||
10 | access to all available memory it is impossible to ywrap. | ||
11 | |||
12 | - The imageblit function now uses hardware acceleration for all font | ||
13 | widths. Hardware blitting across pixel column 2048 is broken in the | ||
14 | cyberblade/i1 graphics core, but we work around that hardware bug. | ||
15 | |||
16 | - modes with vxres != xres are supported now. | ||
17 | |||
18 | - ywrap scrolling is supported now and the default. This is a big | ||
19 | performance gain. | ||
20 | |||
21 | - default video modes use vyres > yres and vxres > xres to allow | ||
22 | almost optimal scrolling speed for normal and rotated screens | ||
23 | |||
24 | - some features mainly usefull for debugging the upper layers of the | ||
25 | framebuffer system have been added, have a look at the code | ||
26 | |||
27 | - fixed: Oops after unloading cyblafb when reading /proc/io* | ||
28 | |||
29 | - we work around some bugs of the higher framebuffer layers. | ||