Implements console support Index: linux-2.6.33-source/drivers/video/console/Kconfig =================================================================== --- linux-2.6.33-source.orig/drivers/video/console/Kconfig +++ linux-2.6.33-source/drivers/video/console/Kconfig @@ -6,7 +6,7 @@ config VGA_CONSOLE bool "VGA text console" if EMBEDDED || !X86 - depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 + depends on !COOPERATIVE && !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 default y help Saying Y here will allow you to use Linux in text mode through a @@ -43,6 +43,14 @@ buffer. Each 64KB will give you approximately 16 80x25 screenfuls of scrollback buffer +config COOPERATIVE_CONSOLE + bool 'coLinux Pseudo-VGA text console' if COOPERATIVE + depends on !VGA_CONSOLE && COOPERATIVE + default y + help + You need to say Y here if you compile a Linux kernel in cooperative + mode. + config MDA_CONSOLE depends on !M68K && !PARISC && ISA tristate "MDA text console (dual-headed) (EXPERIMENTAL)" @@ -69,7 +77,7 @@ config DUMMY_CONSOLE bool - depends on VGA_CONSOLE!=y || SGI_NEWPORT_CONSOLE!=y + depends on COOPERATIVE_CONSOLE!=y || VGA_CONSOLE!=y || SGI_NEWPORT_CONSOLE!=y default y config DUMMY_CONSOLE_COLUMNS Index: linux-2.6.33-source/include/linux/console.h =================================================================== --- linux-2.6.33-source.orig/include/linux/console.h +++ linux-2.6.33-source/include/linux/console.h @@ -61,6 +61,7 @@ extern const struct consw dummy_con; /* dummy console buffer */ extern const struct consw vga_con; /* VGA text console */ +extern const struct consw colinux_con; /* coLinux Mode text console */ extern const struct consw newport_con; /* SGI Newport console */ extern const struct consw prom_con; /* SPARC PROM console */ Index: linux-2.6.33-source/drivers/video/console/Makefile =================================================================== --- linux-2.6.33-source.orig/drivers/video/console/Makefile +++ linux-2.6.33-source/drivers/video/console/Makefile @@ -24,6 +24,7 @@ obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o obj-$(CONFIG_VGA_CONSOLE) += vgacon.o +obj-$(CONFIG_COOPERATIVE_CONSOLE) += cocon.o obj-$(CONFIG_MDA_CONSOLE) += mdacon.o obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o ifeq ($(CONFIG_FB_TILEBLITTING),y) Index: linux-2.6.33-source/drivers/video/console/cocon.c =================================================================== --- linux-2.6.33-source.orig/drivers/video/console/cocon.c +++ linux-2.6.33-source/drivers/video/console/cocon.c @@ -170,8 +170,8 @@ co_console_message_t *message; co_message_t *co_message; - if (count > CO_MAX_PARAM_SIZE/2 - 16) - return; +// if (count > CO_MAX_PARAM_SIZE/2 - 16) +// return; co_message = co_send_message_save(&flags); if (!co_message) @@ -454,8 +454,8 @@ co_send_message_restore(flags); } -static int cocon_resize(struct vc_data *c, unsigned int width, - unsigned int height) +static int cocon_resize(struct vc_data *vc, unsigned int width, + unsigned int height, unsigned int user) { return -EINVAL; } Index: linux-2.6.33-source/include/linux/console_struct.h =================================================================== --- linux-2.6.33-source.orig/include/linux/console_struct.h +++ linux-2.6.33-source/include/linux/console_struct.h @@ -130,7 +130,11 @@ #define CUR_HWMASK 0x0f #define CUR_SWMASK 0xfff0 -#define CUR_DEFAULT CUR_UNDERLINE +#ifdef CONFIG_COOPERATIVE +# define CUR_DEFAULT CUR_DEF +#else +# define CUR_DEFAULT CUR_UNDERLINE +#endif #define CON_IS_VISIBLE(conp) (*conp->vc_display_fg == conp) Index: linux-2.6.33-source/drivers/char/vt.c =================================================================== --- linux-2.6.33-source.orig/drivers/char/vt.c +++ linux-2.6.33-source/drivers/char/vt.c @@ -2858,7 +2858,8 @@ vc->vc_palette[k++] = default_grn[j] ; vc->vc_palette[k++] = default_blu[j] ; } - vc->vc_def_color = 0x07; /* white */ + if (!vc->vc_def_color) + vc->vc_def_color = 0x07; /* white */ vc->vc_ulcolor = default_underline_color; vc->vc_itcolor = default_italic_color; vc->vc_halfcolor = 0x08; /* grey */