diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 447570cd4e09..73b8142a89c0 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pci.c,v 1.91 1998/11/09 08:08:06 peter Exp $ + * $Id: pci.c,v 1.92 1999/01/12 01:44:42 eivind Exp $ * */ @@ -190,6 +190,7 @@ pci_readmaps(pcicfgregs *cfg, int maxmaps) testval = pci_cfgread(cfg, reg, 4); pci_cfgwrite(cfg, reg, base, 4); + map[j].reg = reg; map[j].base = pci_mapbase(base); map[j].type = pci_maptype(base); map[j].ln2size = pci_mapsize(testval); diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index 15f1478753b9..7843e3a6d656 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcivar.h,v 1.23 1998/12/14 05:47:29 dillon Exp $ + * $Id: pcivar.h,v 1.24 1999/01/13 04:59:19 bde Exp $ * */ @@ -66,7 +66,7 @@ typedef struct { #define PCI_MAPPORT 0x04 /* port map */ u_int8_t ln2size; u_int8_t ln2range; -/* u_int8_t dummy;*/ + u_int8_t reg; /* offset of map register in config space */ } pcimap; /* config header information common to all header types */ diff --git a/sys/pci/pci.c b/sys/pci/pci.c index 447570cd4e09..73b8142a89c0 100644 --- a/sys/pci/pci.c +++ b/sys/pci/pci.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pci.c,v 1.91 1998/11/09 08:08:06 peter Exp $ + * $Id: pci.c,v 1.92 1999/01/12 01:44:42 eivind Exp $ * */ @@ -190,6 +190,7 @@ pci_readmaps(pcicfgregs *cfg, int maxmaps) testval = pci_cfgread(cfg, reg, 4); pci_cfgwrite(cfg, reg, base, 4); + map[j].reg = reg; map[j].base = pci_mapbase(base); map[j].type = pci_maptype(base); map[j].ln2size = pci_mapsize(testval); diff --git a/sys/pci/pci_compat.c b/sys/pci/pci_compat.c index 5ea0d5e73288..9f4c612b161f 100644 --- a/sys/pci/pci_compat.c +++ b/sys/pci/pci_compat.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pci_compat.c,v 1.18 1999/01/13 04:59:19 bde Exp $ + * $Id: pci_compat.c,v 1.19 1999/01/14 06:22:10 jdp Exp $ * */ @@ -59,13 +59,16 @@ static int pci_mapno(pcicfgregs *cfg, int reg) { - int map = -1; - if ((reg & 0x03) == 0) { - map = (reg -0x10) / 4; - if (map < 0 || map >= cfg->nummaps) - map = -1; - } - return (map); + int i, nummaps; + pcimap *map; + + nummaps = cfg->nummaps; + map = cfg->map; + + for (i = 0; i < nummaps; i++) + if (map[i].reg == reg) + return (i); + return (-1); } static int diff --git a/sys/pci/pcivar.h b/sys/pci/pcivar.h index 15f1478753b9..7843e3a6d656 100644 --- a/sys/pci/pcivar.h +++ b/sys/pci/pcivar.h @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcivar.h,v 1.23 1998/12/14 05:47:29 dillon Exp $ + * $Id: pcivar.h,v 1.24 1999/01/13 04:59:19 bde Exp $ * */ @@ -66,7 +66,7 @@ typedef struct { #define PCI_MAPPORT 0x04 /* port map */ u_int8_t ln2size; u_int8_t ln2range; -/* u_int8_t dummy;*/ + u_int8_t reg; /* offset of map register in config space */ } pcimap; /* config header information common to all header types */