Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Oct 2013 12:58:41 +0000 (UTC)
From:      Aleksandr Rybalko <ray@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r256532 - user/ed/newcons/sys/arm/freescale/imx
Message-ID:  <201310151258.r9FCwfGI005469@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ray
Date: Tue Oct 15 12:58:41 2013
New Revision: 256532
URL: http://svnweb.freebsd.org/changeset/base/256532

Log:
  Use generated color map.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  user/ed/newcons/sys/arm/freescale/imx/imx51_ipuv3_newcons.c

Modified: user/ed/newcons/sys/arm/freescale/imx/imx51_ipuv3_newcons.c
==============================================================================
--- user/ed/newcons/sys/arm/freescale/imx/imx51_ipuv3_newcons.c	Tue Oct 15 12:56:56 2013	(r256531)
+++ user/ed/newcons/sys/arm/freescale/imx/imx51_ipuv3_newcons.c	Tue Oct 15 12:58:41 2013	(r256532)
@@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
 #include <dev/ofw/ofw_bus_subr.h>
 
 #include <dev/vt/vt.h>
+#include <dev/vt/colors/vt_termcolors.h>
 
 #include <arm/freescale/imx/imx51_ccmvar.h>
 
@@ -85,6 +86,7 @@ struct ipu3sc_softc {
 	int			sc_stride;
 	int			sc_width;
 	int			sc_height;
+	uint32_t		sc_cmap[16];
 
 	bus_space_tag_t		iot;
 	bus_space_handle_t	ioh;
@@ -101,48 +103,6 @@ struct ipu3sc_softc {
 
 static struct ipu3sc_softc *ipu3sc_softc;
 
-#if 0
-/* FIXME: not only 2 bytes color supported */
-static uint16_t colors[16] = {
-	0x0000,	/* black */
-	0x001f,	/* blue */
-	0x07e0,	/* green */
-	0x07ff,	/* cyan */
-	0xf800,	/* red */
-	0xf81f,	/* magenta */
-	0x3800,	/* brown */
-	0xc618,	/* light grey */
-	0xc618,	/* XXX: dark grey */
-	0x001f,	/* XXX: light blue */
-	0x07e0,	/* XXX: light green */
-	0x07ff,	/* XXX: light cyan */
-	0xf800,	/* XXX: light red */
-	0xf81f,	/* XXX: light magenta */
-	0xffe0,	/* yellow */
-	0xffff,	/* white */
-};
-static uint32_t colors_24[16] = {
-	0x000000,/* Black	*/
-	0x000080,/* Blue	*/
-	0x008000,/* Green 	*/
-	0x008080,/* Cyan 	*/
-	0x800000,/* Red 	*/
-	0x800080,/* Magenta	*/
-	0xcc6600,/* brown	*/
-	0xC0C0C0,/* Silver 	*/
-	0x808080,/* Gray 	*/
-	0x0000FF,/* Light Blue 	*/
-	0x00FF00,/* Light Green */
-	0x00FFFF,/* Light Cyan 	*/
-	0xFF0000,/* Light Red 	*/
-	0xFF00FF,/* Light Magenta */
-	0xFFFF00,/* Yellow 	*/
-	0xFFFFFF,/* White 	*/
-
-
-};
-#endif
-
 static vd_init_t	vt_imx_init;
 static vd_blank_t	vt_imx_blank;
 static vd_bitbltchr_t	vt_imx_bitbltchr;
@@ -153,25 +113,6 @@ static struct vt_driver vt_imx_driver = 
 	.vd_bitbltchr = vt_imx_bitbltchr,
 };
 
-static const uint32_t colormap[] = {
-	0x00000000,	/* Black */
-	0x00ff0000,	/* Red */
-	0x0000ff00,	/* Green */
-	0x00c0c000,	/* Brown */
-	0x000000ff,	/* Blue */
-	0x00c000c0,	/* Magenta */
-	0x0000c0c0,	/* Cyan */
-	0x00c0c0c0,	/* Light grey */
-	0x00808080,	/* Dark grey */
-	0x00ff8080,	/* Light red */
-	0x0080ff80,	/* Light green */
-	0x00ffff80,	/* Yellow */
-	0x008080ff,	/* Light blue */
-	0x00ff80ff,	/* Light magenta */
-	0x0080ffff,	/* Light cyan */
-	0x00ffffff, 	/* White */
-};
-
 #define	IPUV3_READ(ipuv3, module, reg)					\
 	bus_space_read_4((ipuv3)->iot, (ipuv3)->module##_ioh, (reg))
 #define	IPUV3_WRITE(ipuv3, module, reg, val)				\
@@ -365,6 +306,11 @@ ipu3_fb_attach(device_t dev)
 	 * Mailbox relies on it to get data from VideoCore
 	 */
 	ipu3_fb_init(sc);
+	err = vt_generate_vga_palette(sc->sc_cmap, COLOR_FORMAT_RGB, 0xff, 16,
+	    0xff, 8, 0xff, 0);
+	if (err)
+		goto fail_retarn_dctmpl;
+
 
 	vt_allocate(&vt_imx_driver, sc);
 
@@ -417,7 +363,7 @@ vt_imx_blank(struct vt_device *vd, term_
 	u_int ofs;
 	uint32_t c;
 
-	c = colormap[color];
+	c = sc->sc_cmap[color];
 	switch (sc->sc_bpp) {
 	case 1:
 		for (ofs = 0; ofs < (sc->sc_stride * sc->sc_height); ofs++)
@@ -463,8 +409,8 @@ vt_imx_bitbltchr(struct vt_device *vd, c
 	uint8_t b = 0;
 
 	bpp = sc->sc_bpp;
-	fgc = colormap[fg];
-	bgc = colormap[bg];
+	fgc = sc->sc_cmap[fg];
+	bgc = sc->sc_cmap[bg];
 
 	line = sc->sc_vaddr + (sc->sc_stride * top) + (left * bpp);
 	for (l = 0; l < height; l++) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310151258.r9FCwfGI005469>