Deleted Added
full compact
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 ---