Module Name:    src
Committed By:   macallan
Date:           Tue Jan  1 12:13:28 UTC 2013

Modified Files:
        src/sys/dev/pci: files.pci radeonfb.c

Log Message:
add a compile option to override the fallback to software drawing of bitmap
fonts on R3xx ( options RADEONFB_ALWAYS_ACCEL_PUTCHAR ) since this works just
fine on my RV350.
Next step: don't map VRAM if we don't need it.


To generate a diff of this commit:
cvs rdiff -u -r1.361 -r1.362 src/sys/dev/pci/files.pci
cvs rdiff -u -r1.72 -r1.73 src/sys/dev/pci/radeonfb.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/pci/files.pci
diff -u src/sys/dev/pci/files.pci:1.361 src/sys/dev/pci/files.pci:1.362
--- src/sys/dev/pci/files.pci:1.361	Mon Dec 17 20:37:59 2012
+++ src/sys/dev/pci/files.pci	Tue Jan  1 12:13:28 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: files.pci,v 1.361 2012/12/17 20:37:59 mbalmer Exp $
+#	$NetBSD: files.pci,v 1.362 2013/01/01 12:13:28 macallan Exp $
 #
 # Config file and device description for machine-independent PCI code.
 # Included by ports that need it.  Requires that the SCSI files be
@@ -856,6 +856,7 @@ defflag opt_radeonfb.h	RADEONFB_BIOS_INI
 defflag opt_radeonfb.h	RADEONFB_BIOS_DEBUG
 defflag opt_radeonfb.h	RADEONFB_MMAP_BARS
 defflag opt_radeonfb.h	RADEONFB_DEPTH_32
+defflag opt_radeonfb.h	RADEONFB_ALWAYS_ACCEL_PUTCHAR
 
 # Chelsio Terminator 3 (T3) 10 gigabit ethernet
 device	cxgbc { }
@@ -1050,7 +1051,7 @@ defflag	opt_voyager.h	VOYAGER_DEBUG
 include "dev/pci/hdaudio/files.hdaudio"
 
 # Permedia 2 / Sun PGX32 / Raptor
-device	pm2fb: wsemuldisplaydev, rasops8, rasops32, vcons, videomode, i2cbus, i2c_bitbang, ddc_read_edid, edid
+device	pm2fb: wsemuldisplaydev, rasops8, rasops32, vcons, videomode, i2cbus, i2c_bitbang, ddc_read_edid, edid, glyphcache
 attach	pm2fb at pci
 file	dev/pci/pm2fb.c		pm2fb
 defflag	opt_pm2fb.h	PM2FB_DEBUG

Index: src/sys/dev/pci/radeonfb.c
diff -u src/sys/dev/pci/radeonfb.c:1.72 src/sys/dev/pci/radeonfb.c:1.73
--- src/sys/dev/pci/radeonfb.c:1.72	Mon Dec 31 11:11:17 2012
+++ src/sys/dev/pci/radeonfb.c	Tue Jan  1 12:13:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeonfb.c,v 1.72 2012/12/31 11:11:17 macallan Exp $ */
+/*	$NetBSD: radeonfb.c,v 1.73 2013/01/01 12:13:28 macallan Exp $ */
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: radeonfb.c,v 1.72 2012/12/31 11:11:17 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeonfb.c,v 1.73 2013/01/01 12:13:28 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -170,7 +170,9 @@ static void radeonfb_cursor(void *, int,
 static void radeonfb_putchar(void *, int, int, unsigned, long);
 static void radeonfb_putchar_aa32(void *, int, int, unsigned, long);
 static void radeonfb_putchar_aa8(void *, int, int, unsigned, long);
+#ifndef RADEONFB_ALWAYS_ACCEL_PUTCHAR
 static void radeonfb_putchar_wrapper(void *, int, int, unsigned, long);
+#endif
 
 static int radeonfb_set_backlight(struct radeonfb_display *, int);
 static int radeonfb_get_backlight(struct radeonfb_display *);
@@ -2396,6 +2398,7 @@ radeonfb_init_screen(void *cookie, struc
 	/* pick a putchar method based on font and Radeon model */
 	if (ri->ri_font->stride < ri->ri_font->fontwidth) {
 		/* got a bitmap font */
+#ifndef RADEONFB_ALWAYS_ACCEL_PUTCHAR
 		if (IS_R300(dp->rd_softc)) {
 			/*
 			 * radeonfb_putchar() doesn't work right on some R3xx
@@ -2404,9 +2407,9 @@ radeonfb_init_screen(void *cookie, struc
 			 * into vram
 			 */
 			ri->ri_ops.putchar = radeonfb_putchar_wrapper;
-		} else {
+		} else
+#endif
 			ri->ri_ops.putchar = radeonfb_putchar;
-		}
 	} else {
 		/* got an alpha font */
 		switch(ri->ri_depth) {
@@ -2965,6 +2968,7 @@ radeonfb_putchar_aa8(void *cookie, int r
  * just sync the engine and call rasops*_putchar()
  */
 
+#ifndef RADEONFB_ALWAYS_ACCEL_PUTCHAR
 static void
 radeonfb_putchar_wrapper(void *cookie, int row, int col, u_int c, long attr)
 {
@@ -2975,6 +2979,7 @@ radeonfb_putchar_wrapper(void *cookie, i
 	radeonfb_engine_idle(dp->rd_softc);
 	dp->rd_putchar(ri, row, col, c, attr);
 }
+#endif
 	
 static void
 radeonfb_eraserows(void *cookie, int row, int nrows, long fillattr)

Reply via email to