if_de.c (34317) | if_de.c (36945) |
---|---|
1/* $NetBSD: if_de.c,v 1.62 1998/02/11 01:28:22 thorpej Exp $ */ 2/* $Id: if_de.c,v 1.81 1998/03/08 09:58:13 julian Exp $ */ | 1/* $NetBSD: if_de.c,v 1.69 1998/06/08 06:55:55 thorpej Exp $ */ 2/* $Id: if_de.c,v 1.82 1998/03/08 16:53:54 peter Exp $ */ |
3 4/*- 5 * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com) 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: --- 118 unchanged lines hidden (view full) --- 129#endif /* __bsdi__ */ 130 131#if defined(__NetBSD__) 132#include <net/if_ether.h> 133#if defined(INET) 134#include <netinet/if_inarp.h> 135#endif 136#include <machine/bus.h> | 3 4/*- 5 * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com) 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: --- 118 unchanged lines hidden (view full) --- 129#endif /* __bsdi__ */ 130 131#if defined(__NetBSD__) 132#include <net/if_ether.h> 133#if defined(INET) 134#include <netinet/if_inarp.h> 135#endif 136#include <machine/bus.h> |
137#if defined(__alpha__) | |
138#include <machine/intr.h> | 137#include <machine/intr.h> |
139#endif | |
140#include <dev/pci/pcireg.h> 141#include <dev/pci/pcivar.h> 142#include <dev/ic/dc21040reg.h> 143#define DEVAR_INCLUDE "dev/pci/if_devar.h" 144#endif /* __NetBSD__ */ 145 146/* 147 * Intel CPUs should use I/O mapped access. --- 517 unchanged lines hidden (view full) --- 665 666 if (event == TULIP_MEDIAPOLL_LINKFAIL) { 667 if (sc->tulip_probe_state == TULIP_PROBE_INACTIVE) { 668 if (TULIP_DO_AUTOSENSE(sc)) { 669#if defined(TULIP_DEBUG) 670 sc->tulip_dbg.dbg_link_failures++; 671#endif 672 sc->tulip_media = TULIP_MEDIA_UNKNOWN; | 138#include <dev/pci/pcireg.h> 139#include <dev/pci/pcivar.h> 140#include <dev/ic/dc21040reg.h> 141#define DEVAR_INCLUDE "dev/pci/if_devar.h" 142#endif /* __NetBSD__ */ 143 144/* 145 * Intel CPUs should use I/O mapped access. --- 517 unchanged lines hidden (view full) --- 663 664 if (event == TULIP_MEDIAPOLL_LINKFAIL) { 665 if (sc->tulip_probe_state == TULIP_PROBE_INACTIVE) { 666 if (TULIP_DO_AUTOSENSE(sc)) { 667#if defined(TULIP_DEBUG) 668 sc->tulip_dbg.dbg_link_failures++; 669#endif 670 sc->tulip_media = TULIP_MEDIA_UNKNOWN; |
673 tulip_reset(sc); /* restart probe */ | 671 if (sc->tulip_if.if_flags & IFF_UP) 672 tulip_reset(sc); /* restart probe */ |
674 } 675 return; 676 } 677#if defined(TULIP_DEBUG) 678 sc->tulip_dbg.dbg_link_pollintrs++; 679#endif 680 } 681 --- 40 unchanged lines hidden (view full) --- 722 sc->tulip_flags &= ~TULIP_TXPROBE_ACTIVE; 723 return; 724 } 725 726 /* 727 * If we really transmitted a packet, then that's the media we'll use. 728 */ 729 if (event == TULIP_MEDIAPOLL_TXPROBE_OK || event == TULIP_MEDIAPOLL_LINKPASS) { | 673 } 674 return; 675 } 676#if defined(TULIP_DEBUG) 677 sc->tulip_dbg.dbg_link_pollintrs++; 678#endif 679 } 680 --- 40 unchanged lines hidden (view full) --- 721 sc->tulip_flags &= ~TULIP_TXPROBE_ACTIVE; 722 return; 723 } 724 725 /* 726 * If we really transmitted a packet, then that's the media we'll use. 727 */ 728 if (event == TULIP_MEDIAPOLL_TXPROBE_OK || event == TULIP_MEDIAPOLL_LINKPASS) { |
730 if (event == TULIP_MEDIAPOLL_LINKPASS) | 729 if (event == TULIP_MEDIAPOLL_LINKPASS) { 730 /* XXX Check media status just to be sure */ |
731 sc->tulip_probe_media = TULIP_MEDIA_10BASET; 732#if defined(TULIP_DEBUG) | 731 sc->tulip_probe_media = TULIP_MEDIA_10BASET; 732#if defined(TULIP_DEBUG) |
733 else | 733 } else { |
734 sc->tulip_dbg.dbg_txprobes_ok[sc->tulip_probe_media]++; 735#endif | 734 sc->tulip_dbg.dbg_txprobes_ok[sc->tulip_probe_media]++; 735#endif |
736 } |
|
736 tulip_linkup(sc, sc->tulip_probe_media); 737 tulip_timeout(sc); 738 return; 739 } 740 741 if (sc->tulip_probe_state == TULIP_PROBE_GPRTEST) { 742#if defined(TULIP_DO_GPR_SENSE) 743 /* --- 202 unchanged lines hidden (view full) --- 946{ 947 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_THRSHLD160 948 |TULIP_CMD_BACKOFFCTR; 949 sc->tulip_if.if_baudrate = 10000000; 950 951 if (media == TULIP_MEDIA_10BASET || media == TULIP_MEDIA_UNKNOWN) { 952 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[0], 21040, 10BASET); 953 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[1], 21040, 10BASET_FD); | 737 tulip_linkup(sc, sc->tulip_probe_media); 738 tulip_timeout(sc); 739 return; 740 } 741 742 if (sc->tulip_probe_state == TULIP_PROBE_GPRTEST) { 743#if defined(TULIP_DO_GPR_SENSE) 744 /* --- 202 unchanged lines hidden (view full) --- 947{ 948 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_THRSHLD160 949 |TULIP_CMD_BACKOFFCTR; 950 sc->tulip_if.if_baudrate = 10000000; 951 952 if (media == TULIP_MEDIA_10BASET || media == TULIP_MEDIA_UNKNOWN) { 953 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[0], 21040, 10BASET); 954 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[1], 21040, 10BASET_FD); |
955 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL; |
|
954 } 955 956 if (media == TULIP_MEDIA_AUIBNC || media == TULIP_MEDIA_UNKNOWN) { 957 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[2], 21040, AUIBNC); 958 } 959 960 if (media == TULIP_MEDIA_UNKNOWN) { 961 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[3], 21040, EXTSIA); --- 94 unchanged lines hidden (view full) --- 1056 1057static void 1058tulip_21041_media_probe( 1059 tulip_softc_t * const sc) 1060{ 1061 sc->tulip_if.if_baudrate = 10000000; 1062 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_ENHCAPTEFFCT 1063 |TULIP_CMD_THRSHLD160|TULIP_CMD_BACKOFFCTR; | 956 } 957 958 if (media == TULIP_MEDIA_AUIBNC || media == TULIP_MEDIA_UNKNOWN) { 959 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[2], 21040, AUIBNC); 960 } 961 962 if (media == TULIP_MEDIA_UNKNOWN) { 963 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[3], 21040, EXTSIA); --- 94 unchanged lines hidden (view full) --- 1058 1059static void 1060tulip_21041_media_probe( 1061 tulip_softc_t * const sc) 1062{ 1063 sc->tulip_if.if_baudrate = 10000000; 1064 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_ENHCAPTEFFCT 1065 |TULIP_CMD_THRSHLD160|TULIP_CMD_BACKOFFCTR; |
1064 sc->tulip_intrmask |= TULIP_STS_LINKPASS; | 1066 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL; |
1065 tulip_21041_mediainfo_init(sc); 1066} 1067 1068static void 1069tulip_21041_media_poll( 1070 tulip_softc_t * const sc, 1071 const tulip_mediapoll_event_t event) 1072{ --- 991 unchanged lines hidden (view full) --- 2064 ((tulip_crc32(databuf, 126) & 0xFFFFU) ^ 0xFFFFU) == \ 2065 ((databuf)[126] | ((databuf)[127] << 8))) 2066 2067static unsigned 2068tulip_crc32( 2069 const unsigned char *databuf, 2070 size_t datalen) 2071{ | 1067 tulip_21041_mediainfo_init(sc); 1068} 1069 1070static void 1071tulip_21041_media_poll( 1072 tulip_softc_t * const sc, 1073 const tulip_mediapoll_event_t event) 1074{ --- 991 unchanged lines hidden (view full) --- 2066 ((tulip_crc32(databuf, 126) & 0xFFFFU) ^ 0xFFFFU) == \ 2067 ((databuf)[126] | ((databuf)[127] << 8))) 2068 2069static unsigned 2070tulip_crc32( 2071 const unsigned char *databuf, 2072 size_t datalen) 2073{ |
2072 u_int idx, bit, data, crc = 0xFFFFFFFFUL; | 2074 u_int idx, crc = 0xFFFFFFFFUL; 2075 static const u_int crctab[] = { 2076 0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 2077 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, 2078 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 2079 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c 2080 }; |
2073 | 2081 |
2074 for (idx = 0; idx < datalen; idx++) 2075 for (data = *databuf++, bit = 0; bit < 8; bit++, data >>= 1) 2076 crc = (crc >> 1) ^ (((crc ^ data) & 1) ? TULIP_CRC32_POLY : 0); | 2082 for (idx = 0; idx < datalen; idx++) { 2083 crc ^= *databuf++; 2084 crc = (crc >> 4) ^ crctab[crc & 0xf]; 2085 crc = (crc >> 4) ^ crctab[crc & 0xf]; 2086 } |
2077 return crc; 2078} 2079 2080static void 2081tulip_identify_dec_nic( 2082 tulip_softc_t * const sc) 2083{ 2084 strcpy(sc->tulip_boardid, "DEC "); --- 457 unchanged lines hidden (view full) --- 2542 TULIP_CSR_WRITE(sc, csr_gp, 0); 2543 2544 mi->mi_phyaddr = TULIP_MII_NOPHY; 2545 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) { 2546 DELAY(10000); 2547 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno); 2548 } 2549 if (mi->mi_phyaddr == TULIP_MII_NOPHY) { | 2087 return crc; 2088} 2089 2090static void 2091tulip_identify_dec_nic( 2092 tulip_softc_t * const sc) 2093{ 2094 strcpy(sc->tulip_boardid, "DEC "); --- 457 unchanged lines hidden (view full) --- 2552 TULIP_CSR_WRITE(sc, csr_gp, 0); 2553 2554 mi->mi_phyaddr = TULIP_MII_NOPHY; 2555 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) { 2556 DELAY(10000); 2557 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno); 2558 } 2559 if (mi->mi_phyaddr == TULIP_MII_NOPHY) { |
2560#if defined(TULIP_DEBUG) |
|
2550 printf(TULIP_PRINTF_FMT ": can't find phy %d\n", 2551 TULIP_PRINTF_ARGS, phyno); | 2561 printf(TULIP_PRINTF_FMT ": can't find phy %d\n", 2562 TULIP_PRINTF_ARGS, phyno); |
2563#endif |
|
2552 break; 2553 } 2554 sc->tulip_features |= TULIP_HAVE_MII; 2555 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2; 2556 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2; 2557 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2; 2558 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2; 2559 TULIP_MEDIAINFO_ADD_CAPABILITY(sc, mi, 100BASETX_FD); --- 30 unchanged lines hidden (view full) --- 2590 break; 2591 } 2592 case TULIP_MEDIA_AUI: { 2593 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, AUI); 2594 break; 2595 } 2596 case TULIP_MEDIA_10BASET: { 2597 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET); | 2564 break; 2565 } 2566 sc->tulip_features |= TULIP_HAVE_MII; 2567 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2; 2568 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2; 2569 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2; 2570 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2; 2571 TULIP_MEDIAINFO_ADD_CAPABILITY(sc, mi, 100BASETX_FD); --- 30 unchanged lines hidden (view full) --- 2602 break; 2603 } 2604 case TULIP_MEDIA_AUI: { 2605 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, AUI); 2606 break; 2607 } 2608 case TULIP_MEDIA_10BASET: { 2609 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET); |
2610 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL; |
|
2598 break; 2599 } 2600 case TULIP_MEDIA_10BASET_FD: { 2601 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET_FD); | 2611 break; 2612 } 2613 case TULIP_MEDIA_10BASET_FD: { 2614 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET_FD); |
2615 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL; |
|
2602 break; 2603 } 2604 default: { 2605 goto bad_media; 2606 } 2607 } 2608 } 2609 mi->mi_sia_gp_control = (dp[0] + dp[1] * 256) << 16; --- 29 unchanged lines hidden (view full) --- 2639 TULIP_CSR_WRITE(sc, csr_sia_general, 0); 2640 2641 mi->mi_phyaddr = TULIP_MII_NOPHY; 2642 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) { 2643 DELAY(10000); 2644 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno); 2645 } 2646 if (mi->mi_phyaddr == TULIP_MII_NOPHY) { | 2616 break; 2617 } 2618 default: { 2619 goto bad_media; 2620 } 2621 } 2622 } 2623 mi->mi_sia_gp_control = (dp[0] + dp[1] * 256) << 16; --- 29 unchanged lines hidden (view full) --- 2653 TULIP_CSR_WRITE(sc, csr_sia_general, 0); 2654 2655 mi->mi_phyaddr = TULIP_MII_NOPHY; 2656 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) { 2657 DELAY(10000); 2658 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno); 2659 } 2660 if (mi->mi_phyaddr == TULIP_MII_NOPHY) { |
2661#if defined(TULIP_DEBUG) |
|
2647 printf(TULIP_PRINTF_FMT ": can't find phy %d\n", 2648 TULIP_PRINTF_ARGS, phyno); | 2662 printf(TULIP_PRINTF_FMT ": can't find phy %d\n", 2663 TULIP_PRINTF_ARGS, phyno); |
2664#endif |
|
2649 break; 2650 } 2651 sc->tulip_features |= TULIP_HAVE_MII; 2652 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2; 2653 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2; 2654 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2; 2655 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2; 2656 mi->mi_mii_interrupt = dp[0] + dp[1] * 256; dp += 2; --- 25 unchanged lines hidden (view full) --- 2682 mi->mi_cmdmode = TULIP_SROM_2114X_CMDBITS(data); 2683 if (data & TULIP_SROM_2114X_NOINDICATOR) { 2684 mi->mi_actmask = 0; 2685 } else { 2686 mi->mi_default = (data & TULIP_SROM_2114X_DEFAULT) != 0; 2687 mi->mi_actmask = TULIP_SROM_2114X_BITPOS(data); 2688 mi->mi_actdata = (data & TULIP_SROM_2114X_POLARITY) ? 0 : mi->mi_actmask; 2689 } | 2665 break; 2666 } 2667 sc->tulip_features |= TULIP_HAVE_MII; 2668 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2; 2669 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2; 2670 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2; 2671 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2; 2672 mi->mi_mii_interrupt = dp[0] + dp[1] * 256; dp += 2; --- 25 unchanged lines hidden (view full) --- 2698 mi->mi_cmdmode = TULIP_SROM_2114X_CMDBITS(data); 2699 if (data & TULIP_SROM_2114X_NOINDICATOR) { 2700 mi->mi_actmask = 0; 2701 } else { 2702 mi->mi_default = (data & TULIP_SROM_2114X_DEFAULT) != 0; 2703 mi->mi_actmask = TULIP_SROM_2114X_BITPOS(data); 2704 mi->mi_actdata = (data & TULIP_SROM_2114X_POLARITY) ? 0 : mi->mi_actmask; 2705 } |
2706 if (TULIP_IS_MEDIA_TP(media)) 2707 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL; |
|
2690 mi++; 2691 break; 2692 } 2693#if 0 2694 case 5: { /* 21143 Reset block */ 2695 mi->mi_type = TULIP_MEDIAINFO_RESET; 2696 mi->mi_reset_length = *dp++; 2697 mi->mi_reset_offset = dp - sc->tulip_rombuf; --- 600 unchanged lines hidden (view full) --- 3298 * that when the outer tulip_reset returns all the right stuff will 3299 * have happened. 3300 */ 3301 if (inreset) 3302 return; 3303 3304 sc->tulip_intrmask |= TULIP_STS_NORMALINTR|TULIP_STS_RXINTR|TULIP_STS_TXINTR 3305 |TULIP_STS_ABNRMLINTR|TULIP_STS_SYSERROR|TULIP_STS_TXSTOPPED | 2708 mi++; 2709 break; 2710 } 2711#if 0 2712 case 5: { /* 21143 Reset block */ 2713 mi->mi_type = TULIP_MEDIAINFO_RESET; 2714 mi->mi_reset_length = *dp++; 2715 mi->mi_reset_offset = dp - sc->tulip_rombuf; --- 600 unchanged lines hidden (view full) --- 3316 * that when the outer tulip_reset returns all the right stuff will 3317 * have happened. 3318 */ 3319 if (inreset) 3320 return; 3321 3322 sc->tulip_intrmask |= TULIP_STS_NORMALINTR|TULIP_STS_RXINTR|TULIP_STS_TXINTR 3323 |TULIP_STS_ABNRMLINTR|TULIP_STS_SYSERROR|TULIP_STS_TXSTOPPED |
3306 |TULIP_STS_TXUNDERFLOW|TULIP_STS_TXBABBLE|TULIP_STS_LINKFAIL | 3324 |TULIP_STS_TXUNDERFLOW|TULIP_STS_TXBABBLE |
3307 |TULIP_STS_RXSTOPPED; 3308 3309 if ((sc->tulip_flags & TULIP_DEVICEPROBE) == 0) 3310 (*sc->tulip_boardsw->bd_media_select)(sc); 3311#if defined(TULIP_DEBUG) 3312 if ((sc->tulip_flags & TULIP_NEEDRESET) == TULIP_NEEDRESET) 3313 printf(TULIP_PRINTF_FMT ": tulip_reset: additional reset needed?!?\n", 3314 TULIP_PRINTF_ARGS); --- 225 unchanged lines hidden (view full) --- 3540 printf(TULIP_PRINTF_FMT ": receive: " TULIP_EADDR_FMT ": %s\n", 3541 TULIP_PRINTF_ARGS, 3542 TULIP_EADDR_ARGS(mtod(ms, u_char *) + 6), 3543 error); 3544 sc->tulip_flags |= TULIP_NOMESSAGES; 3545 } 3546#endif 3547 } | 3325 |TULIP_STS_RXSTOPPED; 3326 3327 if ((sc->tulip_flags & TULIP_DEVICEPROBE) == 0) 3328 (*sc->tulip_boardsw->bd_media_select)(sc); 3329#if defined(TULIP_DEBUG) 3330 if ((sc->tulip_flags & TULIP_NEEDRESET) == TULIP_NEEDRESET) 3331 printf(TULIP_PRINTF_FMT ": tulip_reset: additional reset needed?!?\n", 3332 TULIP_PRINTF_ARGS); --- 225 unchanged lines hidden (view full) --- 3558 printf(TULIP_PRINTF_FMT ": receive: " TULIP_EADDR_FMT ": %s\n", 3559 TULIP_PRINTF_ARGS, 3560 TULIP_EADDR_ARGS(mtod(ms, u_char *) + 6), 3561 error); 3562 sc->tulip_flags |= TULIP_NOMESSAGES; 3563 } 3564#endif 3565 } |
3566 3567#if defined(TULIP_BUS_DMA) && !defined(TULIP_BUS_DMA_NORX) 3568 map = M_GETCTX(me, bus_dmamap_t); 3569 bus_dmamap_unload(sc->tulip_dmatag, map); 3570 sc->tulip_rxmaps[sc->tulip_rxmaps_free++] = map; 3571#if defined(DIAGNOSTIC) 3572 M_SETCTX(me, NULL); 3573#endif 3574#endif /* TULIP_BUS_DMA */ |
|
3548 } 3549 next: 3550#if defined(TULIP_DEBUG) 3551 cnt++; 3552#endif 3553 ifp->if_ipackets++; 3554 if (++eop == ri->ri_last) 3555 eop = ri->ri_first; --- 331 unchanged lines hidden (view full) --- 3887 printf(TULIP_PRINTF_FMT ": system error: %s\n", 3888 TULIP_PRINTF_ARGS, 3889 tulip_system_errors[sc->tulip_last_system_error]); 3890 } 3891 sc->tulip_flags |= TULIP_NEEDRESET; 3892 sc->tulip_system_errors++; 3893 break; 3894 } | 3575 } 3576 next: 3577#if defined(TULIP_DEBUG) 3578 cnt++; 3579#endif 3580 ifp->if_ipackets++; 3581 if (++eop == ri->ri_last) 3582 eop = ri->ri_first; --- 331 unchanged lines hidden (view full) --- 3914 printf(TULIP_PRINTF_FMT ": system error: %s\n", 3915 TULIP_PRINTF_ARGS, 3916 tulip_system_errors[sc->tulip_last_system_error]); 3917 } 3918 sc->tulip_flags |= TULIP_NEEDRESET; 3919 sc->tulip_system_errors++; 3920 break; 3921 } |
3895 if (csr & (TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL)) { | 3922 if (csr & (TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL) & sc->tulip_intrmask) { |
3896#if defined(TULIP_DEBUG) 3897 sc->tulip_dbg.dbg_link_intrs++; 3898#endif 3899 if (sc->tulip_boardsw->bd_media_poll != NULL) { 3900 (*sc->tulip_boardsw->bd_media_poll)(sc, csr & TULIP_STS_LINKFAIL 3901 ? TULIP_MEDIAPOLL_LINKFAIL 3902 : TULIP_MEDIAPOLL_LINKPASS); 3903 csr &= ~TULIP_STS_ABNRMLINTR; --- 1517 unchanged lines hidden (view full) --- 5421#endif /* __bsdi__ */ 5422 5423#if defined(__NetBSD__) 5424#define TULIP_PCI_ATTACH_ARGS struct device * const parent, struct device * const self, void * const aux 5425#define TULIP_SHUTDOWN_ARGS void *arg 5426static int 5427tulip_pci_probe( 5428 struct device *parent, | 3923#if defined(TULIP_DEBUG) 3924 sc->tulip_dbg.dbg_link_intrs++; 3925#endif 3926 if (sc->tulip_boardsw->bd_media_poll != NULL) { 3927 (*sc->tulip_boardsw->bd_media_poll)(sc, csr & TULIP_STS_LINKFAIL 3928 ? TULIP_MEDIAPOLL_LINKFAIL 3929 : TULIP_MEDIAPOLL_LINKPASS); 3930 csr &= ~TULIP_STS_ABNRMLINTR; --- 1517 unchanged lines hidden (view full) --- 5448#endif /* __bsdi__ */ 5449 5450#if defined(__NetBSD__) 5451#define TULIP_PCI_ATTACH_ARGS struct device * const parent, struct device * const self, void * const aux 5452#define TULIP_SHUTDOWN_ARGS void *arg 5453static int 5454tulip_pci_probe( 5455 struct device *parent, |
5429#ifdef __BROKEN_INDIRECT_CONFIG 5430 void *match, 5431#else | |
5432 struct cfdata *match, | 5456 struct cfdata *match, |
5433#endif | |
5434 void *aux) 5435{ 5436 struct pci_attach_args *pa = (struct pci_attach_args *) aux; 5437 5438 if (PCI_VENDORID(pa->pa_id) != DEC_VENDORID) 5439 return 0; 5440 if (PCI_CHIPID(pa->pa_id) == CHIPID_21040 5441 || PCI_CHIPID(pa->pa_id) == CHIPID_21041 --- 380 unchanged lines hidden --- | 5457 void *aux) 5458{ 5459 struct pci_attach_args *pa = (struct pci_attach_args *) aux; 5460 5461 if (PCI_VENDORID(pa->pa_id) != DEC_VENDORID) 5462 return 0; 5463 if (PCI_CHIPID(pa->pa_id) == CHIPID_21040 5464 || PCI_CHIPID(pa->pa_id) == CHIPID_21041 --- 380 unchanged lines hidden --- |