Wed Apr 15 14:15:17 2020 UTC ()
Pull up following revision(s) (requested by msaitoh in ticket #835):

	sys/dev/wsfb/genfb.c: revision 1.72

Get genfb's address offset correctly when the value >= 4G. OK's by jmcneill.

Tested on Intel BXNUC10I3FNK (Comet Lake U).


(martin)
diff -r1.67.2.1 -r1.67.2.2 src/sys/dev/wsfb/genfb.c

cvs diff -r1.67.2.1 -r1.67.2.2 src/sys/dev/wsfb/genfb.c (expand / switch to context diff)
--- src/sys/dev/wsfb/genfb.c 2019/08/15 12:21:27 1.67.2.1
+++ src/sys/dev/wsfb/genfb.c 2020/04/15 14:15:17 1.67.2.2
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfb.c,v 1.67.2.1 2019/08/15 12:21:27 martin Exp $ */
+/*	$NetBSD: genfb.c,v 1.67.2.2 2020/04/15 14:15:17 martin Exp $ */
 
 /*-
  * Copyright (c) 2007 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genfb.c,v 1.67.2.1 2019/08/15 12:21:27 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfb.c,v 1.67.2.2 2020/04/15 14:15:17 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -102,7 +102,7 @@
 {
 	prop_dictionary_t dict;
 	uint64_t cmap_cb, pmf_cb, mode_cb, bl_cb, br_cb, fbaddr;
-	uint32_t fboffset;
+	uint64_t fboffset;
 	bool console;
 
 	dict = device_properties(sc->sc_dev);
@@ -124,13 +124,12 @@
 		return;
 	}
 
-	/* XXX should be a 64bit value */
-	if (!prop_dictionary_get_uint32(dict, "address", &fboffset)) {
+	if (!prop_dictionary_get_uint64(dict, "address", &fboffset)) {
 		GPRINTF("no address property\n");
 		return;
 	}
 
-	sc->sc_fboffset = fboffset;
+	sc->sc_fboffset = (bus_addr_t)fboffset;
 
 	sc->sc_fbaddr = NULL;
 	if (prop_dictionary_get_uint64(dict, "virtual_address", &fbaddr)) {