Module Name: src Committed By: nisimura Date: Sat Dec 14 04:12:50 UTC 2019
Modified Files: src/sys/dev/pci: if_kse.c Log Message: use FC enable bit for 8842 host port To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/dev/pci/if_kse.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_kse.c diff -u src/sys/dev/pci/if_kse.c:1.45 src/sys/dev/pci/if_kse.c:1.46 --- src/sys/dev/pci/if_kse.c:1.45 Thu Dec 12 12:00:06 2019 +++ src/sys/dev/pci/if_kse.c Sat Dec 14 04:12:49 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_kse.c,v 1.45 2019/12/12 12:00:06 nisimura Exp $ */ +/* $NetBSD: if_kse.c,v 1.46 2019/12/14 04:12:49 nisimura Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.45 2019/12/12 12:00:06 nisimura Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.46 2019/12/14 04:12:49 nisimura Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -91,6 +91,9 @@ __KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1 #define MARH 0x204 /* MAC address high */ #define GRR 0x216 /* global reset */ #define SIDER 0x400 /* switch ID and function enable */ +#define SGCR3 0x406 /* switch function control 3 */ +#define CR3_USEHDX (1U<<6) /* use half-duplex 8842 host port */ +#define CR3_USEFC (1U<<5) /* use flowcontrol 8842 host port */ #define IACR 0x4a0 /* indirect access control */ #define IADR1 0x4a2 /* indirect access data 66:63 */ #define IADR2 0x4a4 /* indirect access data 47:32 */ @@ -145,6 +148,7 @@ __KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1 #define INT_DMTS (1U<<30) /* sending desc. has posted Tx done */ #define INT_DMRS (1U<<29) /* frame was received */ #define INT_DMRBUS (1U<<27) /* Rx descriptor pool is full */ +#define INT_DMxPSS (3U<<25) /* 26:25 DMA Tx/Rx have stopped */ #define T0_OWN (1U<<31) /* desc is ready to Tx */ @@ -825,6 +829,8 @@ kse_init(struct ifnet *ifp) if (sc->sc_chip == 0x8842) { sc->sc_txc |= TXC_FCE; sc->sc_rxc |= RXC_FCE; + CSR_WRITE_2(sc, SGCR3, + CSR_READ_2(sc, SGCR3) | CR3_USEFC); } /* build multicast hash filter if necessary */