aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorStefan Eßer <se@FreeBSD.org>1999-01-19 23:29:20 +0000
committerStefan Eßer <se@FreeBSD.org>1999-01-19 23:29:20 +0000
commit441e39d74a8b65e1a5e429cc3ae03dcdfbbf2d18 (patch)
tree7594f333a7864714dc6b44682f218f2fb98ea772 /sys
parentcc133fa302097b7fd051089297ebaa1ed0daa22e (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/pci.c3
-rw-r--r--sys/dev/pci/pcivar.h4
-rw-r--r--sys/pci/pci.c3
-rw-r--r--sys/pci/pci_compat.c19
-rw-r--r--sys/pci/pcivar.h4
5 files changed, 19 insertions, 14 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 447570cd4e097..73b8142a89c00 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 15f1478753b98..7843e3a6d656b 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 447570cd4e097..73b8142a89c00 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 5ea0d5e732884..9f4c612b161fe 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 15f1478753b98..7843e3a6d656b 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 */