From c8dab10220342f074ef980af8cc1b7d94a761fdf Mon Sep 17 00:00:00 2001 From: Takeshi Shibagaki Date: Sun, 2 Sep 2001 06:27:07 +0000 Subject: Update the fe driver to probe and attach under a NEWCARD kernel. Reviewed by: imp Obtained from: NetBSD --- sys/dev/fe/if_fe.c | 4 --- sys/dev/fe/if_fe_isa.c | 4 --- sys/dev/fe/if_fe_pccard.c | 72 +++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 64 insertions(+), 16 deletions(-) (limited to 'sys/dev/fe') diff --git a/sys/dev/fe/if_fe.c b/sys/dev/fe/if_fe.c index c11cbc6fcd8f..11ce67f8d403 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 #include #include diff --git a/sys/dev/fe/if_fe_isa.c b/sys/dev/fe/if_fe_isa.c index 56bef05da7ba..594557f914fe 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 #include #include diff --git a/sys/dev/fe/if_fe_pccard.c b/sys/dev/fe/if_fe_pccard.c index 728a62e49e16..901257af2802 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 #include #include @@ -49,6 +45,8 @@ #include #include +#include +#include "card_if.h" #include /* @@ -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 } }; -- cgit v1.3