Lines Matching refs:rl_ldata

871 	bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
872 sc->rl_ldata.rl_rx_list_map,
874 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag,
875 sc->rl_ldata.rl_rx_desc[0].rx_dmamap,
877 bus_dmamap_unload(sc->rl_ldata.rl_rx_mtag,
878 sc->rl_ldata.rl_rx_desc[0].rx_dmamap);
880 m0 = sc->rl_ldata.rl_rx_desc[0].rx_m;
881 sc->rl_ldata.rl_rx_desc[0].rx_m = NULL;
884 cur_rx = &sc->rl_ldata.rl_rx_list[0];
1002 rx_list_size = sc->rl_ldata.rl_rx_desc_cnt * sizeof(struct rl_desc);
1003 tx_list_size = sc->rl_ldata.rl_tx_desc_cnt * sizeof(struct rl_desc);
1031 NULL, NULL, &sc->rl_ldata.rl_tx_mtag);
1045 &sc->rl_ldata.rl_jrx_mtag);
1054 MCLBYTES, 1, MCLBYTES, 0, NULL, NULL, &sc->rl_ldata.rl_rx_mtag);
1066 NULL, NULL, &sc->rl_ldata.rl_tx_list_tag);
1074 error = bus_dmamem_alloc(sc->rl_ldata.rl_tx_list_tag,
1075 (void **)&sc->rl_ldata.rl_tx_list,
1077 &sc->rl_ldata.rl_tx_list_map);
1085 sc->rl_ldata.rl_tx_list_addr = 0;
1086 error = bus_dmamap_load(sc->rl_ldata.rl_tx_list_tag,
1087 sc->rl_ldata.rl_tx_list_map, sc->rl_ldata.rl_tx_list,
1089 &sc->rl_ldata.rl_tx_list_addr, BUS_DMA_NOWAIT);
1090 if (error != 0 || sc->rl_ldata.rl_tx_list_addr == 0) {
1097 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
1098 error = bus_dmamap_create(sc->rl_ldata.rl_tx_mtag, 0,
1099 &sc->rl_ldata.rl_tx_desc[i].tx_dmamap);
1112 NULL, NULL, &sc->rl_ldata.rl_rx_list_tag);
1120 error = bus_dmamem_alloc(sc->rl_ldata.rl_rx_list_tag,
1121 (void **)&sc->rl_ldata.rl_rx_list,
1123 &sc->rl_ldata.rl_rx_list_map);
1131 sc->rl_ldata.rl_rx_list_addr = 0;
1132 error = bus_dmamap_load(sc->rl_ldata.rl_rx_list_tag,
1133 sc->rl_ldata.rl_rx_list_map, sc->rl_ldata.rl_rx_list,
1135 &sc->rl_ldata.rl_rx_list_addr, BUS_DMA_NOWAIT);
1136 if (error != 0 || sc->rl_ldata.rl_rx_list_addr == 0) {
1144 error = bus_dmamap_create(sc->rl_ldata.rl_jrx_mtag, 0,
1145 &sc->rl_ldata.rl_jrx_sparemap);
1151 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1152 error = bus_dmamap_create(sc->rl_ldata.rl_jrx_mtag, 0,
1153 &sc->rl_ldata.rl_jrx_desc[i].rx_dmamap);
1161 error = bus_dmamap_create(sc->rl_ldata.rl_rx_mtag, 0,
1162 &sc->rl_ldata.rl_rx_sparemap);
1167 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1168 error = bus_dmamap_create(sc->rl_ldata.rl_rx_mtag, 0,
1169 &sc->rl_ldata.rl_rx_desc[i].rx_dmamap);
1180 &sc->rl_ldata.rl_stag);
1186 error = bus_dmamem_alloc(sc->rl_ldata.rl_stag,
1187 (void **)&sc->rl_ldata.rl_stats,
1189 &sc->rl_ldata.rl_smap);
1196 sc->rl_ldata.rl_stats_addr = 0;
1197 error = bus_dmamap_load(sc->rl_ldata.rl_stag, sc->rl_ldata.rl_smap,
1198 sc->rl_ldata.rl_stats, sizeof(struct rl_stats), re_dma_map_addr,
1199 &sc->rl_ldata.rl_stats_addr, BUS_DMA_NOWAIT);
1200 if (error != 0 || sc->rl_ldata.rl_stats_addr == 0) {
1592 sc->rl_ldata.rl_tx_desc_cnt = RL_8169_TX_DESC_CNT;
1593 sc->rl_ldata.rl_rx_desc_cnt = RL_8169_RX_DESC_CNT;
1598 sc->rl_ldata.rl_tx_desc_cnt = RL_8139_TX_DESC_CNT;
1599 sc->rl_ldata.rl_rx_desc_cnt = RL_8139_RX_DESC_CNT;
1845 if (sc->rl_ldata.rl_rx_list_tag) {
1846 if (sc->rl_ldata.rl_rx_list_addr)
1847 bus_dmamap_unload(sc->rl_ldata.rl_rx_list_tag,
1848 sc->rl_ldata.rl_rx_list_map);
1849 if (sc->rl_ldata.rl_rx_list)
1850 bus_dmamem_free(sc->rl_ldata.rl_rx_list_tag,
1851 sc->rl_ldata.rl_rx_list,
1852 sc->rl_ldata.rl_rx_list_map);
1853 bus_dma_tag_destroy(sc->rl_ldata.rl_rx_list_tag);
1858 if (sc->rl_ldata.rl_tx_list_tag) {
1859 if (sc->rl_ldata.rl_tx_list_addr)
1860 bus_dmamap_unload(sc->rl_ldata.rl_tx_list_tag,
1861 sc->rl_ldata.rl_tx_list_map);
1862 if (sc->rl_ldata.rl_tx_list)
1863 bus_dmamem_free(sc->rl_ldata.rl_tx_list_tag,
1864 sc->rl_ldata.rl_tx_list,
1865 sc->rl_ldata.rl_tx_list_map);
1866 bus_dma_tag_destroy(sc->rl_ldata.rl_tx_list_tag);
1871 if (sc->rl_ldata.rl_tx_mtag) {
1872 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
1873 if (sc->rl_ldata.rl_tx_desc[i].tx_dmamap)
1874 bus_dmamap_destroy(sc->rl_ldata.rl_tx_mtag,
1875 sc->rl_ldata.rl_tx_desc[i].tx_dmamap);
1877 bus_dma_tag_destroy(sc->rl_ldata.rl_tx_mtag);
1879 if (sc->rl_ldata.rl_rx_mtag) {
1880 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1881 if (sc->rl_ldata.rl_rx_desc[i].rx_dmamap)
1882 bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
1883 sc->rl_ldata.rl_rx_desc[i].rx_dmamap);
1885 if (sc->rl_ldata.rl_rx_sparemap)
1886 bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
1887 sc->rl_ldata.rl_rx_sparemap);
1888 bus_dma_tag_destroy(sc->rl_ldata.rl_rx_mtag);
1890 if (sc->rl_ldata.rl_jrx_mtag) {
1891 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
1892 if (sc->rl_ldata.rl_jrx_desc[i].rx_dmamap)
1893 bus_dmamap_destroy(sc->rl_ldata.rl_jrx_mtag,
1894 sc->rl_ldata.rl_jrx_desc[i].rx_dmamap);
1896 if (sc->rl_ldata.rl_jrx_sparemap)
1897 bus_dmamap_destroy(sc->rl_ldata.rl_jrx_mtag,
1898 sc->rl_ldata.rl_jrx_sparemap);
1899 bus_dma_tag_destroy(sc->rl_ldata.rl_jrx_mtag);
1903 if (sc->rl_ldata.rl_stag) {
1904 if (sc->rl_ldata.rl_stats_addr)
1905 bus_dmamap_unload(sc->rl_ldata.rl_stag,
1906 sc->rl_ldata.rl_smap);
1907 if (sc->rl_ldata.rl_stats)
1908 bus_dmamem_free(sc->rl_ldata.rl_stag,
1909 sc->rl_ldata.rl_stats, sc->rl_ldata.rl_smap);
1910 bus_dma_tag_destroy(sc->rl_ldata.rl_stag);
1930 rxd = &sc->rl_ldata.rl_jrx_desc[idx];
1932 rxd = &sc->rl_ldata.rl_rx_desc[idx];
1933 desc = &sc->rl_ldata.rl_rx_list[idx];
1936 if (idx == sc->rl_ldata.rl_rx_desc_cnt - 1)
1970 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_rx_mtag,
1971 sc->rl_ldata.rl_rx_sparemap, m, segs, &nsegs, BUS_DMA_NOWAIT);
1978 rxd = &sc->rl_ldata.rl_rx_desc[idx];
1980 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag, rxd->rx_dmamap,
1982 bus_dmamap_unload(sc->rl_ldata.rl_rx_mtag, rxd->rx_dmamap);
1987 rxd->rx_dmamap = sc->rl_ldata.rl_rx_sparemap;
1989 sc->rl_ldata.rl_rx_sparemap = map;
1990 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag, rxd->rx_dmamap,
1993 desc = &sc->rl_ldata.rl_rx_list[idx];
1998 if (idx == sc->rl_ldata.rl_rx_desc_cnt - 1)
2023 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_jrx_mtag,
2024 sc->rl_ldata.rl_jrx_sparemap, m, segs, &nsegs, BUS_DMA_NOWAIT);
2031 rxd = &sc->rl_ldata.rl_jrx_desc[idx];
2033 bus_dmamap_sync(sc->rl_ldata.rl_jrx_mtag, rxd->rx_dmamap,
2035 bus_dmamap_unload(sc->rl_ldata.rl_jrx_mtag, rxd->rx_dmamap);
2040 rxd->rx_dmamap = sc->rl_ldata.rl_jrx_sparemap;
2042 sc->rl_ldata.rl_jrx_sparemap = map;
2043 bus_dmamap_sync(sc->rl_ldata.rl_jrx_mtag, rxd->rx_dmamap,
2046 desc = &sc->rl_ldata.rl_rx_list[idx];
2051 if (idx == sc->rl_ldata.rl_rx_desc_cnt - 1)
2083 bzero(sc->rl_ldata.rl_tx_list,
2084 sc->rl_ldata.rl_tx_desc_cnt * sizeof(struct rl_desc));
2085 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++)
2086 sc->rl_ldata.rl_tx_desc[i].tx_m = NULL;
2091 desc = &sc->rl_ldata.rl_tx_list[sc->rl_ldata.rl_tx_desc_cnt - 1];
2094 bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag,
2095 sc->rl_ldata.rl_tx_list_map,
2098 sc->rl_ldata.rl_tx_prodidx = 0;
2099 sc->rl_ldata.rl_tx_considx = 0;
2100 sc->rl_ldata.rl_tx_free = sc->rl_ldata.rl_tx_desc_cnt;
2110 bzero(sc->rl_ldata.rl_rx_list,
2111 sc->rl_ldata.rl_rx_desc_cnt * sizeof(struct rl_desc));
2112 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
2113 sc->rl_ldata.rl_rx_desc[i].rx_m = NULL;
2123 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2124 sc->rl_ldata.rl_rx_list_map,
2127 sc->rl_ldata.rl_rx_prodidx = 0;
2139 bzero(sc->rl_ldata.rl_rx_list,
2140 sc->rl_ldata.rl_rx_desc_cnt * sizeof(struct rl_desc));
2141 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
2142 sc->rl_ldata.rl_jrx_desc[i].rx_m = NULL;
2147 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2148 sc->rl_ldata.rl_rx_list_map,
2151 sc->rl_ldata.rl_rx_prodidx = 0;
2187 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2188 sc->rl_ldata.rl_rx_list_map,
2191 for (i = sc->rl_ldata.rl_rx_prodidx; maxpkt > 0;
2195 cur_rx = &sc->rl_ldata.rl_rx_list[i];
2202 m = sc->rl_ldata.rl_jrx_desc[i].rx_m;
2204 m = sc->rl_ldata.rl_rx_desc[i].rx_m;
2394 bus_dmamap_sync(sc->rl_ldata.rl_rx_list_tag,
2395 sc->rl_ldata.rl_rx_list_map,
2398 sc->rl_ldata.rl_rx_prodidx = i;
2416 cons = sc->rl_ldata.rl_tx_considx;
2417 if (cons == sc->rl_ldata.rl_tx_prodidx)
2426 bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag,
2427 sc->rl_ldata.rl_tx_list_map,
2430 for (; cons != sc->rl_ldata.rl_tx_prodidx;
2432 txstat = le32toh(sc->rl_ldata.rl_tx_list[cons].rl_cmdstat);
2442 txd = &sc->rl_ldata.rl_tx_desc[cons];
2443 bus_dmamap_sync(sc->rl_ldata.rl_tx_mtag,
2445 bus_dmamap_unload(sc->rl_ldata.rl_tx_mtag,
2459 sc->rl_ldata.rl_tx_free++;
2462 sc->rl_ldata.rl_tx_considx = cons;
2466 if (sc->rl_ldata.rl_tx_free != sc->rl_ldata.rl_tx_desc_cnt) {
2790 prod = sc->rl_ldata.rl_tx_prodidx;
2791 txd = &sc->rl_ldata.rl_tx_desc[prod];
2792 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_tx_mtag, txd->tx_dmamap,
2802 error = bus_dmamap_load_mbuf_sg(sc->rl_ldata.rl_tx_mtag,
2818 if (sc->rl_ldata.rl_tx_free - nsegs <= 1) {
2819 bus_dmamap_unload(sc->rl_ldata.rl_tx_mtag, txd->tx_dmamap);
2823 bus_dmamap_sync(sc->rl_ldata.rl_tx_mtag, txd->tx_dmamap,
2882 desc = &sc->rl_ldata.rl_tx_list[prod];
2889 if (prod == sc->rl_ldata.rl_tx_desc_cnt - 1)
2892 sc->rl_ldata.rl_tx_free--;
2895 sc->rl_ldata.rl_tx_prodidx = prod;
2899 desc = &sc->rl_ldata.rl_tx_list[ei];
2902 desc = &sc->rl_ldata.rl_tx_list[si];
2911 txd_last = &sc->rl_ldata.rl_tx_desc[ei];
2947 if (sc->rl_ldata.rl_tx_prodidx != kring->nr_hwcur) {
2964 sc->rl_ldata.rl_tx_free > 1;) {
2988 if (sc->rl_ldata.rl_tx_free != sc->rl_ldata.rl_tx_desc_cnt)
3002 bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag,
3003 sc->rl_ldata.rl_tx_list_map,
3211 RL_ADDR_HI(sc->rl_ldata.rl_rx_list_addr));
3213 RL_ADDR_LO(sc->rl_ldata.rl_rx_list_addr));
3216 RL_ADDR_HI(sc->rl_ldata.rl_tx_list_addr));
3218 RL_ADDR_LO(sc->rl_ldata.rl_tx_list_addr));
3576 if (sc->rl_ldata.rl_tx_free == sc->rl_ldata.rl_tx_desc_cnt) {
3671 for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
3672 txd = &sc->rl_ldata.rl_tx_desc[i];
3674 bus_dmamap_sync(sc->rl_ldata.rl_tx_mtag,
3676 bus_dmamap_unload(sc->rl_ldata.rl_tx_mtag,
3684 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
3685 rxd = &sc->rl_ldata.rl_rx_desc[i];
3687 bus_dmamap_sync(sc->rl_ldata.rl_rx_mtag,
3689 bus_dmamap_unload(sc->rl_ldata.rl_rx_mtag,
3697 for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
3698 rxd = &sc->rl_ldata.rl_jrx_desc[i];
3700 bus_dmamap_sync(sc->rl_ldata.rl_jrx_mtag,
3702 bus_dmamap_unload(sc->rl_ldata.rl_jrx_mtag,
4023 bus_dmamap_sync(sc->rl_ldata.rl_stag,
4024 sc->rl_ldata.rl_smap, BUS_DMASYNC_PREREAD);
4026 RL_ADDR_HI(sc->rl_ldata.rl_stats_addr));
4028 RL_ADDR_LO(sc->rl_ldata.rl_stats_addr));
4030 RL_ADDR_LO(sc->rl_ldata.rl_stats_addr |
4038 bus_dmamap_sync(sc->rl_ldata.rl_stag,
4039 sc->rl_ldata.rl_smap, BUS_DMASYNC_POSTREAD);
4047 stats = sc->rl_ldata.rl_stats;
4114 *nrxr = sc->rl_ldata.rl_rx_desc_cnt;