Lines Matching refs:lvcc

646 static inline u32 cardvcc_read(const struct lanai_vcc *lvcc,  in cardvcc_read()  argument
650 APRINTK(lvcc->vbase != NULL, "cardvcc_read: unbound vcc!\n"); in cardvcc_read()
651 val= readl(lvcc->vbase + offset); in cardvcc_read()
653 lvcc->vci, (int) offset, val); in cardvcc_read()
657 static inline void cardvcc_write(const struct lanai_vcc *lvcc, in cardvcc_write() argument
660 APRINTK(lvcc->vbase != NULL, "cardvcc_write: unbound vcc!\n"); in cardvcc_write()
663 (unsigned int) val, lvcc->vci, (unsigned int) offset); in cardvcc_write()
665 lvcc->vci, (unsigned int) offset, (unsigned int) val); in cardvcc_write()
666 writel(val, lvcc->vbase + offset); in cardvcc_write()
693 static void host_vcc_start_rx(const struct lanai_vcc *lvcc) in host_vcc_start_rx() argument
696 if (lvcc->rx.atmvcc->qos.aal == ATM_AAL5) { in host_vcc_start_rx()
697 dma_addr_t dmaaddr = lvcc->rx.buf.dmaaddr; in host_vcc_start_rx()
698 cardvcc_write(lvcc, 0xFFFF, vcc_rxcrc1); in host_vcc_start_rx()
699 cardvcc_write(lvcc, 0xFFFF, vcc_rxcrc2); in host_vcc_start_rx()
700 cardvcc_write(lvcc, 0, vcc_rxwriteptr); in host_vcc_start_rx()
701 cardvcc_write(lvcc, 0, vcc_rxbufstart); in host_vcc_start_rx()
702 cardvcc_write(lvcc, 0, vcc_rxreadptr); in host_vcc_start_rx()
703 cardvcc_write(lvcc, (dmaaddr >> 16) & 0xFFFF, vcc_rxaddr2); in host_vcc_start_rx()
705 RXADDR1_SET_SIZE(lanai_buf_size_cardorder(&lvcc->rx.buf))| in host_vcc_start_rx()
714 cardvcc_write(lvcc, addr1, vcc_rxaddr1); in host_vcc_start_rx()
717 static void host_vcc_start_tx(const struct lanai_vcc *lvcc) in host_vcc_start_tx() argument
719 dma_addr_t dmaaddr = lvcc->tx.buf.dmaaddr; in host_vcc_start_tx()
720 cardvcc_write(lvcc, 0, vcc_txicg); in host_vcc_start_tx()
721 cardvcc_write(lvcc, 0xFFFF, vcc_txcrc1); in host_vcc_start_tx()
722 cardvcc_write(lvcc, 0xFFFF, vcc_txcrc2); in host_vcc_start_tx()
723 cardvcc_write(lvcc, 0, vcc_txreadptr); in host_vcc_start_tx()
724 cardvcc_write(lvcc, 0, vcc_txendptr); in host_vcc_start_tx()
725 cardvcc_write(lvcc, 0, vcc_txwriteptr); in host_vcc_start_tx()
726 cardvcc_write(lvcc, in host_vcc_start_tx()
727 (lvcc->tx.atmvcc->qos.txtp.traffic_class == ATM_CBR) ? in host_vcc_start_tx()
728 TXCBR_NEXT_BOZO | lvcc->vci : 0, vcc_txcbr_next); in host_vcc_start_tx()
729 cardvcc_write(lvcc, (dmaaddr >> 16) & 0xFFFF, vcc_txaddr2); in host_vcc_start_tx()
730 cardvcc_write(lvcc, in host_vcc_start_tx()
732 TXADDR1_SET_SIZE(lanai_buf_size_cardorder(&lvcc->tx.buf)), in host_vcc_start_tx()
737 static void lanai_shutdown_rx_vci(const struct lanai_vcc *lvcc) in lanai_shutdown_rx_vci() argument
739 if (lvcc->vbase == NULL) /* We were never bound to a VCI */ in lanai_shutdown_rx_vci()
742 cardvcc_write(lvcc, in lanai_shutdown_rx_vci()
747 cardvcc_write(lvcc, 0, vcc_rxaddr2); in lanai_shutdown_rx_vci()
748 cardvcc_write(lvcc, 0, vcc_rxcrc1); in lanai_shutdown_rx_vci()
749 cardvcc_write(lvcc, 0, vcc_rxcrc2); in lanai_shutdown_rx_vci()
750 cardvcc_write(lvcc, 0, vcc_rxwriteptr); in lanai_shutdown_rx_vci()
751 cardvcc_write(lvcc, 0, vcc_rxbufstart); in lanai_shutdown_rx_vci()
752 cardvcc_write(lvcc, 0, vcc_rxreadptr); in lanai_shutdown_rx_vci()
763 struct lanai_vcc *lvcc) in lanai_shutdown_tx_vci() argument
769 if (lvcc->vbase == NULL) /* We were never bound to a VCI */ in lanai_shutdown_tx_vci()
772 while ((skb = skb_dequeue(&lvcc->tx.backlog)) != NULL) in lanai_shutdown_tx_vci()
773 lanai_free_skb(lvcc->tx.atmvcc, skb); in lanai_shutdown_tx_vci()
775 __clear_bit(lvcc->vci, lanai->backlog_vccs); in lanai_shutdown_tx_vci()
783 (((lanai_buf_size(&lvcc->tx.buf) / 1024) * HZ) >> 7); in lanai_shutdown_tx_vci()
784 write = TXWRITEPTR_GET_PTR(cardvcc_read(lvcc, vcc_txwriteptr)); in lanai_shutdown_tx_vci()
786 read = TXREADPTR_GET_PTR(cardvcc_read(lvcc, vcc_txreadptr)); in lanai_shutdown_tx_vci()
788 (lvcc->tx.atmvcc->qos.txtp.traffic_class != ATM_CBR || in lanai_shutdown_tx_vci()
789 (cardvcc_read(lvcc, vcc_txcbr_next) & in lanai_shutdown_tx_vci()
799 lvcc->tx.atmvcc->dev->number, lvcc->vci); in lanai_shutdown_tx_vci()
806 cardvcc_write(lvcc, 0, vcc_txreadptr); in lanai_shutdown_tx_vci()
807 cardvcc_write(lvcc, 0, vcc_txwriteptr); in lanai_shutdown_tx_vci()
808 cardvcc_write(lvcc, 0, vcc_txendptr); in lanai_shutdown_tx_vci()
809 cardvcc_write(lvcc, 0, vcc_txcrc1); in lanai_shutdown_tx_vci()
810 cardvcc_write(lvcc, 0, vcc_txcrc2); in lanai_shutdown_tx_vci()
811 cardvcc_write(lvcc, 0, vcc_txaddr2); in lanai_shutdown_tx_vci()
812 cardvcc_write(lvcc, 0, vcc_txaddr1); in lanai_shutdown_tx_vci()
1133 static inline int vcc_tx_space(const struct lanai_vcc *lvcc, int endptr) in vcc_tx_space() argument
1137 r -= ((unsigned long) lvcc->tx.buf.ptr) - in vcc_tx_space()
1138 ((unsigned long) lvcc->tx.buf.start); in vcc_tx_space()
1141 r += lanai_buf_size(&lvcc->tx.buf); in vcc_tx_space()
1146 static inline int vcc_is_backlogged(const struct lanai_vcc *lvcc) in vcc_is_backlogged() argument
1148 return !skb_queue_empty(&lvcc->tx.backlog); in vcc_is_backlogged()
1158 static inline void vcc_tx_add_aal5_descriptor(struct lanai_vcc *lvcc, in vcc_tx_add_aal5_descriptor() argument
1162 APRINTK((((unsigned long) lvcc->tx.buf.ptr) & 15) == 0, in vcc_tx_add_aal5_descriptor()
1163 "vcc_tx_add_aal5_descriptor: bad ptr=%p\n", lvcc->tx.buf.ptr); in vcc_tx_add_aal5_descriptor()
1164 lvcc->tx.buf.ptr += 4; /* Hope the values REALLY don't matter */ in vcc_tx_add_aal5_descriptor()
1165 pos = ((unsigned char *) lvcc->tx.buf.ptr) - in vcc_tx_add_aal5_descriptor()
1166 (unsigned char *) lvcc->tx.buf.start; in vcc_tx_add_aal5_descriptor()
1169 "start,ptr,end=%p,%p,%p\n", pos, lvcc->vci, in vcc_tx_add_aal5_descriptor()
1170 lvcc->tx.buf.start, lvcc->tx.buf.ptr, lvcc->tx.buf.end); in vcc_tx_add_aal5_descriptor()
1171 pos = (pos + len) & (lanai_buf_size(&lvcc->tx.buf) - 1); in vcc_tx_add_aal5_descriptor()
1174 "start,ptr,end=%p,%p,%p\n", pos, lvcc->vci, in vcc_tx_add_aal5_descriptor()
1175 lvcc->tx.buf.start, lvcc->tx.buf.ptr, lvcc->tx.buf.end); in vcc_tx_add_aal5_descriptor()
1176 lvcc->tx.buf.ptr[-1] = in vcc_tx_add_aal5_descriptor()
1178 ((lvcc->tx.atmvcc->atm_options & ATM_ATMOPT_CLP) ? in vcc_tx_add_aal5_descriptor()
1180 if (lvcc->tx.buf.ptr >= lvcc->tx.buf.end) in vcc_tx_add_aal5_descriptor()
1181 lvcc->tx.buf.ptr = lvcc->tx.buf.start; in vcc_tx_add_aal5_descriptor()
1185 static inline void vcc_tx_add_aal5_trailer(struct lanai_vcc *lvcc, in vcc_tx_add_aal5_trailer() argument
1188 APRINTK((((unsigned long) lvcc->tx.buf.ptr) & 15) == 8, in vcc_tx_add_aal5_trailer()
1189 "vcc_tx_add_aal5_trailer: bad ptr=%p\n", lvcc->tx.buf.ptr); in vcc_tx_add_aal5_trailer()
1190 lvcc->tx.buf.ptr += 2; in vcc_tx_add_aal5_trailer()
1191 lvcc->tx.buf.ptr[-2] = cpu_to_be32((uu << 24) | (cpi << 16) | len); in vcc_tx_add_aal5_trailer()
1192 if (lvcc->tx.buf.ptr >= lvcc->tx.buf.end) in vcc_tx_add_aal5_trailer()
1193 lvcc->tx.buf.ptr = lvcc->tx.buf.start; in vcc_tx_add_aal5_trailer()
1196 static inline void vcc_tx_memcpy(struct lanai_vcc *lvcc, in vcc_tx_memcpy() argument
1201 e = ((unsigned char *) lvcc->tx.buf.ptr) + n; in vcc_tx_memcpy()
1202 m = e - (unsigned char *) lvcc->tx.buf.end; in vcc_tx_memcpy()
1205 memcpy(lvcc->tx.buf.ptr, src, n - m); in vcc_tx_memcpy()
1207 memcpy(lvcc->tx.buf.start, src + n - m, m); in vcc_tx_memcpy()
1208 e = ((unsigned char *) lvcc->tx.buf.start) + m; in vcc_tx_memcpy()
1210 lvcc->tx.buf.ptr = (u32 *) e; in vcc_tx_memcpy()
1213 static inline void vcc_tx_memzero(struct lanai_vcc *lvcc, int n) in vcc_tx_memzero() argument
1219 e = ((unsigned char *) lvcc->tx.buf.ptr) + n; in vcc_tx_memzero()
1220 m = e - (unsigned char *) lvcc->tx.buf.end; in vcc_tx_memzero()
1223 memset(lvcc->tx.buf.ptr, 0, n - m); in vcc_tx_memzero()
1225 memset(lvcc->tx.buf.start, 0, m); in vcc_tx_memzero()
1226 e = ((unsigned char *) lvcc->tx.buf.start) + m; in vcc_tx_memzero()
1228 lvcc->tx.buf.ptr = (u32 *) e; in vcc_tx_memzero()
1233 const struct lanai_vcc *lvcc) in lanai_endtx() argument
1235 int i, ptr = ((unsigned char *) lvcc->tx.buf.ptr) - in lanai_endtx()
1236 (unsigned char *) lvcc->tx.buf.start; in lanai_endtx()
1239 ptr, lvcc->vci, lvcc->tx.buf.start, lvcc->tx.buf.ptr, in lanai_endtx()
1240 lvcc->tx.buf.end); in lanai_endtx()
1269 reg_write(lanai, (ptr << 12) | lvcc->vci, Butt_Reg); in lanai_endtx()
1278 struct lanai_vcc *lvcc, struct sk_buff *skb, int pdusize) in lanai_send_one_aal5() argument
1284 vcc_tx_add_aal5_descriptor(lvcc, 0, pdusize); in lanai_send_one_aal5()
1288 vcc_tx_memcpy(lvcc, skb->data, skb->len); in lanai_send_one_aal5()
1289 vcc_tx_memzero(lvcc, pad); in lanai_send_one_aal5()
1290 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); in lanai_send_one_aal5()
1291 lanai_endtx(lanai, lvcc); in lanai_send_one_aal5()
1292 lanai_free_skb(lvcc->tx.atmvcc, skb); in lanai_send_one_aal5()
1293 atomic_inc(&lvcc->tx.atmvcc->stats->tx); in lanai_send_one_aal5()
1298 struct lanai_vcc *lvcc, int endptr) in vcc_tx_unqueue_aal5() argument
1302 int space = vcc_tx_space(lvcc, endptr); in vcc_tx_unqueue_aal5()
1303 APRINTK(vcc_is_backlogged(lvcc), in vcc_tx_unqueue_aal5()
1305 lvcc->vci); in vcc_tx_unqueue_aal5()
1307 skb = skb_dequeue(&lvcc->tx.backlog); in vcc_tx_unqueue_aal5()
1313 skb_queue_head(&lvcc->tx.backlog, skb); in vcc_tx_unqueue_aal5()
1316 lanai_send_one_aal5(lanai, lvcc, skb, n); in vcc_tx_unqueue_aal5()
1319 if (!vcc_is_backlogged(lvcc)) { in vcc_tx_unqueue_aal5()
1321 __clear_bit(lvcc->vci, lanai->backlog_vccs); in vcc_tx_unqueue_aal5()
1326 static void vcc_tx_aal5(struct lanai_dev *lanai, struct lanai_vcc *lvcc, in vcc_tx_aal5() argument
1330 if (vcc_is_backlogged(lvcc)) /* Already backlogged */ in vcc_tx_aal5()
1332 space = vcc_tx_space(lvcc, in vcc_tx_aal5()
1333 TXREADPTR_GET_PTR(cardvcc_read(lvcc, vcc_txreadptr))); in vcc_tx_aal5()
1337 __set_bit(lvcc->vci, lanai->backlog_vccs); in vcc_tx_aal5()
1339 skb_queue_tail(&lvcc->tx.backlog, skb); in vcc_tx_aal5()
1342 lanai_send_one_aal5(lanai, lvcc, skb, n); in vcc_tx_aal5()
1346 struct lanai_vcc *lvcc, int endptr) in vcc_tx_unqueue_aal0() argument
1352 static void vcc_tx_aal0(struct lanai_dev *lanai, struct lanai_vcc *lvcc, in vcc_tx_aal0() argument
1357 lanai_free_skb(lvcc->tx.atmvcc, skb); in vcc_tx_aal0()
1364 const struct lanai_vcc *lvcc, int n) in vcc_rx_memcpy() argument
1366 int m = ((const unsigned char *) lvcc->rx.buf.ptr) + n - in vcc_rx_memcpy()
1367 ((const unsigned char *) (lvcc->rx.buf.end)); in vcc_rx_memcpy()
1370 memcpy(dest, lvcc->rx.buf.ptr, n - m); in vcc_rx_memcpy()
1371 memcpy(dest + n - m, lvcc->rx.buf.start, m); in vcc_rx_memcpy()
1377 static void vcc_rx_aal5(struct lanai_vcc *lvcc, int endptr) in vcc_rx_aal5() argument
1382 u32 *end = &lvcc->rx.buf.start[endptr * 4]; in vcc_rx_aal5()
1383 int n = ((unsigned long) end) - ((unsigned long) lvcc->rx.buf.ptr); in vcc_rx_aal5()
1385 n += lanai_buf_size(&lvcc->rx.buf); in vcc_rx_aal5()
1386 APRINTK(n >= 0 && n < lanai_buf_size(&lvcc->rx.buf) && !(n & 15), in vcc_rx_aal5()
1388 n, lanai_buf_size(&lvcc->rx.buf)); in vcc_rx_aal5()
1390 if ((x = &end[-2]) < lvcc->rx.buf.start) in vcc_rx_aal5()
1391 x = &lvcc->rx.buf.end[-2]; in vcc_rx_aal5()
1402 lvcc->rx.atmvcc->dev->number, lvcc->vci, size, n); in vcc_rx_aal5()
1403 lvcc->stats.x.aal5.rx_badlen++; in vcc_rx_aal5()
1406 skb = atm_alloc_charge(lvcc->rx.atmvcc, size, GFP_ATOMIC); in vcc_rx_aal5()
1408 lvcc->stats.rx_nomem++; in vcc_rx_aal5()
1412 vcc_rx_memcpy(skb->data, lvcc, size); in vcc_rx_aal5()
1413 ATM_SKB(skb)->vcc = lvcc->rx.atmvcc; in vcc_rx_aal5()
1415 lvcc->rx.atmvcc->push(lvcc->rx.atmvcc, skb); in vcc_rx_aal5()
1416 atomic_inc(&lvcc->rx.atmvcc->stats->rx); in vcc_rx_aal5()
1418 lvcc->rx.buf.ptr = end; in vcc_rx_aal5()
1419 cardvcc_write(lvcc, endptr, vcc_rxreadptr); in vcc_rx_aal5()
1466 struct lanai_vcc *lvcc; in new_lanai_vcc() local
1467 lvcc = kzalloc(sizeof(*lvcc), GFP_KERNEL); in new_lanai_vcc()
1468 if (likely(lvcc != NULL)) { in new_lanai_vcc()
1469 skb_queue_head_init(&lvcc->tx.backlog); in new_lanai_vcc()
1471 lvcc->vci = -1; in new_lanai_vcc()
1474 return lvcc; in new_lanai_vcc()
1499 struct lanai_vcc *lvcc, const struct atm_qos *qos) in lanai_setup_rx_vci_aal5() argument
1501 return lanai_get_sized_buffer(lanai, &lvcc->rx.buf, in lanai_setup_rx_vci_aal5()
1506 static int lanai_setup_tx_vci(struct lanai_dev *lanai, struct lanai_vcc *lvcc, in lanai_setup_tx_vci() argument
1511 lvcc->tx.unqueue = vcc_tx_unqueue_aal0; in lanai_setup_tx_vci()
1515 lvcc->tx.unqueue = vcc_tx_unqueue_aal5; in lanai_setup_tx_vci()
1519 return lanai_get_sized_buffer(lanai, &lvcc->tx.buf, max_sdu, in lanai_setup_tx_vci()
1524 struct lanai_vcc *lvcc, vci_t vci) in host_vcc_bind() argument
1526 if (lvcc->vbase != NULL) in host_vcc_bind()
1537 lvcc->vbase = cardvcc_addr(lanai, vci); in host_vcc_bind()
1538 lanai->vccs[lvcc->vci = vci] = lvcc; in host_vcc_bind()
1542 struct lanai_vcc *lvcc) in host_vcc_unbind() argument
1544 if (lvcc->vbase == NULL) in host_vcc_unbind()
1546 DPRINTK("Unbinding vci %d\n", lvcc->vci); in host_vcc_unbind()
1547 lvcc->vbase = NULL; in host_vcc_unbind()
1548 lanai->vccs[lvcc->vci] = NULL; in host_vcc_unbind()
1619 struct lanai_vcc *lvcc; in handle_service() local
1621 lvcc = lanai->vccs[vci]; in handle_service()
1622 if (unlikely(lvcc == NULL)) { in handle_service()
1633 if (unlikely(lvcc->tx.atmvcc == NULL)) { in handle_service()
1641 lvcc->tx.endptr = SERVICE_GET_END(s); in handle_service()
1645 if (unlikely(lvcc->rx.atmvcc == NULL)) { in handle_service()
1652 if (unlikely(lvcc->rx.atmvcc->qos.aal != ATM_AAL5)) { in handle_service()
1657 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1661 vcc_rx_aal5(lvcc, SERVICE_GET_END(s)); in handle_service()
1669 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1670 lvcc->stats.x.aal5.service_trash++; in handle_service()
1672 (((unsigned long) lvcc->rx.buf.ptr) - in handle_service()
1673 ((unsigned long) lvcc->rx.buf.start)) + 47; in handle_service()
1675 bytes += lanai_buf_size(&lvcc->rx.buf); in handle_service()
1681 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1682 lvcc->stats.x.aal5.service_stream++; in handle_service()
1689 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1690 lvcc->stats.x.aal5.service_rxcrc++; in handle_service()
1691 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; in handle_service()
1692 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); in handle_service()
1700 struct lanai_vcc *lvcc = lanai->vccs[vci]; in iter_transmit() local
1701 if (vcc_is_backlogged(lvcc)) in iter_transmit()
1702 lvcc->tx.unqueue(lanai, lvcc, lvcc->tx.endptr); in iter_transmit()
1747 struct lanai_vcc *lvcc = lanai->vccs[vci]; in iter_dequeue() local
1749 if (lvcc == NULL || lvcc->tx.atmvcc == NULL || in iter_dequeue()
1750 !vcc_is_backlogged(lvcc)) { in iter_dequeue()
1754 endptr = TXREADPTR_GET_PTR(cardvcc_read(lvcc, vcc_txreadptr)); in iter_dequeue()
1755 lvcc->tx.unqueue(lanai, lvcc, endptr); in iter_dequeue()
1990 const struct lanai_vcc *lvcc = lanai->vccs[vci]; in vci_is_ok() local
1993 if (unlikely(lvcc != NULL)) { in vci_is_ok()
1995 lvcc->rx.atmvcc != NULL && lvcc->rx.atmvcc != atmvcc) in vci_is_ok()
1998 lvcc->tx.atmvcc != NULL && lvcc->tx.atmvcc != atmvcc) in vci_is_ok()
2275 struct lanai_vcc *lvcc = (struct lanai_vcc *) atmvcc->dev_data; in lanai_close() local
2277 if (lvcc == NULL) in lanai_close()
2281 if (lvcc->rx.atmvcc == atmvcc) { in lanai_close()
2282 lanai_shutdown_rx_vci(lvcc); in lanai_close()
2287 lanai_buf_deallocate(&lvcc->rx.buf, lanai->pci); in lanai_close()
2288 lvcc->rx.atmvcc = NULL; in lanai_close()
2290 if (lvcc->tx.atmvcc == atmvcc) { in lanai_close()
2292 if (lvcc->vbase != NULL) in lanai_close()
2296 lanai_shutdown_tx_vci(lanai, lvcc); in lanai_close()
2297 lanai_buf_deallocate(&lvcc->tx.buf, lanai->pci); in lanai_close()
2298 lvcc->tx.atmvcc = NULL; in lanai_close()
2300 if (--lvcc->nref == 0) { in lanai_close()
2301 host_vcc_unbind(lanai, lvcc); in lanai_close()
2302 kfree(lvcc); in lanai_close()
2312 struct lanai_vcc *lvcc; in lanai_open() local
2329 lvcc = lanai->vccs[vci]; in lanai_open()
2330 if (lvcc == NULL) { in lanai_open()
2331 lvcc = new_lanai_vcc(); in lanai_open()
2332 if (unlikely(lvcc == NULL)) in lanai_open()
2334 atmvcc->dev_data = lvcc; in lanai_open()
2336 lvcc->nref++; in lanai_open()
2338 APRINTK(lvcc->rx.atmvcc == NULL, "rx.atmvcc!=NULL, vci=%d\n", in lanai_open()
2345 lanai, lvcc, &atmvcc->qos); in lanai_open()
2348 lvcc->rx.atmvcc = atmvcc; in lanai_open()
2349 lvcc->stats.rx_nomem = 0; in lanai_open()
2350 lvcc->stats.x.aal5.rx_badlen = 0; in lanai_open()
2351 lvcc->stats.x.aal5.service_trash = 0; in lanai_open()
2352 lvcc->stats.x.aal5.service_stream = 0; in lanai_open()
2353 lvcc->stats.x.aal5.service_rxcrc = 0; in lanai_open()
2358 APRINTK(lvcc->tx.atmvcc == NULL, "tx.atmvcc!=NULL, vci=%d\n", in lanai_open()
2360 result = lanai_setup_tx_vci(lanai, lvcc, &atmvcc->qos); in lanai_open()
2363 lvcc->tx.atmvcc = atmvcc; in lanai_open()
2370 host_vcc_bind(lanai, lvcc, vci); in lanai_open()
2376 if (atmvcc == lvcc->rx.atmvcc) in lanai_open()
2377 host_vcc_start_rx(lvcc); in lanai_open()
2378 if (atmvcc == lvcc->tx.atmvcc) { in lanai_open()
2379 host_vcc_start_tx(lvcc); in lanai_open()
2393 struct lanai_vcc *lvcc = (struct lanai_vcc *) atmvcc->dev_data; in lanai_send() local
2396 if (unlikely(lvcc == NULL || lvcc->vbase == NULL || in lanai_send()
2397 lvcc->tx.atmvcc != atmvcc)) in lanai_send()
2413 vcc_tx_aal5(lanai, lvcc, skb); in lanai_send()
2422 vcc_tx_aal0(lanai, lvcc, skb); in lanai_send()
2446 struct lanai_vcc *lvcc; in lanai_proc_read() local
2501 if ((lvcc = lanai->vccs[left]) != NULL) in lanai_proc_read()
2507 lvcc->nref, lvcc->stats.rx_nomem); in lanai_proc_read()
2508 if (lvcc->rx.atmvcc != NULL) { in lanai_proc_read()
2510 lvcc->rx.atmvcc->qos.aal == ATM_AAL5 ? 5 : 0); in lanai_proc_read()
2511 if (lvcc->rx.atmvcc->qos.aal == ATM_AAL5) in lanai_proc_read()
2515 lanai_buf_size(&lvcc->rx.buf), in lanai_proc_read()
2516 lvcc->stats.x.aal5.rx_badlen, in lanai_proc_read()
2517 lvcc->stats.x.aal5.service_trash, in lanai_proc_read()
2518 lvcc->stats.x.aal5.service_stream, in lanai_proc_read()
2519 lvcc->stats.x.aal5.service_rxcrc); in lanai_proc_read()
2521 if (lvcc->tx.atmvcc != NULL) in lanai_proc_read()
2524 lvcc->tx.atmvcc->qos.aal == ATM_AAL5 ? 5 : 0, in lanai_proc_read()
2525 lanai_buf_size(&lvcc->tx.buf), in lanai_proc_read()
2526 lvcc->tx.atmvcc == lanai->cbrvcc ? 'C' : 'U', in lanai_proc_read()
2527 vcc_is_backlogged(lvcc) ? 'Y' : 'N'); in lanai_proc_read()