summaryrefslogtreecommitdiffstats
path: root/sys/dev/gem
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2003-07-01 14:11:04 +0000
committertmm <tmm@FreeBSD.org>2003-07-01 14:11:04 +0000
commit1624ae9eccdc16224084693958679941cb2a47cb (patch)
treef701d62e15e9b35ff20b5d9a2d934f6a8f64d082 /sys/dev/gem
parente8331fe2626d7026214cc367d516271b160e1eb0 (diff)
downloadFreeBSD-src-1624ae9eccdc16224084693958679941cb2a47cb.zip
FreeBSD-src-1624ae9eccdc16224084693958679941cb2a47cb.tar.gz
Some gem and hme hardware bogusly has the intpin register hardwired to
0; detect this case and correct it. While being there, clean up nearby comments.
Diffstat (limited to 'sys/dev/gem')
-rw-r--r--sys/dev/gem/if_gem_pci.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/gem/if_gem_pci.c b/sys/dev/gem/if_gem_pci.c
index 03fa1d4..49f2ddc 100644
--- a/sys/dev/gem/if_gem_pci.c
+++ b/sys/dev/gem/if_gem_pci.c
@@ -158,11 +158,14 @@ gem_pci_attach(dev)
struct gem_pci_softc *gsc = device_get_softc(dev);
struct gem_softc *sc = &gsc->gsc_gem;
+ pci_enable_busmaster(dev);
+
/*
- * Enable bus master and memory access. The firmware does in some
- * cases not do this for us on sparc64 machines.
+ * Some Sun GEMs/ERIs do have their intpin register bogusly set to 0,
+ * although it should be 1. correct that.
*/
- pci_enable_busmaster(dev);
+ if (pci_get_intpin(dev) == 0)
+ pci_set_intpin(dev, 1);
sc->sc_dev = dev;
sc->sc_pci = 1; /* XXX */
OpenPOWER on IntegriCloud