Lines Matching refs:rl_ldata

858 	bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
859 sc->rl_ldata.rl_rx_list_map,
861 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag,
862 sc->rl_ldata.rl_rx_desc[0].rx_dmamap,
864 bus_dmamap_unload(sc->rl_ldata.rl_rx_mtag,
865 sc->rl_ldata.rl_rx_desc[0].rx_dmamap);
867 m0 = sc->rl_ldata.rl_rx_desc[0].rx_m;
868 sc->rl_ldata.rl_rx_desc[0].rx_m = NULL;
871 cur_rx = &sc->rl_ldata.rl_rx_list[0];
989 rx_list_size = sc->rl_ldata.rl_rx_desc_cnt * sizeof(struct rl_desc);
990 tx_list_size = sc->rl_ldata.rl_tx_desc_cnt * sizeof(struct rl_desc);
1018 NULL, NULL, &sc->rl_ldata.rl_tx_mtag);
1032 &sc->rl_ldata.rl_jrx_mtag);
1041 MCLBYTES, 1, MCLBYTES, 0, NULL, NULL, &sc->rl_ldata.rl_rx_mtag);
1053 NULL, NULL, &sc->rl_ldata.rl_tx_list_tag);
1061 error = bus_dmamem_alloc(sc->rl_ldata.rl_tx_list_tag,
1062 (void **)&sc->rl_ldata.rl_tx_list,
1064 &sc->rl_ldata.rl_tx_list_map);
1072 sc->rl_ldata.rl_tx_list_addr = 0;
1073 error = bus_dmamap_load(sc->rl_ldata.rl_tx_list_tag,
1074 sc->rl_ldata.rl_tx_list_map, sc->rl_ldata.rl_tx_list,
1076 &sc->rl_ldata.rl_tx_list_addr, BUS_DMA_NOWAIT);
1077 if (error != 0 || sc->rl_ldata.rl_tx_list_addr == 0) {
1084 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
1085 error = bus_dmamap_create(sc->rl_ldata.rl_tx_mtag, 0,
1086 &sc->rl_ldata.rl_tx_desc[i].tx_dmamap);
1099 NULL, NULL, &sc->rl_ldata.rl_rx_list_tag);
1107 error = bus_dmamem_alloc(sc->rl_ldata.rl_rx_list_tag,
1108 (void **)&sc->rl_ldata.rl_rx_list,
1110 &sc->rl_ldata.rl_rx_list_map);
1118 sc->rl_ldata.rl_rx_list_addr = 0;
1119 error = bus_dmamap_load(sc->rl_ldata.rl_rx_list_tag,
1120 sc->rl_ldata.rl_rx_list_map, sc->rl_ldata.rl_rx_list,
1122 &sc->rl_ldata.rl_rx_list_addr, BUS_DMA_NOWAIT);
1123 if (error != 0 || sc->rl_ldata.rl_rx_list_addr == 0) {
1131 error = bus_dmamap_create(sc->rl_ldata.rl_jrx_mtag, 0,
1132 &sc->rl_ldata.rl_jrx_sparemap);
1138 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1139 error = bus_dmamap_create(sc->rl_ldata.rl_jrx_mtag, 0,
1140 &sc->rl_ldata.rl_jrx_desc[i].rx_dmamap);
1148 error = bus_dmamap_create(sc->rl_ldata.rl_rx_mtag, 0,
1149 &sc->rl_ldata.rl_rx_sparemap);
1154 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1155 error = bus_dmamap_create(sc->rl_ldata.rl_rx_mtag, 0,
1156 &sc->rl_ldata.rl_rx_desc[i].rx_dmamap);
1167 &sc->rl_ldata.rl_stag);
1173 error = bus_dmamem_alloc(sc->rl_ldata.rl_stag,
1174 (void **)&sc->rl_ldata.rl_stats,
1176 &sc->rl_ldata.rl_smap);
1183 sc->rl_ldata.rl_stats_addr = 0;
1184 error = bus_dmamap_load(sc->rl_ldata.rl_stag, sc->rl_ldata.rl_smap,
1185 sc->rl_ldata.rl_stats, sizeof(struct rl_stats), re_dma_map_addr,
1186 &sc->rl_ldata.rl_stats_addr, BUS_DMA_NOWAIT);
1187 if (error != 0 || sc->rl_ldata.rl_stats_addr == 0) {
1577 sc->rl_ldata.rl_tx_desc_cnt = RL_8169_TX_DESC_CNT;
1578 sc->rl_ldata.rl_rx_desc_cnt = RL_8169_RX_DESC_CNT;
1583 sc->rl_ldata.rl_tx_desc_cnt = RL_8139_TX_DESC_CNT;
1584 sc->rl_ldata.rl_rx_desc_cnt = RL_8139_RX_DESC_CNT;
1825 if (sc->rl_ldata.rl_rx_list_tag) {
1826 if (sc->rl_ldata.rl_rx_list_map)
1827 bus_dmamap_unload(sc->rl_ldata.rl_rx_list_tag,
1828 sc->rl_ldata.rl_rx_list_map);
1829 if (sc->rl_ldata.rl_rx_list_map && sc->rl_ldata.rl_rx_list)
1830 bus_dmamem_free(sc->rl_ldata.rl_rx_list_tag,
1831 sc->rl_ldata.rl_rx_list,
1832 sc->rl_ldata.rl_rx_list_map);
1833 bus_dma_tag_destroy(sc->rl_ldata.rl_rx_list_tag);
1838 if (sc->rl_ldata.rl_tx_list_tag) {
1839 if (sc->rl_ldata.rl_tx_list_map)
1840 bus_dmamap_unload(sc->rl_ldata.rl_tx_list_tag,
1841 sc->rl_ldata.rl_tx_list_map);
1842 if (sc->rl_ldata.rl_tx_list_map && sc->rl_ldata.rl_tx_list)
1843 bus_dmamem_free(sc->rl_ldata.rl_tx_list_tag,
1844 sc->rl_ldata.rl_tx_list,
1845 sc->rl_ldata.rl_tx_list_map);
1846 bus_dma_tag_destroy(sc->rl_ldata.rl_tx_list_tag);
1851 if (sc->rl_ldata.rl_tx_mtag) {
1852 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
1853 if (sc->rl_ldata.rl_tx_desc[i].tx_dmamap)
1854 bus_dmamap_destroy(sc->rl_ldata.rl_tx_mtag,
1855 sc->rl_ldata.rl_tx_desc[i].tx_dmamap);
1857 bus_dma_tag_destroy(sc->rl_ldata.rl_tx_mtag);
1859 if (sc->rl_ldata.rl_rx_mtag) {
1860 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1861 if (sc->rl_ldata.rl_rx_desc[i].rx_dmamap)
1862 bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
1863 sc->rl_ldata.rl_rx_desc[i].rx_dmamap);
1865 if (sc->rl_ldata.rl_rx_sparemap)
1866 bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
1867 sc->rl_ldata.rl_rx_sparemap);
1868 bus_dma_tag_destroy(sc->rl_ldata.rl_rx_mtag);
1870 if (sc->rl_ldata.rl_jrx_mtag) {
1871 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1872 if (sc->rl_ldata.rl_jrx_desc[i].rx_dmamap)
1873 bus_dmamap_destroy(sc->rl_ldata.rl_jrx_mtag,
1874 sc->rl_ldata.rl_jrx_desc[i].rx_dmamap);
1876 if (sc->rl_ldata.rl_jrx_sparemap)
1877 bus_dmamap_destroy(sc->rl_ldata.rl_jrx_mtag,
1878 sc->rl_ldata.rl_jrx_sparemap);
1879 bus_dma_tag_destroy(sc->rl_ldata.rl_jrx_mtag);
1883 if (sc->rl_ldata.rl_stag) {
1884 if (sc->rl_ldata.rl_smap)
1885 bus_dmamap_unload(sc->rl_ldata.rl_stag,
1886 sc->rl_ldata.rl_smap);
1887 if (sc->rl_ldata.rl_smap && sc->rl_ldata.rl_stats)
1888 bus_dmamem_free(sc->rl_ldata.rl_stag,
1889 sc->rl_ldata.rl_stats, sc->rl_ldata.rl_smap);
1890 bus_dma_tag_destroy(sc->rl_ldata.rl_stag);
1910 rxd = &sc->rl_ldata.rl_jrx_desc[idx];
1912 rxd = &sc->rl_ldata.rl_rx_desc[idx];
1913 desc = &sc->rl_ldata.rl_rx_list[idx];
1916 if (idx == sc->rl_ldata.rl_rx_desc_cnt - 1)
1950 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_rx_mtag,
1951 sc->rl_ldata.rl_rx_sparemap, m, segs, &nsegs, BUS_DMA_NOWAIT);
1958 rxd = &sc->rl_ldata.rl_rx_desc[idx];
1960 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag, rxd->rx_dmamap,
1962 bus_dmamap_unload(sc->rl_ldata.rl_rx_mtag, rxd->rx_dmamap);
1967 rxd->rx_dmamap = sc->rl_ldata.rl_rx_sparemap;
1969 sc->rl_ldata.rl_rx_sparemap = map;
1970 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag, rxd->rx_dmamap,
1973 desc = &sc->rl_ldata.rl_rx_list[idx];
1978 if (idx == sc->rl_ldata.rl_rx_desc_cnt - 1)
2003 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_jrx_mtag,
2004 sc->rl_ldata.rl_jrx_sparemap, m, segs, &nsegs, BUS_DMA_NOWAIT);
2011 rxd = &sc->rl_ldata.rl_jrx_desc[idx];
2013 bus_dmamap_sync(sc->rl_ldata.rl_jrx_mtag, rxd->rx_dmamap,
2015 bus_dmamap_unload(sc->rl_ldata.rl_jrx_mtag, rxd->rx_dmamap);
2020 rxd->rx_dmamap = sc->rl_ldata.rl_jrx_sparemap;
2022 sc->rl_ldata.rl_jrx_sparemap = map;
2023 bus_dmamap_sync(sc->rl_ldata.rl_jrx_mtag, rxd->rx_dmamap,
2026 desc = &sc->rl_ldata.rl_rx_list[idx];
2031 if (idx == sc->rl_ldata.rl_rx_desc_cnt - 1)
2063 bzero(sc->rl_ldata.rl_tx_list,
2064 sc->rl_ldata.rl_tx_desc_cnt * sizeof(struct rl_desc));
2065 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++)
2066 sc->rl_ldata.rl_tx_desc[i].tx_m = NULL;
2071 desc = &sc->rl_ldata.rl_tx_list[sc->rl_ldata.rl_tx_desc_cnt - 1];
2074 bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag,
2075 sc->rl_ldata.rl_tx_list_map,
2078 sc->rl_ldata.rl_tx_prodidx = 0;
2079 sc->rl_ldata.rl_tx_considx = 0;
2080 sc->rl_ldata.rl_tx_free = sc->rl_ldata.rl_tx_desc_cnt;
2090 bzero(sc->rl_ldata.rl_rx_list,
2091 sc->rl_ldata.rl_rx_desc_cnt * sizeof(struct rl_desc));
2092 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
2093 sc->rl_ldata.rl_rx_desc[i].rx_m = NULL;
2103 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2104 sc->rl_ldata.rl_rx_list_map,
2107 sc->rl_ldata.rl_rx_prodidx = 0;
2119 bzero(sc->rl_ldata.rl_rx_list,
2120 sc->rl_ldata.rl_rx_desc_cnt * sizeof(struct rl_desc));
2121 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
2122 sc->rl_ldata.rl_jrx_desc[i].rx_m = NULL;
2127 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2128 sc->rl_ldata.rl_rx_list_map,
2131 sc->rl_ldata.rl_rx_prodidx = 0;
2167 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2168 sc->rl_ldata.rl_rx_list_map,
2171 for (i = sc->rl_ldata.rl_rx_prodidx; maxpkt > 0;
2175 cur_rx = &sc->rl_ldata.rl_rx_list[i];
2182 m = sc->rl_ldata.rl_jrx_desc[i].rx_m;
2184 m = sc->rl_ldata.rl_rx_desc[i].rx_m;
2374 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2375 sc->rl_ldata.rl_rx_list_map,
2378 sc->rl_ldata.rl_rx_prodidx = i;
2396 cons = sc->rl_ldata.rl_tx_considx;
2397 if (cons == sc->rl_ldata.rl_tx_prodidx)
2406 bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag,
2407 sc->rl_ldata.rl_tx_list_map,
2410 for (; cons != sc->rl_ldata.rl_tx_prodidx;
2412 txstat = le32toh(sc->rl_ldata.rl_tx_list[cons].rl_cmdstat);
2422 txd = &sc->rl_ldata.rl_tx_desc[cons];
2423 bus_dmamap_sync(sc->rl_ldata.rl_tx_mtag,
2425 bus_dmamap_unload(sc->rl_ldata.rl_tx_mtag,
2439 sc->rl_ldata.rl_tx_free++;
2442 sc->rl_ldata.rl_tx_considx = cons;
2446 if (sc->rl_ldata.rl_tx_free != sc->rl_ldata.rl_tx_desc_cnt) {
2770 prod = sc->rl_ldata.rl_tx_prodidx;
2771 txd = &sc->rl_ldata.rl_tx_desc[prod];
2772 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_tx_mtag, txd->tx_dmamap,
2782 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_tx_mtag,
2798 if (sc->rl_ldata.rl_tx_free - nsegs <= 1) {
2799 bus_dmamap_unload(sc->rl_ldata.rl_tx_mtag, txd->tx_dmamap);
2803 bus_dmamap_sync(sc->rl_ldata.rl_tx_mtag, txd->tx_dmamap,
2862 desc = &sc->rl_ldata.rl_tx_list[prod];
2869 if (prod == sc->rl_ldata.rl_tx_desc_cnt - 1)
2872 sc->rl_ldata.rl_tx_free--;
2875 sc->rl_ldata.rl_tx_prodidx = prod;
2879 desc = &sc->rl_ldata.rl_tx_list[ei];
2882 desc = &sc->rl_ldata.rl_tx_list[si];
2891 txd_last = &sc->rl_ldata.rl_tx_desc[ei];
2927 if (sc->rl_ldata.rl_tx_prodidx != kring->nr_hwcur) {
2943 sc->rl_ldata.rl_tx_free > 1;) {
2967 if (sc->rl_ldata.rl_tx_free != sc->rl_ldata.rl_tx_desc_cnt)
2975 bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag,
2976 sc->rl_ldata.rl_tx_list_map,
3184 RL_ADDR_HI(sc->rl_ldata.rl_rx_list_addr));
3186 RL_ADDR_LO(sc->rl_ldata.rl_rx_list_addr));
3189 RL_ADDR_HI(sc->rl_ldata.rl_tx_list_addr));
3191 RL_ADDR_LO(sc->rl_ldata.rl_tx_list_addr));
3534 if (sc->rl_ldata.rl_tx_free == sc->rl_ldata.rl_tx_desc_cnt) {
3619 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
3620 txd = &sc->rl_ldata.rl_tx_desc[i];
3622 bus_dmamap_sync(sc->rl_ldata.rl_tx_mtag,
3624 bus_dmamap_unload(sc->rl_ldata.rl_tx_mtag,
3632 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
3633 rxd = &sc->rl_ldata.rl_rx_desc[i];
3635 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag,
3637 bus_dmamap_unload(sc->rl_ldata.rl_rx_mtag,
3645 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
3646 rxd = &sc->rl_ldata.rl_jrx_desc[i];
3648 bus_dmamap_sync(sc->rl_ldata.rl_jrx_mtag,
3650 bus_dmamap_unload(sc->rl_ldata.rl_jrx_mtag,
3967 bus_dmamap_sync(sc->rl_ldata.rl_stag,
3968 sc->rl_ldata.rl_smap, BUS_DMASYNC_PREREAD);
3970 RL_ADDR_HI(sc->rl_ldata.rl_stats_addr));
3972 RL_ADDR_LO(sc->rl_ldata.rl_stats_addr));
3974 RL_ADDR_LO(sc->rl_ldata.rl_stats_addr |
3982 bus_dmamap_sync(sc->rl_ldata.rl_stag,
3983 sc->rl_ldata.rl_smap, BUS_DMASYNC_POSTREAD);
3991 stats = sc->rl_ldata.rl_stats;