• Home
  • Raw
  • Download

Lines Matching refs:vcc

318 static void exception(struct atm_vcc *vcc)
321 struct zatm_dev *zatm_dev = ZATM_DEV(vcc->dev);
322 struct zatm_vcc *zatm_vcc = ZATM_VCC(vcc);
374 struct atm_vcc *vcc; in poll_rx() local
422 vcc = zatm_dev->rx_map[chan]; in poll_rx()
423 pos = ZATM_VCC(vcc)->pool; in poll_rx()
432 vcc = NULL; in poll_rx()
464 if (vcc) atomic_inc(&vcc->stats->rx_err); in poll_rx()
467 if (!atm_charge(vcc,skb->truesize)) { in poll_rx()
472 ATM_SKB(skb)->vcc = vcc; in poll_rx()
473 vcc->push(vcc,skb); in poll_rx()
474 atomic_inc(&vcc->stats->rx); in poll_rx()
484 static int open_rx_first(struct atm_vcc *vcc) in open_rx_first() argument
493 zatm_dev = ZATM_DEV(vcc->dev); in open_rx_first()
494 zatm_vcc = ZATM_VCC(vcc); in open_rx_first()
496 if (vcc->qos.rxtp.traffic_class == ATM_NONE) return 0; in open_rx_first()
497 if (vcc->qos.aal == ATM_AAL5) { in open_rx_first()
498 if (vcc->qos.rxtp.max_sdu > 65464) in open_rx_first()
499 vcc->qos.rxtp.max_sdu = 65464; in open_rx_first()
502 cells = DIV_ROUND_UP(vcc->qos.rxtp.max_sdu + ATM_AAL5_TRAILER, in open_rx_first()
520 use_pool(vcc->dev,zatm_vcc->pool); in open_rx_first()
526 zpokel(zatm_dev,uPD98401_RXVC_OD | (vcc->qos.aal == ATM_AAL5 ? in open_rx_first()
530 zatm_dev->rx_map[chan] = vcc; in open_rx_first()
536 static int open_rx_second(struct atm_vcc *vcc) in open_rx_second() argument
544 zatm_dev = ZATM_DEV(vcc->dev); in open_rx_second()
545 zatm_vcc = ZATM_VCC(vcc); in open_rx_second()
549 pos = vcc->vci >> 1; in open_rx_second()
550 shift = (1-(vcc->vci & 1)) << 4; in open_rx_second()
558 static void close_rx(struct atm_vcc *vcc) in close_rx() argument
565 zatm_vcc = ZATM_VCC(vcc); in close_rx()
566 zatm_dev = ZATM_DEV(vcc->dev); in close_rx()
570 if (vcc->vpi != ATM_VPI_UNSPEC && vcc->vci != ATM_VCI_UNSPEC) { in close_rx()
572 pos = vcc->vci >> 1; in close_rx()
573 shift = (1-(vcc->vci & 1)) << 4; in close_rx()
592 "%d\n",vcc->dev->number,zatm_vcc->rx_chan); in close_rx()
596 unuse_pool(vcc->dev,zatm_vcc->pool); in close_rx()
634 struct atm_vcc *vcc; in do_tx() local
642 vcc = ATM_SKB(skb)->vcc; in do_tx()
643 zatm_dev = ZATM_DEV(vcc->dev); in do_tx()
644 zatm_vcc = ZATM_VCC(vcc); in do_tx()
661 | (vcc->qos.aal == ATM_AAL5 ? uPD98401_TXPD_AAL5 : 0 | in do_tx()
676 if (vcc->pop) in do_tx()
677 vcc->pop(vcc, skb); in do_tx()
685 (vcc->aal == ATM_AAL5 ? uPD98401_TXPD_AAL5 : 0 | in do_tx()
712 static inline void dequeue_tx(struct atm_vcc *vcc) in dequeue_tx() argument
718 zatm_vcc = ZATM_VCC(vcc); in dequeue_tx()
722 "txing\n",vcc->dev->number); in dequeue_tx()
732 if (vcc->pop) vcc->pop(vcc,skb); in dequeue_tx()
739 atomic_inc(&vcc->stats->tx); in dequeue_tx()
871 static void close_tx(struct atm_vcc *vcc) in close_tx() argument
878 zatm_vcc = ZATM_VCC(vcc); in close_tx()
879 zatm_dev = ZATM_DEV(vcc->dev); in close_tx()
903 "%d\n",vcc->dev->number,chan); in close_tx()
908 zatm_dev->tx_bw += vcc->qos.txtp.min_pcr; in close_tx()
909 dealloc_shaper(vcc->dev,zatm_vcc->shaper); in close_tx()
915 static int open_tx_first(struct atm_vcc *vcc) in open_tx_first() argument
925 zatm_dev = ZATM_DEV(vcc->dev); in open_tx_first()
926 zatm_vcc = ZATM_VCC(vcc); in open_tx_first()
928 if (vcc->qos.txtp.traffic_class == ATM_NONE) return 0; in open_tx_first()
938 unlimited = vcc->qos.txtp.traffic_class == ATM_UBR && in open_tx_first()
939 (!vcc->qos.txtp.max_pcr || vcc->qos.txtp.max_pcr == ATM_MAX_PCR || in open_tx_first()
940 vcc->qos.txtp.max_pcr >= ATM_OC3_PCR); in open_tx_first()
945 if (unlimited) vcc->qos.txtp.max_sdu = ATM_MAX_AAL5_PDU; in open_tx_first()
946 if ((zatm_vcc->shaper = alloc_shaper(vcc->dev,&pcr, in open_tx_first()
947 vcc->qos.txtp.min_pcr,vcc->qos.txtp.max_pcr,unlimited)) in open_tx_first()
949 close_tx(vcc); in open_tx_first()
953 vcc->qos.txtp.min_pcr = vcc->qos.txtp.max_pcr = pcr; in open_tx_first()
974 static int open_tx_second(struct atm_vcc *vcc) in open_tx_second() argument
981 zatm_dev = ZATM_DEV(vcc->dev); in open_tx_second()
982 zatm_vcc = ZATM_VCC(vcc); in open_tx_second()
988 uPD98401_TXVC_SHP_SHIFT) | (vcc->vpi << uPD98401_TXVC_VPI_SHIFT) | in open_tx_second()
989 vcc->vci,zatm_vcc->tx_chan*VC_SIZE/4+1); in open_tx_second()
992 zatm_dev->tx_map[zatm_vcc->tx_chan] = vcc; in open_tx_second()
1371 static void zatm_close(struct atm_vcc *vcc) in zatm_close() argument
1374 if (!ZATM_VCC(vcc)) return; in zatm_close()
1375 clear_bit(ATM_VF_READY,&vcc->flags); in zatm_close()
1376 close_rx(vcc); in zatm_close()
1378 close_tx(vcc); in zatm_close()
1381 kfree(ZATM_VCC(vcc)); in zatm_close()
1382 vcc->dev_data = NULL; in zatm_close()
1383 clear_bit(ATM_VF_ADDR,&vcc->flags); in zatm_close()
1387 static int zatm_open(struct atm_vcc *vcc) in zatm_open() argument
1390 short vpi = vcc->vpi; in zatm_open()
1391 int vci = vcc->vci; in zatm_open()
1395 if (!test_bit(ATM_VF_PARTIAL,&vcc->flags)) in zatm_open()
1396 vcc->dev_data = NULL; in zatm_open()
1398 set_bit(ATM_VF_ADDR,&vcc->flags); in zatm_open()
1399 if (vcc->qos.aal != ATM_AAL5) return -EINVAL; /* @@@ AAL0 */ in zatm_open()
1400 DPRINTK(DEV_LABEL "(itf %d): open %d.%d\n",vcc->dev->number,vcc->vpi, in zatm_open()
1401 vcc->vci); in zatm_open()
1402 if (!test_bit(ATM_VF_PARTIAL,&vcc->flags)) { in zatm_open()
1405 clear_bit(ATM_VF_ADDR,&vcc->flags); in zatm_open()
1408 vcc->dev_data = zatm_vcc; in zatm_open()
1409 ZATM_VCC(vcc)->tx_chan = 0; /* for zatm_close after open_rx */ in zatm_open()
1410 if ((error = open_rx_first(vcc))) { in zatm_open()
1411 zatm_close(vcc); in zatm_open()
1414 if ((error = open_tx_first(vcc))) { in zatm_open()
1415 zatm_close(vcc); in zatm_open()
1420 if ((error = open_rx_second(vcc))) { in zatm_open()
1421 zatm_close(vcc); in zatm_open()
1424 if ((error = open_tx_second(vcc))) { in zatm_open()
1425 zatm_close(vcc); in zatm_open()
1428 set_bit(ATM_VF_READY,&vcc->flags); in zatm_open()
1433 static int zatm_change_qos(struct atm_vcc *vcc,struct atm_qos *qos,int flags) in zatm_change_qos() argument
1518 static int zatm_send(struct atm_vcc *vcc,struct sk_buff *skb) in zatm_send() argument
1523 if (!ZATM_VCC(vcc)->tx_chan || !test_bit(ATM_VF_READY,&vcc->flags)) { in zatm_send()
1524 if (vcc->pop) vcc->pop(vcc,skb); in zatm_send()
1530 if (vcc->pop) vcc->pop(vcc,skb); in zatm_send()
1533 ATM_SKB(skb)->vcc = vcc; in zatm_send()
1536 skb_queue_tail(&ZATM_VCC(vcc)->backlog,skb); in zatm_send()