Lines Matching refs:tx
183 if (eni_dev->tx[i].send) in dump()
185 eni_dev->tx[i].send,eni_dev->tx[i].words*4); in dump()
1032 struct eni_tx *tx; in do_tx() local
1047 tx = eni_vcc->tx; in do_tx()
1048 NULLCHECK(tx); in do_tx()
1087 if (!NEPMOK(tx->tx_pos,size+TX_GAP, in do_tx()
1088 eni_in(MID_TX_RDPTR(tx->index)),tx->words)) { in do_tx()
1105 DPRINTK("dma_wr is %d, tx_pos is %ld\n",dma_wr,tx->tx_pos); in do_tx()
1120 eni_dev->dma[j++] = (((tx->tx_pos+TX_DESCR_SIZE) & (tx->words-1)) << in do_tx()
1121 MID_DMA_COUNT_SHIFT) | (tx->index << MID_DMA_CHAN_SHIFT) | in do_tx()
1125 if (aal5) put_dma(tx->index,eni_dev->dma,&j,paddr,skb->len); in do_tx()
1126 else put_dma(tx->index,eni_dev->dma,&j,paddr+4,skb->len-4); in do_tx()
1131 put_dma(tx->index,eni_dev->dma,&j,(unsigned long) in do_tx()
1135 put_dma(tx->index,eni_dev->dma,&j,(unsigned long) in do_tx()
1141 put_dma(tx->index, eni_dev->dma, &j, eni_dev->zero.dma, in do_tx()
1145 eni_dev->dma[j++] = (((tx->tx_pos+size) & (tx->words-1)) << in do_tx()
1146 MID_DMA_COUNT_SHIFT) | (tx->index << MID_DMA_CHAN_SHIFT) | in do_tx()
1152 (aal5 ? MID_SEG_AAL5 : 0) | (tx->prescaler << MID_SEG_PR_SHIFT) | in do_tx()
1153 (tx->resolution << MID_SEG_RATE_SHIFT) | in do_tx()
1154 (size/(ATM_CELL_PAYLOAD/4)),tx->send+tx->tx_pos*4); in do_tx()
1159 tx->send+((tx->tx_pos+1) & (tx->words-1))*4); in do_tx()
1162 writel(skb->len,tx->send+ in do_tx()
1163 ((tx->tx_pos+size-AAL5_TRAILER) & (tx->words-1))*4); in do_tx()
1170 ENI_PRV_POS(skb) = tx->tx_pos; in do_tx()
1173 tx->tx_pos = (tx->tx_pos+size) & (tx->words-1); in do_tx()
1174 DPRINTK("dma_wr set to %d, tx_pos is now %ld\n",dma_wr,tx->tx_pos); in do_tx()
1184 struct eni_tx *tx; in poll_tx() local
1191 tx = &ENI_DEV(dev)->tx[i]; in poll_tx()
1192 if (tx->send) in poll_tx()
1193 while ((skb = skb_dequeue(&tx->backlog))) { in poll_tx()
1197 skb_queue_head(&tx->backlog,skb); in poll_tx()
1211 struct eni_tx *tx; in dequeue_tx() local
1219 tx = ENI_VCC(vcc)->tx; in dequeue_tx()
1220 NULLCHECK(ENI_VCC(vcc)->tx); in dequeue_tx()
1222 (unsigned) eni_in(MID_TX_DESCRSTART(tx->index))); in dequeue_tx()
1223 if (ENI_VCC(vcc)->txing < tx->words && ENI_PRV_POS(skb) == in dequeue_tx()
1224 eni_in(MID_TX_DESCRSTART(tx->index))) { in dequeue_tx()
1233 atomic_inc(&vcc->stats->tx); in dequeue_tx()
1245 if (!eni_dev->tx[i].send) return eni_dev->tx+i; in alloc_tx()
1292 struct eni_tx *tx; in reserve_or_set_tx() local
1311 eni_vcc->tx = eni_dev->ubr; in reserve_or_set_tx()
1317 new_tx = !eni_vcc->tx; in reserve_or_set_tx()
1319 if (!new_tx) tx = eni_vcc->tx; in reserve_or_set_tx()
1323 tx = alloc_tx(eni_dev,unlimited); in reserve_or_set_tx()
1324 if (!tx) { in reserve_or_set_tx()
1328 DPRINTK("got chan %d\n",tx->index); in reserve_or_set_tx()
1329 tx->reserved = tx->shaping = 0; in reserve_or_set_tx()
1330 tx->send = mem; in reserve_or_set_tx()
1331 tx->words = size >> 2; in reserve_or_set_tx()
1332 skb_queue_head_init(&tx->backlog); in reserve_or_set_tx()
1335 ((tx->send-eni_dev->ram) >> (MID_LOC_SKIP+2)), in reserve_or_set_tx()
1336 MID_TX_PLACE(tx->index)); in reserve_or_set_tx()
1337 tx->tx_pos = eni_in(MID_TX_DESCRSTART(tx->index)) & in reserve_or_set_tx()
1340 error = comp_tx(eni_dev,&rate,tx->reserved,&pre,&res,unlimited); in reserve_or_set_tx()
1344 if (!error && !ubr && rate > eni_dev->tx_bw+tx->reserved) in reserve_or_set_tx()
1346 if (!error && set_rsv && !set_shp && rate < tx->shaping) in reserve_or_set_tx()
1348 if (!error && !set_rsv && rate > tx->reserved && !ubr) in reserve_or_set_tx()
1352 tx->send = NULL; in reserve_or_set_tx()
1359 eni_dev->tx_bw += tx->reserved; in reserve_or_set_tx()
1360 tx->reserved = rate; in reserve_or_set_tx()
1364 if (unlimited && new_tx) eni_dev->ubr = tx; in reserve_or_set_tx()
1365 tx->prescaler = pre; in reserve_or_set_tx()
1366 tx->resolution = res; in reserve_or_set_tx()
1367 tx->shaping = rate; in reserve_or_set_tx()
1369 if (set_shp) eni_vcc->tx = tx; in reserve_or_set_tx()
1370 DPRINTK("rsv %d shp %d\n",tx->reserved,tx->shaping); in reserve_or_set_tx()
1377 ENI_VCC(vcc)->tx = NULL; in open_tx_first()
1397 if (!eni_vcc->tx) return; in close_tx()
1407 txing = skb_peek(&eni_vcc->tx->backlog) || eni_vcc->txing; in close_tx()
1416 if (eni_vcc->tx != eni_dev->ubr) { in close_tx()
1422 while (eni_in(MID_TX_RDPTR(eni_vcc->tx->index)) != in close_tx()
1423 eni_in(MID_TX_DESCRSTART(eni_vcc->tx->index))) in close_tx()
1425 eni_free_mem(eni_dev,eni_vcc->tx->send,eni_vcc->tx->words << 2); in close_tx()
1426 eni_vcc->tx->send = NULL; in close_tx()
1427 eni_dev->tx_bw += eni_vcc->tx->reserved; in close_tx()
1429 eni_vcc->tx = NULL; in close_tx()
1447 eni_dev->tx[i].send = NULL; in start_tx()
1448 eni_dev->tx[i].index = i; in start_tx()
1931 eni_vcc->tx = NULL; /* for eni_close after open_rx */ in eni_open()
1959 struct eni_tx *tx = ENI_VCC(vcc)->tx; in eni_change_qos() local
1964 if (tx == eni_dev->ubr) return -EBADFD; in eni_change_qos()
1968 if ((flgs & ATM_MF_DEC_RSV) && rate && rate < tx->reserved) rsv = 1; in eni_change_qos()
1969 if ((flgs & ATM_MF_INC_RSV) && (!rate || rate > tx->reserved)) rsv = 1; in eni_change_qos()
1970 if ((flgs & ATM_MF_DEC_SHP) && rate && rate < tx->shaping) shp = 1; in eni_change_qos()
1971 if ((flgs & ATM_MF_INC_SHP) && (!rate || rate > tx->shaping)) shp = 1; in eni_change_qos()
1985 dsc = tx->send+ENI_PRV_POS(skb)*4; in eni_change_qos()
1987 (tx->prescaler << MID_SEG_PR_SHIFT) | in eni_change_qos()
1988 (tx->resolution << MID_SEG_RATE_SHIFT), dsc); in eni_change_qos()
2013 if ((mult.tx && mult.tx <= 100) || (mult.rx &&mult.rx <= 100) || in eni_ioctl()
2014 mult.tx > 65536 || mult.rx > 65536) in eni_ioctl()
2016 if (mult.tx) eni_dev->tx_mult = mult.tx; in eni_ioctl()
2039 if (!ENI_VCC(vcc)->tx) { in eni_send()
2063 skb_queue_tail(&ENI_VCC(vcc)->tx->backlog,skb); in eni_send()
2143 struct eni_tx *tx = eni_dev->tx+i; in eni_proc_read() local
2145 if (!tx->send) continue; in eni_proc_read()
2149 (unsigned long) (tx->send - eni_dev->ram), in eni_proc_read()
2150 tx->send-eni_dev->ram+tx->words*4-1,tx->words*4, in eni_proc_read()
2151 tx->reserved,tx->shaping, in eni_proc_read()
2152 tx == eni_dev->ubr ? " (UBR)" : ""); in eni_proc_read()
2156 skb_queue_len(&tx->backlog)); in eni_proc_read()
2178 if (eni_vcc->tx) length += sprintf(page+length,", "); in eni_proc_read()
2180 if (eni_vcc->tx) in eni_proc_read()
2182 eni_vcc->tx->index,eni_vcc->txing); in eni_proc_read()