diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/Config.in | 4 | ||||
-rw-r--r-- | drivers/sgi/Config.in | 4 | ||||
-rw-r--r-- | drivers/video/newport_con.c | 24 |
3 files changed, 15 insertions, 17 deletions
diff --git a/drivers/char/Config.in b/drivers/char/Config.in index 6967c30e2..76a2b9c83 100644 --- a/drivers/char/Config.in +++ b/drivers/char/Config.in @@ -67,10 +67,6 @@ if [ "$CONFIG_MOUSE" = "y" ]; then endmenu fi -if [ "$CONFIG_SGI" = "y" ]; then - bool 'Support for SGI graphic devices' CONFIG_SGI_GRAPHICS -fi - tristate 'QIC-02 tape support' CONFIG_QIC02_TAPE if [ "$CONFIG_QIC02_TAPE" != "n" ]; then bool 'Do you want runtime configuration for QIC-02' CONFIG_QIC02_DYNCONF diff --git a/drivers/sgi/Config.in b/drivers/sgi/Config.in index 2f05afc6d..40f024178 100644 --- a/drivers/sgi/Config.in +++ b/drivers/sgi/Config.in @@ -13,10 +13,6 @@ bool 'SGI DS1286 RTC support' CONFIG_SGI_DS1286 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then tristate 'SGI Newport Graphics support' CONFIG_SGI_NEWPORT_GFX - tristate 'SGI Newport Console support' CONFIG_SGI_NEWPORT_CONSOLE - if [ "$CONFIG_SGI_NEWPORT_CONSOLE" = "m" ]; then - define_bool CONFIG_DUMMY_CONSOLE y - fi fi endmenu diff --git a/drivers/video/newport_con.c b/drivers/video/newport_con.c index e9525f785..0775fa60f 100644 --- a/drivers/video/newport_con.c +++ b/drivers/video/newport_con.c @@ -27,12 +27,15 @@ #include <asm/page.h> #include <asm/pgtable.h> #include <asm/newport.h> +#define INCLUDE_LINUX_LOGO_DATA #include <asm/linux_logo.h> +#define LOGO_W 80 +#define LOGO_H 80 + extern unsigned char vga_font[]; extern struct newport_regs *npregs; -static int logo_drawn; static int logo_active; static int topscan; static int xcurs_correction = 29; @@ -99,11 +102,11 @@ static inline void newport_show_logo(void) npregs->set.drawmode0 = (NPORT_DMODE0_DRAW | NPORT_DMODE0_BLOCK | NPORT_DMODE0_CHOST); - npregs->set.xystarti = ((newport_xsize - 80) << 16) | (0); + npregs->set.xystarti = ((newport_xsize - LOGO_W) << 16) | (0); npregs->set.xyendi = ((newport_xsize - 1) << 16); newport_wait(); - for (i = 0; i < 80 * 80; i++) + for (i = 0; i < LOGO_W * LOGO_H; i++) npregs->go.hostrw0 = linux_logo[i] << 24; } @@ -306,12 +309,6 @@ static void newport_clear(struct vc_data *vc, int sy, int sx, int height, int wi if (logo_active) return; - if (!logo_drawn) { - newport_show_logo(); - logo_drawn = 1; - logo_active = 1; - return; - } if (ystart < yend) { newport_clear_screen(sx << 3, ystart, xend, yend, @@ -415,8 +412,17 @@ static void newport_cursor(struct vc_data *vc, int mode) static int newport_switch(struct vc_data *vc) { + static int logo_drawn = 0; + topscan = 0; npregs->cset.topscan = 0x3ff; + + if (!logo_drawn) { + newport_show_logo(); + logo_drawn = 1; + logo_active = 1; + } + return 1; } |