Lines Matching refs:ale_cdata
988 rx_page_end[0] = sc->ale_cdata.ale_rx_page[0].page_paddr + in ale_check_boundary()
990 rx_page_end[1] = sc->ale_cdata.ale_rx_page[1].page_paddr + in ale_check_boundary()
992 tx_ring_end = sc->ale_cdata.ale_tx_ring_paddr + ALE_TX_RING_SZ; in ale_check_boundary()
993 tx_cmb_end = sc->ale_cdata.ale_tx_cmb_paddr + ALE_TX_CMB_SZ; in ale_check_boundary()
994 rx_cmb_end[0] = sc->ale_cdata.ale_rx_page[0].cmb_paddr + ALE_RX_CMB_SZ; in ale_check_boundary()
995 rx_cmb_end[1] = sc->ale_cdata.ale_rx_page[1].cmb_paddr + ALE_RX_CMB_SZ; in ale_check_boundary()
998 ALE_ADDR_HI(sc->ale_cdata.ale_tx_ring_paddr)) || in ale_check_boundary()
1000 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[0].page_paddr)) || in ale_check_boundary()
1002 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[1].page_paddr)) || in ale_check_boundary()
1004 ALE_ADDR_HI(sc->ale_cdata.ale_tx_cmb_paddr)) || in ale_check_boundary()
1006 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[0].cmb_paddr)) || in ale_check_boundary()
1008 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[1].cmb_paddr))) in ale_check_boundary()
1049 &sc->ale_cdata.ale_parent_tag); in ale_dma_alloc()
1058 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1068 &sc->ale_cdata.ale_tx_ring_tag); in ale_dma_alloc()
1078 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1088 &sc->ale_cdata.ale_rx_page[i].page_tag); in ale_dma_alloc()
1098 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1108 &sc->ale_cdata.ale_tx_cmb_tag); in ale_dma_alloc()
1118 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1128 &sc->ale_cdata.ale_rx_page[i].cmb_tag); in ale_dma_alloc()
1137 error = bus_dmamem_alloc(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_alloc()
1138 (void **)&sc->ale_cdata.ale_tx_ring, in ale_dma_alloc()
1140 &sc->ale_cdata.ale_tx_ring_map); in ale_dma_alloc()
1147 error = bus_dmamap_load(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_alloc()
1148 sc->ale_cdata.ale_tx_ring_map, sc->ale_cdata.ale_tx_ring, in ale_dma_alloc()
1155 sc->ale_cdata.ale_tx_ring_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1159 error = bus_dmamem_alloc(sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_alloc()
1160 (void **)&sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_alloc()
1162 &sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_alloc()
1170 error = bus_dmamap_load(sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_alloc()
1171 sc->ale_cdata.ale_rx_page[i].page_map, in ale_dma_alloc()
1172 sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_alloc()
1180 sc->ale_cdata.ale_rx_page[i].page_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1184 error = bus_dmamem_alloc(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_alloc()
1185 (void **)&sc->ale_cdata.ale_tx_cmb, in ale_dma_alloc()
1187 &sc->ale_cdata.ale_tx_cmb_map); in ale_dma_alloc()
1194 error = bus_dmamap_load(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_alloc()
1195 sc->ale_cdata.ale_tx_cmb_map, sc->ale_cdata.ale_tx_cmb, in ale_dma_alloc()
1202 sc->ale_cdata.ale_tx_cmb_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1206 error = bus_dmamem_alloc(sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_alloc()
1207 (void **)&sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_alloc()
1209 &sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_alloc()
1216 error = bus_dmamap_load(sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_alloc()
1217 sc->ale_cdata.ale_rx_page[i].cmb_map, in ale_dma_alloc()
1218 sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_alloc()
1225 sc->ale_cdata.ale_rx_page[i].cmb_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1263 &sc->ale_cdata.ale_buffer_tag); in ale_dma_alloc()
1272 sc->ale_cdata.ale_buffer_tag, /* parent */ in ale_dma_alloc()
1282 &sc->ale_cdata.ale_tx_tag); in ale_dma_alloc()
1290 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_dma_alloc()
1293 error = bus_dmamap_create(sc->ale_cdata.ale_tx_tag, 0, in ale_dma_alloc()
1313 if (sc->ale_cdata.ale_tx_tag != NULL) { in ale_dma_free()
1315 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_dma_free()
1317 bus_dmamap_destroy(sc->ale_cdata.ale_tx_tag, in ale_dma_free()
1322 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_tag); in ale_dma_free()
1323 sc->ale_cdata.ale_tx_tag = NULL; in ale_dma_free()
1326 if (sc->ale_cdata.ale_tx_ring_tag != NULL) { in ale_dma_free()
1327 if (sc->ale_cdata.ale_tx_ring_paddr != 0) in ale_dma_free()
1328 bus_dmamap_unload(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_free()
1329 sc->ale_cdata.ale_tx_ring_map); in ale_dma_free()
1330 if (sc->ale_cdata.ale_tx_ring != NULL) in ale_dma_free()
1331 bus_dmamem_free(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_free()
1332 sc->ale_cdata.ale_tx_ring, in ale_dma_free()
1333 sc->ale_cdata.ale_tx_ring_map); in ale_dma_free()
1334 sc->ale_cdata.ale_tx_ring_paddr = 0; in ale_dma_free()
1335 sc->ale_cdata.ale_tx_ring = NULL; in ale_dma_free()
1336 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_ring_tag); in ale_dma_free()
1337 sc->ale_cdata.ale_tx_ring_tag = NULL; in ale_dma_free()
1341 if (sc->ale_cdata.ale_rx_page[i].page_tag != NULL) { in ale_dma_free()
1342 if (sc->ale_cdata.ale_rx_page[i].page_paddr != 0) in ale_dma_free()
1344 sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_free()
1345 sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_free()
1346 if (sc->ale_cdata.ale_rx_page[i].page_addr != NULL) in ale_dma_free()
1348 sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_free()
1349 sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_free()
1350 sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_free()
1351 sc->ale_cdata.ale_rx_page[i].page_paddr = 0; in ale_dma_free()
1352 sc->ale_cdata.ale_rx_page[i].page_addr = NULL; in ale_dma_free()
1354 sc->ale_cdata.ale_rx_page[i].page_tag); in ale_dma_free()
1355 sc->ale_cdata.ale_rx_page[i].page_tag = NULL; in ale_dma_free()
1360 if (sc->ale_cdata.ale_rx_page[i].cmb_tag != NULL) { in ale_dma_free()
1361 if (sc->ale_cdata.ale_rx_page[i].cmb_paddr != 0) in ale_dma_free()
1363 sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_free()
1364 sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_free()
1365 if (sc->ale_cdata.ale_rx_page[i].cmb_addr != NULL) in ale_dma_free()
1367 sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_free()
1368 sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_free()
1369 sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_free()
1370 sc->ale_cdata.ale_rx_page[i].cmb_paddr = 0; in ale_dma_free()
1371 sc->ale_cdata.ale_rx_page[i].cmb_addr = NULL; in ale_dma_free()
1373 sc->ale_cdata.ale_rx_page[i].cmb_tag); in ale_dma_free()
1374 sc->ale_cdata.ale_rx_page[i].cmb_tag = NULL; in ale_dma_free()
1378 if (sc->ale_cdata.ale_tx_cmb_tag != NULL) { in ale_dma_free()
1379 if (sc->ale_cdata.ale_tx_cmb_paddr != 0) in ale_dma_free()
1380 bus_dmamap_unload(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_free()
1381 sc->ale_cdata.ale_tx_cmb_map); in ale_dma_free()
1382 if (sc->ale_cdata.ale_tx_cmb != NULL) in ale_dma_free()
1383 bus_dmamem_free(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_free()
1384 sc->ale_cdata.ale_tx_cmb, in ale_dma_free()
1385 sc->ale_cdata.ale_tx_cmb_map); in ale_dma_free()
1386 sc->ale_cdata.ale_tx_cmb_paddr = 0; in ale_dma_free()
1387 sc->ale_cdata.ale_tx_cmb = NULL; in ale_dma_free()
1388 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_cmb_tag); in ale_dma_free()
1389 sc->ale_cdata.ale_tx_cmb_tag = NULL; in ale_dma_free()
1391 if (sc->ale_cdata.ale_buffer_tag != NULL) { in ale_dma_free()
1392 bus_dma_tag_destroy(sc->ale_cdata.ale_buffer_tag); in ale_dma_free()
1393 sc->ale_cdata.ale_buffer_tag = NULL; in ale_dma_free()
1395 if (sc->ale_cdata.ale_parent_tag != NULL) { in ale_dma_free()
1396 bus_dma_tag_destroy(sc->ale_cdata.ale_parent_tag); in ale_dma_free()
1397 sc->ale_cdata.ale_parent_tag = NULL; in ale_dma_free()
1729 si = prod = sc->ale_cdata.ale_tx_prod; in ale_encap()
1730 txd = &sc->ale_cdata.ale_txdesc[prod]; in ale_encap()
1734 error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, in ale_encap()
1744 error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, in ale_encap()
1760 if (sc->ale_cdata.ale_tx_cnt + nsegs >= ALE_TX_RING_CNT - 3) { in ale_encap()
1761 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, map); in ale_encap()
1764 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, map, BUS_DMASYNC_PREWRITE); in ale_encap()
1819 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1823 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1827 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1832 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1838 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1842 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1846 sc->ale_cdata.ale_tx_prod = prod; in ale_encap()
1849 desc = &sc->ale_cdata.ale_tx_ring[si]; in ale_encap()
1855 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1859 txd = &sc->ale_cdata.ale_txdesc[prod]; in ale_encap()
1866 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_encap()
1867 sc->ale_cdata.ale_tx_ring_map, in ale_encap()
1896 if (sc->ale_cdata.ale_tx_cnt >= ALE_TX_DESC_HIWAT) in ale_start_locked()
1931 sc->ale_cdata.ale_tx_prod); in ale_start_locked()
2314 if (sc->ale_cdata.ale_tx_cnt == 0) in ale_txeof()
2317 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_txeof()
2318 sc->ale_cdata.ale_tx_ring_map, in ale_txeof()
2321 bus_dmamap_sync(sc->ale_cdata.ale_tx_cmb_tag, in ale_txeof()
2322 sc->ale_cdata.ale_tx_cmb_map, in ale_txeof()
2324 prod = *sc->ale_cdata.ale_tx_cmb & TPD_CNT_MASK; in ale_txeof()
2327 cons = sc->ale_cdata.ale_tx_cons; in ale_txeof()
2334 if (sc->ale_cdata.ale_tx_cnt <= 0) in ale_txeof()
2338 sc->ale_cdata.ale_tx_cnt--; in ale_txeof()
2339 txd = &sc->ale_cdata.ale_txdesc[cons]; in ale_txeof()
2342 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, in ale_txeof()
2344 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, in ale_txeof()
2352 sc->ale_cdata.ale_tx_cons = cons; in ale_txeof()
2357 if (sc->ale_cdata.ale_tx_cnt == 0) in ale_txeof()
2381 CSR_WRITE_1(sc, ALE_RXF0_PAGE0 + sc->ale_cdata.ale_rx_curp, in ale_rx_update_page()
2384 sc->ale_cdata.ale_rx_curp ^= 1; in ale_rx_update_page()
2386 &sc->ale_cdata.ale_rx_page[sc->ale_cdata.ale_rx_curp]; in ale_rx_update_page()
2465 rx_page = &sc->ale_cdata.ale_rx_page[sc->ale_cdata.ale_rx_curp]; in ale_rxeof()
2485 if (sc->ale_cdata.ale_rx_seqno != seqno) { in ale_rxeof()
2502 sc->ale_cdata.ale_rx_seqno); in ale_rxeof()
2506 sc->ale_cdata.ale_rx_seqno++; in ale_rxeof()
2668 paddr = sc->ale_cdata.ale_tx_ring_paddr; in ale_init_locked()
2674 paddr = sc->ale_cdata.ale_rx_page[0].page_paddr; in ale_init_locked()
2676 paddr = sc->ale_cdata.ale_rx_page[1].page_paddr; in ale_init_locked()
2679 paddr = sc->ale_cdata.ale_tx_cmb_paddr; in ale_init_locked()
2681 paddr = sc->ale_cdata.ale_rx_page[0].cmb_paddr; in ale_init_locked()
2683 paddr = sc->ale_cdata.ale_rx_page[1].cmb_paddr; in ale_init_locked()
2897 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_stop()
2899 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, in ale_stop()
2901 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, in ale_stop()
2942 sc->ale_cdata.ale_tx_prod = 0; in ale_init_tx_ring()
2943 sc->ale_cdata.ale_tx_cons = 0; in ale_init_tx_ring()
2944 sc->ale_cdata.ale_tx_cnt = 0; in ale_init_tx_ring()
2946 bzero(sc->ale_cdata.ale_tx_ring, ALE_TX_RING_SZ); in ale_init_tx_ring()
2947 bzero(sc->ale_cdata.ale_tx_cmb, ALE_TX_CMB_SZ); in ale_init_tx_ring()
2949 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_init_tx_ring()
2952 *sc->ale_cdata.ale_tx_cmb = 0; in ale_init_tx_ring()
2953 bus_dmamap_sync(sc->ale_cdata.ale_tx_cmb_tag, in ale_init_tx_ring()
2954 sc->ale_cdata.ale_tx_cmb_map, in ale_init_tx_ring()
2956 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_init_tx_ring()
2957 sc->ale_cdata.ale_tx_ring_map, in ale_init_tx_ring()
2970 sc->ale_cdata.ale_rx_seqno = 0; in ale_init_rx_pages()
2971 sc->ale_cdata.ale_rx_curp = 0; in ale_init_rx_pages()
2974 rx_page = &sc->ale_cdata.ale_rx_page[i]; in ale_init_rx_pages()