From b69661fe834c8e4e3b96750f15e53fe03b42d1ea Mon Sep 17 00:00:00 2001 From: tmm Date: Tue, 1 Jul 2003 14:11:04 +0000 Subject: [PATCH] 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. --- sys/dev/gem/if_gem_pci.c | 11 +++++++---- sys/dev/hme/if_hme_pci.c | 12 +++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/sys/dev/gem/if_gem_pci.c b/sys/dev/gem/if_gem_pci.c index 03fa1d4f3be2..49f2ddc129f8 100644 --- a/sys/dev/gem/if_gem_pci.c +++ b/sys/dev/gem/if_gem_pci.c @@ -158,12 +158,15 @@ gem_pci_attach(dev) struct gem_pci_softc *gsc = device_get_softc(dev); struct gem_softc *sc = &gsc->gsc_gem; - /* - * Enable bus master and memory access. The firmware does in some - * cases not do this for us on sparc64 machines. - */ pci_enable_busmaster(dev); + /* + * Some Sun GEMs/ERIs do have their intpin register bogusly set to 0, + * although it should be 1. correct that. + */ + if (pci_get_intpin(dev) == 0) + pci_set_intpin(dev, 1); + sc->sc_dev = dev; sc->sc_pci = 1; /* XXX */ diff --git a/sys/dev/hme/if_hme_pci.c b/sys/dev/hme/if_hme_pci.c index 8a89b6b46bdc..f1139210354f 100644 --- a/sys/dev/hme/if_hme_pci.c +++ b/sys/dev/hme/if_hme_pci.c @@ -132,13 +132,15 @@ hme_pci_attach(device_t dev) struct hme_softc *sc = &hsc->hsc_hme; int error; - /* - * Enable memory-space and bus master accesses. This is kinda of - * gross; but the hme comes up with neither enabled. - */ pci_enable_busmaster(dev); + /* + * Some Sun HMEs do have their intpin register bogusly set to 0, + * although it should be 1. correct that. + */ + if (pci_get_intpin(dev) == 0) + pci_set_intpin(dev, 1); - sc->sc_pci = 1; /* XXXXX should all be done in bus_dma. */ + sc->sc_pci = 1; sc->sc_dev = dev; /*