Lines Matching refs:txch
481 struct emac_txch *txch[EMAC_DEF_MAX_TX_CH];
1216 struct emac_txch *txch = NULL;
1218 txch = kzalloc(sizeof(struct emac_txch), GFP_KERNEL);
1219 if (NULL == txch) {
1223 priv->txch[ch] = txch;
1224 txch->service_max = EMAC_DEF_TX_MAX_SERVICE;
1225 txch->active_queue_head = NULL;
1226 txch->active_queue_tail = NULL;
1227 txch->queue_active = 0;
1228 txch->teardown_pending = 0;
1231 txch->tx_complete = kzalloc(txch->service_max * sizeof(u32),
1233 if (NULL == txch->tx_complete) {
1235 kfree(txch);
1242 txch->num_bd = (priv->ctrl_ram_size >> 1) / bd_size;
1243 txch->alloc_size = (((bd_size * txch->num_bd) + 0xF) & ~0xF);
1246 txch->bd_mem = EMAC_TX_BD_MEM(priv);
1247 __memzero((void __force *)txch->bd_mem, txch->alloc_size);
1251 (((u32 __force) txch->bd_mem + 0xF) & ~0xF);
1252 txch->bd_pool_head = NULL;
1253 for (cnt = 0; cnt < txch->num_bd; cnt++) {
1255 curr_bd->next = txch->bd_pool_head;
1256 txch->bd_pool_head = curr_bd;
1260 txch->out_of_tx_bd = 0;
1261 txch->no_active_pkts = 0;
1262 txch->active_queue_count = 0;
1277 struct emac_txch *txch = priv->txch[ch];
1279 if (txch) {
1280 if (txch->bd_mem)
1281 txch->bd_mem = NULL;
1282 kfree(txch->tx_complete);
1283 kfree(txch);
1284 priv->txch[ch] = NULL;
1330 struct emac_txch *txch = priv->txch[ch];
1346 if (1 == txch->queue_active) {
1347 curr_bd = txch->active_queue_head;
1355 if (curr_bd != txch->active_queue_tail)
1360 txch->bd_pool_head = txch->active_queue_head;
1361 txch->active_queue_head =
1362 txch->active_queue_tail = NULL;
1376 struct emac_txch *txch = priv->txch[ch];
1378 if (txch) {
1379 txch->teardown_pending = 1;
1382 txch->teardown_pending = 0;
1409 struct emac_txch *txch = priv->txch[ch];
1410 u32 *tx_complete_ptr = txch->tx_complete;
1412 if (unlikely(1 == txch->teardown_pending)) {
1420 ++txch->proc_count;
1422 curr_bd = txch->active_queue_head;
1425 emac_virt_to_phys(txch->last_hw_bdprocessed, priv));
1426 txch->no_active_pkts++;
1436 txch->active_queue_head = curr_bd->next;
1440 ++txch->mis_queued_packets;
1442 txch->queue_active = 0; /* end of queue */
1453 curr_bd->next = txch->bd_pool_head;
1454 txch->bd_pool_head = curr_bd;
1455 --txch->active_queue_count;
1457 txch->last_hw_bdprocessed = curr_bd;
1458 curr_bd = txch->active_queue_head;
1466 (void *)&txch->tx_complete[0],
1488 struct emac_txch *txch;
1491 txch = priv->txch[ch];
1501 curr_bd = txch->bd_pool_head;
1503 txch->out_of_tx_bd++;
1508 txch->bd_pool_head = curr_bd->next;
1522 if (txch->active_queue_head == NULL) {
1523 txch->active_queue_head = curr_bd;
1524 txch->active_queue_tail = curr_bd;
1525 if (1 != txch->queue_active) {
1528 txch->queue_active = 1;
1530 ++txch->queue_reinit;
1535 tail_bd = txch->active_queue_tail;
1537 txch->active_queue_tail = curr_bd;
1546 ++txch->end_of_queue_add;
1549 txch->active_queue_count++;