Module Name: src
Committed By: macallan
Date: Thu Apr 21 18:06:06 UTC 2016
Modified Files:
src/sys/dev/sun: bwtwo.c cgsix.c cgsixvar.h cgthree.c fb.c fbvar.h
Log Message:
RASTERCONSOLE is gone, wsdisplay no longer optional
To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/sun/bwtwo.c
cvs rdiff -u -r1.66 -r1.67 src/sys/dev/sun/cgsix.c
cvs rdiff -u -r1.13 -r1.14 src/sys/dev/sun/cgsixvar.h
cvs rdiff -u -r1.31 -r1.32 src/sys/dev/sun/cgthree.c
cvs rdiff -u -r1.35 -r1.36 src/sys/dev/sun/fb.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/sun/fbvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/sun/bwtwo.c
diff -u src/sys/dev/sun/bwtwo.c:1.34 src/sys/dev/sun/bwtwo.c:1.35
--- src/sys/dev/sun/bwtwo.c:1.34 Fri Jul 25 08:10:39 2014
+++ src/sys/dev/sun/bwtwo.c Thu Apr 21 18:06:06 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: bwtwo.c,v 1.34 2014/07/25 08:10:39 dholland Exp $ */
+/* $NetBSD: bwtwo.c,v 1.35 2016/04/21 18:06:06 macallan Exp $ */
/*-
* Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -79,7 +79,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bwtwo.c,v 1.34 2014/07/25 08:10:39 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bwtwo.c,v 1.35 2016/04/21 18:06:06 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -310,7 +310,6 @@ bwtwoattach(struct bwtwo_softc *sc, cons
* definition. In this case we fill it from fb to
* avoid problems in case no bwtwo is the console
*/
- ri = &sc->sc_fb.fb_rinfo;
bwtwo_defaultscreen.textops = &ri->ri_ops;
bwtwo_defaultscreen.capabilities = ri->ri_caps;
bwtwo_defaultscreen.nrows = ri->ri_rows;
@@ -404,8 +403,8 @@ bwtwo_ioctl(void *v, void *vs, u_long cm
struct vcons_data *vd = v;
struct bwtwo_softc *sc = vd->cookie;
struct wsdisplay_fbinfo *wdf;
- struct rasops_info *ri = &sc->sc_fb.fb_rinfo;
struct vcons_screen *ms = sc->vd.active;
+ struct rasops_info *ri = &ms->scr_ri;
switch (cmd) {
case WSDISPLAYIO_GTYPE:
*(u_int *)data = WSDISPLAY_TYPE_GENFB;
Index: src/sys/dev/sun/cgsix.c
diff -u src/sys/dev/sun/cgsix.c:1.66 src/sys/dev/sun/cgsix.c:1.67
--- src/sys/dev/sun/cgsix.c:1.66 Wed Apr 13 17:26:08 2016
+++ src/sys/dev/sun/cgsix.c Thu Apr 21 18:06:06 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: cgsix.c,v 1.66 2016/04/13 17:26:08 macallan Exp $ */
+/* $NetBSD: cgsix.c,v 1.67 2016/04/21 18:06:06 macallan Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -78,7 +78,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cgsix.c,v 1.66 2016/04/13 17:26:08 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cgsix.c,v 1.67 2016/04/21 18:06:06 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -151,11 +151,6 @@ static void cg6_loadomap (struct cgsix_s
static void cg6_setcursor (struct cgsix_softc *);/* set position */
static void cg6_loadcursor (struct cgsix_softc *);/* set shape */
-#if NWSDISPLAY > 0
-#ifdef RASTERCONSOLE
-#error RASTERCONSOLE and wsdisplay are mutually exclusive
-#endif
-
static void cg6_setup_palette(struct cgsix_softc *);
struct wsscreen_descr cgsix_defaultscreen = {
@@ -208,18 +203,9 @@ struct wsscreen_list cgsix_screenlist =
extern const u_char rasops_cmap[768];
-#endif /* NWSDISPLAY > 0 */
-
-#if (NWSDISPLAY > 0) || defined(RASTERCONSOLE)
void cg6_invert(struct cgsix_softc *, int, int, int, int);
-/* need this for both cases because ri_hw points to it */
static struct vcons_screen cg6_console_screen;
-#endif
-
-#ifdef RASTERCONSOLE
-int cgsix_use_rasterconsole = 1;
-#endif
/*
* cg6 accelerated console routines.
@@ -326,15 +312,11 @@ int cgsix_use_rasterconsole = 1;
/*EMPTY*/; \
} while (0)
-#if (NWSDISPLAY > 0) || defined(RASTERCONSOLE)
static void cg6_ras_init(struct cgsix_softc *);
static void cg6_ras_copyrows(void *, int, int, int);
static void cg6_ras_copycols(void *, int, int, int, int);
static void cg6_ras_erasecols(void *, int, int, int, long int);
static void cg6_ras_eraserows(void *, int, int, long int);
-#if defined(RASTERCONSOLE) && defined(CG6_BLIT_CURSOR)
-static void cg6_ras_do_cursor(struct rasops_info *);
-#endif
static void
cg6_ras_init(struct cgsix_softc *sc)
@@ -522,38 +504,13 @@ cg6_ras_eraserows(void *cookie, int row,
CG6_DRAW(fbc);
}
-#if defined(RASTERCONSOLE) && defined(CG6_BLIT_CURSOR)
-/*
- * Really want something more like fg^bg here, but that would be more
- * or less impossible to migrate to colors. So we hope there's
- * something not too inappropriate in the colormap...besides, it's what
- * the non-accelerated code did. :-)
- */
-static void
-cg6_ras_do_cursor(struct rasops_info *ri)
-{
- struct vcons_screen *scr = ri->ri_hw;
- struct cgsix_softc *sc = scr->cookie;
- int row, col;
-
- row = ri->ri_crow * ri->ri_font->fontheight;
- col = ri->ri_ccol * ri->ri_font->fontwidth;
- cg6_invert(sc, ri->ri_xorigin + col,ri->ri_yorigin +
- row, ri->ri_font->fontwidth, ri->ri_font->fontheight);
-}
-#endif /* RASTERCONSOLE */
-
-#endif /* (NWSDISPLAY > 0) || defined(RASTERCONSOLE) */
-
void
cg6attach(struct cgsix_softc *sc, const char *name, int isconsole)
{
struct fbdevice *fb = &sc->sc_fb;
-#if NWSDISPLAY > 0
struct wsemuldisplaydev_attach_args aa;
struct rasops_info *ri = &cg6_console_screen.scr_ri;
unsigned long defattr;
-#endif
fb->fb_driver = &cg6_fbdriver;
@@ -580,27 +537,6 @@ cg6attach(struct cgsix_softc *sc, const
if (isconsole) {
printf(" (console)");
-
-/* this is the old console attachment stuff - sparc still needs it */
-#ifdef RASTERCONSOLE
- if (cgsix_use_rasterconsole) {
- fbrcons_init(&sc->sc_fb);
- /*
- * we don't use the screen struct but keep it here to
- * avoid ugliness in the cg6_ras_* functions
- */
- cg6_console_screen.scr_cookie = sc;
- sc->sc_fb.fb_rinfo.ri_hw = &cg6_console_screen;
- sc->sc_fb.fb_rinfo.ri_ops.copyrows = cg6_ras_copyrows;
- sc->sc_fb.fb_rinfo.ri_ops.copycols = cg6_ras_copycols;
- sc->sc_fb.fb_rinfo.ri_ops.erasecols = cg6_ras_erasecols;
- sc->sc_fb.fb_rinfo.ri_ops.eraserows = cg6_ras_eraserows;
-#ifdef CG6_BLIT_CURSOR
- sc->sc_fb.fb_rinfo.ri_do_cursor = cg6_ras_do_cursor;
-#endif
- cg6_ras_init(sc);
- }
-#endif
}
printf("\n");
@@ -612,7 +548,6 @@ cg6attach(struct cgsix_softc *sc, const
printf("%s: framebuffer size: %d MB\n", device_xname(sc->sc_dev),
sc->sc_ramsize >> 20);
-#if NWSDISPLAY
/* setup rasops and so on for wsdisplay */
memcpy(sc->sc_default_cmap, rasops_cmap, 768);
wsfont_init();
@@ -693,11 +628,6 @@ cg6attach(struct cgsix_softc *sc, const
aa.accessops = &cgsix_accessops;
aa.accesscookie = &sc->vd;
config_found(sc->sc_dev, &aa, wsemuldisplaydevprint);
-#else
- bt_initcmap(&sc->sc_cmap, 256);
- cg6_loadcmap(sc, 0, 256);
-
-#endif
}
@@ -723,7 +653,6 @@ cgsixclose(dev_t dev, int flags, int mod
cg6_reset(sc);
sc->sc_fb_is_open = FALSE;
-#if NWSDISPLAY > 0
if (IS_IN_EMUL_MODE(sc)) {
struct vcons_screen *ms = sc->vd.active;
@@ -735,12 +664,6 @@ cgsixclose(dev_t dev, int flags, int mod
if (ms != NULL)
vcons_redraw_screen(ms);
}
-#else
- /* (re-)initialize the default color map */
- bt_initcmap(&sc->sc_cmap, 256);
-
- cg6_loadcmap(sc, 0, 256);
-#endif
return 0;
}
@@ -1149,8 +1072,6 @@ cgsixmmap(dev_t dev, off_t off, int prot
return -1; /* not a user-map offset */
}
-#if NWSDISPLAY > 0
-
static void
cg6_setup_palette(struct cgsix_softc *sc)
{
@@ -1645,9 +1566,6 @@ cgsix_clearscreen(struct cgsix_softc *sc
}
}
-#endif /* NWSDISPLAY > 0 */
-
-#if (NWSDISPLAY > 0) || defined(RASTERCONSOLE)
void
cg6_invert(struct cgsix_softc *sc, int x, int y, int wi, int he)
{
@@ -1664,5 +1582,3 @@ cg6_invert(struct cgsix_softc *sc, int x
CG6_DRAW(fbc);
}
-#endif
-
Index: src/sys/dev/sun/cgsixvar.h
diff -u src/sys/dev/sun/cgsixvar.h:1.13 src/sys/dev/sun/cgsixvar.h:1.14
--- src/sys/dev/sun/cgsixvar.h:1.13 Thu Jul 12 01:20:22 2012
+++ src/sys/dev/sun/cgsixvar.h Thu Apr 21 18:06:06 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: cgsixvar.h,v 1.13 2012/07/12 01:20:22 macallan Exp $ */
+/* $NetBSD: cgsixvar.h,v 1.14 2016/04/21 18:06:06 macallan Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -73,13 +73,11 @@ struct cgsix_softc {
uint32_t sc_mono_width; /* how many monochrome pixels to write */
uint32_t sc_ramsize; /* VRAM size in bytes */
int sc_fb_is_open;
-#if NWSDISPLAY > 0
int sc_mode;
uint32_t sc_bg;
struct vcons_data vd;
uint8_t sc_default_cmap[768];
glyphcache sc_gc;
-#endif
union bt_cmap sc_cmap; /* Brooktree color map */
};
@@ -87,10 +85,4 @@ struct cgsix_softc {
((sc->sc_fb_is_open == 0) && \
(sc->sc_mode == WSDISPLAYIO_MODE_EMUL))
-#ifdef RASTERCONSOLE
-extern int cgsix_use_rasterconsole;
-#else
-#define cgsix_use_rasterconsole 0
-#endif
-
void cg6attach(struct cgsix_softc *, const char *, int);
Index: src/sys/dev/sun/cgthree.c
diff -u src/sys/dev/sun/cgthree.c:1.31 src/sys/dev/sun/cgthree.c:1.32
--- src/sys/dev/sun/cgthree.c:1.31 Fri Jul 25 08:10:39 2014
+++ src/sys/dev/sun/cgthree.c Thu Apr 21 18:06:06 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: cgthree.c,v 1.31 2014/07/25 08:10:39 dholland Exp $ */
+/* $NetBSD: cgthree.c,v 1.32 2016/04/21 18:06:06 macallan Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cgthree.c,v 1.31 2014/07/25 08:10:39 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cgthree.c,v 1.32 2016/04/21 18:06:06 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -115,11 +115,6 @@ struct cg3_videoctrl {
}
};
-#if NWSDISPLAY > 0
-#ifdef RASTERCONSOLE
-#error RASTERCONSOLE and wsdisplay are mutually exclusive
-#endif
-
static void cg3_setup_palette(struct cgthree_softc *);
struct wsscreen_descr cgthree_defaultscreen = {
@@ -162,18 +157,15 @@ struct wsscreen_list cgthree_screenlist
extern const u_char rasops_cmap[768];
static struct vcons_screen cg3_console_screen;
-#endif /* NWSDISPLAY > 0 */
void
cgthreeattach(struct cgthree_softc *sc, const char *name, int isconsole)
{
int i;
struct fbdevice *fb = &sc->sc_fb;
-#if NWSDISPLAY > 0
struct wsemuldisplaydev_attach_args aa;
struct rasops_info *ri = &cg3_console_screen.scr_ri;
unsigned long defattr;
-#endif
volatile struct fbcontrol *fbc = sc->sc_fbc;
volatile struct bt_regs *bt = &fbc->fbc_dac;
@@ -208,15 +200,11 @@ cgthreeattach(struct cgthree_softc *sc,
if (isconsole) {
printf(" (console)\n");
-#ifdef RASTERCONSOLE
- fbrcons_init(fb);
-#endif
} else
printf("\n");
fb_attach(fb, isconsole);
-#if NWSDISPLAY > 0
sc->sc_width = fb->fb_type.fb_width;
sc->sc_stride = fb->fb_type.fb_width;
sc->sc_height = fb->fb_type.fb_height;
@@ -257,12 +245,6 @@ cgthreeattach(struct cgthree_softc *sc,
aa.accessops = &cgthree_accessops;
aa.accesscookie = &sc->vd;
config_found(sc->sc_dev, &aa, wsemuldisplaydevprint);
-#else
- /* Initialize the default color map. */
- bt_initcmap(&sc->sc_cmap, 256);
- cgthreeloadcmap(sc, 0, 256);
-#endif
-
}
@@ -419,8 +401,6 @@ cgthreemmap(dev_t dev, off_t off, int pr
prot, BUS_SPACE_MAP_LINEAR));
}
-#if NWSDISPLAY > 0
-
static void
cg3_setup_palette(struct cgthree_softc *sc)
{
@@ -446,8 +426,8 @@ cgthree_ioctl(void *v, void *vs, u_long
struct vcons_data *vd = v;
struct cgthree_softc *sc = vd->cookie;
struct wsdisplay_fbinfo *wdf;
- struct rasops_info *ri = &sc->sc_fb.fb_rinfo;
struct vcons_screen *ms = sc->vd.active;
+ struct rasops_info *ri = &ms->scr_ri;
switch (cmd) {
case WSDISPLAYIO_GTYPE:
*(u_int *)data = WSDISPLAY_TYPE_SUNTCX;
@@ -480,6 +460,13 @@ cgthree_ioctl(void *v, void *vs, u_long
}
}
}
+ return 0;
+ case WSDISPLAYIO_GET_FBINFO:
+ {
+ struct wsdisplayio_fbinfo *fbi = data;
+
+ return wsdisplayio_get_fbinfo(&ms->scr_ri, fbi);
+ }
}
return EPASSTHROUGH;
}
@@ -574,5 +561,3 @@ cgthree_init_screen(void *cookie, struct
ri->ri_hw = scr;
}
-
-#endif /* NWSDISPLAY > 0 */
Index: src/sys/dev/sun/fb.c
diff -u src/sys/dev/sun/fb.c:1.35 src/sys/dev/sun/fb.c:1.36
--- src/sys/dev/sun/fb.c:1.35 Fri Jul 25 08:10:39 2014
+++ src/sys/dev/sun/fb.c Thu Apr 21 18:06:06 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: fb.c,v 1.35 2014/07/25 08:10:39 dholland Exp $ */
+/* $NetBSD: fb.c,v 1.36 2016/04/21 18:06:06 macallan Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fb.c,v 1.35 2014/07/25 08:10:39 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fb.c,v 1.36 2016/04/21 18:06:06 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -382,146 +382,3 @@ fb_setsize_eeprom(struct fbdevice *fb, i
#endif /* !SUN4U */
}
-
-
-#ifdef RASTERCONSOLE
-static void fb_bell(int);
-
-static void
-fb_bell(int on)
-{
-#if NKBD > 0
- kbd_bell(on);
-#endif
-}
-
-void
-fbrcons_init(struct fbdevice *fb)
-{
- struct rconsole *rc = &fb->fb_rcons;
- struct rasops_info *ri = &fb->fb_rinfo;
- int maxrow, maxcol;
-#if !defined(RASTERCONS_FULLSCREEN)
- int *row, *col;
-#endif
-
- /* Set up what rasops needs to know about */
- memset(ri, 0, sizeof *ri);
- ri->ri_stride = fb->fb_linebytes;
- ri->ri_bits = (void *)fb->fb_pixels;
- ri->ri_depth = fb->fb_type.fb_depth;
- ri->ri_width = fb->fb_type.fb_width;
- ri->ri_height = fb->fb_type.fb_height;
- maxrow = 5000;
- maxcol = 5000;
-
-#if !defined(RASTERCONS_FULLSCREEN)
-#if !defined(SUN4U)
- if (CPU_ISSUN4) {
- struct eeprom *eep = (struct eeprom *)eeprom_va;
-
- if (eep == NULL) {
- maxcol = 80;
- maxrow = 34;
- } else {
- maxcol = eep->eeTtyCols;
- maxrow = eep->eeTtyRows;
- }
- }
-#endif /* !SUN4U */
- if (!CPU_ISSUN4) {
- char buf[6+1]; /* Enough for six digits */
- maxcol = (prom_getoption("screen-#columns", buf, sizeof buf) == 0)
- ? strtoul(buf, NULL, 10)
- : 80;
-
- maxrow = (prom_getoption("screen-#rows", buf, sizeof buf) != 0)
- ? strtoul(buf, NULL, 10)
- : 34;
-
- }
-#endif /* !RASTERCONS_FULLSCREEN */
- /*
- * - force monochrome output
- * - eraserows() hack to clear the *entire* display
- * - cursor is currently enabled
- * - center output
- */
- ri->ri_flg = RI_FULLCLEAR | RI_CURSOR | RI_CENTER;
-
- /* Get operations set and connect to rcons */
- if (rasops_init(ri, maxrow, maxcol))
- panic("fbrcons_init: rasops_init failed!");
-
- if (ri->ri_depth == 8) {
- int i;
- for (i = 0; i < 16; i++) {
-
- /*
- * Cmap entries are repeated four times in the
- * 32 bit wide `devcmap' entries for optimization
- * purposes; see rasops(9)
- */
-#define I_TO_DEVCMAP(i) ((i) | ((i)<<8) | ((i)<<16) | ((i)<<24))
-
- /*
- * Use existing colormap entries for black and white
- */
- if ((i & 7) == WSCOL_BLACK) {
- ri->ri_devcmap[i] = I_TO_DEVCMAP(255);
- continue;
- }
-
- if ((i & 7) == WSCOL_WHITE) {
- ri->ri_devcmap[i] = I_TO_DEVCMAP(0);
- continue;
- }
- /*
- * Other entries refer to ANSI map, which for now
- * is setup in bt_subr.c
- */
- ri->ri_devcmap[i] = I_TO_DEVCMAP(i + 1);
-#undef I_TO_DEVCMAP
- }
- }
-
- rc->rc_row = rc->rc_col = 0;
-#if !defined(RASTERCONS_FULLSCREEN)
- /* Determine addresses of prom emulator row and column */
- if (!CPU_ISSUN4 && !romgetcursoraddr(&row, &col)) {
- rc->rc_row = *row;
- rc->rc_col = *col;
- }
-#endif
- ri->ri_crow = rc->rc_row;
- ri->ri_ccol = rc->rc_col;
-
- rc->rc_ops = &ri->ri_ops;
- rc->rc_cookie = ri;
- rc->rc_bell = fb_bell;
- rc->rc_maxcol = ri->ri_cols;
- rc->rc_maxrow = ri->ri_rows;
- rc->rc_width = ri->ri_emuwidth;
- rc->rc_height = ri->ri_emuheight;
- rc->rc_deffgcolor = WSCOL_BLACK;
- rc->rc_defbgcolor = WSCOL_WHITE;
- rcons_init(rc, 0);
-
- /* Hook up virtual console */
- v_putc = rcons_cnputc;
-}
-
-int
-fbrcons_rows(void)
-{
- return ((fblist.fb_dev != NULL) ?
- fblist.fb_dev->fb_rcons.rc_maxrow : 0);
-}
-
-int
-fbrcons_cols(void)
-{
- return ((fblist.fb_dev != NULL) ?
- fblist.fb_dev->fb_rcons.rc_maxcol : 0);
-}
-#endif /* RASTERCONSOLE */
Index: src/sys/dev/sun/fbvar.h
diff -u src/sys/dev/sun/fbvar.h:1.12 src/sys/dev/sun/fbvar.h:1.13
--- src/sys/dev/sun/fbvar.h:1.12 Fri Dec 12 18:39:55 2008
+++ src/sys/dev/sun/fbvar.h Thu Apr 21 18:06:06 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: fbvar.h,v 1.12 2008/12/12 18:39:55 macallan Exp $ */
+/* $NetBSD: fbvar.h,v 1.13 2016/04/21 18:06:06 macallan Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -86,13 +86,6 @@ struct fbdevice {
#define FB_USERMASK (FB_FORCE) /* flags that the user can set */
volatile u_int32_t *fb_pfour; /* pointer to pfour register */
-
-#ifdef RASTERCONSOLE
- /* Raster console emulator state */
- struct rconsole fb_rcons;
-#endif
- /* for wsdisplay we always need rasops_info */
- struct rasops_info fb_rinfo;
};
void fb_attach(struct fbdevice *, int);