diff options
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/pci/chipsfb.c | 7 | ||||
| -rw-r--r-- | sys/dev/pci/r128fb.c | 32 | ||||
| -rw-r--r-- | sys/dev/pci/voodoofb.c | 6 | ||||
| -rw-r--r-- | sys/dev/pci/voyagerfb.c | 7 |
4 files changed, 30 insertions, 22 deletions
diff --git a/sys/dev/pci/chipsfb.c b/sys/dev/pci/chipsfb.c index 0360fecf86a..48e9f3f87d6 100644 --- a/sys/dev/pci/chipsfb.c +++ b/sys/dev/pci/chipsfb.c @@ -1,4 +1,4 @@ -/* $NetBSD: chipsfb.c,v 1.19 2009/05/12 08:23:00 cegger Exp $ */ +/* $NetBSD: chipsfb.c,v 1.20 2009/08/20 02:40:57 macallan Exp $ */ /* * Copyright (c) 2006 Michael Lorenz @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: chipsfb.c,v 1.19 2009/05/12 08:23:00 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: chipsfb.c,v 1.20 2009/08/20 02:40:57 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -372,6 +372,9 @@ chipsfb_attach(device_t parent, device_t self, void *aux) sc->sc_bg = ri->ri_devcmap[bg]; chipsfb_clearscreen(sc); + if (console) + vcons_replay_msgbuf(&chipsfb_console_screen); + aprint_normal_dev(&sc->sc_dev, "%d MB aperture, %d MB VRAM at 0x%08x\n", (u_int)(sc->sc_fbsize >> 20), sc->memsize >> 20, (u_int)sc->sc_fb); diff --git a/sys/dev/pci/r128fb.c b/sys/dev/pci/r128fb.c index e62c3ac9e51..e07eada946f 100644 --- a/sys/dev/pci/r128fb.c +++ b/sys/dev/pci/r128fb.c @@ -1,4 +1,4 @@ -/* $NetBSD: r128fb.c,v 1.8 2009/05/06 18:41:54 elad Exp $ */ +/* $NetBSD: r128fb.c,v 1.9 2009/08/20 02:40:57 macallan Exp $ */ /* * Copyright (c) 2007 Michael Lorenz @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: r128fb.c,v 1.8 2009/05/06 18:41:54 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: r128fb.c,v 1.9 2009/08/20 02:40:57 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -265,17 +265,31 @@ r128fb_attach(device_t parent, device_t self, void *aux) ri = &sc->sc_console_screen.scr_ri; + j = 0; + for (i = 0; i < (1 << sc->sc_depth); i++) { + + sc->sc_cmap_red[i] = rasops_cmap[j]; + sc->sc_cmap_green[i] = rasops_cmap[j + 1]; + sc->sc_cmap_blue[i] = rasops_cmap[j + 2]; + r128fb_putpalreg(sc, i, rasops_cmap[j], rasops_cmap[j + 1], + rasops_cmap[j + 2]); + j += 3; + } + if (is_console) { vcons_init_screen(&sc->vd, &sc->sc_console_screen, 1, &defattr); sc->sc_console_screen.scr_flags |= VCONS_SCREEN_IS_STATIC; + r128fb_rectfill(sc, 0, 0, sc->sc_width, sc->sc_height, + ri->ri_devcmap[(defattr >> 16) & 0xff]); sc->sc_defaultscreen_descr.textops = &ri->ri_ops; sc->sc_defaultscreen_descr.capabilities = ri->ri_caps; sc->sc_defaultscreen_descr.nrows = ri->ri_rows; sc->sc_defaultscreen_descr.ncols = ri->ri_cols; wsdisplay_cnattach(&sc->sc_defaultscreen_descr, ri, 0, 0, defattr); + vcons_replay_msgbuf(&sc->sc_console_screen); } else { /* * since we're not the console we can postpone the rest @@ -284,20 +298,6 @@ r128fb_attach(device_t parent, device_t self, void *aux) (*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr); } - j = 0; - for (i = 0; i < (1 << sc->sc_depth); i++) { - - sc->sc_cmap_red[i] = rasops_cmap[j]; - sc->sc_cmap_green[i] = rasops_cmap[j + 1]; - sc->sc_cmap_blue[i] = rasops_cmap[j + 2]; - r128fb_putpalreg(sc, i, rasops_cmap[j], rasops_cmap[j + 1], - rasops_cmap[j + 2]); - j += 3; - } - - r128fb_rectfill(sc, 0, 0, sc->sc_width, sc->sc_height, - ri->ri_devcmap[(defattr >> 16) & 0xff]); - aa.console = is_console; aa.scrdata = &sc->sc_screenlist; aa.accessops = &r128fb_accessops; diff --git a/sys/dev/pci/voodoofb.c b/sys/dev/pci/voodoofb.c index d30def8b1a0..ec9f9601751 100644 --- a/sys/dev/pci/voodoofb.c +++ b/sys/dev/pci/voodoofb.c @@ -1,4 +1,4 @@ -/* $NetBSD: voodoofb.c,v 1.19 2009/05/06 18:41:54 elad Exp $ */ +/* $NetBSD: voodoofb.c,v 1.20 2009/08/20 02:40:57 macallan Exp $ */ /* * Copyright (c) 2005, 2006 Michael Lorenz @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: voodoofb.c,v 1.19 2009/05/06 18:41:54 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: voodoofb.c,v 1.20 2009/08/20 02:40:57 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -451,6 +451,8 @@ voodoofb_attach(device_t parent, device_t self, void *aux) sc->sc_bg = ri->ri_devcmap[bg]; voodoofb_clearscreen(sc); + if (console) + vcons_replay_msgbuf(&voodoofb_console_screen); aa.console = console; aa.scrdata = &voodoofb_screenlist; aa.accessops = &voodoofb_accessops; diff --git a/sys/dev/pci/voyagerfb.c b/sys/dev/pci/voyagerfb.c index b612ca6e55e..0f84b90919e 100644 --- a/sys/dev/pci/voyagerfb.c +++ b/sys/dev/pci/voyagerfb.c @@ -1,4 +1,4 @@ -/* $NetBSD: voyagerfb.c,v 1.1 2009/08/12 19:28:00 macallan Exp $ */ +/* $NetBSD: voyagerfb.c,v 1.2 2009/08/20 02:40:57 macallan Exp $ */ /* * Copyright (c) 2009 Michael Lorenz @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: voyagerfb.c,v 1.1 2009/08/12 19:28:00 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: voyagerfb.c,v 1.2 2009/08/20 02:40:57 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -296,6 +296,9 @@ voyagerfb_attach(device_t parent, device_t self, void *aux) voyagerfb_rectfill(sc, 0, 0, sc->sc_width, sc->sc_height, ri->ri_devcmap[(defattr >> 16) & 0xff]); + if (is_console) + vcons_replay_msgbuf(&sc->sc_console_screen); + aa.console = is_console; aa.scrdata = &sc->sc_screenlist; aa.accessops = &voyagerfb_accessops; |
