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
This commit is contained in:
macallan 2016-11-10 06:44:35 +00:00
parent d0432711b6
commit 16321ec172
3 changed files with 37 additions and 6 deletions

View File

@ -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_t offset,
(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_addr_t paddr,
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",

View File

@ -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_addr_t addr, bus_size_t size, int flags,
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));
}

View File

@ -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_addr_t offset, bus_size_t size,
(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_addr_t paddr, off_t off, int prot,
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",