Module Name:    src
Committed By:   macallan
Date:           Thu Nov 10 06:44:35 UTC 2016

Modified Files:
        src/sys/arch/sparc64/dev: pyro.c sbus.c schizo.c

Log Message:
weed out BUS_SPACE_MAP_PREFETCHABLE in resp. _map() and _mmap() methods
it works with UPA graphics cards and at least some psycho but causes problems
on these


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/sparc64/dev/pyro.c
cvs rdiff -u -r1.95 -r1.96 src/sys/arch/sparc64/dev/sbus.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/sparc64/dev/schizo.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/arch/sparc64/dev/pyro.c
diff -u src/sys/arch/sparc64/dev/pyro.c:1.17 src/sys/arch/sparc64/dev/pyro.c:1.18
--- src/sys/arch/sparc64/dev/pyro.c:1.17	Tue May 10 19:23:59 2016
+++ src/sys/arch/sparc64/dev/pyro.c	Thu Nov 10 06:44:35 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: pyro.c,v 1.17 2016/05/10 19:23:59 palle Exp $	*/
+/*	$NetBSD: pyro.c,v 1.18 2016/11/10 06:44:35 macallan Exp $	*/
 /*	from: $OpenBSD: pyro.c,v 1.20 2010/12/05 15:15:14 kettenis Exp $	*/
 
 /*
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pyro.c,v 1.17 2016/05/10 19:23:59 palle Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pyro.c,v 1.18 2016/11/10 06:44:35 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -495,6 +495,12 @@ pyro_bus_map(bus_space_tag_t t, bus_addr
 	    (unsigned long long)size,
 	    flags));
 
+	/*
+	 * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+	 * out for now until someone can verify wether it works on pyro
+	 */
+	flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
 	ss = sparc_pci_childspace(t->type);
 	DPRINTF(PDB_BUSMAP, (" cspace %d", ss));
 
@@ -527,6 +533,12 @@ pyro_bus_mmap(bus_space_tag_t t, bus_add
 	struct pyro_softc *sc = pbm->pp_sc;
 	int i, ss;
 
+	/*
+	 * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+	 * out for now until someone can verify wether it works on pyro
+	 */
+	flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
 	ss = sparc_pci_childspace(t->type);
 
 	DPRINTF(PDB_BUSMAP, ("pyro_bus_mmap: prot %d flags %d pa %qx\n",

Index: src/sys/arch/sparc64/dev/sbus.c
diff -u src/sys/arch/sparc64/dev/sbus.c:1.95 src/sys/arch/sparc64/dev/sbus.c:1.96
--- src/sys/arch/sparc64/dev/sbus.c:1.95	Thu Jul  7 06:55:38 2016
+++ src/sys/arch/sparc64/dev/sbus.c	Thu Nov 10 06:44:35 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: sbus.c,v 1.95 2016/07/07 06:55:38 msaitoh Exp $ */
+/*	$NetBSD: sbus.c,v 1.96 2016/11/10 06:44:35 macallan Exp $ */
 
 /*
  * Copyright (c) 1999-2002 Eduardo Horvath
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sbus.c,v 1.95 2016/07/07 06:55:38 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sbus.c,v 1.96 2016/11/10 06:44:35 macallan Exp $");
 
 #include "opt_ddb.h"
 
@@ -383,6 +383,13 @@ _sbus_bus_map(bus_space_tag_t t, bus_add
 			return (error);
 	}
 
+	/*
+	 * BUS_SPACE_MAP_PREFETCHABLE doesn't work right through sbus, so weed
+	 * it out for now until we know better
+	 */
+
+	flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
 	return (bus_space_map(t->parent, addr, size, flags, hp));
 }
 

Index: src/sys/arch/sparc64/dev/schizo.c
diff -u src/sys/arch/sparc64/dev/schizo.c:1.36 src/sys/arch/sparc64/dev/schizo.c:1.37
--- src/sys/arch/sparc64/dev/schizo.c:1.36	Tue May 10 19:23:59 2016
+++ src/sys/arch/sparc64/dev/schizo.c	Thu Nov 10 06:44:35 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: schizo.c,v 1.36 2016/05/10 19:23:59 palle Exp $	*/
+/*	$NetBSD: schizo.c,v 1.37 2016/11/10 06:44:35 macallan Exp $	*/
 /*	$OpenBSD: schizo.c,v 1.55 2008/08/18 20:29:37 brad Exp $	*/
 
 /*
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: schizo.c,v 1.36 2016/05/10 19:23:59 palle Exp $");
+__KERNEL_RCSID(0, "$NetBSD: schizo.c,v 1.37 2016/11/10 06:44:35 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -737,6 +737,12 @@ schizo_bus_map(bus_space_tag_t t, bus_ad
 	    (unsigned long long)size,
 	    flags));
 
+	/*
+	 * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+	 * out for now
+	 */
+	flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
 	ss = sparc_pci_childspace(t->type);
 	DPRINTF(SDB_BUSMAP, (" cspace %d\n", ss));
 
@@ -764,6 +770,12 @@ schizo_bus_mmap(bus_space_tag_t t, bus_a
 	struct schizo_range *sr;
 	int ss;
 
+	/*
+	 * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+	 * out for now
+	 */
+	flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
 	ss = sparc_pci_childspace(t->type);
 
 	DPRINTF(SDB_BUSMAP, ("schizo_bus_mmap: prot %d flags %d pa %qx\n",

Reply via email to