Lines Matching refs:ale_cdata

971 	rx_page_end[0] = sc->ale_cdata.ale_rx_page[0].page_paddr +  in ale_check_boundary()
973 rx_page_end[1] = sc->ale_cdata.ale_rx_page[1].page_paddr + in ale_check_boundary()
975 tx_ring_end = sc->ale_cdata.ale_tx_ring_paddr + ALE_TX_RING_SZ; in ale_check_boundary()
976 tx_cmb_end = sc->ale_cdata.ale_tx_cmb_paddr + ALE_TX_CMB_SZ; in ale_check_boundary()
977 rx_cmb_end[0] = sc->ale_cdata.ale_rx_page[0].cmb_paddr + ALE_RX_CMB_SZ; in ale_check_boundary()
978 rx_cmb_end[1] = sc->ale_cdata.ale_rx_page[1].cmb_paddr + ALE_RX_CMB_SZ; in ale_check_boundary()
981 ALE_ADDR_HI(sc->ale_cdata.ale_tx_ring_paddr)) || in ale_check_boundary()
983 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[0].page_paddr)) || in ale_check_boundary()
985 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[1].page_paddr)) || in ale_check_boundary()
987 ALE_ADDR_HI(sc->ale_cdata.ale_tx_cmb_paddr)) || in ale_check_boundary()
989 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[0].cmb_paddr)) || in ale_check_boundary()
991 ALE_ADDR_HI(sc->ale_cdata.ale_rx_page[1].cmb_paddr))) in ale_check_boundary()
1032 &sc->ale_cdata.ale_parent_tag); in ale_dma_alloc()
1041 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1051 &sc->ale_cdata.ale_tx_ring_tag); in ale_dma_alloc()
1061 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1071 &sc->ale_cdata.ale_rx_page[i].page_tag); in ale_dma_alloc()
1081 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1091 &sc->ale_cdata.ale_tx_cmb_tag); in ale_dma_alloc()
1101 sc->ale_cdata.ale_parent_tag, /* parent */ in ale_dma_alloc()
1111 &sc->ale_cdata.ale_rx_page[i].cmb_tag); in ale_dma_alloc()
1120 error = bus_dmamem_alloc(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_alloc()
1121 (void **)&sc->ale_cdata.ale_tx_ring, in ale_dma_alloc()
1123 &sc->ale_cdata.ale_tx_ring_map); in ale_dma_alloc()
1130 error = bus_dmamap_load(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_alloc()
1131 sc->ale_cdata.ale_tx_ring_map, sc->ale_cdata.ale_tx_ring, in ale_dma_alloc()
1138 sc->ale_cdata.ale_tx_ring_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1142 error = bus_dmamem_alloc(sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_alloc()
1143 (void **)&sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_alloc()
1145 &sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_alloc()
1153 error = bus_dmamap_load(sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_alloc()
1154 sc->ale_cdata.ale_rx_page[i].page_map, in ale_dma_alloc()
1155 sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_alloc()
1163 sc->ale_cdata.ale_rx_page[i].page_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1167 error = bus_dmamem_alloc(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_alloc()
1168 (void **)&sc->ale_cdata.ale_tx_cmb, in ale_dma_alloc()
1170 &sc->ale_cdata.ale_tx_cmb_map); in ale_dma_alloc()
1177 error = bus_dmamap_load(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_alloc()
1178 sc->ale_cdata.ale_tx_cmb_map, sc->ale_cdata.ale_tx_cmb, in ale_dma_alloc()
1185 sc->ale_cdata.ale_tx_cmb_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1189 error = bus_dmamem_alloc(sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_alloc()
1190 (void **)&sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_alloc()
1192 &sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_alloc()
1199 error = bus_dmamap_load(sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_alloc()
1200 sc->ale_cdata.ale_rx_page[i].cmb_map, in ale_dma_alloc()
1201 sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_alloc()
1208 sc->ale_cdata.ale_rx_page[i].cmb_paddr = ctx.ale_busaddr; in ale_dma_alloc()
1246 &sc->ale_cdata.ale_buffer_tag); in ale_dma_alloc()
1255 sc->ale_cdata.ale_buffer_tag, /* parent */ in ale_dma_alloc()
1265 &sc->ale_cdata.ale_tx_tag); in ale_dma_alloc()
1273 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_dma_alloc()
1276 error = bus_dmamap_create(sc->ale_cdata.ale_tx_tag, 0, in ale_dma_alloc()
1296 if (sc->ale_cdata.ale_tx_tag != NULL) { in ale_dma_free()
1298 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_dma_free()
1300 bus_dmamap_destroy(sc->ale_cdata.ale_tx_tag, in ale_dma_free()
1305 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_tag); in ale_dma_free()
1306 sc->ale_cdata.ale_tx_tag = NULL; in ale_dma_free()
1309 if (sc->ale_cdata.ale_tx_ring_tag != NULL) { in ale_dma_free()
1310 if (sc->ale_cdata.ale_tx_ring_paddr != 0) in ale_dma_free()
1311 bus_dmamap_unload(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_free()
1312 sc->ale_cdata.ale_tx_ring_map); in ale_dma_free()
1313 if (sc->ale_cdata.ale_tx_ring != NULL) in ale_dma_free()
1314 bus_dmamem_free(sc->ale_cdata.ale_tx_ring_tag, in ale_dma_free()
1315 sc->ale_cdata.ale_tx_ring, in ale_dma_free()
1316 sc->ale_cdata.ale_tx_ring_map); in ale_dma_free()
1317 sc->ale_cdata.ale_tx_ring_paddr = 0; in ale_dma_free()
1318 sc->ale_cdata.ale_tx_ring = NULL; in ale_dma_free()
1319 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_ring_tag); in ale_dma_free()
1320 sc->ale_cdata.ale_tx_ring_tag = NULL; in ale_dma_free()
1324 if (sc->ale_cdata.ale_rx_page[i].page_tag != NULL) { in ale_dma_free()
1325 if (sc->ale_cdata.ale_rx_page[i].page_paddr != 0) in ale_dma_free()
1327 sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_free()
1328 sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_free()
1329 if (sc->ale_cdata.ale_rx_page[i].page_addr != NULL) in ale_dma_free()
1331 sc->ale_cdata.ale_rx_page[i].page_tag, in ale_dma_free()
1332 sc->ale_cdata.ale_rx_page[i].page_addr, in ale_dma_free()
1333 sc->ale_cdata.ale_rx_page[i].page_map); in ale_dma_free()
1334 sc->ale_cdata.ale_rx_page[i].page_paddr = 0; in ale_dma_free()
1335 sc->ale_cdata.ale_rx_page[i].page_addr = NULL; in ale_dma_free()
1337 sc->ale_cdata.ale_rx_page[i].page_tag); in ale_dma_free()
1338 sc->ale_cdata.ale_rx_page[i].page_tag = NULL; in ale_dma_free()
1343 if (sc->ale_cdata.ale_rx_page[i].cmb_tag != NULL) { in ale_dma_free()
1344 if (sc->ale_cdata.ale_rx_page[i].cmb_paddr != 0) in ale_dma_free()
1346 sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_free()
1347 sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_free()
1348 if (sc->ale_cdata.ale_rx_page[i].cmb_addr != NULL) in ale_dma_free()
1350 sc->ale_cdata.ale_rx_page[i].cmb_tag, in ale_dma_free()
1351 sc->ale_cdata.ale_rx_page[i].cmb_addr, in ale_dma_free()
1352 sc->ale_cdata.ale_rx_page[i].cmb_map); in ale_dma_free()
1353 sc->ale_cdata.ale_rx_page[i].cmb_paddr = 0; in ale_dma_free()
1354 sc->ale_cdata.ale_rx_page[i].cmb_addr = NULL; in ale_dma_free()
1356 sc->ale_cdata.ale_rx_page[i].cmb_tag); in ale_dma_free()
1357 sc->ale_cdata.ale_rx_page[i].cmb_tag = NULL; in ale_dma_free()
1361 if (sc->ale_cdata.ale_tx_cmb_tag != NULL) { in ale_dma_free()
1362 if (sc->ale_cdata.ale_tx_cmb_paddr != 0) in ale_dma_free()
1363 bus_dmamap_unload(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_free()
1364 sc->ale_cdata.ale_tx_cmb_map); in ale_dma_free()
1365 if (sc->ale_cdata.ale_tx_cmb != NULL) in ale_dma_free()
1366 bus_dmamem_free(sc->ale_cdata.ale_tx_cmb_tag, in ale_dma_free()
1367 sc->ale_cdata.ale_tx_cmb, in ale_dma_free()
1368 sc->ale_cdata.ale_tx_cmb_map); in ale_dma_free()
1369 sc->ale_cdata.ale_tx_cmb_paddr = 0; in ale_dma_free()
1370 sc->ale_cdata.ale_tx_cmb = NULL; in ale_dma_free()
1371 bus_dma_tag_destroy(sc->ale_cdata.ale_tx_cmb_tag); in ale_dma_free()
1372 sc->ale_cdata.ale_tx_cmb_tag = NULL; in ale_dma_free()
1374 if (sc->ale_cdata.ale_buffer_tag != NULL) { in ale_dma_free()
1375 bus_dma_tag_destroy(sc->ale_cdata.ale_buffer_tag); in ale_dma_free()
1376 sc->ale_cdata.ale_buffer_tag = NULL; in ale_dma_free()
1378 if (sc->ale_cdata.ale_parent_tag != NULL) { in ale_dma_free()
1379 bus_dma_tag_destroy(sc->ale_cdata.ale_parent_tag); in ale_dma_free()
1380 sc->ale_cdata.ale_parent_tag = NULL; in ale_dma_free()
1712 si = prod = sc->ale_cdata.ale_tx_prod; in ale_encap()
1713 txd = &sc->ale_cdata.ale_txdesc[prod]; in ale_encap()
1717 error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, in ale_encap()
1727 error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, in ale_encap()
1743 if (sc->ale_cdata.ale_tx_cnt + nsegs >= ALE_TX_RING_CNT - 3) { in ale_encap()
1744 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, map); in ale_encap()
1747 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, map, BUS_DMASYNC_PREWRITE); in ale_encap()
1802 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1806 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1810 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1815 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1821 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1825 sc->ale_cdata.ale_tx_cnt++; in ale_encap()
1829 sc->ale_cdata.ale_tx_prod = prod; in ale_encap()
1832 desc = &sc->ale_cdata.ale_tx_ring[si]; in ale_encap()
1838 desc = &sc->ale_cdata.ale_tx_ring[prod]; in ale_encap()
1842 txd = &sc->ale_cdata.ale_txdesc[prod]; in ale_encap()
1849 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_encap()
1850 sc->ale_cdata.ale_tx_ring_map, in ale_encap()
1879 if (sc->ale_cdata.ale_tx_cnt >= ALE_TX_DESC_HIWAT) in ale_start_locked()
1914 sc->ale_cdata.ale_tx_prod); in ale_start_locked()
2297 if (sc->ale_cdata.ale_tx_cnt == 0) in ale_txeof()
2300 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_txeof()
2301 sc->ale_cdata.ale_tx_ring_map, in ale_txeof()
2304 bus_dmamap_sync(sc->ale_cdata.ale_tx_cmb_tag, in ale_txeof()
2305 sc->ale_cdata.ale_tx_cmb_map, in ale_txeof()
2307 prod = *sc->ale_cdata.ale_tx_cmb & TPD_CNT_MASK; in ale_txeof()
2310 cons = sc->ale_cdata.ale_tx_cons; in ale_txeof()
2317 if (sc->ale_cdata.ale_tx_cnt <= 0) in ale_txeof()
2321 sc->ale_cdata.ale_tx_cnt--; in ale_txeof()
2322 txd = &sc->ale_cdata.ale_txdesc[cons]; in ale_txeof()
2325 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, in ale_txeof()
2327 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, in ale_txeof()
2335 sc->ale_cdata.ale_tx_cons = cons; in ale_txeof()
2340 if (sc->ale_cdata.ale_tx_cnt == 0) in ale_txeof()
2364 CSR_WRITE_1(sc, ALE_RXF0_PAGE0 + sc->ale_cdata.ale_rx_curp, in ale_rx_update_page()
2367 sc->ale_cdata.ale_rx_curp ^= 1; in ale_rx_update_page()
2369 &sc->ale_cdata.ale_rx_page[sc->ale_cdata.ale_rx_curp]; in ale_rx_update_page()
2448 rx_page = &sc->ale_cdata.ale_rx_page[sc->ale_cdata.ale_rx_curp]; in ale_rxeof()
2468 if (sc->ale_cdata.ale_rx_seqno != seqno) { in ale_rxeof()
2485 sc->ale_cdata.ale_rx_seqno); in ale_rxeof()
2489 sc->ale_cdata.ale_rx_seqno++; in ale_rxeof()
2651 paddr = sc->ale_cdata.ale_tx_ring_paddr; in ale_init_locked()
2657 paddr = sc->ale_cdata.ale_rx_page[0].page_paddr; in ale_init_locked()
2659 paddr = sc->ale_cdata.ale_rx_page[1].page_paddr; in ale_init_locked()
2662 paddr = sc->ale_cdata.ale_tx_cmb_paddr; in ale_init_locked()
2664 paddr = sc->ale_cdata.ale_rx_page[0].cmb_paddr; in ale_init_locked()
2666 paddr = sc->ale_cdata.ale_rx_page[1].cmb_paddr; in ale_init_locked()
2880 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_stop()
2882 bus_dmamap_sync(sc->ale_cdata.ale_tx_tag, in ale_stop()
2884 bus_dmamap_unload(sc->ale_cdata.ale_tx_tag, in ale_stop()
2925 sc->ale_cdata.ale_tx_prod = 0; in ale_init_tx_ring()
2926 sc->ale_cdata.ale_tx_cons = 0; in ale_init_tx_ring()
2927 sc->ale_cdata.ale_tx_cnt = 0; in ale_init_tx_ring()
2929 bzero(sc->ale_cdata.ale_tx_ring, ALE_TX_RING_SZ); in ale_init_tx_ring()
2930 bzero(sc->ale_cdata.ale_tx_cmb, ALE_TX_CMB_SZ); in ale_init_tx_ring()
2932 txd = &sc->ale_cdata.ale_txdesc[i]; in ale_init_tx_ring()
2935 *sc->ale_cdata.ale_tx_cmb = 0; in ale_init_tx_ring()
2936 bus_dmamap_sync(sc->ale_cdata.ale_tx_cmb_tag, in ale_init_tx_ring()
2937 sc->ale_cdata.ale_tx_cmb_map, in ale_init_tx_ring()
2939 bus_dmamap_sync(sc->ale_cdata.ale_tx_ring_tag, in ale_init_tx_ring()
2940 sc->ale_cdata.ale_tx_ring_map, in ale_init_tx_ring()
2953 sc->ale_cdata.ale_rx_seqno = 0; in ale_init_rx_pages()
2954 sc->ale_cdata.ale_rx_curp = 0; in ale_init_rx_pages()
2957 rx_page = &sc->ale_cdata.ale_rx_page[i]; in ale_init_rx_pages()