summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/Config.in4
-rw-r--r--drivers/sgi/Config.in4
-rw-r--r--drivers/video/newport_con.c24
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;
}