diff options
| author | Richard Purdie <richard@openedhand.com> | 2007-01-17 15:51:26 +0000 |
|---|---|---|
| committer | Richard Purdie <richard@openedhand.com> | 2007-01-17 15:51:26 +0000 |
| commit | 97453a1b8122ae2cd0e86e5fc8551de20f34b541 (patch) | |
| tree | 38805f08ac312514f6b4714b7de590c4d46a3d27 | |
| parent | 99b66bbf5efc2ae9190edd1aea87e119cac10a8f (diff) | |
| download | poky-97453a1b8122ae2cd0e86e5fc8551de20f34b541.tar.gz | |
linux-rp: Add missing vesa-tng patch for 2.6.19+2.6.20-rc4 for qemux86
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1156 311d38ba-8fff-0310-9ca6-ca027cbcb966
| -rw-r--r-- | meta/packages/linux/linux-rp-2.6.19+2.6.20-rc4/vesafb-tng-1.0-rc2-2.6.20-rc2.patch (renamed from meta/packages/linux/linux-rp-2.6.19+2.6.20-rc4/vesafb-tng-1.0-rc2-git-20060629.patch) | 364 | ||||
| -rw-r--r-- | meta/packages/linux/linux-rp_2.6.19+2.6.20-rc4.bb | 1 |
2 files changed, 209 insertions, 156 deletions
diff --git a/meta/packages/linux/linux-rp-2.6.19+2.6.20-rc4/vesafb-tng-1.0-rc2-git-20060629.patch b/meta/packages/linux/linux-rp-2.6.19+2.6.20-rc4/vesafb-tng-1.0-rc2-2.6.20-rc2.patch index 188ce6094e..b1b0fc3549 100644 --- a/meta/packages/linux/linux-rp-2.6.19+2.6.20-rc4/vesafb-tng-1.0-rc2-git-20060629.patch +++ b/meta/packages/linux/linux-rp-2.6.19+2.6.20-rc4/vesafb-tng-1.0-rc2-2.6.20-rc2.patch | |||
| @@ -1,22 +1,7 @@ | |||
| 1 | # Patch generated against a6047eef1c465c38aacfbdab193161b3f0cd144 | 1 | diff --git a/Documentation/fb/vesafb.txt b/Documentation/fb/vesafb.txt |
| 2 | --- | 2 | index ee277dd..93d6e6e 100644 |
| 3 | # Documentation/fb/vesafb.txt | 250 ++++-- | 3 | --- a/Documentation/fb/vesafb.txt |
| 4 | # arch/i386/boot/video.S | 12 | 4 | +++ b/Documentation/fb/vesafb.txt |
| 5 | # drivers/video/Kconfig | 56 + | ||
| 6 | # drivers/video/Makefile | 6 | ||
| 7 | # drivers/video/fbmem.c | 1 | ||
| 8 | # drivers/video/modedb.c | 1 | ||
| 9 | # drivers/video/vesafb-thread.c | 727 +++++++++++++++++++ | ||
| 10 | # drivers/video/vesafb-tng.c | 1598 ++++++++++++++++++++++++++++++++++++++++++ | ||
| 11 | # include/linux/sched.h | 2 | ||
| 12 | # include/video/vesa.h | 150 +++ | ||
| 13 | # kernel/fork.c | 35 | ||
| 14 | # mm/memory.c | 1 | ||
| 15 | # mm/mmap.c | 1 | ||
| 16 | # 13 files changed, 2748 insertions(+), 92 deletions(-) | ||
| 17 | # | ||
| 18 | --- linux-2.6.17.orig/Documentation/fb/vesafb.txt | ||
| 19 | +++ linux-2.6.17/Documentation/fb/vesafb.txt | ||
| 20 | @@ -2,16 +2,18 @@ | 5 | @@ -2,16 +2,18 @@ |
| 21 | What is vesafb? | 6 | What is vesafb? |
| 22 | =============== | 7 | =============== |
| @@ -94,7 +79,7 @@ | |||
| 94 | 79 | ||
| 95 | Linux_kernel_mode_number = VESA_mode_number + 0x200 | 80 | Linux_kernel_mode_number = VESA_mode_number + 0x200 |
| 96 | 81 | ||
| 97 | @@ -56,15 +67,15 @@ So the table for the Kernel mode numbers | 82 | @@ -56,15 +67,15 @@ So the table for the Kernel mode numbers are: |
| 98 | 83 | ||
| 99 | | 640x480 800x600 1024x768 1280x1024 | 84 | | 640x480 800x600 1024x768 1280x1024 |
| 100 | ----+------------------------------------- | 85 | ----+------------------------------------- |
| @@ -118,7 +103,7 @@ | |||
| 118 | 103 | ||
| 119 | If this does not work, this might be because your BIOS does not support | 104 | If this does not work, this might be because your BIOS does not support |
| 120 | linear framebuffers or because it does not support this mode at all. | 105 | linear framebuffers or because it does not support this mode at all. |
| 121 | @@ -72,11 +83,12 @@ Even if your board does, it might be the | 106 | @@ -72,11 +83,12 @@ Even if your board does, it might be the BIOS which does not. VESA BIOS |
| 122 | Extensions v2.0 are required, 1.2 is NOT sufficient. You will get a | 107 | Extensions v2.0 are required, 1.2 is NOT sufficient. You will get a |
| 123 | "bad mode number" message if something goes wrong. | 108 | "bad mode number" message if something goes wrong. |
| 124 | 109 | ||
| @@ -132,7 +117,7 @@ | |||
| 132 | X11 | 117 | X11 |
| 133 | === | 118 | === |
| 134 | 119 | ||
| 135 | @@ -84,98 +96,164 @@ XF68_FBDev should work just fine, but it | 120 | @@ -84,98 +96,164 @@ XF68_FBDev should work just fine, but it is non-accelerated. Running |
| 136 | another (accelerated) X-Server like XF86_SVGA might or might not work. | 121 | another (accelerated) X-Server like XF86_SVGA might or might not work. |
| 137 | It depends on X-Server and graphics board. | 122 | It depends on X-Server and graphics board. |
| 138 | 123 | ||
| @@ -152,13 +137,13 @@ | |||
| 152 | +With VBE 3.0 compatible BIOSes and vesafb-tng it is possible to change | 137 | +With VBE 3.0 compatible BIOSes and vesafb-tng it is possible to change |
| 153 | +the refresh rate either at boot time (by specifying the @<rr> part of | 138 | +the refresh rate either at boot time (by specifying the @<rr> part of |
| 154 | +the mode name) or later, using the fbset utility. | 139 | +the mode name) or later, using the fbset utility. |
| 140 | + | ||
| 141 | +If you want to use the default BIOS refresh rate while switching modes | ||
| 142 | +on a running system, set pixclock to 0. | ||
| 155 | 143 | ||
| 156 | - * configure and load the DOS-Tools for your the graphics board (if | 144 | - * configure and load the DOS-Tools for your the graphics board (if |
| 157 | - available) and boot linux with loadlin. | 145 | - available) and boot linux with loadlin. |
| 158 | - * use a native driver (matroxfb/atyfb) instead if vesafb. If none | 146 | - * use a native driver (matroxfb/atyfb) instead if vesafb. If none |
| 159 | +If you want to use the default BIOS refresh rate while switching modes | ||
| 160 | +on a running system, set pixclock to 0. | ||
| 161 | + | ||
| 162 | +With VBE 2.0 there is no way to change the mode timings after booting | 147 | +With VBE 2.0 there is no way to change the mode timings after booting |
| 163 | +Linux. If you are not happy with the 60 Hz refresh rate, you have | 148 | +Linux. If you are not happy with the 60 Hz refresh rate, you have |
| 164 | +the following options: | 149 | +the following options: |
| @@ -189,25 +174,15 @@ | |||
| 189 | -to pan the display. It is turned off by default because it | 174 | -to pan the display. It is turned off by default because it |
| 190 | -seems not to work with some BIOS versions, but there are options | 175 | -seems not to work with some BIOS versions, but there are options |
| 191 | -to turn it on. | 176 | -to turn it on. |
| 192 | +The VESA BIOS provides protected mode interface for changing some parameters. | 177 | - |
| 193 | +vesafb can use it for palette changes and to pan the display. It is turned | ||
| 194 | +off by default because it seems not to work with some BIOS versions, but | ||
| 195 | +there are options to turn it on. | ||
| 196 | |||
| 197 | -You can pass options to vesafb using "video=vesafb:option" on | 178 | -You can pass options to vesafb using "video=vesafb:option" on |
| 198 | -the kernel command line. Multiple options should be separated | 179 | -the kernel command line. Multiple options should be separated |
| 199 | -by comma, like this: "video=vesafb:ypan,invers" | 180 | -by comma, like this: "video=vesafb:ypan,invers" |
| 200 | +You can pass options to vesafb using "video=vesafb:option" on the kernel | 181 | - |
| 201 | +command line. Multiple options should be separated by a comma, like this: | ||
| 202 | +"video=vesafb:ypan,1024x768-32@85" | ||
| 203 | |||
| 204 | -Accepted options: | 182 | -Accepted options: |
| 205 | +Note that vesafb-tng still uses the "video=vesafb:option" format of the | 183 | - |
| 206 | +kernel command line video parameter. "video=vesafb-tng:xxx" is incorrect. | ||
| 207 | |||
| 208 | -invers no comment... | 184 | -invers no comment... |
| 209 | +Accepted options (both vesafb and vesafb-tng): | 185 | - |
| 210 | |||
| 211 | -ypan enable display panning using the VESA protected mode | 186 | -ypan enable display panning using the VESA protected mode |
| 212 | - interface. The visible screen is just a window of the | 187 | - interface. The visible screen is just a window of the |
| 213 | - video memory, console scrolling is done by changing the | 188 | - video memory, console scrolling is done by changing the |
| @@ -219,6 +194,43 @@ | |||
| 219 | - kontra: * scrolling only parts of the screen causes some | 194 | - kontra: * scrolling only parts of the screen causes some |
| 220 | - ugly flicker effects (boot logo flickers for | 195 | - ugly flicker effects (boot logo flickers for |
| 221 | - example). | 196 | - example). |
| 197 | - | ||
| 198 | -ywrap Same as ypan, but assumes your gfx board can wrap-around | ||
| 199 | - the video memory (i.e. starts reading from top if it | ||
| 200 | - reaches the end of video memory). Faster than ypan. | ||
| 201 | - | ||
| 202 | -redraw scroll by redrawing the affected part of the screen, this | ||
| 203 | - is the safe (and slow) default. | ||
| 204 | - | ||
| 205 | - | ||
| 206 | -vgapal Use the standard vga registers for palette changes. | ||
| 207 | - This is the default. | ||
| 208 | -pmipal Use the protected mode interface for palette changes. | ||
| 209 | - | ||
| 210 | -mtrr:n setup memory type range registers for the vesafb framebuffer | ||
| 211 | - where n: | ||
| 212 | - 0 - disabled (equivalent to nomtrr) (default) | ||
| 213 | - 1 - uncachable | ||
| 214 | - 2 - write-back | ||
| 215 | - 3 - write-combining | ||
| 216 | - 4 - write-through | ||
| 217 | - | ||
| 218 | - If you see the following in dmesg, choose the type that matches the | ||
| 219 | - old one. In this example, use "mtrr:2". | ||
| 220 | +The VESA BIOS provides protected mode interface for changing some parameters. | ||
| 221 | +vesafb can use it for palette changes and to pan the display. It is turned | ||
| 222 | +off by default because it seems not to work with some BIOS versions, but | ||
| 223 | +there are options to turn it on. | ||
| 224 | + | ||
| 225 | +You can pass options to vesafb using "video=vesafb:option" on the kernel | ||
| 226 | +command line. Multiple options should be separated by a comma, like this: | ||
| 227 | +"video=vesafb:ypan,1024x768-32@85" | ||
| 228 | + | ||
| 229 | +Note that vesafb-tng still uses the "video=vesafb:option" format of the | ||
| 230 | +kernel command line video parameter. "video=vesafb-tng:xxx" is incorrect. | ||
| 231 | + | ||
| 232 | +Accepted options (both vesafb and vesafb-tng): | ||
| 233 | + | ||
| 222 | +ypan Enable display panning using the VESA protected mode interface | 234 | +ypan Enable display panning using the VESA protected mode interface |
| 223 | + The visible screen is just a window of the video memory, | 235 | + The visible screen is just a window of the video memory, |
| 224 | + console scrolling is done by changing the start of the window. | 236 | + console scrolling is done by changing the start of the window. |
| @@ -229,34 +241,19 @@ | |||
| 229 | + con: * scrolling only parts of the screen causes some | 241 | + con: * scrolling only parts of the screen causes some |
| 230 | + ugly flicker effects (boot logo flickers for | 242 | + ugly flicker effects (boot logo flickers for |
| 231 | + example). | 243 | + example). |
| 232 | 244 | + | |
| 233 | -ywrap Same as ypan, but assumes your gfx board can wrap-around | ||
| 234 | - the video memory (i.e. starts reading from top if it | ||
| 235 | - reaches the end of video memory). Faster than ypan. | ||
| 236 | +ywrap Same as ypan, but assumes your gfx board can wrap-around the video | 245 | +ywrap Same as ypan, but assumes your gfx board can wrap-around the video |
| 237 | + memory (i.e. starts reading from top if it reaches the end of | 246 | + memory (i.e. starts reading from top if it reaches the end of |
| 238 | + video memory). Faster than ypan. | 247 | + video memory). Faster than ypan. |
| 239 | 248 | + | |
| 240 | -redraw scroll by redrawing the affected part of the screen, this | ||
| 241 | - is the safe (and slow) default. | ||
| 242 | +redraw Scroll by redrawing the affected part of the screen, this is the | 249 | +redraw Scroll by redrawing the affected part of the screen, this is the |
| 243 | + safe (and slow) default. | 250 | + safe (and slow) default. |
| 244 | 251 | + | |
| 245 | +vgapal Use the standard VGA registers for palette changes. | 252 | +vgapal Use the standard VGA registers for palette changes. |
| 246 | 253 | + | |
| 247 | -vgapal Use the standard vga registers for palette changes. | ||
| 248 | - This is the default. | ||
| 249 | -pmipal Use the protected mode interface for palette changes. | ||
| 250 | +pmipal Use the protected mode interface for palette changes. | 254 | +pmipal Use the protected mode interface for palette changes. |
| 251 | + This is the default is the protected mode interface is available. | 255 | + This is the default is the protected mode interface is available. |
| 252 | 256 | + | |
| 253 | -mtrr:n setup memory type range registers for the vesafb framebuffer | ||
| 254 | - where n: | ||
| 255 | - 0 - disabled (equivalent to nomtrr) (default) | ||
| 256 | - 1 - uncachable | ||
| 257 | - 2 - write-back | ||
| 258 | - 3 - write-combining | ||
| 259 | - 4 - write-through | ||
| 260 | +mtrr:n Setup memory type range registers for the vesafb framebuffer | 257 | +mtrr:n Setup memory type range registers for the vesafb framebuffer |
| 261 | + where n: | 258 | + where n: |
| 262 | + 0 - disabled (equivalent to nomtrr) (default) | 259 | + 0 - disabled (equivalent to nomtrr) (default) |
| @@ -264,9 +261,7 @@ | |||
| 264 | + 2 - write-back | 261 | + 2 - write-back |
| 265 | + 3 - write-combining | 262 | + 3 - write-combining |
| 266 | + 4 - write-through | 263 | + 4 - write-through |
| 267 | 264 | + | |
| 268 | - If you see the following in dmesg, choose the type that matches the | ||
| 269 | - old one. In this example, use "mtrr:2". | ||
| 270 | + If you see the following in dmesg, choose the type that matches | 265 | + If you see the following in dmesg, choose the type that matches |
| 271 | + the old one. In this example, use "mtrr:2". | 266 | + the old one. In this example, use "mtrr:2". |
| 272 | ... | 267 | ... |
| @@ -291,8 +286,7 @@ | |||
| 291 | 286 | ||
| 292 | -Have fun! | 287 | -Have fun! |
| 293 | +Options accepted only by vesafb-tng: | 288 | +Options accepted only by vesafb-tng: |
| 294 | 289 | + | |
| 295 | - Gerd | ||
| 296 | +<mode> The mode you want to set, in the standard modedb format. Refer to | 290 | +<mode> The mode you want to set, in the standard modedb format. Refer to |
| 297 | + modedb.txt for a detailed description. If you specify a mode that is | 291 | + modedb.txt for a detailed description. If you specify a mode that is |
| 298 | + not supported by your board's BIOS, vesafb-tng will attempt to set a | 292 | + not supported by your board's BIOS, vesafb-tng will attempt to set a |
| @@ -337,7 +331,8 @@ | |||
| 337 | +maxhf:n Maximum horizontal frequency (in kHz). | 331 | +maxhf:n Maximum horizontal frequency (in kHz). |
| 338 | +maxvf:n Maximum vertical frequency (in Hz). | 332 | +maxvf:n Maximum vertical frequency (in Hz). |
| 339 | +maxclk:n Maximum pixel clock (in MHz). | 333 | +maxclk:n Maximum pixel clock (in MHz). |
| 340 | + | 334 | |
| 335 | - Gerd | ||
| 341 | +Have fun! | 336 | +Have fun! |
| 342 | 337 | ||
| 343 | -- | 338 | -- |
| @@ -352,9 +347,11 @@ | |||
| 352 | +Extended documentation for vm86, VBE 3.0 and vesafb-tng by | 347 | +Extended documentation for vm86, VBE 3.0 and vesafb-tng by |
| 353 | +Michal Januszewski <spock@gentoo.org> | 348 | +Michal Januszewski <spock@gentoo.org> |
| 354 | + | 349 | + |
| 355 | --- linux-2.6.17.orig/arch/i386/boot/video.S | 350 | diff --git a/arch/i386/boot/video.S b/arch/i386/boot/video.S |
| 356 | +++ linux-2.6.17/arch/i386/boot/video.S | 351 | index 2c5b5cc..2c2d4b5 100644 |
| 357 | @@ -165,10 +165,12 @@ basret: ret | 352 | --- a/arch/i386/boot/video.S |
| 353 | +++ b/arch/i386/boot/video.S | ||
| 354 | @@ -163,10 +163,12 @@ basret: ret | ||
| 358 | # parameters in the default 80x25 mode -- these are set directly, | 355 | # parameters in the default 80x25 mode -- these are set directly, |
| 359 | # because some very obscure BIOSes supply insane values. | 356 | # because some very obscure BIOSes supply insane values. |
| 360 | mode_params: | 357 | mode_params: |
| @@ -367,7 +364,7 @@ | |||
| 367 | movb $0x03, %ah # Read cursor position | 364 | movb $0x03, %ah # Read cursor position |
| 368 | xorb %bh, %bh | 365 | xorb %bh, %bh |
| 369 | int $0x10 | 366 | int $0x10 |
| 370 | @@ -201,6 +203,7 @@ mopar2: movb %al, %fs:(PARAM_VIDEO_LINES | 367 | @@ -199,6 +201,7 @@ mopar2: movb %al, %fs:(PARAM_VIDEO_LINES) |
| 371 | ret | 368 | ret |
| 372 | 369 | ||
| 373 | #ifdef CONFIG_VIDEO_SELECT | 370 | #ifdef CONFIG_VIDEO_SELECT |
| @@ -375,7 +372,7 @@ | |||
| 375 | # Fetching of VESA frame buffer parameters | 372 | # Fetching of VESA frame buffer parameters |
| 376 | mopar_gr: | 373 | mopar_gr: |
| 377 | leaw modelist+1024, %di | 374 | leaw modelist+1024, %di |
| 378 | @@ -283,6 +286,7 @@ dac_done: | 375 | @@ -281,6 +284,7 @@ dac_done: |
| 379 | movw %es, %fs:(PARAM_VESAPM_SEG) | 376 | movw %es, %fs:(PARAM_VESAPM_SEG) |
| 380 | movw %di, %fs:(PARAM_VESAPM_OFF) | 377 | movw %di, %fs:(PARAM_VESAPM_OFF) |
| 381 | no_pm: ret | 378 | no_pm: ret |
| @@ -383,7 +380,7 @@ | |||
| 383 | 380 | ||
| 384 | # The video mode menu | 381 | # The video mode menu |
| 385 | mode_menu: | 382 | mode_menu: |
| 386 | @@ -497,10 +501,12 @@ mode_set: | 383 | @@ -495,10 +499,12 @@ mode_set: |
| 387 | 384 | ||
| 388 | cmpb $VIDEO_FIRST_V7>>8, %ah | 385 | cmpb $VIDEO_FIRST_V7>>8, %ah |
| 389 | jz setv7 | 386 | jz setv7 |
| @@ -398,7 +395,7 @@ | |||
| 398 | orb %ah, %ah | 395 | orb %ah, %ah |
| 399 | jz setmenu | 396 | jz setmenu |
| 400 | 397 | ||
| 401 | @@ -572,6 +578,7 @@ setr1: lodsw | 398 | @@ -570,6 +576,7 @@ setr1: lodsw |
| 402 | movw -4(%si), %ax # Fetch mode ID | 399 | movw -4(%si), %ax # Fetch mode ID |
| 403 | jmp _m_s | 400 | jmp _m_s |
| 404 | 401 | ||
| @@ -406,7 +403,7 @@ | |||
| 406 | check_vesa: | 403 | check_vesa: |
| 407 | leaw modelist+1024, %di | 404 | leaw modelist+1024, %di |
| 408 | subb $VIDEO_FIRST_VESA>>8, %bh | 405 | subb $VIDEO_FIRST_VESA>>8, %bh |
| 409 | @@ -605,6 +612,7 @@ check_vesa: | 406 | @@ -603,6 +610,7 @@ check_vesa: |
| 410 | ret | 407 | ret |
| 411 | 408 | ||
| 412 | _setbad: jmp setbad # Ugly... | 409 | _setbad: jmp setbad # Ugly... |
| @@ -414,9 +411,24 @@ | |||
| 414 | 411 | ||
| 415 | # Recalculate vertical display end registers -- this fixes various | 412 | # Recalculate vertical display end registers -- this fixes various |
| 416 | # inconsistencies of extended modes on many adapters. Called when | 413 | # inconsistencies of extended modes on many adapters. Called when |
| 417 | --- linux-2.6.17.orig/drivers/video/Kconfig | 414 | diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c |
| 418 | +++ linux-2.6.17/drivers/video/Kconfig | 415 | index 1393523..8a05f95 100644 |
| 419 | @@ -472,8 +472,22 @@ config FB_TGA | 416 | --- a/drivers/char/sysrq.c |
| 417 | +++ b/drivers/char/sysrq.c | ||
| 418 | @@ -240,7 +240,7 @@ static void send_sig_all(int sig) | ||
| 419 | struct task_struct *p; | ||
| 420 | |||
| 421 | for_each_process(p) { | ||
| 422 | - if (p->mm && !is_init(p)) | ||
| 423 | + if (p->mm && !is_init(p) && !(p->flags & PF_BORROWED_MM)) | ||
| 424 | /* Not swapper, init nor kernel thread */ | ||
| 425 | force_sig(sig, p); | ||
| 426 | } | ||
| 427 | diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig | ||
| 428 | index 4e83f01..ae122fd 100644 | ||
| 429 | --- a/drivers/video/Kconfig | ||
| 430 | +++ b/drivers/video/Kconfig | ||
| 431 | @@ -547,8 +547,22 @@ config FB_TGA | ||
| 420 | cards. Say Y if you have one of those. | 432 | cards. Say Y if you have one of those. |
| 421 | 433 | ||
| 422 | config FB_VESA | 434 | config FB_VESA |
| @@ -441,7 +453,7 @@ | |||
| 441 | select FB_CFB_FILLRECT | 453 | select FB_CFB_FILLRECT |
| 442 | select FB_CFB_COPYAREA | 454 | select FB_CFB_COPYAREA |
| 443 | select FB_CFB_IMAGEBLIT | 455 | select FB_CFB_IMAGEBLIT |
| 444 | @@ -481,7 +495,43 @@ config FB_VESA | 456 | @@ -557,7 +571,43 @@ config FB_VESA |
| 445 | This is the frame buffer device driver for generic VESA 2.0 | 457 | This is the frame buffer device driver for generic VESA 2.0 |
| 446 | compliant graphic cards. The older VESA 1.2 cards are not supported. | 458 | compliant graphic cards. The older VESA 1.2 cards are not supported. |
| 447 | You will get a boot time penguin logo at no additional cost. Please | 459 | You will get a boot time penguin logo at no additional cost. Please |
| @@ -459,14 +471,14 @@ | |||
| 459 | + select FB_CFB_COPYAREA | 471 | + select FB_CFB_COPYAREA |
| 460 | + select FB_CFB_IMAGEBLIT | 472 | + select FB_CFB_IMAGEBLIT |
| 461 | + help | 473 | + help |
| 462 | + This is the frame buffer device driver for generic VESA 2.0 | 474 | + This is an enhanced generic frame buffer device driver for |
| 463 | + compliant graphic cards. It is capable of taking advantage of | 475 | + VBE 2.0 compliant graphic cards. It can take advantage of VBE 3.0 |
| 464 | + VBE 3.0 features. With this driver you will be able to adjust | 476 | + features (refresh rate adjustment) when these are available. |
| 465 | + the refresh rate (VBE 3.0 compliant boards only) and change | 477 | + The driver also makes it possible to change the video mode |
| 466 | + the graphic mode on-the-fly. | 478 | + on the fly and to switch back to text mode when it's unloaded. |
| 467 | + | 479 | + |
| 468 | + You will also get a boot time penguin logo at no additional cost. Please | 480 | + If the driver is compiled as a module, the module will be called |
| 469 | + read <file:Documentation/fb/vesafb.txt>. | 481 | + vesafb-tng. |
| 470 | + | 482 | + |
| 471 | +endchoice | 483 | +endchoice |
| 472 | + | 484 | + |
| @@ -484,12 +496,14 @@ | |||
| 484 | + depends on FB_VESA | 496 | + depends on FB_VESA |
| 485 | + default y | 497 | + default y |
| 486 | 498 | ||
| 487 | config VIDEO_SELECT | 499 | config FB_IMAC |
| 488 | bool | 500 | bool "Intel-based Macintosh Framebuffer Support" |
| 489 | --- linux-2.6.17.orig/drivers/video/Makefile | 501 | diff --git a/drivers/video/Makefile b/drivers/video/Makefile |
| 490 | +++ linux-2.6.17/drivers/video/Makefile | 502 | index 309a26d..e57b0e7 100644 |
| 491 | @@ -97,7 +97,11 @@ obj-$(CONFIG_FB_IMX) += imx | 503 | --- a/drivers/video/Makefile |
| 492 | obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o | 504 | +++ b/drivers/video/Makefile |
| 505 | @@ -102,7 +102,11 @@ obj-$(CONFIG_FB_PNX4008_DUM_RGB) += pnx4008/ | ||
| 506 | obj-$(CONFIG_FB_IBM_GXT4500) += gxt4500.o | ||
| 493 | 507 | ||
| 494 | # Platform or fallback drivers go here | 508 | # Platform or fallback drivers go here |
| 495 | -obj-$(CONFIG_FB_VESA) += vesafb.o | 509 | -obj-$(CONFIG_FB_VESA) += vesafb.o |
| @@ -498,12 +512,14 @@ | |||
| 498 | +else | 512 | +else |
| 499 | + obj-$(CONFIG_FB_VESA) += vesafb-thread.o vesafb-tng.o | 513 | + obj-$(CONFIG_FB_VESA) += vesafb-thread.o vesafb-tng.o |
| 500 | +endif | 514 | +endif |
| 515 | obj-$(CONFIG_FB_IMAC) += imacfb.o | ||
| 501 | obj-$(CONFIG_FB_VGA16) += vga16fb.o vgastate.o | 516 | obj-$(CONFIG_FB_VGA16) += vga16fb.o vgastate.o |
| 502 | obj-$(CONFIG_FB_OF) += offb.o | 517 | obj-$(CONFIG_FB_OF) += offb.o |
| 503 | 518 | diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c | |
| 504 | --- linux-2.6.17.orig/drivers/video/fbmem.c | 519 | index 3cfea31..bfb39cc 100644 |
| 505 | +++ linux-2.6.17/drivers/video/fbmem.c | 520 | --- a/drivers/video/fbmem.c |
| 506 | @@ -1438,6 +1438,7 @@ fbmem_init(void) | 521 | +++ b/drivers/video/fbmem.c |
| 522 | @@ -1408,6 +1408,7 @@ fbmem_init(void) | ||
| 507 | printk(KERN_WARNING "Unable to create fb class; errno = %ld\n", PTR_ERR(fb_class)); | 523 | printk(KERN_WARNING "Unable to create fb class; errno = %ld\n", PTR_ERR(fb_class)); |
| 508 | fb_class = NULL; | 524 | fb_class = NULL; |
| 509 | } | 525 | } |
| @@ -511,9 +527,11 @@ | |||
| 511 | return 0; | 527 | return 0; |
| 512 | } | 528 | } |
| 513 | 529 | ||
| 514 | --- linux-2.6.17.orig/drivers/video/modedb.c | 530 | diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c |
| 515 | +++ linux-2.6.17/drivers/video/modedb.c | 531 | index 5df41f6..f838a53 100644 |
| 516 | @@ -671,6 +671,7 @@ void fb_var_to_videomode(struct fb_video | 532 | --- a/drivers/video/modedb.c |
| 533 | +++ b/drivers/video/modedb.c | ||
| 534 | @@ -674,6 +674,7 @@ void fb_var_to_videomode(struct fb_videomode *mode, | ||
| 517 | { | 535 | { |
| 518 | u32 pixclock, hfreq, htotal, vtotal; | 536 | u32 pixclock, hfreq, htotal, vtotal; |
| 519 | 537 | ||
| @@ -521,9 +539,17 @@ | |||
| 521 | mode->name = NULL; | 539 | mode->name = NULL; |
| 522 | mode->xres = var->xres; | 540 | mode->xres = var->xres; |
| 523 | mode->yres = var->yres; | 541 | mode->yres = var->yres; |
| 542 | @@ -1025,3 +1026,4 @@ EXPORT_SYMBOL(fb_find_best_mode); | ||
| 543 | EXPORT_SYMBOL(fb_find_nearest_mode); | ||
| 544 | EXPORT_SYMBOL(fb_videomode_to_modelist); | ||
| 545 | EXPORT_SYMBOL(fb_find_mode); | ||
| 546 | +EXPORT_SYMBOL(fb_destroy_modelist); | ||
| 547 | diff --git a/drivers/video/vesafb-thread.c b/drivers/video/vesafb-thread.c | ||
| 548 | new file mode 100644 | ||
| 549 | index 0000000..543e202 | ||
| 524 | --- /dev/null | 550 | --- /dev/null |
| 525 | +++ linux-2.6.17/drivers/video/vesafb-thread.c | 551 | +++ b/drivers/video/vesafb-thread.c |
| 526 | @@ -0,0 +1,727 @@ | 552 | @@ -0,0 +1,751 @@ |
| 527 | +/* | 553 | +/* |
| 528 | + * Framebuffer driver for VBE 2.0+ compliant graphic boards. | 554 | + * Framebuffer driver for VBE 2.0+ compliant graphic boards. |
| 529 | + * Kernel thread and vm86 routines. | 555 | + * Kernel thread and vm86 routines. |
| @@ -532,8 +558,6 @@ | |||
| 532 | + * | 558 | + * |
| 533 | + */ | 559 | + */ |
| 534 | + | 560 | + |
| 535 | +#include <linux/config.h> | ||
| 536 | +#include <linux/slab.h> | ||
| 537 | +#include <linux/workqueue.h> | 561 | +#include <linux/workqueue.h> |
| 538 | +#include <linux/completion.h> | 562 | +#include <linux/completion.h> |
| 539 | +#include <linux/module.h> | 563 | +#include <linux/module.h> |
| @@ -542,6 +566,7 @@ | |||
| 542 | +#include <linux/mm.h> | 566 | +#include <linux/mm.h> |
| 543 | +#include <linux/delay.h> | 567 | +#include <linux/delay.h> |
| 544 | +#include <linux/signal.h> | 568 | +#include <linux/signal.h> |
| 569 | +#include <linux/freezer.h> | ||
| 545 | +#include <linux/suspend.h> | 570 | +#include <linux/suspend.h> |
| 546 | +#include <linux/unistd.h> | 571 | +#include <linux/unistd.h> |
| 547 | +#include <video/vesa.h> | 572 | +#include <video/vesa.h> |
| @@ -554,9 +579,7 @@ | |||
| 554 | +#include <asm/mmu_context.h> | 579 | +#include <asm/mmu_context.h> |
| 555 | +#include "edid.h" | 580 | +#include "edid.h" |
| 556 | + | 581 | + |
| 557 | +#ifdef MODULE | 582 | +static int errno; |
| 558 | +int errno; | ||
| 559 | +#endif | ||
| 560 | + | 583 | + |
| 561 | +static DECLARE_COMPLETION(vesafb_th_completion); | 584 | +static DECLARE_COMPLETION(vesafb_th_completion); |
| 562 | +static DECLARE_MUTEX(vesafb_task_list_sem); | 585 | +static DECLARE_MUTEX(vesafb_task_list_sem); |
| @@ -566,9 +589,6 @@ | |||
| 566 | +static struct vm86_struct vm86; | 589 | +static struct vm86_struct vm86; |
| 567 | +static int vesafb_pid = 0; | 590 | +static int vesafb_pid = 0; |
| 568 | + | 591 | + |
| 569 | +_syscall3(int,ioperm,unsigned long, a, unsigned long, b, unsigned long, c); | ||
| 570 | +_syscall1(int,vm86old,struct vm86_struct __user*, v86); | ||
| 571 | + | ||
| 572 | +#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) | 592 | +#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) |
| 573 | +#define VM86_PUSHW(x) \ | 593 | +#define VM86_PUSHW(x) \ |
| 574 | +do { \ | 594 | +do { \ |
| @@ -601,6 +621,36 @@ | |||
| 601 | + | 621 | + |
| 602 | +#define FLAG_D (1 << 10) | 622 | +#define FLAG_D (1 << 10) |
| 603 | + | 623 | + |
| 624 | +/* Syscalls used by the vesafb thread */ | ||
| 625 | +static int vm86old(struct vm86_struct __user* v86) | ||
| 626 | +{ | ||
| 627 | + long res; | ||
| 628 | + __asm__ volatile ("push %%ebx; movl %2, %%ebx ; int $0x80 ; pop %%ebx" | ||
| 629 | + : "=a" (res) | ||
| 630 | + : "0" (__NR_vm86old), "ri" ((long)(v86)) : "memory"); | ||
| 631 | + | ||
| 632 | + if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { | ||
| 633 | + errno = -res; | ||
| 634 | + res = -1; | ||
| 635 | + } | ||
| 636 | + return (int)res; | ||
| 637 | +} | ||
| 638 | + | ||
| 639 | +static int ioperm(unsigned long a, unsigned long b, unsigned long c) | ||
| 640 | +{ | ||
| 641 | + long res; | ||
| 642 | + __asm__ volatile ("push %%ebx; movl %2, %%ebx ; int $0x80 ; pop %%ebx" | ||
| 643 | + : "=a" (res) | ||
| 644 | + : "0" (__NR_ioperm), "ri" ((long)(a)), "c" ((long)(b)), | ||
| 645 | + "d" ((long)(c)) : "memory"); | ||
| 646 | + | ||
| 647 | + if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { | ||
| 648 | + errno = -res; | ||
| 649 | + res = -1; | ||
| 650 | + } | ||
| 651 | + return (int)res; | ||
| 652 | +} | ||
| 653 | + | ||
| 604 | +/* Segment prefix opcodes */ | 654 | +/* Segment prefix opcodes */ |
| 605 | +enum { | 655 | +enum { |
| 606 | + P_CS = 0x2e, | 656 | + P_CS = 0x2e, |
| @@ -962,7 +1012,7 @@ | |||
| 962 | + struct mm_struct *mm = current->mm; | 1012 | + struct mm_struct *mm = current->mm; |
| 963 | + int ret = 0; | 1013 | + int ret = 0; |
| 964 | + | 1014 | + |
| 965 | + vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); | 1015 | + vma = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); |
| 966 | + if (!vma) | 1016 | + if (!vma) |
| 967 | + return -ENOMEM; | 1017 | + return -ENOMEM; |
| 968 | + memset(vma, 0, sizeof(*vma)); | 1018 | + memset(vma, 0, sizeof(*vma)); |
| @@ -1251,9 +1301,12 @@ | |||
| 1251 | +MODULE_LICENSE("GPL"); | 1301 | +MODULE_LICENSE("GPL"); |
| 1252 | +MODULE_AUTHOR("Michal Januszewski"); | 1302 | +MODULE_AUTHOR("Michal Januszewski"); |
| 1253 | + | 1303 | + |
| 1304 | diff --git a/drivers/video/vesafb-tng.c b/drivers/video/vesafb-tng.c | ||
| 1305 | new file mode 100644 | ||
| 1306 | index 0000000..b4d4394 | ||
| 1254 | --- /dev/null | 1307 | --- /dev/null |
| 1255 | +++ linux-2.6.17/drivers/video/vesafb-tng.c | 1308 | +++ b/drivers/video/vesafb-tng.c |
| 1256 | @@ -0,0 +1,1598 @@ | 1309 | @@ -0,0 +1,1586 @@ |
| 1257 | +/* | 1310 | +/* |
| 1258 | + * Framebuffer driver for VBE 2.0+ compliant graphic boards | 1311 | + * Framebuffer driver for VBE 2.0+ compliant graphic boards |
| 1259 | + * | 1312 | + * |
| @@ -2027,16 +2080,10 @@ | |||
| 2027 | + int clen = 0, i; | 2080 | + int clen = 0, i; |
| 2028 | + | 2081 | + |
| 2029 | + for (i = 0; i < vbe_modes_cnt; i++) { | 2082 | + for (i = 0; i < vbe_modes_cnt; i++) { |
| 2030 | + clen += sprintf(buf + clen, "%dx%d-%d\n", vbe_modes[i].x_res, | 2083 | + clen += min(snprintf(buf + clen, len - clen, "%dx%d-%d\n", vbe_modes[i].x_res, |
| 2031 | + vbe_modes[i].y_res, vbe_modes[i].depth); | 2084 | + vbe_modes[i].y_res, vbe_modes[i].depth), len - clen); |
| 2032 | + } | ||
| 2033 | + *start = buf + offset; | ||
| 2034 | + | ||
| 2035 | + if (clen > offset) { | ||
| 2036 | + clen -= offset; | ||
| 2037 | + } else { | ||
| 2038 | + clen = 0; | ||
| 2039 | + } | 2085 | + } |
| 2086 | + *eof = 1; | ||
| 2040 | + return clen; | 2087 | + return clen; |
| 2041 | +} | 2088 | +} |
| 2042 | + | 2089 | + |
| @@ -2045,25 +2092,19 @@ | |||
| 2045 | +{ | 2092 | +{ |
| 2046 | + int clen = 0; | 2093 | + int clen = 0; |
| 2047 | + | 2094 | + |
| 2048 | + clen += sprintf(buf + clen, "Version: %d.%d\n", | 2095 | + clen += min(snprintf(buf + clen, len, "Version: %d.%d\n", |
| 2049 | + ((vbe_ib.vbe_version & 0xff00) >> 8), | 2096 | + ((vbe_ib.vbe_version & 0xff00) >> 8), |
| 2050 | + vbe_ib.vbe_version & 0xff); | 2097 | + vbe_ib.vbe_version & 0xff), len); |
| 2051 | + clen += sprintf(buf + clen, "Vendor: %s\n", | 2098 | + clen += min(snprintf(buf + clen, len - clen, "Vendor: %s\n", |
| 2052 | + (char*)vbe_ib.oem_vendor_name_ptr); | 2099 | + (char*)vbe_ib.oem_vendor_name_ptr), len - clen); |
| 2053 | + clen += sprintf(buf + clen, "Product: %s\n", | 2100 | + clen += min(snprintf(buf + clen, len - clen, "Product: %s\n", |
| 2054 | + (char*)vbe_ib.oem_product_name_ptr); | 2101 | + (char*)vbe_ib.oem_product_name_ptr), len - clen); |
| 2055 | + clen += sprintf(buf + clen, "OEM rev: %s\n", | 2102 | + clen += min(snprintf(buf + clen, len - clen, "OEM rev: %s\n", |
| 2056 | + (char*)vbe_ib.oem_product_rev_ptr); | 2103 | + (char*)vbe_ib.oem_product_rev_ptr), len - clen); |
| 2057 | + clen += sprintf(buf + clen, "OEM string: %s\n", | 2104 | + clen += min(snprintf(buf + clen, len - clen, "OEM string: %s\n", |
| 2058 | + (char*)vbe_ib.oem_string_ptr); | 2105 | + (char*)vbe_ib.oem_string_ptr), len - clen); |
| 2059 | + | 2106 | + |
| 2060 | + *start = buf + offset; | 2107 | + *eof = 1; |
| 2061 | + | ||
| 2062 | + if (clen > offset) { | ||
| 2063 | + clen -= offset; | ||
| 2064 | + } else { | ||
| 2065 | + clen = 0; | ||
| 2066 | + } | ||
| 2067 | + return clen; | 2108 | + return clen; |
| 2068 | +} | 2109 | +} |
| 2069 | + | 2110 | + |
| @@ -2817,8 +2858,8 @@ | |||
| 2817 | +MODULE_PARM_DESC(vgapal,"bool: set palette using VGA registers"); | 2858 | +MODULE_PARM_DESC(vgapal,"bool: set palette using VGA registers"); |
| 2818 | +module_param_named(pmipal, pmi_setpal, bool, 0); | 2859 | +module_param_named(pmipal, pmi_setpal, bool, 0); |
| 2819 | +MODULE_PARM_DESC(pmipal,"bool: set palette using PMI calls"); | 2860 | +MODULE_PARM_DESC(pmipal,"bool: set palette using PMI calls"); |
| 2820 | +module_param_named(nomtrr, mtrr, invbool, 0); | 2861 | +module_param(mtrr, uint, 0); |
| 2821 | +MODULE_PARM_DESC(nomtrr,"bool: disable use of MTRR registers"); | 2862 | +MODULE_PARM_DESC(mtrr,"Memory Type Range Registers setting. Use 0 to disable."); |
| 2822 | +module_param(blank, bool, 1); | 2863 | +module_param(blank, bool, 1); |
| 2823 | +MODULE_PARM_DESC(blank,"bool: enable hardware blanking"); | 2864 | +MODULE_PARM_DESC(blank,"bool: enable hardware blanking"); |
| 2824 | +module_param(nocrtc, bool, 0); | 2865 | +module_param(nocrtc, bool, 0); |
| @@ -2852,9 +2893,11 @@ | |||
| 2852 | +MODULE_AUTHOR("Michal Januszewski"); | 2893 | +MODULE_AUTHOR("Michal Januszewski"); |
| 2853 | +MODULE_DESCRIPTION("Framebuffer driver for VBE2.0+ compliant graphics boards"); | 2894 | +MODULE_DESCRIPTION("Framebuffer driver for VBE2.0+ compliant graphics boards"); |
| 2854 | + | 2895 | + |
| 2855 | --- linux-2.6.17.orig/include/linux/sched.h | 2896 | diff --git a/include/linux/sched.h b/include/linux/sched.h |
| 2856 | +++ linux-2.6.17/include/linux/sched.h | 2897 | index 4463735..7283e48 100644 |
| 2857 | @@ -1159,6 +1159,8 @@ extern void mmput(struct mm_struct *); | 2898 | --- a/include/linux/sched.h |
| 2899 | +++ b/include/linux/sched.h | ||
| 2900 | @@ -1390,6 +1390,8 @@ extern void mmput(struct mm_struct *); | ||
| 2858 | extern struct mm_struct *get_task_mm(struct task_struct *task); | 2901 | extern struct mm_struct *get_task_mm(struct task_struct *task); |
| 2859 | /* Remove the current tasks stale references to the old mm_struct */ | 2902 | /* Remove the current tasks stale references to the old mm_struct */ |
| 2860 | extern void mm_release(struct task_struct *, struct mm_struct *); | 2903 | extern void mm_release(struct task_struct *, struct mm_struct *); |
| @@ -2863,8 +2906,11 @@ | |||
| 2863 | 2906 | ||
| 2864 | extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *); | 2907 | extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *); |
| 2865 | extern void flush_thread(void); | 2908 | extern void flush_thread(void); |
| 2909 | diff --git a/include/video/vesa.h b/include/video/vesa.h | ||
| 2910 | new file mode 100644 | ||
| 2911 | index 0000000..bb5abcf | ||
| 2866 | --- /dev/null | 2912 | --- /dev/null |
| 2867 | +++ linux-2.6.17/include/video/vesa.h | 2913 | +++ b/include/video/vesa.h |
| 2868 | @@ -0,0 +1,150 @@ | 2914 | @@ -0,0 +1,150 @@ |
| 2869 | +#if 0 | 2915 | +#if 0 |
| 2870 | +#define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __FUNCTION__ , \ | 2916 | +#define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __FUNCTION__ , \ |
| @@ -3016,17 +3062,19 @@ | |||
| 3016 | + struct vesafb_crtc_ib crtc; | 3062 | + struct vesafb_crtc_ib crtc; |
| 3017 | +}; | 3063 | +}; |
| 3018 | + | 3064 | + |
| 3019 | --- linux-2.6.17.orig/kernel/fork.c | 3065 | diff --git a/kernel/fork.c b/kernel/fork.c |
| 3020 | +++ linux-2.6.17/kernel/fork.c | 3066 | index fc723e5..dc8f93b 100644 |
| 3021 | @@ -97,6 +97,7 @@ kmem_cache_t *fs_cachep; | 3067 | --- a/kernel/fork.c |
| 3068 | +++ b/kernel/fork.c | ||
| 3069 | @@ -100,6 +100,7 @@ struct kmem_cache *fs_cachep; | ||
| 3022 | 3070 | ||
| 3023 | /* SLAB cache for vm_area_struct structures */ | 3071 | /* SLAB cache for vm_area_struct structures */ |
| 3024 | kmem_cache_t *vm_area_cachep; | 3072 | struct kmem_cache *vm_area_cachep; |
| 3025 | +EXPORT_SYMBOL_GPL(vm_area_cachep); | 3073 | +EXPORT_SYMBOL_GPL(vm_area_cachep); |
| 3026 | 3074 | ||
| 3027 | /* SLAB cache for mm_struct structures (tsk->mm) */ | 3075 | /* SLAB cache for mm_struct structures (tsk->mm) */ |
| 3028 | static kmem_cache_t *mm_cachep; | 3076 | static struct kmem_cache *mm_cachep; |
| 3029 | @@ -383,6 +384,40 @@ void mmput(struct mm_struct *mm) | 3077 | @@ -399,6 +400,40 @@ void mmput(struct mm_struct *mm) |
| 3030 | EXPORT_SYMBOL_GPL(mmput); | 3078 | EXPORT_SYMBOL_GPL(mmput); |
| 3031 | 3079 | ||
| 3032 | /** | 3080 | /** |
| @@ -3067,9 +3115,11 @@ | |||
| 3067 | * get_task_mm - acquire a reference to the task's mm | 3115 | * get_task_mm - acquire a reference to the task's mm |
| 3068 | * | 3116 | * |
| 3069 | * Returns %NULL if the task has no mm. Checks PF_BORROWED_MM (meaning | 3117 | * Returns %NULL if the task has no mm. Checks PF_BORROWED_MM (meaning |
| 3070 | --- linux-2.6.17.orig/mm/memory.c | 3118 | diff --git a/mm/memory.c b/mm/memory.c |
| 3071 | +++ linux-2.6.17/mm/memory.c | 3119 | index 563792f..a9519ea 100644 |
| 3072 | @@ -1162,6 +1162,7 @@ int zeromap_page_range(struct vm_area_st | 3120 | --- a/mm/memory.c |
| 3121 | +++ b/mm/memory.c | ||
| 3122 | @@ -1193,6 +1193,7 @@ int zeromap_page_range(struct vm_area_struct *vma, | ||
| 3073 | } while (pgd++, addr = next, addr != end); | 3123 | } while (pgd++, addr = next, addr != end); |
| 3074 | return err; | 3124 | return err; |
| 3075 | } | 3125 | } |
| @@ -3077,9 +3127,11 @@ | |||
| 3077 | 3127 | ||
| 3078 | pte_t * fastcall get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl) | 3128 | pte_t * fastcall get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl) |
| 3079 | { | 3129 | { |
| 3080 | --- linux-2.6.17.orig/mm/mmap.c | 3130 | diff --git a/mm/mmap.c b/mm/mmap.c |
| 3081 | +++ linux-2.6.17/mm/mmap.c | 3131 | index 9717337..6fa5b1c 100644 |
| 3082 | @@ -1996,6 +1996,7 @@ int insert_vm_struct(struct mm_struct * | 3132 | --- a/mm/mmap.c |
| 3133 | +++ b/mm/mmap.c | ||
| 3134 | @@ -2024,6 +2024,7 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma) | ||
| 3083 | vma_link(mm, vma, prev, rb_link, rb_parent); | 3135 | vma_link(mm, vma, prev, rb_link, rb_parent); |
| 3084 | return 0; | 3136 | return 0; |
| 3085 | } | 3137 | } |
diff --git a/meta/packages/linux/linux-rp_2.6.19+2.6.20-rc4.bb b/meta/packages/linux/linux-rp_2.6.19+2.6.20-rc4.bb index ef1d0bd2ac..d15141fa53 100644 --- a/meta/packages/linux/linux-rp_2.6.19+2.6.20-rc4.bb +++ b/meta/packages/linux/linux-rp_2.6.19+2.6.20-rc4.bb | |||
| @@ -44,6 +44,7 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4. | |||
| 44 | file://pxa-serial-hack.patch;patch=1;status=hack \ | 44 | file://pxa-serial-hack.patch;patch=1;status=hack \ |
| 45 | file://connectplus-remove-ide-HACK.patch;patch=1;status=hack \ | 45 | file://connectplus-remove-ide-HACK.patch;patch=1;status=hack \ |
| 46 | file://squashfs3.0-2.6.15.patch;patch=1;status=external \ | 46 | file://squashfs3.0-2.6.15.patch;patch=1;status=external \ |
| 47 | file://vesafb-tng-1.0-rc2-2.6.20-rc2.patch;patch=1;status=external \ | ||
| 47 | file://defconfig-c7x0 \ | 48 | file://defconfig-c7x0 \ |
| 48 | file://defconfig-hx2000 \ | 49 | file://defconfig-hx2000 \ |
| 49 | file://defconfig-collie \ | 50 | file://defconfig-collie \ |
