Lines Matching refs:ale_cdata
996 rx_page_end[0] = sc->ale_cdata.ale_rx_page[0].page_paddr + in ale_check_boundary()
998 rx_page_end[1] = sc->ale_cdata.ale_rx_page[1].page_paddr + in ale_check_boundary()
1000 tx_ring_end = sc->ale_cdata.ale_tx_ring_paddr + ALE_TX_RING_SZ; in ale_check_boundary()
1001 tx_cmb_end = sc->ale_cdata.ale_tx_cmb_paddr + ALE_TX_CMB_SZ; in ale_check_boundary()
1002 rx_cmb_end[0] = sc->ale_cdata.ale_rx_page[0].cmb_paddr + ALE_RX_CMB_SZ; in ale_check_boundary()
1003 rx_cmb_end[1] = sc->ale_cdata.ale_rx_page[1].cmb_paddr + ALE_RX_CMB_SZ; in ale_check_boundary()
1006 ALE_ADDR_HI(sc->ale_cdata.ale_tx_ring_paddr)) || in ale_check_boundary()
1008 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[0].page_paddr)) || in ale_check_boundary()
1010 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[1].page_paddr)) || in ale_check_boundary()
1012 ALE_ADDR_HI(sc->ale_cdata.ale_tx_cmb_paddr)) || in ale_check_boundary()
1014 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[0].cmb_paddr)) || in ale_check_boundary()
1016 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[1].cmb_paddr))) in ale_check_boundary()
1057 &sc->ale_cdata.ale_parent_tag); in ale_dma_alloc()
1066 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1076 &sc->ale_cdata.ale_tx_ring_tag); in ale_dma_alloc()
1086 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1096 &sc->ale_cdata.ale_rx_page[i].page_tag); in ale_dma_alloc()
1106 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1116 &sc->ale_cdata.ale_tx_cmb_tag); in ale_dma_alloc()
1126 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1136 &sc->ale_cdata.ale_rx_page[i].cmb_tag); in ale_dma_alloc()
1145 error = bus_dmamem_alloc(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_alloc()
1146 (void **)&sc->ale_cdata.ale_tx_ring, in ale_dma_alloc()
1148 &sc->ale_cdata.ale_tx_ring_map); in ale_dma_alloc()
1155 error = bus_dmamap_load(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_alloc()
1156 sc->ale_cdata.ale_tx_ring_map, sc->ale_cdata.ale_tx_ring, in ale_dma_alloc()
1163 sc->ale_cdata.ale_tx_ring_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1167 error = bus_dmamem_alloc(sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_alloc()
1168 (void **)&sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_alloc()
1170 &sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_alloc()
1178 error = bus_dmamap_load(sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_alloc()
1179 sc->ale_cdata.ale_rx_page[i].page_map, in ale_dma_alloc()
1180 sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_alloc()
1188 sc->ale_cdata.ale_rx_page[i].page_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1192 error = bus_dmamem_alloc(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_alloc()
1193 (void **)&sc->ale_cdata.ale_tx_cmb, in ale_dma_alloc()
1195 &sc->ale_cdata.ale_tx_cmb_map); in ale_dma_alloc()
1202 error = bus_dmamap_load(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_alloc()
1203 sc->ale_cdata.ale_tx_cmb_map, sc->ale_cdata.ale_tx_cmb, in ale_dma_alloc()
1210 sc->ale_cdata.ale_tx_cmb_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1214 error = bus_dmamem_alloc(sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_alloc()
1215 (void **)&sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_alloc()
1217 &sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_alloc()
1224 error = bus_dmamap_load(sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_alloc()
1225 sc->ale_cdata.ale_rx_page[i].cmb_map, in ale_dma_alloc()
1226 sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_alloc()
1233 sc->ale_cdata.ale_rx_page[i].cmb_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1271 &sc->ale_cdata.ale_buffer_tag); in ale_dma_alloc()
1280 sc->ale_cdata.ale_buffer_tag, /* parent */ in ale_dma_alloc()
1290 &sc->ale_cdata.ale_tx_tag); in ale_dma_alloc()
1298 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_dma_alloc()
1301 error = bus_dmamap_create(sc->ale_cdata.ale_tx_tag, 0, in ale_dma_alloc()
1321 if (sc->ale_cdata.ale_tx_tag != NULL) { in ale_dma_free()
1323 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_dma_free()
1325 bus_dmamap_destroy(sc->ale_cdata.ale_tx_tag, in ale_dma_free()
1330 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_tag); in ale_dma_free()
1331 sc->ale_cdata.ale_tx_tag = NULL; in ale_dma_free()
1334 if (sc->ale_cdata.ale_tx_ring_tag != NULL) { in ale_dma_free()
1335 if (sc->ale_cdata.ale_tx_ring_paddr != 0) in ale_dma_free()
1336 bus_dmamap_unload(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_free()
1337 sc->ale_cdata.ale_tx_ring_map); in ale_dma_free()
1338 if (sc->ale_cdata.ale_tx_ring != NULL) in ale_dma_free()
1339 bus_dmamem_free(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_free()
1340 sc->ale_cdata.ale_tx_ring, in ale_dma_free()
1341 sc->ale_cdata.ale_tx_ring_map); in ale_dma_free()
1342 sc->ale_cdata.ale_tx_ring_paddr = 0; in ale_dma_free()
1343 sc->ale_cdata.ale_tx_ring = NULL; in ale_dma_free()
1344 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_ring_tag); in ale_dma_free()
1345 sc->ale_cdata.ale_tx_ring_tag = NULL; in ale_dma_free()
1349 if (sc->ale_cdata.ale_rx_page[i].page_tag != NULL) { in ale_dma_free()
1350 if (sc->ale_cdata.ale_rx_page[i].page_paddr != 0) in ale_dma_free()
1352 sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_free()
1353 sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_free()
1354 if (sc->ale_cdata.ale_rx_page[i].page_addr != NULL) in ale_dma_free()
1356 sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_free()
1357 sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_free()
1358 sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_free()
1359 sc->ale_cdata.ale_rx_page[i].page_paddr = 0; in ale_dma_free()
1360 sc->ale_cdata.ale_rx_page[i].page_addr = NULL; in ale_dma_free()
1362 sc->ale_cdata.ale_rx_page[i].page_tag); in ale_dma_free()
1363 sc->ale_cdata.ale_rx_page[i].page_tag = NULL; in ale_dma_free()
1368 if (sc->ale_cdata.ale_rx_page[i].cmb_tag != NULL) { in ale_dma_free()
1369 if (sc->ale_cdata.ale_rx_page[i].cmb_paddr != 0) in ale_dma_free()
1371 sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_free()
1372 sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_free()
1373 if (sc->ale_cdata.ale_rx_page[i].cmb_addr != NULL) in ale_dma_free()
1375 sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_free()
1376 sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_free()
1377 sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_free()
1378 sc->ale_cdata.ale_rx_page[i].cmb_paddr = 0; in ale_dma_free()
1379 sc->ale_cdata.ale_rx_page[i].cmb_addr = NULL; in ale_dma_free()
1381 sc->ale_cdata.ale_rx_page[i].cmb_tag); in ale_dma_free()
1382 sc->ale_cdata.ale_rx_page[i].cmb_tag = NULL; in ale_dma_free()
1386 if (sc->ale_cdata.ale_tx_cmb_tag != NULL) { in ale_dma_free()
1387 if (sc->ale_cdata.ale_tx_cmb_paddr != 0) in ale_dma_free()
1388 bus_dmamap_unload(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_free()
1389 sc->ale_cdata.ale_tx_cmb_map); in ale_dma_free()
1390 if (sc->ale_cdata.ale_tx_cmb != NULL) in ale_dma_free()
1391 bus_dmamem_free(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_free()
1392 sc->ale_cdata.ale_tx_cmb, in ale_dma_free()
1393 sc->ale_cdata.ale_tx_cmb_map); in ale_dma_free()
1394 sc->ale_cdata.ale_tx_cmb_paddr = 0; in ale_dma_free()
1395 sc->ale_cdata.ale_tx_cmb = NULL; in ale_dma_free()
1396 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_cmb_tag); in ale_dma_free()
1397 sc->ale_cdata.ale_tx_cmb_tag = NULL; in ale_dma_free()
1399 if (sc->ale_cdata.ale_buffer_tag != NULL) { in ale_dma_free()
1400 bus_dma_tag_destroy(sc->ale_cdata.ale_buffer_tag); in ale_dma_free()
1401 sc->ale_cdata.ale_buffer_tag = NULL; in ale_dma_free()
1403 if (sc->ale_cdata.ale_parent_tag != NULL) { in ale_dma_free()
1404 bus_dma_tag_destroy(sc->ale_cdata.ale_parent_tag); in ale_dma_free()
1405 sc->ale_cdata.ale_parent_tag = NULL; in ale_dma_free()
1737 si = prod = sc->ale_cdata.ale_tx_prod; in ale_encap()
1738 txd = &sc->ale_cdata.ale_txdesc[prod]; in ale_encap()
1742 error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, in ale_encap()
1752 error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, in ale_encap()
1768 if (sc->ale_cdata.ale_tx_cnt + nsegs >= ALE_TX_RING_CNT - 3) { in ale_encap()
1769 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, map); in ale_encap()
1772 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, map, BUS_DMASYNC_PREWRITE); in ale_encap()
1827 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1831 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1835 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1840 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1846 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1850 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1854 sc->ale_cdata.ale_tx_prod = prod; in ale_encap()
1857 desc = &sc->ale_cdata.ale_tx_ring[si]; in ale_encap()
1863 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1867 txd = &sc->ale_cdata.ale_txdesc[prod]; in ale_encap()
1874 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_encap()
1875 sc->ale_cdata.ale_tx_ring_map, in ale_encap()
1904 if (sc->ale_cdata.ale_tx_cnt >= ALE_TX_DESC_HIWAT) in ale_start_locked()
1939 sc->ale_cdata.ale_tx_prod); in ale_start_locked()
2322 if (sc->ale_cdata.ale_tx_cnt == 0) in ale_txeof()
2325 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_txeof()
2326 sc->ale_cdata.ale_tx_ring_map, in ale_txeof()
2329 bus_dmamap_sync(sc->ale_cdata.ale_tx_cmb_tag, in ale_txeof()
2330 sc->ale_cdata.ale_tx_cmb_map, in ale_txeof()
2332 prod = *sc->ale_cdata.ale_tx_cmb & TPD_CNT_MASK; in ale_txeof()
2335 cons = sc->ale_cdata.ale_tx_cons; in ale_txeof()
2342 if (sc->ale_cdata.ale_tx_cnt <= 0) in ale_txeof()
2346 sc->ale_cdata.ale_tx_cnt--; in ale_txeof()
2347 txd = &sc->ale_cdata.ale_txdesc[cons]; in ale_txeof()
2350 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, in ale_txeof()
2352 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, in ale_txeof()
2360 sc->ale_cdata.ale_tx_cons = cons; in ale_txeof()
2365 if (sc->ale_cdata.ale_tx_cnt == 0) in ale_txeof()
2389 CSR_WRITE_1(sc, ALE_RXF0_PAGE0 + sc->ale_cdata.ale_rx_curp, in ale_rx_update_page()
2392 sc->ale_cdata.ale_rx_curp ^= 1; in ale_rx_update_page()
2394 &sc->ale_cdata.ale_rx_page[sc->ale_cdata.ale_rx_curp]; in ale_rx_update_page()
2474 rx_page = &sc->ale_cdata.ale_rx_page[sc->ale_cdata.ale_rx_curp]; in ale_rxeof()
2494 if (sc->ale_cdata.ale_rx_seqno != seqno) { in ale_rxeof()
2511 sc->ale_cdata.ale_rx_seqno); in ale_rxeof()
2515 sc->ale_cdata.ale_rx_seqno++; in ale_rxeof()
2677 paddr = sc->ale_cdata.ale_tx_ring_paddr; in ale_init_locked()
2683 paddr = sc->ale_cdata.ale_rx_page[0].page_paddr; in ale_init_locked()
2685 paddr = sc->ale_cdata.ale_rx_page[1].page_paddr; in ale_init_locked()
2688 paddr = sc->ale_cdata.ale_tx_cmb_paddr; in ale_init_locked()
2690 paddr = sc->ale_cdata.ale_rx_page[0].cmb_paddr; in ale_init_locked()
2692 paddr = sc->ale_cdata.ale_rx_page[1].cmb_paddr; in ale_init_locked()
2906 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_stop()
2908 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, in ale_stop()
2910 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, in ale_stop()
2951 sc->ale_cdata.ale_tx_prod = 0; in ale_init_tx_ring()
2952 sc->ale_cdata.ale_tx_cons = 0; in ale_init_tx_ring()
2953 sc->ale_cdata.ale_tx_cnt = 0; in ale_init_tx_ring()
2955 bzero(sc->ale_cdata.ale_tx_ring, ALE_TX_RING_SZ); in ale_init_tx_ring()
2956 bzero(sc->ale_cdata.ale_tx_cmb, ALE_TX_CMB_SZ); in ale_init_tx_ring()
2958 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_init_tx_ring()
2961 *sc->ale_cdata.ale_tx_cmb = 0; in ale_init_tx_ring()
2962 bus_dmamap_sync(sc->ale_cdata.ale_tx_cmb_tag, in ale_init_tx_ring()
2963 sc->ale_cdata.ale_tx_cmb_map, in ale_init_tx_ring()
2965 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_init_tx_ring()
2966 sc->ale_cdata.ale_tx_ring_map, in ale_init_tx_ring()
2979 sc->ale_cdata.ale_rx_seqno = 0; in ale_init_rx_pages()
2980 sc->ale_cdata.ale_rx_curp = 0; in ale_init_rx_pages()
2983 rx_page = &sc->ale_cdata.ale_rx_page[i]; in ale_init_rx_pages()