Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sparc64/dev weed out BUS_SPACE_MAP_PREFETCHABLE in ...



details:   https://anonhg.NetBSD.org/src/rev/0d50e3f638a1
branches:  trunk
changeset: 348821:0d50e3f638a1
user:      macallan <macallan%NetBSD.org@localhost>
date:      Thu Nov 10 06:44:35 2016 +0000

description:
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

diffstat:

 sys/arch/sparc64/dev/pyro.c   |  16 ++++++++++++++--
 sys/arch/sparc64/dev/sbus.c   |  11 +++++++++--
 sys/arch/sparc64/dev/schizo.c |  16 ++++++++++++++--
 3 files changed, 37 insertions(+), 6 deletions(-)

diffs (120 lines):

diff -r 884ca7842830 -r 0d50e3f638a1 sys/arch/sparc64/dev/pyro.c
--- a/sys/arch/sparc64/dev/pyro.c       Thu Nov 10 04:13:53 2016 +0000
+++ b/sys/arch/sparc64/dev/pyro.c       Thu Nov 10 06:44:35 2016 +0000
@@ -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 @@
            (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 @@
        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",
diff -r 884ca7842830 -r 0d50e3f638a1 sys/arch/sparc64/dev/sbus.c
--- a/sys/arch/sparc64/dev/sbus.c       Thu Nov 10 04:13:53 2016 +0000
+++ b/sys/arch/sparc64/dev/sbus.c       Thu Nov 10 06:44:35 2016 +0000
@@ -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 @@
                        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));
 }
 
diff -r 884ca7842830 -r 0d50e3f638a1 sys/arch/sparc64/dev/schizo.c
--- a/sys/arch/sparc64/dev/schizo.c     Thu Nov 10 04:13:53 2016 +0000
+++ b/sys/arch/sparc64/dev/schizo.c     Thu Nov 10 06:44:35 2016 +0000
@@ -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 @@
            (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 @@
        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",



Home | Main Index | Thread Index | Old Index