if_nfe.c (198988) | if_nfe.c (206876) |
---|---|
1/* $OpenBSD: if_nfe.c,v 1.54 2006/04/07 12:38:12 jsg Exp $ */ 2 3/*- 4 * Copyright (c) 2006 Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp> 5 * Copyright (c) 2006 Damien Bergamini <damien.bergamini@free.fr> 6 * Copyright (c) 2005, 2006 Jonathan Gray <jsg@openbsd.org> 7 * 8 * Permission to use, copy, modify, and distribute this software for any --- 7 unchanged lines hidden (view full) --- 16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 17 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 18 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 19 */ 20 21/* Driver for NVIDIA nForce MCP Fast Ethernet and Gigabit Ethernet */ 22 23#include <sys/cdefs.h> | 1/* $OpenBSD: if_nfe.c,v 1.54 2006/04/07 12:38:12 jsg Exp $ */ 2 3/*- 4 * Copyright (c) 2006 Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp> 5 * Copyright (c) 2006 Damien Bergamini <damien.bergamini@free.fr> 6 * Copyright (c) 2005, 2006 Jonathan Gray <jsg@openbsd.org> 7 * 8 * Permission to use, copy, modify, and distribute this software for any --- 7 unchanged lines hidden (view full) --- 16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 17 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 18 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 19 */ 20 21/* Driver for NVIDIA nForce MCP Fast Ethernet and Gigabit Ethernet */ 22 23#include <sys/cdefs.h> |
24__FBSDID("$FreeBSD: head/sys/dev/nfe/if_nfe.c 198988 2009-11-06 14:55:01Z jhb $"); | 24__FBSDID("$FreeBSD: head/sys/dev/nfe/if_nfe.c 206876 2010-04-19 22:10:40Z yongari $"); |
25 26#ifdef HAVE_KERNEL_OPTION_HEADERS 27#include "opt_device_polling.h" 28#endif 29 30#include <sys/param.h> 31#include <sys/endian.h> 32#include <sys/systm.h> --- 2328 unchanged lines hidden (view full) --- 2361 if (sc->txq.queued + nsegs >= NFE_TX_RING_COUNT - 2) { 2362 bus_dmamap_unload(sc->txq.tx_data_tag, map); 2363 return (ENOBUFS); 2364 } 2365 2366 m = *m_head; 2367 cflags = flags = 0; 2368 tso_segsz = 0; | 25 26#ifdef HAVE_KERNEL_OPTION_HEADERS 27#include "opt_device_polling.h" 28#endif 29 30#include <sys/param.h> 31#include <sys/endian.h> 32#include <sys/systm.h> --- 2328 unchanged lines hidden (view full) --- 2361 if (sc->txq.queued + nsegs >= NFE_TX_RING_COUNT - 2) { 2362 bus_dmamap_unload(sc->txq.tx_data_tag, map); 2363 return (ENOBUFS); 2364 } 2365 2366 m = *m_head; 2367 cflags = flags = 0; 2368 tso_segsz = 0; |
2369 if ((m->m_pkthdr.csum_flags & NFE_CSUM_FEATURES) != 0) { | 2369 if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) { 2370 tso_segsz = (uint32_t)m->m_pkthdr.tso_segsz << 2371 NFE_TX_TSO_SHIFT; 2372 cflags &= ~(NFE_TX_IP_CSUM | NFE_TX_TCP_UDP_CSUM); 2373 cflags |= NFE_TX_TSO; 2374 } else if ((m->m_pkthdr.csum_flags & NFE_CSUM_FEATURES) != 0) { |
2370 if ((m->m_pkthdr.csum_flags & CSUM_IP) != 0) 2371 cflags |= NFE_TX_IP_CSUM; 2372 if ((m->m_pkthdr.csum_flags & CSUM_TCP) != 0) 2373 cflags |= NFE_TX_TCP_UDP_CSUM; 2374 if ((m->m_pkthdr.csum_flags & CSUM_UDP) != 0) 2375 cflags |= NFE_TX_TCP_UDP_CSUM; 2376 } | 2375 if ((m->m_pkthdr.csum_flags & CSUM_IP) != 0) 2376 cflags |= NFE_TX_IP_CSUM; 2377 if ((m->m_pkthdr.csum_flags & CSUM_TCP) != 0) 2378 cflags |= NFE_TX_TCP_UDP_CSUM; 2379 if ((m->m_pkthdr.csum_flags & CSUM_UDP) != 0) 2380 cflags |= NFE_TX_TCP_UDP_CSUM; 2381 } |
2377 if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) { 2378 tso_segsz = (uint32_t)m->m_pkthdr.tso_segsz << 2379 NFE_TX_TSO_SHIFT; 2380 cflags &= ~(NFE_TX_IP_CSUM | NFE_TX_TCP_UDP_CSUM); 2381 cflags |= NFE_TX_TSO; 2382 } | |
2383 2384 for (i = 0; i < nsegs; i++) { 2385 if (sc->nfe_flags & NFE_40BIT_ADDR) { 2386 desc64 = &sc->txq.desc64[prod]; 2387 desc64->physaddr[0] = 2388 htole32(NFE_ADDR_HI(segs[i].ds_addr)); 2389 desc64->physaddr[1] = 2390 htole32(NFE_ADDR_LO(segs[i].ds_addr)); --- 825 unchanged lines hidden --- | 2382 2383 for (i = 0; i < nsegs; i++) { 2384 if (sc->nfe_flags & NFE_40BIT_ADDR) { 2385 desc64 = &sc->txq.desc64[prod]; 2386 desc64->physaddr[0] = 2387 htole32(NFE_ADDR_HI(segs[i].ds_addr)); 2388 desc64->physaddr[1] = 2389 htole32(NFE_ADDR_LO(segs[i].ds_addr)); --- 825 unchanged lines hidden --- |