diff options
author | shiba <shiba@FreeBSD.org> | 2001-09-02 06:27:07 +0000 |
---|---|---|
committer | shiba <shiba@FreeBSD.org> | 2001-09-02 06:27:07 +0000 |
commit | 5536f31c228e3fc5289d15766305f37ab94cc683 (patch) | |
tree | d9316caf31f7af98b133bf925d062d456dfd238c /sys/dev/fe | |
parent | 95e0d45f1852203f5874439c712de8460546a2f3 (diff) | |
download | FreeBSD-src-5536f31c228e3fc5289d15766305f37ab94cc683.zip FreeBSD-src-5536f31c228e3fc5289d15766305f37ab94cc683.tar.gz |
Update the fe driver to probe and attach under a NEWCARD kernel.
Reviewed by: imp
Obtained from: NetBSD
Diffstat (limited to 'sys/dev/fe')
-rw-r--r-- | sys/dev/fe/if_fe.c | 4 | ||||
-rw-r--r-- | sys/dev/fe/if_fe_isa.c | 4 | ||||
-rw-r--r-- | sys/dev/fe/if_fe_pccard.c | 72 |
3 files changed, 64 insertions, 16 deletions
diff --git a/sys/dev/fe/if_fe.c b/sys/dev/fe/if_fe.c index c11cbc6..11ce67f 100644 --- a/sys/dev/fe/if_fe.c +++ b/sys/dev/fe/if_fe.c @@ -68,10 +68,6 @@ * o To test new-bus frontend. */ -#include "opt_fe.h" -#include "opt_inet.h" -#include "opt_ipx.h" - #include <sys/param.h> #include <sys/systm.h> #include <sys/socket.h> diff --git a/sys/dev/fe/if_fe_isa.c b/sys/dev/fe/if_fe_isa.c index 56bef05..594557f 100644 --- a/sys/dev/fe/if_fe_isa.c +++ b/sys/dev/fe/if_fe_isa.c @@ -22,10 +22,6 @@ * $FreeBSD$ */ -#include "opt_fe.h" -#include "opt_inet.h" -#include "opt_ipx.h" - #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> diff --git a/sys/dev/fe/if_fe_pccard.c b/sys/dev/fe/if_fe_pccard.c index 728a62e..901257a 100644 --- a/sys/dev/fe/if_fe_pccard.c +++ b/sys/dev/fe/if_fe_pccard.c @@ -22,10 +22,6 @@ * $FreeBSD$ */ -#include "opt_fe.h" -#include "opt_inet.h" -#include "opt_ipx.h" - #include <sys/param.h> #include <sys/kernel.h> #include <sys/socket.h> @@ -49,6 +45,8 @@ #include <dev/fe/if_fevar.h> #include <dev/pccard/pccardvar.h> +#include <dev/pccard/pccarddevs.h> +#include "card_if.h" #include <pccard/cardinfo.h> /* @@ -57,12 +55,70 @@ static int fe_pccard_probe(device_t); static int fe_pccard_attach(device_t); static int fe_pccard_detach(device_t); +static int fe_pccard_match(device_t); + +static const struct fe_pccard_product { + struct pccard_product mpp_product; + u_int32_t mpp_ioalign; /* required alignment */ + int mpp_enet_maddr; +} fe_pccard_products[] = { + { { PCCARD_STR_TDK_LAK_CD021BX, PCCARD_VENDOR_TDK, + PCCARD_PRODUCT_TDK_LAK_CD021BX, 0 }, + 0, -1 }, + + { { PCCARD_STR_TDK_LAK_CF010, PCCARD_VENDOR_TDK, + PCCARD_PRODUCT_TDK_LAK_CF010, 0 }, + 0, -1 }, + +#if 0 /* XXX 86960-based? */ + { { PCCARD_STR_TDK_LAK_DFL9610, PCCARD_VENDOR_TDK, + PCCARD_PRODUCT_TDK_LAK_DFL9610, 1 }, + 0, -1 }, +#endif + + { { PCCARD_STR_CONTEC_CNETPC, PCCARD_VENDOR_CONTEC, + PCCARD_PRODUCT_CONTEC_CNETPC, 0 }, + 0, -1 }, + + { { PCCARD_STR_FUJITSU_LA501, PCCARD_VENDOR_FUJITSU, + PCCARD_PRODUCT_FUJITSU_LA501, 0 }, + 0x20, -1 }, + + { { PCCARD_STR_FUJITSU_LA10S, PCCARD_VENDOR_FUJITSU, + PCCARD_PRODUCT_FUJITSU_LA10S, 0 }, + 0, -1 }, + + { { PCCARD_STR_RATOC_REX_R280, PCCARD_VENDOR_RATOC, + PCCARD_PRODUCT_RATOC_REX_R280, 0 }, + 0, 0x1fc }, + + { { NULL } } +}; + +static int +fe_pccard_match(device_t dev) +{ + const struct pccard_product *pp; + + if ((pp = pccard_product_lookup(dev, + (const struct pccard_product *)fe_pccard_products, + sizeof(fe_pccard_products[0]), NULL)) != NULL) { + device_set_desc(dev, pp->pp_name); + return 0; + } + return EIO; +} static device_method_t fe_pccard_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, fe_pccard_probe), - DEVMETHOD(device_attach, fe_pccard_attach), - DEVMETHOD(device_detach, fe_pccard_detach), + /* Device interface */ + DEVMETHOD(device_probe, pccard_compat_probe), + DEVMETHOD(device_attach, pccard_compat_attach), + DEVMETHOD(device_detach, fe_pccard_detach), + + /* Card interface */ + DEVMETHOD(card_compat_match, fe_pccard_match), + DEVMETHOD(card_compat_probe, fe_pccard_probe), + DEVMETHOD(card_compat_attach, fe_pccard_attach), { 0, 0 } }; |