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 |
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 |
+----------- |
+----------- |
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/ |
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 |
|
|
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> |
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>, |
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> |
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); |
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 |
+ |
+ |
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); |
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 |
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); |
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 |
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) \ |
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; |
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 |
+ } |
+ } |
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 */ |
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++) |
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; |
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 |
+ } |
+ } |
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; |
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) { |
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 |
+ } |
+ } |
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; |
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; |
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; |
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 |
|
|
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)); |
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 |
|
|
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; |
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 || |
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 |
|
|
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 |
|
|
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 |
|
|
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); |
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; |
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 |
} |
} |
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; |
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; |
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 |
|
|
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 |
|
|
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 |
|
|
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) { |
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 |
|
|
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 |
|
|
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; |
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 |
|
|
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 |
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 |
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. |
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 |
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> |
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 |
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 |
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 |
|
|
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 */ |
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 |
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 |
}, |
}, |