Module Name: src Committed By: macallan Date: Wed Jul 19 10:22:15 UTC 2023
Modified Files: src/sys/dev/sbus: files.sbus mgx.c Log Message: - make colour depth in fb mode configurable, default to 8bit - support ioctl(FBIO*CMAP) To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 src/sys/dev/sbus/files.sbus cvs rdiff -u -r1.23 -r1.24 src/sys/dev/sbus/mgx.c 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/sbus/files.sbus diff -u src/sys/dev/sbus/files.sbus:1.44 src/sys/dev/sbus/files.sbus:1.45 --- src/sys/dev/sbus/files.sbus:1.44 Wed May 8 13:40:19 2019 +++ src/sys/dev/sbus/files.sbus Wed Jul 19 10:22:15 2023 @@ -1,4 +1,4 @@ -# $NetBSD: files.sbus,v 1.44 2019/05/08 13:40:19 isaki Exp $ +# $NetBSD: files.sbus,v 1.45 2023/07/19 10:22:15 macallan Exp $ # # Config file and device description for machine-independent SBUS code. # Included by ports that need it. @@ -153,6 +153,7 @@ file dev/sbus/cgtwelve.c cgtwelve # SSB MGX defflag opt_mgx.h MGX_DEBUG defparam opt_mgx.h MGX_DEPTH=8 +defparam opt_mgx.h MGX_X_DEPTH=8 device mgx: fb, rasops8, rasops32, wsemuldisplaydev, vcons, glyphcache attach mgx at sbus file dev/sbus/mgx.c mgx Index: src/sys/dev/sbus/mgx.c diff -u src/sys/dev/sbus/mgx.c:1.23 src/sys/dev/sbus/mgx.c:1.24 --- src/sys/dev/sbus/mgx.c:1.23 Wed Jun 28 11:08:47 2023 +++ src/sys/dev/sbus/mgx.c Wed Jul 19 10:22:15 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: mgx.c,v 1.23 2023/06/28 11:08:47 macallan Exp $ */ +/* $NetBSD: mgx.c,v 1.24 2023/07/19 10:22:15 macallan Exp $ */ /*- * Copyright (c) 2014 Michael Lorenz @@ -29,7 +29,7 @@ /* a console driver for the SSB 4096V-MGX graphics card */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mgx.c,v 1.23 2023/06/28 11:08:47 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mgx.c,v 1.24 2023/07/19 10:22:15 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1055,7 +1055,7 @@ mgx_ioctl(void *v, void *vs, u_long cmd, mgx_init_palette(sc); vcons_redraw_screen(ms); } else { - mgx_setup(sc, 32); + mgx_setup(sc, MGX_X_DEPTH); mgx_init_palette(sc); } } @@ -1068,6 +1068,32 @@ mgx_ioctl(void *v, void *vs, u_long cmd, case WSDISPLAYIO_PUTCMAP: return mgx_putcmap(sc, (struct wsdisplay_cmap *)data); + case FBIOGETCMAP: +#define p ((struct fbcmap *)data) + { + struct wsdisplay_cmap c = { + .index = p->index, + .count = p->count, + .red = p->red, + .green = p->green, + .blue = p->blue + }; + return mgx_getcmap(sc, &c); + } + break; + case FBIOPUTCMAP: + { + struct wsdisplay_cmap c = { + .index = p->index, + .count = p->count, + .red = p->red, + .green = p->green, + .blue = p->blue + }; + return mgx_putcmap(sc, &c); + } + break; +#undef p case WSDISPLAYIO_GCURPOS: { struct wsdisplay_curpos *cp = (void *)data; @@ -1336,7 +1362,7 @@ mgxopen(dev_t dev, int flags, int mode, if (sc->sc_mode == WSDISPLAYIO_MODE_MAPPED) return 0; sc->sc_mode = WSDISPLAYIO_MODE_MAPPED; - mgx_setup(sc, 32); + mgx_setup(sc, MGX_X_DEPTH); mgx_init_palette(sc); return 0; }