Magellan Linux

Diff of /trunk/kernel26-alx/patches-2.6.26_rc7-r1/0150-2.6.26_rc7-fbcondecor-0.9.4.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 656 by niro, Mon Jun 23 11:14:24 2008 UTC revision 657 by niro, Mon Jun 23 14:13:54 2008 UTC
# Line 1  Line 1 
1  diff -Naurp linux-orig/Documentation/fb/00-INDEX linux-fbcondecor/Documentation/fb/00-INDEX  diff -Naurp -x .git /tmp/linux/Documentation/fb/00-INDEX ./Documentation/fb/00-INDEX
2  --- linux-orig/Documentation/fb/00-INDEX 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/Documentation/fb/00-INDEX 2008-03-25 07:24:16.000000000 +0100
3  +++ linux-fbcondecor/Documentation/fb/00-INDEX 2008-01-24 10:08:34.000000000 +0100  +++ ./Documentation/fb/00-INDEX 2008-03-25 23:04:10.000000000 +0100
4  @@ -17,6 +17,8 @@ deferred_io.txt  @@ -17,6 +17,8 @@ deferred_io.txt
5   - an introduction to deferred IO.   - an introduction to deferred IO.
6   fbcon.txt   fbcon.txt
# Line 10  diff -Naurp linux-orig/Documentation/fb/ Line 10  diff -Naurp linux-orig/Documentation/fb/
10   framebuffer.txt   framebuffer.txt
11   - introduction to frame buffer devices.   - introduction to frame buffer devices.
12   imacfb.txt   imacfb.txt
13  diff -Naurp linux-orig/Documentation/fb/fbcondecor.txt linux-fbcondecor/Documentation/fb/fbcondecor.txt  diff -Naurp -x .git /tmp/linux/Documentation/fb/fbcondecor.txt ./Documentation/fb/fbcondecor.txt
14  --- linux-orig/Documentation/fb/fbcondecor.txt 1970-01-01 01:00:00.000000000 +0100  --- /tmp/linux/Documentation/fb/fbcondecor.txt 1970-01-01 01:00:00.000000000 +0100
15  +++ linux-fbcondecor/Documentation/fb/fbcondecor.txt 2008-01-24 10:08:34.000000000 +0100  +++ ./Documentation/fb/fbcondecor.txt 2008-03-25 23:04:10.000000000 +0100
16  @@ -0,0 +1,207 @@  @@ -0,0 +1,207 @@
17  +What is it?  +What is it?
18  +-----------  +-----------
# Line 221  diff -Naurp linux-orig/Documentation/fb/ Line 221  diff -Naurp linux-orig/Documentation/fb/
221  +Fbcondecor, fbcondecor protocol design, current implementation & docs by:  +Fbcondecor, fbcondecor protocol design, current implementation & docs by:
222  +  Michal Januszewski <spock@gentoo.org>  +  Michal Januszewski <spock@gentoo.org>
223  +  +
224  diff -Naurp linux-orig/drivers/Makefile linux-fbcondecor/drivers/Makefile  diff -Naurp -x .git /tmp/linux/drivers/Makefile ./drivers/Makefile
225  --- linux-orig/drivers/Makefile 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/Makefile 2008-03-25 07:24:16.000000000 +0100
226  +++ linux-fbcondecor/drivers/Makefile 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/Makefile 2008-03-25 23:04:10.000000000 +0100
227  @@ -8,6 +8,9 @@  @@ -9,6 +9,9 @@ obj-$(CONFIG_HAVE_GPIO_LIB) += gpio/
228   obj-$(CONFIG_PCI) += pci/   obj-$(CONFIG_PCI) += pci/
229   obj-$(CONFIG_PARISC) += parisc/   obj-$(CONFIG_PARISC) += parisc/
230   obj-$(CONFIG_RAPIDIO) += rapidio/   obj-$(CONFIG_RAPIDIO) += rapidio/
# Line 234  diff -Naurp linux-orig/drivers/Makefile Line 234  diff -Naurp linux-orig/drivers/Makefile
234   obj-y += video/   obj-y += video/
235   obj-$(CONFIG_ACPI) += acpi/   obj-$(CONFIG_ACPI) += acpi/
236   # PnP must come after ACPI since it will eventually need to check if acpi   # PnP must come after ACPI since it will eventually need to check if acpi
237  @@ -17,10 +20,6 @@ obj-$(CONFIG_ARM_AMBA) += amba/  @@ -18,10 +21,6 @@ obj-$(CONFIG_ARM_AMBA) += amba/
238    
239   obj-$(CONFIG_XEN) += xen/   obj-$(CONFIG_XEN) += xen/
240    
# Line 245  diff -Naurp linux-orig/drivers/Makefile Line 245  diff -Naurp linux-orig/drivers/Makefile
245   obj-$(CONFIG_CONNECTOR) += connector/   obj-$(CONFIG_CONNECTOR) += connector/
246    
247   # i810fb and intelfb depend on char/agp/   # i810fb and intelfb depend on char/agp/
248  diff -Naurp linux-orig/drivers/video/console/bitblit.c linux-fbcondecor/drivers/video/console/bitblit.c  diff -Naurp -x .git /tmp/linux/drivers/video/console/bitblit.c ./drivers/video/console/bitblit.c
249  --- linux-orig/drivers/video/console/bitblit.c 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/video/console/bitblit.c 2008-03-25 07:24:16.000000000 +0100
250  +++ linux-fbcondecor/drivers/video/console/bitblit.c 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/bitblit.c 2008-03-25 23:04:10.000000000 +0100
251  @@ -17,6 +17,7 @@  @@ -17,6 +17,7 @@
252   #include <linux/console.h>   #include <linux/console.h>
253   #include <asm/types.h>   #include <asm/types.h>
# Line 290  diff -Naurp linux-orig/drivers/video/con Line 290  diff -Naurp linux-orig/drivers/video/con
290    
291   ops->cursor_reset = 0;   ops->cursor_reset = 0;
292   }   }
293  diff -Naurp linux-orig/drivers/video/console/cfbcondecor.c linux-fbcondecor/drivers/video/console/cfbcondecor.c  diff -Naurp -x .git /tmp/linux/drivers/video/console/cfbcondecor.c ./drivers/video/console/cfbcondecor.c
294  --- linux-orig/drivers/video/console/cfbcondecor.c 1970-01-01 01:00:00.000000000 +0100  --- /tmp/linux/drivers/video/console/cfbcondecor.c 1970-01-01 01:00:00.000000000 +0100
295  +++ linux-fbcondecor/drivers/video/console/cfbcondecor.c 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/cfbcondecor.c 2008-03-25 23:11:30.000000000 +0100
296  @@ -0,0 +1,471 @@  @@ -0,0 +1,471 @@
297  +/*  +/*
298  + *  linux/drivers/video/cfbcon_decor.c -- Framebuffer decor render functions  + *  linux/drivers/video/cfbcon_decor.c -- Framebuffer decor render functions
299  + *    + *
300  + *  Copyright (C) 2004 Michal Januszewski <spock@gentoo.org>  + *  Copyright (C) 2004 Michal Januszewski <spock@gentoo.org>
301  + *  + *
302  + *  Code based upon "Bootdecor" (C) 2001-2003  + *  Code based upon "Bootdecor" (C) 2001-2003
303  + *       Volker Poplawski <volker@poplawski.de>,  + *       Volker Poplawski <volker@poplawski.de>,
304  + *       Stefan Reinauer <stepan@suse.de>,  + *       Stefan Reinauer <stepan@suse.de>,
305  + *       Steffen Winterfeldt <snwint@suse.de>,  + *       Steffen Winterfeldt <snwint@suse.de>,
# Line 309  diff -Naurp linux-orig/drivers/video/con Line 309  diff -Naurp linux-orig/drivers/video/con
309  + *  This file is subject to the terms and conditions of the GNU General Public  + *  This file is subject to the terms and conditions of the GNU General Public
310  + *  License.  See the file COPYING in the main directory of this archive for  + *  License.  See the file COPYING in the main directory of this archive for
311  + *  more details.  + *  more details.
312  + */  + */
313  +#include <linux/module.h>  +#include <linux/module.h>
314  +#include <linux/types.h>  +#include <linux/types.h>
315  +#include <linux/fb.h>  +#include <linux/fb.h>
# Line 336  diff -Naurp linux-orig/drivers/video/con Line 336  diff -Naurp linux-orig/drivers/video/con
336  +void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc)  +void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc)
337  +{  +{
338  + int i, j, k;  + int i, j, k;
339  + int minlen = min(min(info->var.red.length, info->var.green.length),  + int minlen = min(min(info->var.red.length, info->var.green.length),
340  +     info->var.blue.length);  +     info->var.blue.length);
341  + u32 col;  + u32 col;
342  +  +
343  + for (j = i = 0; i < 16; i++) {  + for (j = i = 0; i < 16; i++) {
344  + k = color_table[i];  + k = color_table[i];
345  +                        +
346  + col = ((vc->vc_palette[j++]  >> (8-minlen))  + col = ((vc->vc_palette[j++]  >> (8-minlen))
347  + << info->var.red.offset);  + << info->var.red.offset);
348  + col |= ((vc->vc_palette[j++] >> (8-minlen))  + col |= ((vc->vc_palette[j++] >> (8-minlen))
349  + << info->var.green.offset);  + << info->var.green.offset);
350  + col |= ((vc->vc_palette[j++] >> (8-minlen))  + col |= ((vc->vc_palette[j++] >> (8-minlen))
351  + << info->var.blue.offset);  + << info->var.blue.offset);
352  + ((u32 *)info->pseudo_palette)[k] = col;  + ((u32 *)info->pseudo_palette)[k] = col;
353  + }  + }
354  +}  +}
355  +  +
356  +void fbcon_decor_renderc(struct fb_info *info, int ypos, int xpos, int height,  +void fbcon_decor_renderc(struct fb_info *info, int ypos, int xpos, int height,
357  +      int width, u8* src, u32 fgx, u32 bgx, u8 transparent)  +      int width, u8* src, u32 fgx, u32 bgx, u8 transparent)
358  +{  +{
359  + unsigned int x, y;  + unsigned int x, y;
360  + u32 dd;  + u32 dd;
361  + int bytespp = ((info->var.bits_per_pixel + 7) >> 3);  + int bytespp = ((info->var.bits_per_pixel + 7) >> 3);
# Line 368  diff -Naurp linux-orig/drivers/video/con Line 368  diff -Naurp linux-orig/drivers/video/con
368  +  +
369  + if ((ypos + height) > info->var.yres || (xpos + width) > info->var.xres)  + if ((ypos + height) > info->var.yres || (xpos + width) > info->var.xres)
370  + return;  + return;
371  +  +
372  + for (y = 0; y < height; y++) {  + for (y = 0; y < height; y++) {
373  + switch (info->var.bits_per_pixel) {  + switch (info->var.bits_per_pixel) {
374  +  +
375  + case 32:  + case 32:
376  + for (x = 0; x < width; x++) {  + for (x = 0; x < width; x++) {
377  +  +
# Line 380  diff -Naurp linux-orig/drivers/video/con Line 380  diff -Naurp linux-orig/drivers/video/con
380  + if (d & 0x80)  + if (d & 0x80)
381  + dd = fgx;  + dd = fgx;
382  + else  + else
383  + dd = transparent ?  + dd = transparent ?
384  +     *(u32 *)decor_src : bgx;  +     *(u32 *)decor_src : bgx;
385  +  +
386  + d <<= 1;  + d <<= 1;
387  + decor_src += 4;  + decor_src += 4;
388  + fb_writel(dd, dst);  + fb_writel(dd, dst);
# Line 397  diff -Naurp linux-orig/drivers/video/con Line 397  diff -Naurp linux-orig/drivers/video/con
397  + if (d & 0x80)  + if (d & 0x80)
398  + dd = fgx;  + dd = fgx;
399  + else  + else
400  + dd = transparent ?  + dd = transparent ?
401  +     (*(u32 *)decor_src & 0xffffff) : bgx;  +     (*(u32 *)decor_src & 0xffffff) : bgx;
402  +  +
403  + d <<= 1;  + d <<= 1;
404  + decor_src += 3;  + decor_src += 3;
405  +#ifdef __LITTLE_ENDIAN  +#ifdef __LITTLE_ENDIAN
# Line 416  diff -Naurp linux-orig/drivers/video/con Line 416  diff -Naurp linux-orig/drivers/video/con
416  + break;  + break;
417  + case 16:  + case 16:
418  + for (x = 0; x < width; x += 2) {  + for (x = 0; x < width; x += 2) {
419  +     if ((x & 7) == 0)  + if ((x & 7) == 0)
420  + d = *src++;  + d = *src++;
421  +  +
422  + parse_pixel(0, 2, u16);  + parse_pixel(0, 2, u16);
# Line 436  diff -Naurp linux-orig/drivers/video/con Line 436  diff -Naurp linux-orig/drivers/video/con
436  + for (x = 0; x < width; x += 4) {  + for (x = 0; x < width; x += 4) {
437  + if ((x & 7) == 0)  + if ((x & 7) == 0)
438  + d = *src++;  + d = *src++;
439  +  +
440  + parse_pixel(0, 1, u8);  + parse_pixel(0, 1, u8);
441  + parse_pixel(1, 1, u8);  + parse_pixel(1, 1, u8);
442  + parse_pixel(2, 1, u8);  + parse_pixel(2, 1, u8);
443  + parse_pixel(3, 1, u8);  + parse_pixel(3, 1, u8);
444  +  +
445  +#ifdef __LITTLE_ENDIAN  +#ifdef __LITTLE_ENDIAN
446  + dd = dd2[0] | (dd2[1] << 8) | (dd2[2] << 16) | (dd2[3] << 24);  + dd = dd2[0] | (dd2[1] << 8) | (dd2[2] << 16) | (dd2[3] << 24);
447  +#else  +#else
# Line 450  diff -Naurp linux-orig/drivers/video/con Line 450  diff -Naurp linux-orig/drivers/video/con
450  + d <<= 4;  + d <<= 4;
451  + fb_writel(dd, dst);  + fb_writel(dd, dst);
452  + dst += 4;  + dst += 4;
453  + }  + }
454  + }  + }
455  +  +
456  + dst += info->fix.line_length - width * bytespp;  + dst += info->fix.line_length - width * bytespp;
457  + decor_src += (info->var.xres - width) * bytespp;  + decor_src += (info->var.xres - width) * bytespp;
458  +     }  + }
459  +}  +}
460  +  +
461  +#define cc2cx(a) \  +#define cc2cx(a) \
# Line 475  diff -Naurp linux-orig/drivers/video/con Line 475  diff -Naurp linux-orig/drivers/video/con
475  +  +
476  + fg_color = get_color(vc, info, c, 1);  + fg_color = get_color(vc, info, c, 1);
477  +        bg_color = get_color(vc, info, c, 0);  +        bg_color = get_color(vc, info, c, 0);
478  +  +
479  + /* Don't paint the background image if console is blanked */  + /* Don't paint the background image if console is blanked */
480  + transparent = ops->blank_state ? 0 :  + transparent = ops->blank_state ? 0 :
481  + (vc->vc_decor.bg_color == bg_color);  + (vc->vc_decor.bg_color == bg_color);
482  +  +
483  + xx = xx * vc->vc_font.width + vc->vc_decor.tx;  + xx = xx * vc->vc_font.width + vc->vc_decor.tx;
# Line 491  diff -Naurp linux-orig/drivers/video/con Line 491  diff -Naurp linux-orig/drivers/video/con
491  + src = vc->vc_font.data + (c & charmask) * vc->vc_font.height *  + src = vc->vc_font.data + (c & charmask) * vc->vc_font.height *
492  +      ((vc->vc_font.width + 7) >> 3);  +      ((vc->vc_font.width + 7) >> 3);
493  +  +
494  + fbcon_decor_renderc(info, yy, xx, vc->vc_font.height,  + fbcon_decor_renderc(info, yy, xx, vc->vc_font.height,
495  +       vc->vc_font.width, src, fgx, bgx, transparent);  +       vc->vc_font.width, src, fgx, bgx, transparent);
496  + xx += vc->vc_font.width;  + xx += vc->vc_font.width;
497  + }  + }
# Line 502  diff -Naurp linux-orig/drivers/video/con Line 502  diff -Naurp linux-orig/drivers/video/con
502  + int i;  + int i;
503  + unsigned int dsize, s_pitch;  + unsigned int dsize, s_pitch;
504  + struct fbcon_ops *ops = info->fbcon_par;  + struct fbcon_ops *ops = info->fbcon_par;
505  + struct vc_data* vc;  + struct vc_data* vc;
506  + u8 *src;  + u8 *src;
507  +  +
508  + /* we really don't need any cursors while the console is blanked */  + /* we really don't need any cursors while the console is blanked */
# Line 517  diff -Naurp linux-orig/drivers/video/con Line 517  diff -Naurp linux-orig/drivers/video/con
517  +  +
518  + s_pitch = (cursor->image.width + 7) >> 3;  + s_pitch = (cursor->image.width + 7) >> 3;
519  + dsize = s_pitch * cursor->image.height;  + dsize = s_pitch * cursor->image.height;
520  + if (cursor->enable) {  + if (cursor->enable) {
521  + switch (cursor->rop) {  + switch (cursor->rop) {
522  + case ROP_XOR:  + case ROP_XOR:
523  + for (i = 0; i < dsize; i++)  + for (i = 0; i < dsize; i++)
# Line 545  diff -Naurp linux-orig/drivers/video/con Line 545  diff -Naurp linux-orig/drivers/video/con
545  + kfree(src);  + kfree(src);
546  +}  +}
547  +  +
548  +static void decorset(u8 *dst, int height, int width, int dstbytes,  +static void decorset(u8 *dst, int height, int width, int dstbytes,
549  +        u32 bgx, int bpp)  +        u32 bgx, int bpp)
550  +{  +{
551  + int i;  + int i;
552  +  +
553  + if (bpp == 8)  + if (bpp == 8)
554  + bgx |= bgx << 8;  + bgx |= bgx << 8;
555  + if (bpp == 16 || bpp == 8)  + if (bpp == 16 || bpp == 8)
556  + bgx |= bgx << 16;  + bgx |= bgx << 16;
557  +  +
558  + while (height-- > 0) {  + while (height-- > 0) {
559  + u8 *p = dst;  + u8 *p = dst;
560  +  +
561  + switch (bpp) {  + switch (bpp) {
562  +  +
563  + case 32:  + case 32:
564  + for (i=0; i < width; i++) {  + for (i=0; i < width; i++) {
565  + fb_writel(bgx, p); p += 4;  + fb_writel(bgx, p); p += 4;
566  + }  + }
567  + break;  + break;
568  + case 24:  + case 24:
569  + for (i=0; i < width; i++) {  + for (i=0; i < width; i++) {
570  +#ifdef __LITTLE_ENDIAN  +#ifdef __LITTLE_ENDIAN
571  + fb_writew((bgx & 0xffff),(u16*)p); p += 2;  + fb_writew((bgx & 0xffff),(u16*)p); p += 2;
# Line 590  diff -Naurp linux-orig/drivers/video/con Line 590  diff -Naurp linux-orig/drivers/video/con
590  + for (i=0; i < width/4; i++) {  + for (i=0; i < width/4; i++) {
591  + fb_writel(bgx,p); p += 4;  + fb_writel(bgx,p); p += 4;
592  + }  + }
593  +  +
594  + if (width & 2) {  + if (width & 2) {
595  + fb_writew(bgx,p); p += 2;  + fb_writew(bgx,p); p += 2;
596  + }  + }
# Line 598  diff -Naurp linux-orig/drivers/video/con Line 598  diff -Naurp linux-orig/drivers/video/con
598  + fb_writeb(bgx,(u8*)p);  + fb_writeb(bgx,(u8*)p);
599  + break;  + break;
600  +  +
601  + }  + }
602  + dst += dstbytes;  + dst += dstbytes;
603  + }  + }
604  +}  +}
605  +  +
606  +void fbcon_decor_copy(u8 *dst, u8 *src, int height, int width, int linebytes,  +void fbcon_decor_copy(u8 *dst, u8 *src, int height, int width, int linebytes,
607  +   int srclinebytes, int bpp)  +   int srclinebytes, int bpp)
608  +{  +{
609  + int i;  + int i;
# Line 613  diff -Naurp linux-orig/drivers/video/con Line 613  diff -Naurp linux-orig/drivers/video/con
613  + u32 *q = (u32 *)src;  + u32 *q = (u32 *)src;
614  +  +
615  + switch (bpp) {  + switch (bpp) {
616  +  +
617  + case 32:  + case 32:
618  + for (i=0; i < width; i++)  + for (i=0; i < width; i++)
619  + fb_writel(*q++, p++);  + fb_writel(*q++, p++);
620  + break;  + break;
621  + case 24:  + case 24:
622  + for (i=0; i < (width*3/4); i++)  + for (i=0; i < (width*3/4); i++)
623  + fb_writel(*q++, p++);  + fb_writel(*q++, p++);
624  + if ((width*3) % 4) {  + if ((width*3) % 4) {
# Line 641  diff -Naurp linux-orig/drivers/video/con Line 641  diff -Naurp linux-orig/drivers/video/con
641  + fb_writew(*(u16*)q, (u16*)p);  + fb_writew(*(u16*)q, (u16*)p);
642  + break;  + break;
643  + case 8:  + case 8:
644  + for (i=0; i < width/4; i++)  + for (i=0; i < width/4; i++)
645  + fb_writel(*q++, p++);  + fb_writel(*q++, p++);
646  +  +
647  + if (width & 2) {  + if (width & 2) {
648  + fb_writew(*(u16*)q, (u16*)p);  + fb_writew(*(u16*)q, (u16*)p);
649  + q = (u32*) ((u16*)q + 1);  + q = (u32*) ((u16*)q + 1);
650  + p = (u32*) ((u16*)p + 1);  + p = (u32*) ((u16*)p + 1);
651  + }  + }
# Line 659  diff -Naurp linux-orig/drivers/video/con Line 659  diff -Naurp linux-orig/drivers/video/con
659  + }  + }
660  +}  +}
661  +  +
662  +static void decorfill(struct fb_info *info, int sy, int sx, int height,  +static void decorfill(struct fb_info *info, int sy, int sx, int height,
663  +       int width)  +       int width)
664  +{  +{
665  + int bytespp = ((info->var.bits_per_pixel + 7) >> 3);  + int bytespp = ((info->var.bits_per_pixel + 7) >> 3);
666  + int d  = sy * info->fix.line_length + sx * bytespp;  + int d  = sy * info->fix.line_length + sx * bytespp;
# Line 671  diff -Naurp linux-orig/drivers/video/con Line 671  diff -Naurp linux-orig/drivers/video/con
671  +    info->var.bits_per_pixel);  +    info->var.bits_per_pixel);
672  +}  +}
673  +  +
674  +void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx,  +void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx,
675  +    int height, int width)  +    int height, int width)
676  +{  +{
677  + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;  + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
 + int bg_color = attr_bgcol_ec(bgshift, vc);  
 + int transparent = vc->vc_decor.bg_color == bg_color;  
678  + struct fbcon_ops *ops = info->fbcon_par;  + struct fbcon_ops *ops = info->fbcon_par;
679  + u8 *dst;  + u8 *dst;
680    + int transparent, bg_color = attr_bgcol_ec(bgshift, vc, info);
681  +  +
682    + transparent = (vc->vc_decor.bg_color == bg_color);
683  + sy = sy * vc->vc_font.height + vc->vc_decor.ty;  + sy = sy * vc->vc_font.height + vc->vc_decor.ty;
684  + sx = sx * vc->vc_font.width + vc->vc_decor.tx;  + sx = sx * vc->vc_font.width + vc->vc_decor.tx;
685  + height *= vc->vc_font.height;  + height *= vc->vc_font.height;
# Line 689  diff -Naurp linux-orig/drivers/video/con Line 689  diff -Naurp linux-orig/drivers/video/con
689  + if (transparent && !ops->blank_state) {  + if (transparent && !ops->blank_state) {
690  + decorfill(info, sy, sx, height, width);  + decorfill(info, sy, sx, height, width);
691  + } else {  + } else {
692  + dst = (u8 *)(info->screen_base + sy * info->fix.line_length +  + dst = (u8 *)(info->screen_base + sy * info->fix.line_length +
693  +     sx * ((info->var.bits_per_pixel + 7) >> 3));  +     sx * ((info->var.bits_per_pixel + 7) >> 3));
694  + decorset(dst, height, width, info->fix.line_length, cc2cx(bg_color),  + decorset(dst, height, width, info->fix.line_length, cc2cx(bg_color),
695  +  info->var.bits_per_pixel);  +  info->var.bits_per_pixel);
696  + }  + }
697  +}  +}
698  +  +
699  +void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info,  +void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info,
700  +    int bottom_only)  +    int bottom_only)
701  +{  +{
702  + unsigned int tw = vc->vc_cols*vc->vc_font.width;  + unsigned int tw = vc->vc_cols*vc->vc_font.width;
# Line 765  diff -Naurp linux-orig/drivers/video/con Line 765  diff -Naurp linux-orig/drivers/video/con
765  + }  + }
766  +}  +}
767  +  +
768  diff -Naurp linux-orig/drivers/video/console/fbcon.c linux-fbcondecor/drivers/video/console/fbcon.c  diff -Naurp -x .git /tmp/linux/drivers/video/console/fbcon.c ./drivers/video/console/fbcon.c
769  --- linux-orig/drivers/video/console/fbcon.c 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/video/console/fbcon.c 2008-03-25 07:24:16.000000000 +0100
770  +++ linux-fbcondecor/drivers/video/console/fbcon.c 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/fbcon.c 2008-03-25 23:04:10.000000000 +0100
771  @@ -90,6 +90,7 @@  @@ -90,6 +90,7 @@
772   #endif   #endif
773    
# Line 794  diff -Naurp linux-orig/drivers/video/con Line 794  diff -Naurp linux-orig/drivers/video/con
794        u16 c, int is_fg)        u16 c, int is_fg)
795   {   {
796   int depth = fb_get_color_depth(&info->var, &info->fix);   int depth = fb_get_color_depth(&info->var, &info->fix);
797  @@ -423,6 +424,7 @@ static void fb_flashcursor(struct work_s  @@ -420,6 +421,7 @@ static void fb_flashcursor(struct work_s
798   CM_ERASE : CM_DRAW;   CM_ERASE : CM_DRAW;
799   ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1),   ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1),
800      get_color(vc, info, c, 0));      get_color(vc, info, c, 0));
# Line 802  diff -Naurp linux-orig/drivers/video/con Line 802  diff -Naurp linux-orig/drivers/video/con
802   release_console_sem();   release_console_sem();
803   }   }
804    
805  @@ -593,6 +595,8 @@ static int fbcon_takeover(int show_logo)  @@ -590,6 +592,8 @@ static int fbcon_takeover(int show_logo)
806   info_idx = -1;   info_idx = -1;
807   }   }
808    
# Line 811  diff -Naurp linux-orig/drivers/video/con Line 811  diff -Naurp linux-orig/drivers/video/con
811   return err;   return err;
812   }   }
813    
814  @@ -1034,6 +1038,12 @@ static const char *fbcon_startup(void)  @@ -1031,6 +1035,12 @@ static const char *fbcon_startup(void)
815   rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);   rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
816   cols /= vc->vc_font.width;   cols /= vc->vc_font.width;
817   rows /= vc->vc_font.height;   rows /= vc->vc_font.height;
# Line 824  diff -Naurp linux-orig/drivers/video/con Line 824  diff -Naurp linux-orig/drivers/video/con
824   vc_resize(vc, cols, rows);   vc_resize(vc, cols, rows);
825    
826   DPRINTK("mode:   %s\n", info->fix.id);   DPRINTK("mode:   %s\n", info->fix.id);
827  @@ -1117,7 +1127,7 @@ static void fbcon_init(struct vc_data *v  @@ -1114,7 +1124,7 @@ static void fbcon_init(struct vc_data *v
828   cap = info->flags;   cap = info->flags;
829    
830   if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||   if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||
# Line 833  diff -Naurp linux-orig/drivers/video/con Line 833  diff -Naurp linux-orig/drivers/video/con
833   logo = 0;   logo = 0;
834    
835   if (var_to_display(p, &info->var, info))   if (var_to_display(p, &info->var, info))
836  @@ -1316,6 +1326,11 @@ static void fbcon_clear(struct vc_data *  @@ -1313,6 +1323,11 @@ static void fbcon_clear(struct vc_data *
837   if (!height || !width)   if (!height || !width)
838   return;   return;
839    
# Line 845  diff -Naurp linux-orig/drivers/video/con Line 845  diff -Naurp linux-orig/drivers/video/con
845   /* Split blits that cross physical y_wrap boundary */   /* Split blits that cross physical y_wrap boundary */
846    
847   y_break = p->vrows - p->yscroll;   y_break = p->vrows - p->yscroll;
848  @@ -1335,10 +1350,15 @@ static void fbcon_putcs(struct vc_data *  @@ -1332,10 +1347,15 @@ static void fbcon_putcs(struct vc_data *
849   struct display *p = &fb_display[vc->vc_num];   struct display *p = &fb_display[vc->vc_num];
850   struct fbcon_ops *ops = info->fbcon_par;   struct fbcon_ops *ops = info->fbcon_par;
851    
# Line 865  diff -Naurp linux-orig/drivers/video/con Line 865  diff -Naurp linux-orig/drivers/video/con
865   }   }
866    
867   static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos)   static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos)
868  @@ -1354,8 +1374,13 @@ static void fbcon_clear_margins(struct v  @@ -1351,8 +1371,13 @@ static void fbcon_clear_margins(struct v
869   struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];   struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
870   struct fbcon_ops *ops = info->fbcon_par;   struct fbcon_ops *ops = info->fbcon_par;
871    
# Line 881  diff -Naurp linux-orig/drivers/video/con Line 881  diff -Naurp linux-orig/drivers/video/con
881   }   }
882    
883   static void fbcon_cursor(struct vc_data *vc, int mode)   static void fbcon_cursor(struct vc_data *vc, int mode)
884  @@ -1875,7 +1900,7 @@ static int fbcon_scroll(struct vc_data *  @@ -1872,7 +1897,7 @@ static int fbcon_scroll(struct vc_data *
885   count = vc->vc_rows;   count = vc->vc_rows;
886   if (softback_top)   if (softback_top)
887   fbcon_softback_note(vc, t, count);   fbcon_softback_note(vc, t, count);
# Line 890  diff -Naurp linux-orig/drivers/video/con Line 890  diff -Naurp linux-orig/drivers/video/con
890   goto redraw_up;   goto redraw_up;
891   switch (p->scrollmode) {   switch (p->scrollmode) {
892   case SCROLL_MOVE:   case SCROLL_MOVE:
893  @@ -1968,6 +1993,8 @@ static int fbcon_scroll(struct vc_data *  @@ -1965,6 +1990,8 @@ static int fbcon_scroll(struct vc_data *
894   count = vc->vc_rows;   count = vc->vc_rows;
895   if (logo_shown >= 0)   if (logo_shown >= 0)
896   goto redraw_down;   goto redraw_down;
# Line 899  diff -Naurp linux-orig/drivers/video/con Line 899  diff -Naurp linux-orig/drivers/video/con
899   switch (p->scrollmode) {   switch (p->scrollmode) {
900   case SCROLL_MOVE:   case SCROLL_MOVE:
901   fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,   fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
902  @@ -2116,6 +2143,13 @@ static void fbcon_bmove_rec(struct vc_da  @@ -2113,6 +2140,13 @@ static void fbcon_bmove_rec(struct vc_da
903   }   }
904   return;   return;
905   }   }
# Line 913  diff -Naurp linux-orig/drivers/video/con Line 913  diff -Naurp linux-orig/drivers/video/con
913   ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx,   ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx,
914     height, width);     height, width);
915   }   }
916  @@ -2186,8 +2220,8 @@ static int fbcon_resize(struct vc_data *  @@ -2183,8 +2217,8 @@ static int fbcon_resize(struct vc_data *
917   var.yres = virt_h * virt_fh;   var.yres = virt_h * virt_fh;
918   x_diff = info->var.xres - var.xres;   x_diff = info->var.xres - var.xres;
919   y_diff = info->var.yres - var.yres;   y_diff = info->var.yres - var.yres;
# Line 924  diff -Naurp linux-orig/drivers/video/con Line 924  diff -Naurp linux-orig/drivers/video/con
924   const struct fb_videomode *mode;   const struct fb_videomode *mode;
925    
926   DPRINTK("attempting resize %ix%i\n", var.xres, var.yres);   DPRINTK("attempting resize %ix%i\n", var.xres, var.yres);
927  @@ -2223,6 +2257,19 @@ static int fbcon_switch(struct vc_data *  @@ -2220,6 +2254,19 @@ static int fbcon_switch(struct vc_data *
928    
929   info = registered_fb[con2fb_map[vc->vc_num]];   info = registered_fb[con2fb_map[vc->vc_num]];
930   ops = info->fbcon_par;   ops = info->fbcon_par;
# Line 944  diff -Naurp linux-orig/drivers/video/con Line 944  diff -Naurp linux-orig/drivers/video/con
944    
945   if (softback_top) {   if (softback_top) {
946   if (softback_lines)   if (softback_lines)
947  @@ -2241,9 +2288,6 @@ static int fbcon_switch(struct vc_data *  @@ -2238,9 +2285,6 @@ static int fbcon_switch(struct vc_data *
948   logo_shown = FBCON_LOGO_CANSHOW;   logo_shown = FBCON_LOGO_CANSHOW;
949   }   }
950    
# Line 954  diff -Naurp linux-orig/drivers/video/con Line 954  diff -Naurp linux-orig/drivers/video/con
954   /*   /*
955   * FIXME: If we have multiple fbdev's loaded, we need to   * FIXME: If we have multiple fbdev's loaded, we need to
956   * update all info->currcon.  Perhaps, we can place this   * update all info->currcon.  Perhaps, we can place this
957  @@ -2283,6 +2327,18 @@ static int fbcon_switch(struct vc_data *  @@ -2280,6 +2324,18 @@ static int fbcon_switch(struct vc_data *
958   fbcon_del_cursor_timer(old_info);   fbcon_del_cursor_timer(old_info);
959   }   }
960    
# Line 973  diff -Naurp linux-orig/drivers/video/con Line 973  diff -Naurp linux-orig/drivers/video/con
973   if (fbcon_is_inactive(vc, info) ||   if (fbcon_is_inactive(vc, info) ||
974      ops->blank_state != FB_BLANK_UNBLANK)      ops->blank_state != FB_BLANK_UNBLANK)
975   fbcon_del_cursor_timer(info);   fbcon_del_cursor_timer(info);
976  @@ -2397,8 +2453,12 @@ static int fbcon_blank(struct vc_data *v  @@ -2394,8 +2450,12 @@ static int fbcon_blank(struct vc_data *v
977   fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW);   fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW);
978   ops->cursor_flash = (!blank);   ops->cursor_flash = (!blank);
979    
# Line 988  diff -Naurp linux-orig/drivers/video/con Line 988  diff -Naurp linux-orig/drivers/video/con
988   }   }
989    
990   if (!blank)   if (!blank)
991  @@ -2549,13 +2609,22 @@ static int fbcon_do_set_font(struct vc_d  @@ -2546,13 +2606,22 @@ static int fbcon_do_set_font(struct vc_d
992   }   }
993    
994   if (resize) {   if (resize) {
# Line 1011  diff -Naurp linux-orig/drivers/video/con Line 1011  diff -Naurp linux-orig/drivers/video/con
1011   if (CON_IS_VISIBLE(vc) && softback_buf)   if (CON_IS_VISIBLE(vc) && softback_buf)
1012   fbcon_update_softback(vc);   fbcon_update_softback(vc);
1013   } else if (CON_IS_VISIBLE(vc)   } else if (CON_IS_VISIBLE(vc)
1014  @@ -2684,7 +2753,7 @@ static int fbcon_set_palette(struct vc_d  @@ -2681,7 +2750,7 @@ static int fbcon_set_palette(struct vc_d
1015   int i, j, k, depth;   int i, j, k, depth;
1016   u8 val;   u8 val;
1017    
# Line 1020  diff -Naurp linux-orig/drivers/video/con Line 1020  diff -Naurp linux-orig/drivers/video/con
1020   return -EINVAL;   return -EINVAL;
1021    
1022   if (!CON_IS_VISIBLE(vc))   if (!CON_IS_VISIBLE(vc))
1023  @@ -2710,7 +2779,49 @@ static int fbcon_set_palette(struct vc_d  @@ -2707,7 +2776,49 @@ static int fbcon_set_palette(struct vc_d
1024   } else   } else
1025   fb_copy_cmap(fb_default_cmap(1 << depth), &palette_cmap);   fb_copy_cmap(fb_default_cmap(1 << depth), &palette_cmap);
1026    
# Line 1071  diff -Naurp linux-orig/drivers/video/con Line 1071  diff -Naurp linux-orig/drivers/video/con
1071   }   }
1072    
1073   static u16 *fbcon_screen_pos(struct vc_data *vc, int offset)   static u16 *fbcon_screen_pos(struct vc_data *vc, int offset)
1074  @@ -2936,7 +3047,14 @@ static void fbcon_modechanged(struct fb_  @@ -2933,7 +3044,14 @@ static void fbcon_modechanged(struct fb_
1075   rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);   rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
1076   cols /= vc->vc_font.width;   cols /= vc->vc_font.width;
1077   rows /= vc->vc_font.height;   rows /= vc->vc_font.height;
# Line 1087  diff -Naurp linux-orig/drivers/video/con Line 1087  diff -Naurp linux-orig/drivers/video/con
1087   updatescrollmode(p, info, vc);   updatescrollmode(p, info, vc);
1088   scrollback_max = 0;   scrollback_max = 0;
1089   scrollback_current = 0;   scrollback_current = 0;
1090  @@ -3564,6 +3682,7 @@ static void fbcon_exit(void)  @@ -3561,6 +3679,7 @@ static void fbcon_exit(void)
1091   }   }
1092   }   }
1093    
# Line 1095  diff -Naurp linux-orig/drivers/video/con Line 1095  diff -Naurp linux-orig/drivers/video/con
1095   fbcon_has_exited = 1;   fbcon_has_exited = 1;
1096   }   }
1097    
1098  diff -Naurp linux-orig/drivers/video/console/fbcondecor.c linux-fbcondecor/drivers/video/console/fbcondecor.c  diff -Naurp -x .git /tmp/linux/drivers/video/console/fbcondecor.c ./drivers/video/console/fbcondecor.c
1099  --- linux-orig/drivers/video/console/fbcondecor.c 1970-01-01 01:00:00.000000000 +0100  --- /tmp/linux/drivers/video/console/fbcondecor.c 1970-01-01 01:00:00.000000000 +0100
1100  +++ linux-fbcondecor/drivers/video/console/fbcondecor.c 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/fbcondecor.c 2008-03-25 23:04:10.000000000 +0100
1101  @@ -0,0 +1,420 @@  @@ -0,0 +1,420 @@
1102  +/*  +/*
1103  + *  linux/drivers/video/console/fbcondecor.c -- Framebuffer console decorations  + *  linux/drivers/video/console/fbcondecor.c -- Framebuffer console decorations
# Line 1519  diff -Naurp linux-orig/drivers/video/con Line 1519  diff -Naurp linux-orig/drivers/video/con
1519  +}  +}
1520  +  +
1521  +EXPORT_SYMBOL(fbcon_decor_path);  +EXPORT_SYMBOL(fbcon_decor_path);
1522  diff -Naurp linux-orig/drivers/video/console/fbcondecor.h linux-fbcondecor/drivers/video/console/fbcondecor.h  diff -Naurp -x .git /tmp/linux/drivers/video/console/fbcondecor.h ./drivers/video/console/fbcondecor.h
1523  --- linux-orig/drivers/video/console/fbcondecor.h 1970-01-01 01:00:00.000000000 +0100  --- /tmp/linux/drivers/video/console/fbcondecor.h 1970-01-01 01:00:00.000000000 +0100
1524  +++ linux-fbcondecor/drivers/video/console/fbcondecor.h 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/fbcondecor.h 2008-03-25 23:04:10.000000000 +0100
1525  @@ -0,0 +1,78 @@  @@ -0,0 +1,78 @@
1526  +/*  +/*
1527  + *  linux/drivers/video/console/fbcondecor.h -- Framebuffer Console Decoration headers  + *  linux/drivers/video/console/fbcondecor.h -- Framebuffer Console Decoration headers
# Line 1601  diff -Naurp linux-orig/drivers/video/con Line 1601  diff -Naurp linux-orig/drivers/video/con
1601  +#endif /* CONFIG_FB_CON_DECOR */  +#endif /* CONFIG_FB_CON_DECOR */
1602  +  +
1603  +#endif /* __FBCON_DECOR_H */  +#endif /* __FBCON_DECOR_H */
1604  diff -Naurp linux-orig/drivers/video/console/Kconfig linux-fbcondecor/drivers/video/console/Kconfig  diff -Naurp -x .git /tmp/linux/drivers/video/console/Kconfig ./drivers/video/console/Kconfig
1605  --- linux-orig/drivers/video/console/Kconfig 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/video/console/Kconfig 2008-03-25 07:24:16.000000000 +0100
1606  +++ linux-fbcondecor/drivers/video/console/Kconfig 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/Kconfig 2008-03-25 23:04:10.000000000 +0100
1607  @@ -144,6 +144,19 @@ config FRAMEBUFFER_CONSOLE_ROTATION  @@ -144,6 +144,19 @@ config FRAMEBUFFER_CONSOLE_ROTATION
1608            such that other users of the framebuffer will remain normally            such that other users of the framebuffer will remain normally
1609            oriented.            oriented.
# Line 1624  diff -Naurp linux-orig/drivers/video/con Line 1624  diff -Naurp linux-orig/drivers/video/con
1624   config STI_CONSOLE   config STI_CONSOLE
1625           bool "STI text console"           bool "STI text console"
1626           depends on PARISC           depends on PARISC
1627  diff -Naurp linux-orig/drivers/video/console/Makefile linux-fbcondecor/drivers/video/console/Makefile  diff -Naurp -x .git /tmp/linux/drivers/video/console/Makefile ./drivers/video/console/Makefile
1628  --- linux-orig/drivers/video/console/Makefile 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/video/console/Makefile 2008-03-25 07:24:16.000000000 +0100
1629  +++ linux-fbcondecor/drivers/video/console/Makefile 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/console/Makefile 2008-03-25 23:04:10.000000000 +0100
1630  @@ -35,6 +35,7 @@ obj-$(CONFIG_FRAMEBUFFER_CONSOLE)     +=  @@ -35,6 +35,7 @@ obj-$(CONFIG_FRAMEBUFFER_CONSOLE)     +=
1631                                            fbcon_ccw.o                                            fbcon_ccw.o
1632   endif   endif
# Line 1635  diff -Naurp linux-orig/drivers/video/con Line 1635  diff -Naurp linux-orig/drivers/video/con
1635   obj-$(CONFIG_FB_STI)              += sticore.o font.o   obj-$(CONFIG_FB_STI)              += sticore.o font.o
1636    
1637   ifeq ($(CONFIG_USB_SISUSBVGA_CON),y)   ifeq ($(CONFIG_USB_SISUSBVGA_CON),y)
1638  diff -Naurp linux-orig/drivers/video/fbcmap.c linux-fbcondecor/drivers/video/fbcmap.c  diff -Naurp -x .git /tmp/linux/drivers/video/fbcmap.c ./drivers/video/fbcmap.c
1639  --- linux-orig/drivers/video/fbcmap.c 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/video/fbcmap.c 2008-03-25 07:24:16.000000000 +0100
1640  +++ linux-fbcondecor/drivers/video/fbcmap.c 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/fbcmap.c 2008-03-25 23:04:10.000000000 +0100
1641  @@ -17,6 +17,8 @@  @@ -17,6 +17,8 @@
1642   #include <linux/slab.h>   #include <linux/slab.h>
1643   #include <linux/uaccess.h>   #include <linux/uaccess.h>
# Line 1677  diff -Naurp linux-orig/drivers/video/fbc Line 1677  diff -Naurp linux-orig/drivers/video/fbc
1677   if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&   if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
1678          !info->fbops->fb_setcmap))          !info->fbops->fb_setcmap))
1679   return -EINVAL;   return -EINVAL;
1680  diff -Naurp linux-orig/drivers/video/Kconfig linux-fbcondecor/drivers/video/Kconfig  diff -Naurp -x .git /tmp/linux/drivers/video/Kconfig ./drivers/video/Kconfig
1681  --- linux-orig/drivers/video/Kconfig 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/drivers/video/Kconfig 2008-03-25 07:24:16.000000000 +0100
1682  +++ linux-fbcondecor/drivers/video/Kconfig 2008-01-24 10:08:34.000000000 +0100  +++ ./drivers/video/Kconfig 2008-03-25 23:04:10.000000000 +0100
1683  @@ -1121,7 +1121,6 @@ config FB_MATROX  @@ -1134,7 +1134,6 @@ config FB_MATROX
1684   select FB_CFB_FILLRECT   select FB_CFB_FILLRECT
1685   select FB_CFB_COPYAREA   select FB_CFB_COPYAREA
1686   select FB_CFB_IMAGEBLIT   select FB_CFB_IMAGEBLIT
# Line 1688  diff -Naurp linux-orig/drivers/video/Kco Line 1688  diff -Naurp linux-orig/drivers/video/Kco
1688   select FB_MACMODES if PPC_PMAC   select FB_MACMODES if PPC_PMAC
1689   ---help---   ---help---
1690    Say Y here if you have a Matrox Millennium, Matrox Millennium II,    Say Y here if you have a Matrox Millennium, Matrox Millennium II,
1691  diff -Naurp linux-orig/include/linux/console_decor.h linux-fbcondecor/include/linux/console_decor.h  diff -Naurp -x .git /tmp/linux/include/linux/console_decor.h ./include/linux/console_decor.h
1692  --- linux-orig/include/linux/console_decor.h 1970-01-01 01:00:00.000000000 +0100  --- /tmp/linux/include/linux/console_decor.h 1970-01-01 01:00:00.000000000 +0100
1693  +++ linux-fbcondecor/include/linux/console_decor.h 2008-01-24 10:08:34.000000000 +0100  +++ ./include/linux/console_decor.h 2008-03-25 23:04:10.000000000 +0100
1694  @@ -0,0 +1,13 @@  @@ -0,0 +1,13 @@
1695  +#ifndef _LINUX_CONSOLE_DECOR_H_  +#ifndef _LINUX_CONSOLE_DECOR_H_
1696  +#define _LINUX_CONSOLE_DECOR_H_ 1  +#define _LINUX_CONSOLE_DECOR_H_ 1
# Line 1705  diff -Naurp linux-orig/include/linux/con Line 1705  diff -Naurp linux-orig/include/linux/con
1705  +};  +};
1706  +  +
1707  +#endif  +#endif
1708  diff -Naurp linux-orig/include/linux/console_struct.h linux-fbcondecor/include/linux/console_struct.h  diff -Naurp -x .git /tmp/linux/include/linux/console_struct.h ./include/linux/console_struct.h
1709  --- linux-orig/include/linux/console_struct.h 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/include/linux/console_struct.h 2008-03-25 07:24:16.000000000 +0100
1710  +++ linux-fbcondecor/include/linux/console_struct.h 2008-01-24 10:08:34.000000000 +0100  +++ ./include/linux/console_struct.h 2008-03-25 23:04:10.000000000 +0100
1711  @@ -19,6 +19,7 @@  @@ -19,6 +19,7 @@
1712   struct vt_struct;   struct vt_struct;
1713    
# Line 1725  diff -Naurp linux-orig/include/linux/con Line 1725  diff -Naurp linux-orig/include/linux/con
1725   /* additional information is in vt_kern.h */   /* additional information is in vt_kern.h */
1726   };   };
1727    
1728  diff -Naurp linux-orig/include/linux/fb.h linux-fbcondecor/include/linux/fb.h  diff -Naurp -x .git /tmp/linux/include/linux/fb.h ./include/linux/fb.h
1729  --- linux-orig/include/linux/fb.h 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/include/linux/fb.h 2008-03-25 07:24:16.000000000 +0100
1730  +++ linux-fbcondecor/include/linux/fb.h 2008-01-24 10:08:34.000000000 +0100  +++ ./include/linux/fb.h 2008-03-25 23:04:10.000000000 +0100
1731  @@ -11,6 +11,13 @@ struct dentry;  @@ -11,6 +11,13 @@ struct dentry;
1732   #define FB_MAJOR 29   #define FB_MAJOR 29
1733   #define FB_MAX 32 /* sufficient for now */   #define FB_MAX 32 /* sufficient for now */
# Line 1769  diff -Naurp linux-orig/include/linux/fb. Line 1769  diff -Naurp linux-orig/include/linux/fb.
1769   /* From here on everything is device dependent */   /* From here on everything is device dependent */
1770   void *par;   void *par;
1771   };   };
1772  diff -Naurp linux-orig/kernel/sysctl.c linux-fbcondecor/kernel/sysctl.c  diff -Naurp -x .git /tmp/linux/include/linux/fb.h.rej ./include/linux/fb.h.rej
1773  --- linux-orig/kernel/sysctl.c 2008-01-12 12:16:05.000000000 +0100  --- /tmp/linux/include/linux/fb.h.rej 1970-01-01 01:00:00.000000000 +0100
1774  +++ linux-fbcondecor/kernel/sysctl.c 2008-01-24 10:10:35.000000000 +0100  +++ ./include/linux/fb.h.rej 2006-08-21 02:51:22.000000000 +0200
1775  @@ -105,6 +105,9 @@ static int ngroups_max = NGROUPS_MAX;  @@ -0,0 +1,32 @@
1776    +***************
1777    +*** 1,7 ****
1778    +  #ifndef _LINUX_FB_H
1779    +  #define _LINUX_FB_H
1780    +  
1781    +- #include <linux/backlight.h>
1782    +  #include <asm/types.h>
1783    +  
1784    +  /* Definitions of frame buffers */
1785    +--- 1,6 ----
1786    +  #ifndef _LINUX_FB_H
1787    +  #define _LINUX_FB_H
1788    +  
1789    +  #include <asm/types.h>
1790    +  
1791    +  /* Definitions of frame buffers */
1792    +***************
1793    +*** 381,386 ****
1794    +  #include <linux/workqueue.h>
1795    +  #include <linux/notifier.h>
1796    +  #include <linux/list.h>
1797    +  #include <asm/io.h>
1798    +  
1799    +  struct vm_area_struct;
1800    +--- 380,386 ----
1801    +  #include <linux/workqueue.h>
1802    +  #include <linux/notifier.h>
1803    +  #include <linux/list.h>
1804    ++ #include <linux/backlight.h>
1805    +  #include <asm/io.h>
1806    +  
1807    +  struct vm_area_struct;
1808    diff -Naurp -x .git /tmp/linux/kernel/sysctl.c ./kernel/sysctl.c
1809    --- /tmp/linux/kernel/sysctl.c 2008-03-25 07:24:16.000000000 +0100
1810    +++ ./kernel/sysctl.c 2008-03-25 23:04:10.000000000 +0100
1811    @@ -107,6 +107,9 @@ static int ngroups_max = NGROUPS_MAX;
1812   #ifdef CONFIG_KMOD   #ifdef CONFIG_KMOD
1813   extern char modprobe_path[];   extern char modprobe_path[];
1814   #endif   #endif
# Line 1782  diff -Naurp linux-orig/kernel/sysctl.c l Line 1818  diff -Naurp linux-orig/kernel/sysctl.c l
1818   #ifdef CONFIG_CHR_DEV_SG   #ifdef CONFIG_CHR_DEV_SG
1819   extern int sg_big_buff;   extern int sg_big_buff;
1820   #endif   #endif
1821  @@ -775,6 +778,18 @@ static struct ctl_table kern_table[] = {  @@ -820,6 +823,18 @@ static struct ctl_table kern_table[] = {
1822   .proc_handler = &proc_dostring,   .proc_handler = &proc_dostring,
1823   .strategy = &sysctl_string,   .strategy = &sysctl_string,
1824   },   },

Legend:
Removed from v.656  
changed lines
  Added in v.657