Create a master list of pnp logical and compatibility device codes instead
of hard-coding it into each driver and use a centralized probe function.
This commit is contained in:
parent
8d611b5f32
commit
bdb2269a46
|
@ -1,4 +1,6 @@
|
|||
# $NetBSD: Makefile,v 1.1 1998/06/12 23:22:51 cgd Exp $
|
||||
# $NetBSD: Makefile,v 1.2 1998/07/23 19:30:44 christos Exp $
|
||||
|
||||
# use 'make -f Makefile.isapnpdevs' to make isapnpdevs.h and isapnpdevs.c
|
||||
|
||||
INCSDIR= /usr/include/dev/isapnp
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
# $NetBSD: Makefile.isapnpdevs,v 1.1 1998/07/23 19:30:44 christos Exp $
|
||||
|
||||
AWK= awk
|
||||
|
||||
# Kill shuttle .c rule
|
||||
.c:
|
||||
|
||||
isapnpdevs.h isapnpdevs.c: isapnpdevs devlist2h.awk
|
||||
/bin/rm -f isapnpdevs.h isapnpdevs.c
|
||||
${AWK} -f devlist2h.awk isapnpdevs
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: aic_isapnp.c,v 1.2 1998/06/09 07:28:30 thorpej Exp $ */
|
||||
/* $NetBSD: aic_isapnp.c,v 1.3 1998/07/23 19:30:44 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998 The NetBSD Foundation, Inc.
|
||||
|
@ -46,6 +46,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/scsipi/scsipi_all.h>
|
||||
#include <dev/scsipi/scsipiconf.h>
|
||||
|
@ -73,12 +74,7 @@ aic_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "ADP1520")) /* Adaptec AHA-1520B */
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
return isapnp_devmatch(aux, &isapnp_aic_devinfo);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: com_isapnp.c,v 1.12 1998/04/25 10:58:24 drochner Exp $ */
|
||||
/* $NetBSD: com_isapnp.c,v 1.13 1998/07/23 19:30:44 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -52,6 +52,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/ic/comvar.h>
|
||||
|
||||
|
@ -75,19 +76,7 @@ com_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "BDP3336") && /* Best Data Prods. 336F */
|
||||
strcmp(ipa->ipa_devlogic, "OZO8039") && /* Zoom 56k flex */
|
||||
strcmp(ipa->ipa_devlogic, "BRI1400") && /* Boca 33.6 PnP */
|
||||
strcmp(ipa->ipa_devlogic, "ROK0010") && /* Rockwell ? */
|
||||
strcmp(ipa->ipa_devlogic, "USR2070") && /* USR Sportster 56k */
|
||||
strcmp(ipa->ipa_devcompat, "PNP0500") && /* generic 8250/16450 */
|
||||
strcmp(ipa->ipa_devcompat, "PNP0501")) /* generic 16550A */
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
return isapnp_devmatch(aux, &isapnp_com_devinfo);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -0,0 +1,172 @@
|
|||
#! /usr/bin/awk -f
|
||||
# $NetBSD: devlist2h.awk,v 1.1 1998/07/23 19:30:44 christos Exp $
|
||||
#
|
||||
# Copyright (c) 1998, Christos Zoulas
|
||||
# Copyright (c) 1995, 1996 Christopher G. Demetriou
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by Christopher G. Demetriou.
|
||||
# This product includes software developed by Christos Zoulas
|
||||
# 4. The name of the author(s) may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
function collectline(f, line) {
|
||||
oparen = 0
|
||||
line = ""
|
||||
while (f <= NF) {
|
||||
if ($f == "#") {
|
||||
line = line "("
|
||||
oparen = 1
|
||||
f++
|
||||
continue
|
||||
}
|
||||
if (oparen) {
|
||||
line = line $f
|
||||
if (f < NF)
|
||||
line = line " "
|
||||
f++
|
||||
continue
|
||||
}
|
||||
line = line $f
|
||||
if (f < NF)
|
||||
line = line " "
|
||||
f++
|
||||
}
|
||||
if (oparen)
|
||||
line = line ")"
|
||||
return line
|
||||
}
|
||||
function checkdecl() {
|
||||
done = 1
|
||||
if (!decl) {
|
||||
decl = 1;
|
||||
printf("struct isapnp_devinfo {\n") > hfile
|
||||
printf("\tconst char *const *devlogic;\n") > hfile
|
||||
printf("\tconst char *const *devcompat;\n") > hfile
|
||||
printf("};\n\n") > hfile
|
||||
printf("#include <sys/param.h>\n") > cfile
|
||||
printf("#include <dev/isapnp/isapnpdevs.h>\n\n") > cfile
|
||||
}
|
||||
}
|
||||
BEGIN {
|
||||
decl = done = ncompat = nlogicals = ndriver = 0
|
||||
cfile="isapnpdevs.c"
|
||||
hfile="isapnpdevs.h"
|
||||
}
|
||||
NR == 1 {
|
||||
VERSION = $0
|
||||
gsub("\\$", "", VERSION)
|
||||
|
||||
printf("/*\t\$NetBSD\$\t*/\n\n") > cfile
|
||||
printf("/*\n") > cfile
|
||||
printf(" * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n") \
|
||||
> cfile
|
||||
printf(" *\n") > cfile
|
||||
printf(" * generated from:\n") > cfile
|
||||
printf(" *\t%s\n", VERSION) > cfile
|
||||
printf(" */\n") > cfile
|
||||
|
||||
printf("/*\t\$NetBSD\$\t*/\n\n") > hfile
|
||||
printf("/*\n") > hfile
|
||||
printf(" * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n") \
|
||||
> hfile
|
||||
printf(" *\n") > hfile
|
||||
printf(" * generated from:\n") > hfile
|
||||
printf(" *\t%s\n", VERSION) > hfile
|
||||
printf(" */\n") > hfile
|
||||
printf("\n") > hfile
|
||||
next
|
||||
}
|
||||
$1 == "driver" {
|
||||
checkdecl()
|
||||
ndriver++
|
||||
|
||||
driverindex[$2] = ndriver;
|
||||
driver[ndriver, 1] = $2;
|
||||
driver[ndriver, 2] = collectline(3, line);
|
||||
printf("/* %s */\n", driver[ndriver, 2]) > hfile
|
||||
printf("extern const struct isapnp_devinfo isapnp_%s_devinfo;\n",
|
||||
driver[ndriver, 1]) > hfile
|
||||
next
|
||||
}
|
||||
$1 == "devlogic" {
|
||||
checkdecl()
|
||||
nlogicals++
|
||||
|
||||
logicals[nlogicals, 1] = $2;
|
||||
logicals[nlogicals, 2] = $3;
|
||||
logicals[nlogicals, 3] = collectline(4, line);
|
||||
next
|
||||
}
|
||||
$1 == "devcompat" {
|
||||
checkdecl()
|
||||
ncompats++
|
||||
|
||||
compats[ncompats, 1] = $2;
|
||||
compats[ncompats, 2] = $3;
|
||||
compats[ncompats, 3] = collectline(4, line);
|
||||
next
|
||||
}
|
||||
{
|
||||
if (!done) {
|
||||
if ($0 == "")
|
||||
blanklines++
|
||||
print $0 > hfile
|
||||
if (blanklines < 2)
|
||||
print $0 > cfile
|
||||
}
|
||||
}
|
||||
END {
|
||||
# print out the match tables
|
||||
|
||||
printf("\n") > cfile
|
||||
|
||||
for (i = 1; i <= ndriver; i++) {
|
||||
printf("/* %s */\n", driver[i, 2]) > cfile
|
||||
printf("static const char *isapnp_%s_devlogic[] = {\n",
|
||||
driver[i, 1]) > cfile
|
||||
for (j = 1; j <= nlogicals; j++) {
|
||||
if (logicals[j, 1] == driver[i, 1]) {
|
||||
printf("\t\"%s\",\t/* %s */\n", logicals[j, 2],
|
||||
logicals[j, 3]) > cfile
|
||||
}
|
||||
}
|
||||
printf("\tNULL\n};\n") > cfile
|
||||
printf("static const char *isapnp_%s_devcompat[] = {\n",
|
||||
driver[i, 1]) > cfile
|
||||
for (j = 1; j <= ncompats; j++) {
|
||||
if (compats[j, 1] == driver[i, 1]) {
|
||||
printf("\t\"%s\",\t/* %s */\n", compats[j, 2],
|
||||
compats[j, 3]) > cfile
|
||||
}
|
||||
}
|
||||
printf("\tNULL\n};\n") > cfile
|
||||
printf("const struct isapnp_devinfo isapnp_%s_devinfo = {\n",
|
||||
driver[i, 1]) > cfile
|
||||
printf("\tisapnp_%s_devlogic, isapnp_%s_devcompat\n};\n",
|
||||
driver[i, 1], driver[i, 1]) > cfile
|
||||
printf("\n") > cfile;
|
||||
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: files.isapnp,v 1.14 1998/07/21 17:36:06 drochner Exp $
|
||||
# $NetBSD: files.isapnp,v 1.15 1998/07/23 19:30:44 christos Exp $
|
||||
#
|
||||
# Config file and device description for machine-independent ISAPnP code.
|
||||
# Included by ports that need it.
|
||||
|
@ -12,6 +12,7 @@ attach isapnp at isa
|
|||
file dev/isapnp/isapnp.c isapnp
|
||||
file dev/isapnp/isapnpdebug.c isapnp
|
||||
file dev/isapnp/isapnpres.c isapnp
|
||||
file dev/isapnp/isapnpdevs.c isapnp
|
||||
|
||||
# 3Com 3C509B
|
||||
attach ep at isapnp with ep_isapnp
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "guspnp.h"
|
||||
#if NGUSPNP > 0
|
||||
|
||||
/* $NetBSD: gus_isapnp.c,v 1.8 1998/06/09 07:28:30 thorpej Exp $ */
|
||||
/* $NetBSD: gus_isapnp.c,v 1.9 1998/07/23 19:30:45 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -64,6 +64,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
|
||||
#include <dev/ic/interwavevar.h>
|
||||
|
@ -133,14 +134,11 @@ gus_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
if (!isapnp_devmatch(aux, &isapnp_gus_devinfo))
|
||||
return 0;
|
||||
|
||||
if (!strcmp(ipa->ipa_devlogic, "GRV0000")) {
|
||||
gus_0 = 1;
|
||||
return 1;
|
||||
/* we'll add support for other logical devices later */
|
||||
}
|
||||
return 0;
|
||||
gus_0 = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: i82365_isapnp.c,v 1.3 1998/06/23 04:19:23 sommerfe Exp $ */
|
||||
/* $NetBSD: i82365_isapnp.c,v 1.4 1998/07/23 19:30:45 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998 Bill Sommerfeld. All rights reserved.
|
||||
|
@ -48,6 +48,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/pcmcia/pcmciareg.h>
|
||||
#include <dev/pcmcia/pcmciavar.h>
|
||||
|
@ -96,11 +97,7 @@ pcic_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "PNP0E00"))
|
||||
return 0;
|
||||
return 1;
|
||||
return isapnp_devmatch(aux, &isapnp_pcic_devinfo);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_ep_isapnp.c,v 1.14 1998/07/05 06:49:14 jonathan Exp $ */
|
||||
/* $NetBSD: if_ep_isapnp.c,v 1.15 1998/07/23 19:30:45 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997 Jonathan Stone <jonathan@NetBSD.org>
|
||||
|
@ -74,6 +74,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/ic/elink3var.h>
|
||||
#include <dev/ic/elink3reg.h>
|
||||
|
@ -91,16 +92,7 @@ ep_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "TCM5090") &&
|
||||
strcmp(ipa->ipa_devlogic, "TCM5091") &&
|
||||
strcmp(ipa->ipa_devlogic, "TCM5094") &&
|
||||
strcmp(ipa->ipa_devlogic, "TCM5095") &&
|
||||
strcmp(ipa->ipa_devlogic, "TCM5098"))
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
return isapnp_devmatch(aux, &isapnp_ep_devinfo);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_le_isapnp.c,v 1.14 1998/07/21 17:36:06 drochner Exp $ */
|
||||
/* $NetBSD: if_le_isapnp.c,v 1.15 1998/07/23 19:30:45 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -112,6 +112,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/ic/lancereg.h>
|
||||
#include <dev/ic/lancevar.h>
|
||||
|
@ -131,14 +132,6 @@ static void le_isapnp_wrcsr __P((struct lance_softc *, u_int16_t, u_int16_t));
|
|||
static u_int16_t le_isapnp_rdcsr __P((struct lance_softc *, u_int16_t));
|
||||
|
||||
|
||||
/*
|
||||
* Names accepted by the match routine.
|
||||
*/
|
||||
static char *if_le_isapnp_devnames[] = {
|
||||
"TKN0010",
|
||||
0
|
||||
};
|
||||
|
||||
#define LE_ISAPNP_MEMSIZE 16384
|
||||
|
||||
static void
|
||||
|
@ -175,14 +168,7 @@ le_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
char **card_name = &if_le_isapnp_devnames[0];
|
||||
|
||||
while (*card_name)
|
||||
if(!strcmp(ipa->ipa_devlogic, *card_name++))
|
||||
return(1);
|
||||
|
||||
return (0);
|
||||
return isapnp_devmatch(ipa, &isapnp_le_dev);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_ne_isapnp.c,v 1.6 1998/07/05 06:49:14 jonathan Exp $ */
|
||||
/* $NetBSD: if_ne_isapnp.c,v 1.7 1998/07/23 19:30:45 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -87,6 +87,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
static int ne_isapnp_match __P((struct device *, struct cfdata *, void *));
|
||||
static void ne_isapnp_attach __P((struct device *, struct device *, void *));
|
||||
|
@ -102,38 +103,13 @@ struct cfattach ne_isapnp_ca = {
|
|||
sizeof(struct ne_isapnp_softc), ne_isapnp_match, ne_isapnp_attach
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Names accepted by the match routine.
|
||||
*/
|
||||
static const struct ne_pnpid {
|
||||
const char *id_devlogic;
|
||||
const char *id_devcompat;
|
||||
} if_ne_isapnp_pnpids[] = {
|
||||
{ NULL, "PNP80D6" }, /* Digital DE305 ISAPnP */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
static int
|
||||
ne_isapnp_match(
|
||||
struct device *parent,
|
||||
struct cfdata *match,
|
||||
void *aux)
|
||||
ne_isapnp_match(parent, match, aux)
|
||||
struct device *parent;
|
||||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
const struct ne_pnpid *pnpid = if_ne_isapnp_pnpids;
|
||||
|
||||
while (pnpid->id_devlogic != NULL || pnpid->id_devcompat != NULL) {
|
||||
if (pnpid->id_devlogic != NULL
|
||||
&& !strcmp(ipa->ipa_devlogic, pnpid->id_devlogic))
|
||||
return(1);
|
||||
if (pnpid->id_devcompat != NULL
|
||||
&& !strcmp(ipa->ipa_devcompat, pnpid->id_devcompat))
|
||||
return(1);
|
||||
pnpid++;
|
||||
}
|
||||
|
||||
return (0);
|
||||
return isapnp_devmatch(aux, &isapnp_ne_devinfo);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: isapnp.c,v 1.19 1998/06/09 07:28:31 thorpej Exp $ */
|
||||
/* $NetBSD: isapnp.c,v 1.20 1998/07/23 19:30:45 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 Christos Zoulas. All rights reserved.
|
||||
|
@ -45,6 +45,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
static void isapnp_init __P((struct isapnp_softc *));
|
||||
static __inline u_char isapnp_shift_bit __P((struct isapnp_softc *));
|
||||
|
@ -569,6 +570,27 @@ isapnp_submatch(parent, match, aux)
|
|||
struct cfdata *cf = (struct cfdata *) match;
|
||||
return ((*cf->cf_attach->ca_match)(parent, match, aux));
|
||||
}
|
||||
|
||||
/* isapnp_devmatch():
|
||||
* Match a probed device with the information from the driver
|
||||
*/
|
||||
int
|
||||
isapnp_devmatch(ipa, dinfo)
|
||||
const struct isapnp_attach_args *ipa;
|
||||
const struct isapnp_devinfo *dinfo;
|
||||
{
|
||||
const char *const *name;
|
||||
|
||||
for (name = dinfo->devlogic; *name; name++)
|
||||
if (strcmp(*name, ipa->ipa_devlogic) == 0)
|
||||
return 1;
|
||||
|
||||
for (name = dinfo->devcompat; *name; name++)
|
||||
if (strcmp(*name, ipa->ipa_devcompat) == 0)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -594,7 +616,7 @@ isapnp_find(sc, all)
|
|||
sc->sc_read_port = p;
|
||||
if (isapnp_map_readport(sc))
|
||||
continue;
|
||||
DPRINTF(("%s: Trying port %x\n", sc->sc_dev.dv_xname, p));
|
||||
DPRINTF(("%s: Trying port %x\r", sc->sc_dev.dv_xname, p));
|
||||
if (isapnp_findcard(sc))
|
||||
break;
|
||||
isapnp_unmap_readport(sc);
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
$NetBSD: isapnpdevs,v 1.1 1998/07/23 19:30:45 christos Exp $
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998, Christos Zoulas
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Christos Zoulas
|
||||
* for the NetBSD Project.
|
||||
* 4. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* List of known drivers
|
||||
*/
|
||||
driver aic Adaptec SCSI
|
||||
driver com National Semiconductor Serial
|
||||
driver ep 3Com 3CXXX Ethernet
|
||||
driver joy Generic Joystick
|
||||
driver gus Gravis Ultrasound
|
||||
driver le Lance Ethernet
|
||||
driver ne NE2000 Ethernet
|
||||
driver pcic PCMCIA bridge
|
||||
driver sb Creative Soundblaster
|
||||
driver wdc Western Digital Disk Controller
|
||||
driver wss Microsoft Sound System
|
||||
driver ym Yamaha Sound
|
||||
|
||||
/*
|
||||
* aic
|
||||
*/
|
||||
devlogic aic ADP1520 Adaptec AHA-1520B
|
||||
|
||||
/*
|
||||
* com
|
||||
*/
|
||||
devlogic com BDP3336 Best Data Prods. 336F
|
||||
devlogic com OZO8039 Zoom 56k flex
|
||||
devlogic com BRI1400 Boca 33.6 PnP
|
||||
devlogic com ROK0010 Rockwell ?
|
||||
devlogic com USR2070 USR Sportster 56k
|
||||
devcompat com PNP0500 Generic 8250/16450
|
||||
devcompat com PNP0501 Generic 16550A
|
||||
|
||||
/*
|
||||
* ep
|
||||
*/
|
||||
devlogic ep TCM5090 3Com 3c509B
|
||||
devlogic ep TCM5091 3Com 3c509B-1
|
||||
devlogic ep TCM5094 3Com 3c509B-4
|
||||
devlogic ep TCM5095 3Com 3c509B-5
|
||||
devlogic ep TCM5098 3Com 3c509B-8
|
||||
|
||||
/*
|
||||
* joy
|
||||
*/
|
||||
devlogic joy CSCA801 Terratec EWS64XL
|
||||
devlogic joy CTL7002 Creative Vibra16CL
|
||||
devlogic joy ESS0001 ESS1868
|
||||
devlogic joy OPT0001 OPTi Audio 16
|
||||
devlogic joy PNPB02F XXX broken GUS PnP
|
||||
devcompat joy PNPB02F generic
|
||||
|
||||
/*
|
||||
* gus
|
||||
*/
|
||||
devlogic gus GRV0000 Gravis Ultrasound
|
||||
|
||||
/*
|
||||
* le
|
||||
*/
|
||||
devlogic le TKN0010 Lance Ethernet
|
||||
|
||||
/*
|
||||
* ne
|
||||
*/
|
||||
devcompat ne PNP80D6 Digital DE305 ISAPnP
|
||||
|
||||
/*
|
||||
* pcic
|
||||
*/
|
||||
devcompat pcic PNP0E00 PCIC Compatible PCMCIA Bridge
|
||||
|
||||
/*
|
||||
* sb
|
||||
*/
|
||||
devlogic sb ADS7150 AD1815
|
||||
devlogic sb ADS7180 AD1816
|
||||
devlogic sb CTL0001 SB
|
||||
devlogic sb CTL0031 SB AWE32
|
||||
devlogic sb CTL0041 SB16 PnP (CT4131)
|
||||
devlogic sb CTL0043 SB16 PnP (CT4170)
|
||||
devlogic sb CTL0042 SB AWE64 Value
|
||||
devlogic sb CTL0044 SB AWE64 Gold
|
||||
devlogic sb CTL0045 SB AWE64 Value
|
||||
devlogic sb ESS1868 ESS1868
|
||||
devlogic sb OPT9250 Televideo card, Opti
|
||||
devcompat sb PNPB000 Generic SB 1.5
|
||||
devcompat sb PNPB001 Generic SB 2.0
|
||||
devcompat sb PNPB002 Generic SB Pro
|
||||
devcompat sb PNPB003 Generic SB 16
|
||||
|
||||
/*
|
||||
* wdc
|
||||
*/
|
||||
devcompat wdc PNP0600 Western Digital Compatible Controller
|
||||
|
||||
/*
|
||||
* wss
|
||||
*/
|
||||
devlogic wss CSC0000 Windows Sound System
|
||||
|
||||
/*
|
||||
* ym
|
||||
*/
|
||||
devlogic ym YMH0021 OPL3-SA3
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: isapnpvar.h,v 1.8 1998/06/09 00:05:19 thorpej Exp $ */
|
||||
/* $NetBSD: isapnpvar.h,v 1.9 1998/07/23 19:30:46 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 Christos Zoulas. All rights reserved.
|
||||
|
@ -180,6 +180,11 @@ int isapnp_config __P((bus_space_tag_t, bus_space_tag_t,
|
|||
struct isapnp_attach_args *));
|
||||
void isapnp_unconfig __P((bus_space_tag_t, bus_space_tag_t,
|
||||
struct isapnp_attach_args *));
|
||||
#ifdef _KERNEL
|
||||
struct isapnp_devinfo;
|
||||
int isapnp_devmatch __P((const struct isapnp_attach_args *,
|
||||
const struct isapnp_devinfo *));
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_ISAPNP
|
||||
void isapnp_print_mem __P((const char *, const struct isapnp_region *));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sb_isapnp.c,v 1.26 1998/06/29 22:42:32 thorpej Exp $ */
|
||||
/* $NetBSD: sb_isapnp.c,v 1.27 1998/07/23 19:30:46 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991-1993 Regents of the University of California.
|
||||
|
@ -53,6 +53,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/isa/sbreg.h>
|
||||
#include <dev/isa/sbvar.h>
|
||||
|
@ -79,30 +80,10 @@ sb_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "ADS7150") && /* AD1815 */
|
||||
strcmp(ipa->ipa_devlogic, "ADS7180") && /* AD1816 */
|
||||
strcmp(ipa->ipa_devlogic, "CTL0001") &&
|
||||
strcmp(ipa->ipa_devlogic, "CTL0031") && /* SB AWE32 */
|
||||
strcmp(ipa->ipa_devlogic, "CTL0041") && /* SB16 PnP (CT4131) */
|
||||
strcmp(ipa->ipa_devlogic, "CTL0043") && /* SB16 PnP (CT4170) */
|
||||
strcmp(ipa->ipa_devlogic, "CTL0042") && /* SB AWE64 Value */
|
||||
strcmp(ipa->ipa_devlogic, "CTL0044") && /* SB AWE64 Gold */
|
||||
strcmp(ipa->ipa_devlogic, "CTL0045") && /* SB AWE64 Value */
|
||||
strcmp(ipa->ipa_devlogic, "ESS1868") &&
|
||||
strcmp(ipa->ipa_devlogic, "OPT9250") && /* Televideo card, Opti */
|
||||
strcmp(ipa->ipa_devcompat, "PNPB000") && /* generic SB 1.5 */
|
||||
strcmp(ipa->ipa_devcompat, "PNPB001") && /* generic SB 2.0 */
|
||||
strcmp(ipa->ipa_devcompat, "PNPB002") && /* generic SB Pro */
|
||||
strcmp(ipa->ipa_devcompat, "PNPB003")) /* generic SB 16 */
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
return isapnp_devmatch(aux, &isapnp_sb_devinfo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Attach hardware to driver, attach hardware driver to audio
|
||||
* pseudo-device driver.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: wdc_isapnp.c,v 1.4 1998/06/09 07:28:31 thorpej Exp $ */
|
||||
/* $NetBSD: wdc_isapnp.c,v 1.5 1998/07/23 19:30:46 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997 Charles M. Hannum. All rights reserved.
|
||||
|
@ -47,6 +47,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/ic/wdcreg.h>
|
||||
#include <dev/ic/wdcvar.h>
|
||||
|
@ -78,12 +79,7 @@ wdc_isapnp_probe(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devcompat, "PNP0600"))
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
return isapnp_devmatch(aux, &isapnp_wdc_devinfo);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: wss_isapnp.c,v 1.1 1998/06/30 17:28:00 augustss Exp $ */
|
||||
/* $NetBSD: wss_isapnp.c,v 1.2 1998/07/23 19:30:46 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -53,6 +53,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/isa/ad1848var.h>
|
||||
#include <dev/isa/madreg.h>
|
||||
|
@ -80,12 +81,7 @@ wss_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "CSC0000") == 0)
|
||||
return (1);
|
||||
|
||||
return (0);
|
||||
return isapnp_devmatch(aux, &isapnp_wss_dev);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ym_isapnp.c,v 1.3 1998/06/09 00:05:20 thorpej Exp $ */
|
||||
/* $NetBSD: ym_isapnp.c,v 1.4 1998/07/23 19:30:46 christos Exp $ */
|
||||
|
||||
|
||||
/*
|
||||
|
@ -58,6 +58,7 @@
|
|||
|
||||
#include <dev/isapnp/isapnpreg.h>
|
||||
#include <dev/isapnp/isapnpvar.h>
|
||||
#include <dev/isapnp/isapnpdevs.h>
|
||||
|
||||
#include <dev/ic/ad1848reg.h>
|
||||
#include <dev/isa/ad1848var.h>
|
||||
|
@ -89,12 +90,7 @@ ym_isapnp_match(parent, match, aux)
|
|||
struct cfdata *match;
|
||||
void *aux;
|
||||
{
|
||||
struct isapnp_attach_args *ipa = aux;
|
||||
|
||||
if (strcmp(ipa->ipa_devlogic, "YMH0021")) /* OPL3-SA3 */
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
return isapnp_devmatch(aux, &isapnp_ym_devinfo);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue