Lines Matching defs:Tx
524 struct Tx_list *Tx;
561 while ((Tx = sc->active_Tx) != NULL) {
562 Tx->hw_list->stat = 0;
563 bus_dmamap_unload(sc->tl_dmatag, Tx->m_dmamap);
564 bus_dmamap_destroy(sc->tl_dmatag, Tx->m_dmamap);
565 m_freem(Tx->m);
566 sc->active_Tx = Tx->next;
567 Tx->next = sc->Free_Tx;
568 sc->Free_Tx = Tx;
990 struct Tx_list *Tx;
1092 printf("%s: Rx EOC interrupt and active Tx list not "
1113 while ((Tx = sc->active_Tx) != NULL) {
1114 if ((le32toh(Tx->hw_list->stat) & TL_TX_CSTAT_CPLT)
1120 (int)Tx->hw_listaddr);
1122 Tx->hw_list->stat = 0;
1123 bus_dmamap_sync(sc->tl_dmatag, Tx->m_dmamap, 0,
1124 Tx->m_dmamap->dm_mapsize, BUS_DMASYNC_POSTWRITE);
1125 bus_dmamap_unload(sc->tl_dmatag, Tx->m_dmamap);
1126 m_freem(Tx->m);
1127 Tx->m = NULL;
1128 sc->active_Tx = Tx->next;
1131 Tx->next = sc->Free_Tx;
1132 sc->Free_Tx = Tx;
1148 /* needs a Tx go command */
1236 struct Tx_list *Tx;
1259 Tx = sc->Free_Tx;
1260 sc->Free_Tx = Tx->next;
1261 Tx->next = NULL;
1269 memset(Tx->hw_list, 0, sizeof(struct tl_Tx_list));
1270 Tx->m = mb_head;
1272 if ((error = bus_dmamap_load_mbuf(sc->tl_dmatag, Tx->m_dmamap, mb_head,
1274 Tx->m_dmamap->dm_nsegs == TL_NSEG)) {
1281 bus_dmamap_unload(sc->tl_dmatag, Tx->m_dmamap);
1314 for (segment = 0; segment < Tx->m_dmamap->dm_nsegs; segment++) {
1315 Tx->hw_list->seg[segment].data_addr =
1316 htole32(Tx->m_dmamap->dm_segs[segment].ds_addr);
1317 Tx->hw_list->seg[segment].data_count =
1318 htole32(Tx->m_dmamap->dm_segs[segment].ds_len);
1320 bus_dmamap_sync(sc->tl_dmatag, Tx->m_dmamap, 0,
1321 Tx->m_dmamap->dm_mapsize,
1335 Tx->hw_list->seg[segment].data_count =
1337 Tx->hw_list->seg[segment].data_addr =
1343 Tx->hw_list->seg[segment - 1].data_count |=
1345 Tx->hw_list->stat = htole32((size << 16) | 0x3000);
1347 printf("%s: sending, Tx : stat = 0x%x\n", device_xname(sc->sc_dev),
1348 le32toh(Tx->hw_list->stat));
1353 le32toh(Tx->hw_list->seg[segment].data_addr),
1354 le32toh(Tx->hw_list->seg[segment].data_count));
1359 sc->active_Tx = sc->last_Tx = Tx;
1361 printf("%s: Tx GO, addr=0x%ux\n", device_xname(sc->sc_dev),
1362 (int)Tx->hw_listaddr);
1367 TL_HR_WRITE(sc, TL_HOST_CH_PARM, Tx->hw_listaddr);
1371 printf("%s: Tx addr=0x%ux queued\n", device_xname(sc->sc_dev),
1372 (int)Tx->hw_listaddr);
1374 sc->last_Tx->hw_list->fwd = htole32(Tx->hw_listaddr);
1378 sc->last_Tx->next = Tx;
1379 sc->last_Tx = Tx;
1397 printf("%s: Out of mbuf, Tx pkt lost\n", __func__);
1399 Tx->next = sc->Free_Tx;
1400 sc->Free_Tx = Tx;