diff options
| author | Brooks Davis <brooks@FreeBSD.org> | 2003-10-30 19:45:58 +0000 |
|---|---|---|
| committer | Brooks Davis <brooks@FreeBSD.org> | 2003-10-30 19:45:58 +0000 |
| commit | c020a92f9f30edcefb75c81b8882ada6e6d50b8d (patch) | |
| tree | 7d01fdeb4d415c1bae5c7bd03a9a32e71d3a786d /sys/dev/cs/if_cs.c | |
| parent | fbd00896e28474899e78fad8321664333122c98f (diff) | |
Notes
Diffstat (limited to 'sys/dev/cs/if_cs.c')
| -rw-r--r-- | sys/dev/cs/if_cs.c | 132 |
1 files changed, 65 insertions, 67 deletions
diff --git a/sys/dev/cs/if_cs.c b/sys/dev/cs/if_cs.c index f2892db5ca78..f09bb3deeb1e 100644 --- a/sys/dev/cs/if_cs.c +++ b/sys/dev/cs/if_cs.c @@ -582,85 +582,83 @@ cs_attach(struct cs_softc *sc, int unit, int flags) cs_stop( sc ); - if (!ifp->if_name) { - ifp->if_softc=sc; - ifp->if_unit=unit; - ifp->if_name="cs"; - ifp->if_output=ether_output; - ifp->if_start=cs_start; - ifp->if_ioctl=cs_ioctl; - ifp->if_watchdog=cs_watchdog; - ifp->if_init=cs_init; - ifp->if_snd.ifq_maxlen= IFQ_MAXLEN; - /* - * MIB DATA - */ - /* - ifp->if_linkmib=&sc->mibdata; - ifp->if_linkmiblen=sizeof sc->mibdata; - */ + ifp->if_softc=sc; + ifp->if_unit=unit; + ifp->if_name="cs"; + ifp->if_output=ether_output; + ifp->if_start=cs_start; + ifp->if_ioctl=cs_ioctl; + ifp->if_watchdog=cs_watchdog; + ifp->if_init=cs_init; + ifp->if_snd.ifq_maxlen= IFQ_MAXLEN; + /* + * MIB DATA + */ + /* + ifp->if_linkmib=&sc->mibdata; + ifp->if_linkmiblen=sizeof sc->mibdata; + */ - ifp->if_flags=(IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST ); + ifp->if_flags=(IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST ); - /* - * this code still in progress (DMA support) - * - - sc->recv_ring=malloc(CS_DMA_BUFFER_SIZE<<1, M_DEVBUF, M_NOWAIT); - if (sc->recv_ring == NULL) { - log(LOG_ERR,CS_NAME - "%d: Couldn't allocate memory for NIC\n", unit); - return(0); - } - if ((sc->recv_ring-(sc->recv_ring & 0x1FFFF)) - < (128*1024-CS_DMA_BUFFER_SIZE)) - sc->recv_ring+=16*1024; + /* + * this code still in progress (DMA support) + * - */ + sc->recv_ring=malloc(CS_DMA_BUFFER_SIZE<<1, M_DEVBUF, M_NOWAIT); + if (sc->recv_ring == NULL) { + log(LOG_ERR,CS_NAME + "%d: Couldn't allocate memory for NIC\n", unit); + return(0); + } + if ((sc->recv_ring-(sc->recv_ring & 0x1FFFF)) + < (128*1024-CS_DMA_BUFFER_SIZE)) + sc->recv_ring+=16*1024; - sc->buffer=malloc(ETHER_MAX_LEN-ETHER_CRC_LEN,M_DEVBUF,M_NOWAIT); - if (sc->buffer == NULL) { - if_printf(ifp, "Couldn't allocate memory for NIC\n"); - return(0); - } + */ - /* - * Initialize the media structures. - */ - ifmedia_init(&sc->media, 0, cs_mediachange, cs_mediastatus); + sc->buffer=malloc(ETHER_MAX_LEN-ETHER_CRC_LEN,M_DEVBUF,M_NOWAIT); + if (sc->buffer == NULL) { + if_printf(ifp, "Couldn't allocate memory for NIC\n"); + return(0); + } - if (sc->adapter_cnf & A_CNF_10B_T) { - ifmedia_add(&sc->media, IFM_ETHER|IFM_10_T, 0, NULL); - if (sc->chip_type != CS8900) { - ifmedia_add(&sc->media, - IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL); - ifmedia_add(&sc->media, - IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL); - } - } + /* + * Initialize the media structures. + */ + ifmedia_init(&sc->media, 0, cs_mediachange, cs_mediastatus); - if (sc->adapter_cnf & A_CNF_10B_2) - ifmedia_add(&sc->media, IFM_ETHER|IFM_10_2, 0, NULL); + if (sc->adapter_cnf & A_CNF_10B_T) { + ifmedia_add(&sc->media, IFM_ETHER|IFM_10_T, 0, NULL); + if (sc->chip_type != CS8900) { + ifmedia_add(&sc->media, + IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL); + ifmedia_add(&sc->media, + IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL); + } + } - if (sc->adapter_cnf & A_CNF_AUI) - ifmedia_add(&sc->media, IFM_ETHER|IFM_10_5, 0, NULL); + if (sc->adapter_cnf & A_CNF_10B_2) + ifmedia_add(&sc->media, IFM_ETHER|IFM_10_2, 0, NULL); - if (sc->adapter_cnf & A_CNF_MEDIA) - ifmedia_add(&sc->media, IFM_ETHER|IFM_AUTO, 0, NULL); + if (sc->adapter_cnf & A_CNF_AUI) + ifmedia_add(&sc->media, IFM_ETHER|IFM_10_5, 0, NULL); - /* Set default media from EEPROM */ - switch (sc->adapter_cnf & A_CNF_MEDIA_TYPE) { - case A_CNF_MEDIA_AUTO: media = IFM_ETHER|IFM_AUTO; break; - case A_CNF_MEDIA_10B_T: media = IFM_ETHER|IFM_10_T; break; - case A_CNF_MEDIA_10B_2: media = IFM_ETHER|IFM_10_2; break; - case A_CNF_MEDIA_AUI: media = IFM_ETHER|IFM_10_5; break; - default: if_printf(ifp, "adapter has no media\n"); - } - ifmedia_set(&sc->media, media); - cs_mediaset(sc, media); + if (sc->adapter_cnf & A_CNF_MEDIA) + ifmedia_add(&sc->media, IFM_ETHER|IFM_AUTO, 0, NULL); - ether_ifattach(ifp, sc->arpcom.ac_enaddr); + /* Set default media from EEPROM */ + switch (sc->adapter_cnf & A_CNF_MEDIA_TYPE) { + case A_CNF_MEDIA_AUTO: media = IFM_ETHER|IFM_AUTO; break; + case A_CNF_MEDIA_10B_T: media = IFM_ETHER|IFM_10_T; break; + case A_CNF_MEDIA_10B_2: media = IFM_ETHER|IFM_10_2; break; + case A_CNF_MEDIA_AUI: media = IFM_ETHER|IFM_10_5; break; + default: if_printf(ifp, "adapter has no media\n"); } + ifmedia_set(&sc->media, media); + cs_mediaset(sc, media); + + ether_ifattach(ifp, sc->arpcom.ac_enaddr); if (bootverbose) if_printf(ifp, "ethernet address %6D\n", |
