if_bge.c (260045) | if_bge.c (267363) |
---|---|
1/*- 2 * Copyright (c) 2001 Wind River Systems 3 * Copyright (c) 1997, 1998, 1999, 2001 4 * Bill Paul <wpaul@windriver.com>. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 18 unchanged lines hidden (view full) --- 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 31 * THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2001 Wind River Systems 3 * Copyright (c) 1997, 1998, 1999, 2001 4 * Bill Paul <wpaul@windriver.com>. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 18 unchanged lines hidden (view full) --- 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 31 * THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34#include <sys/cdefs.h> |
35__FBSDID("$FreeBSD: head/sys/dev/bge/if_bge.c 260045 2013-12-29 17:43:37Z marius $"); | 35__FBSDID("$FreeBSD: head/sys/dev/bge/if_bge.c 267363 2014-06-11 14:53:58Z jhb $"); |
36 37/* 38 * Broadcom BCM57xx(x)/BCM590x NetXtreme and NetLink family Ethernet driver 39 * 40 * The Broadcom BCM5700 is based on technology originally developed by 41 * Alteon Networks as part of the Tigon I and Tigon II Gigabit Ethernet 42 * MAC chips. The BCM5700, sometimes referred to as the Tigon III, has 43 * two on-board MIPS R4000 CPUs and can have as much as 16MB of external --- 2768 unchanged lines hidden (view full) --- 2812 if (sc->bge_cdata.bge_rx_mtag) 2813 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_mtag); 2814 if (sc->bge_cdata.bge_mtag_jumbo) 2815 bus_dma_tag_destroy(sc->bge_cdata.bge_mtag_jumbo); 2816 if (sc->bge_cdata.bge_tx_mtag) 2817 bus_dma_tag_destroy(sc->bge_cdata.bge_tx_mtag); 2818 2819 /* Destroy standard RX ring. */ | 36 37/* 38 * Broadcom BCM57xx(x)/BCM590x NetXtreme and NetLink family Ethernet driver 39 * 40 * The Broadcom BCM5700 is based on technology originally developed by 41 * Alteon Networks as part of the Tigon I and Tigon II Gigabit Ethernet 42 * MAC chips. The BCM5700, sometimes referred to as the Tigon III, has 43 * two on-board MIPS R4000 CPUs and can have as much as 16MB of external --- 2768 unchanged lines hidden (view full) --- 2812 if (sc->bge_cdata.bge_rx_mtag) 2813 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_mtag); 2814 if (sc->bge_cdata.bge_mtag_jumbo) 2815 bus_dma_tag_destroy(sc->bge_cdata.bge_mtag_jumbo); 2816 if (sc->bge_cdata.bge_tx_mtag) 2817 bus_dma_tag_destroy(sc->bge_cdata.bge_tx_mtag); 2818 2819 /* Destroy standard RX ring. */ |
2820 if (sc->bge_cdata.bge_rx_std_ring_map) | 2820 if (sc->bge_ldata.bge_rx_std_ring_paddr) |
2821 bus_dmamap_unload(sc->bge_cdata.bge_rx_std_ring_tag, 2822 sc->bge_cdata.bge_rx_std_ring_map); | 2821 bus_dmamap_unload(sc->bge_cdata.bge_rx_std_ring_tag, 2822 sc->bge_cdata.bge_rx_std_ring_map); |
2823 if (sc->bge_cdata.bge_rx_std_ring_map && sc->bge_ldata.bge_rx_std_ring) | 2823 if (sc->bge_ldata.bge_rx_std_ring) |
2824 bus_dmamem_free(sc->bge_cdata.bge_rx_std_ring_tag, 2825 sc->bge_ldata.bge_rx_std_ring, 2826 sc->bge_cdata.bge_rx_std_ring_map); 2827 2828 if (sc->bge_cdata.bge_rx_std_ring_tag) 2829 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_std_ring_tag); 2830 2831 /* Destroy jumbo RX ring. */ | 2824 bus_dmamem_free(sc->bge_cdata.bge_rx_std_ring_tag, 2825 sc->bge_ldata.bge_rx_std_ring, 2826 sc->bge_cdata.bge_rx_std_ring_map); 2827 2828 if (sc->bge_cdata.bge_rx_std_ring_tag) 2829 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_std_ring_tag); 2830 2831 /* Destroy jumbo RX ring. */ |
2832 if (sc->bge_cdata.bge_rx_jumbo_ring_map) | 2832 if (sc->bge_ldata.bge_rx_jumbo_ring_paddr) |
2833 bus_dmamap_unload(sc->bge_cdata.bge_rx_jumbo_ring_tag, 2834 sc->bge_cdata.bge_rx_jumbo_ring_map); 2835 | 2833 bus_dmamap_unload(sc->bge_cdata.bge_rx_jumbo_ring_tag, 2834 sc->bge_cdata.bge_rx_jumbo_ring_map); 2835 |
2836 if (sc->bge_cdata.bge_rx_jumbo_ring_map && 2837 sc->bge_ldata.bge_rx_jumbo_ring) | 2836 if (sc->bge_ldata.bge_rx_jumbo_ring) |
2838 bus_dmamem_free(sc->bge_cdata.bge_rx_jumbo_ring_tag, 2839 sc->bge_ldata.bge_rx_jumbo_ring, 2840 sc->bge_cdata.bge_rx_jumbo_ring_map); 2841 2842 if (sc->bge_cdata.bge_rx_jumbo_ring_tag) 2843 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_jumbo_ring_tag); 2844 2845 /* Destroy RX return ring. */ | 2837 bus_dmamem_free(sc->bge_cdata.bge_rx_jumbo_ring_tag, 2838 sc->bge_ldata.bge_rx_jumbo_ring, 2839 sc->bge_cdata.bge_rx_jumbo_ring_map); 2840 2841 if (sc->bge_cdata.bge_rx_jumbo_ring_tag) 2842 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_jumbo_ring_tag); 2843 2844 /* Destroy RX return ring. */ |
2846 if (sc->bge_cdata.bge_rx_return_ring_map) | 2845 if (sc->bge_ldata.bge_rx_return_ring_paddr) |
2847 bus_dmamap_unload(sc->bge_cdata.bge_rx_return_ring_tag, 2848 sc->bge_cdata.bge_rx_return_ring_map); 2849 | 2846 bus_dmamap_unload(sc->bge_cdata.bge_rx_return_ring_tag, 2847 sc->bge_cdata.bge_rx_return_ring_map); 2848 |
2850 if (sc->bge_cdata.bge_rx_return_ring_map && 2851 sc->bge_ldata.bge_rx_return_ring) | 2849 if (sc->bge_ldata.bge_rx_return_ring) |
2852 bus_dmamem_free(sc->bge_cdata.bge_rx_return_ring_tag, 2853 sc->bge_ldata.bge_rx_return_ring, 2854 sc->bge_cdata.bge_rx_return_ring_map); 2855 2856 if (sc->bge_cdata.bge_rx_return_ring_tag) 2857 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_return_ring_tag); 2858 2859 /* Destroy TX ring. */ | 2850 bus_dmamem_free(sc->bge_cdata.bge_rx_return_ring_tag, 2851 sc->bge_ldata.bge_rx_return_ring, 2852 sc->bge_cdata.bge_rx_return_ring_map); 2853 2854 if (sc->bge_cdata.bge_rx_return_ring_tag) 2855 bus_dma_tag_destroy(sc->bge_cdata.bge_rx_return_ring_tag); 2856 2857 /* Destroy TX ring. */ |
2860 if (sc->bge_cdata.bge_tx_ring_map) | 2858 if (sc->bge_ldata.bge_tx_ring_paddr) |
2861 bus_dmamap_unload(sc->bge_cdata.bge_tx_ring_tag, 2862 sc->bge_cdata.bge_tx_ring_map); 2863 | 2859 bus_dmamap_unload(sc->bge_cdata.bge_tx_ring_tag, 2860 sc->bge_cdata.bge_tx_ring_map); 2861 |
2864 if (sc->bge_cdata.bge_tx_ring_map && sc->bge_ldata.bge_tx_ring) | 2862 if (sc->bge_ldata.bge_tx_ring) |
2865 bus_dmamem_free(sc->bge_cdata.bge_tx_ring_tag, 2866 sc->bge_ldata.bge_tx_ring, 2867 sc->bge_cdata.bge_tx_ring_map); 2868 2869 if (sc->bge_cdata.bge_tx_ring_tag) 2870 bus_dma_tag_destroy(sc->bge_cdata.bge_tx_ring_tag); 2871 2872 /* Destroy status block. */ | 2863 bus_dmamem_free(sc->bge_cdata.bge_tx_ring_tag, 2864 sc->bge_ldata.bge_tx_ring, 2865 sc->bge_cdata.bge_tx_ring_map); 2866 2867 if (sc->bge_cdata.bge_tx_ring_tag) 2868 bus_dma_tag_destroy(sc->bge_cdata.bge_tx_ring_tag); 2869 2870 /* Destroy status block. */ |
2873 if (sc->bge_cdata.bge_status_map) | 2871 if (sc->bge_ldata.bge_status_block_paddr) |
2874 bus_dmamap_unload(sc->bge_cdata.bge_status_tag, 2875 sc->bge_cdata.bge_status_map); 2876 | 2872 bus_dmamap_unload(sc->bge_cdata.bge_status_tag, 2873 sc->bge_cdata.bge_status_map); 2874 |
2877 if (sc->bge_cdata.bge_status_map && sc->bge_ldata.bge_status_block) | 2875 if (sc->bge_ldata.bge_status_block) |
2878 bus_dmamem_free(sc->bge_cdata.bge_status_tag, 2879 sc->bge_ldata.bge_status_block, 2880 sc->bge_cdata.bge_status_map); 2881 2882 if (sc->bge_cdata.bge_status_tag) 2883 bus_dma_tag_destroy(sc->bge_cdata.bge_status_tag); 2884 2885 /* Destroy statistics block. */ | 2876 bus_dmamem_free(sc->bge_cdata.bge_status_tag, 2877 sc->bge_ldata.bge_status_block, 2878 sc->bge_cdata.bge_status_map); 2879 2880 if (sc->bge_cdata.bge_status_tag) 2881 bus_dma_tag_destroy(sc->bge_cdata.bge_status_tag); 2882 2883 /* Destroy statistics block. */ |
2886 if (sc->bge_cdata.bge_stats_map) | 2884 if (sc->bge_ldata.bge_stats_paddr) |
2887 bus_dmamap_unload(sc->bge_cdata.bge_stats_tag, 2888 sc->bge_cdata.bge_stats_map); 2889 | 2885 bus_dmamap_unload(sc->bge_cdata.bge_stats_tag, 2886 sc->bge_cdata.bge_stats_map); 2887 |
2890 if (sc->bge_cdata.bge_stats_map && sc->bge_ldata.bge_stats) | 2888 if (sc->bge_ldata.bge_stats) |
2891 bus_dmamem_free(sc->bge_cdata.bge_stats_tag, 2892 sc->bge_ldata.bge_stats, 2893 sc->bge_cdata.bge_stats_map); 2894 2895 if (sc->bge_cdata.bge_stats_tag) 2896 bus_dma_tag_destroy(sc->bge_cdata.bge_stats_tag); 2897 2898 if (sc->bge_cdata.bge_buffer_tag) --- 3878 unchanged lines hidden --- | 2889 bus_dmamem_free(sc->bge_cdata.bge_stats_tag, 2890 sc->bge_ldata.bge_stats, 2891 sc->bge_cdata.bge_stats_map); 2892 2893 if (sc->bge_cdata.bge_stats_tag) 2894 bus_dma_tag_destroy(sc->bge_cdata.bge_stats_tag); 2895 2896 if (sc->bge_cdata.bge_buffer_tag) --- 3878 unchanged lines hidden --- |