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
770 if (lvcc->vbase == NULL) /* We were never bound to a VCI */ in lanai_shutdown_tx_vci()
773 while ((skb = skb_dequeue(&lvcc->tx.backlog)) != NULL) in lanai_shutdown_tx_vci()
774 lanai_free_skb(lvcc->tx.atmvcc, skb); in lanai_shutdown_tx_vci()
776 __clear_bit(lvcc->vci, lanai->backlog_vccs); in lanai_shutdown_tx_vci()
784 (((lanai_buf_size(&lvcc->tx.buf) / 1024) * HZ) >> 7); in lanai_shutdown_tx_vci()
785 write = TXWRITEPTR_GET_PTR(cardvcc_read(lvcc, vcc_txwriteptr)); in lanai_shutdown_tx_vci()
787 read = TXREADPTR_GET_PTR(cardvcc_read(lvcc, vcc_txreadptr)); in lanai_shutdown_tx_vci()
789 (lvcc->tx.atmvcc->qos.txtp.traffic_class != ATM_CBR || in lanai_shutdown_tx_vci()
790 (cardvcc_read(lvcc, vcc_txcbr_next) & in lanai_shutdown_tx_vci()
800 lvcc->tx.atmvcc->dev->number, lvcc->vci); in lanai_shutdown_tx_vci()
807 cardvcc_write(lvcc, 0, vcc_txreadptr); in lanai_shutdown_tx_vci()
808 cardvcc_write(lvcc, 0, vcc_txwriteptr); in lanai_shutdown_tx_vci()
809 cardvcc_write(lvcc, 0, vcc_txendptr); in lanai_shutdown_tx_vci()
810 cardvcc_write(lvcc, 0, vcc_txcrc1); in lanai_shutdown_tx_vci()
811 cardvcc_write(lvcc, 0, vcc_txcrc2); in lanai_shutdown_tx_vci()
812 cardvcc_write(lvcc, 0, vcc_txaddr2); in lanai_shutdown_tx_vci()
813 cardvcc_write(lvcc, 0, vcc_txaddr1); in lanai_shutdown_tx_vci()
1134 static inline int vcc_tx_space(const struct lanai_vcc *lvcc, int endptr) in vcc_tx_space() argument
1138 r -= ((unsigned long) lvcc->tx.buf.ptr) - in vcc_tx_space()
1139 ((unsigned long) lvcc->tx.buf.start); in vcc_tx_space()
1142 r += lanai_buf_size(&lvcc->tx.buf); in vcc_tx_space()
1147 static inline int vcc_is_backlogged(const struct lanai_vcc *lvcc) in vcc_is_backlogged() argument
1149 return !skb_queue_empty(&lvcc->tx.backlog); in vcc_is_backlogged()
1159 static inline void vcc_tx_add_aal5_descriptor(struct lanai_vcc *lvcc, in vcc_tx_add_aal5_descriptor() argument
1163 APRINTK((((unsigned long) lvcc->tx.buf.ptr) & 15) == 0, in vcc_tx_add_aal5_descriptor()
1164 "vcc_tx_add_aal5_descriptor: bad ptr=%p\n", lvcc->tx.buf.ptr); in vcc_tx_add_aal5_descriptor()
1165 lvcc->tx.buf.ptr += 4; /* Hope the values REALLY don't matter */ in vcc_tx_add_aal5_descriptor()
1166 pos = ((unsigned char *) lvcc->tx.buf.ptr) - in vcc_tx_add_aal5_descriptor()
1167 (unsigned char *) lvcc->tx.buf.start; in vcc_tx_add_aal5_descriptor()
1170 "start,ptr,end=%p,%p,%p\n", pos, lvcc->vci, in vcc_tx_add_aal5_descriptor()
1171 lvcc->tx.buf.start, lvcc->tx.buf.ptr, lvcc->tx.buf.end); in vcc_tx_add_aal5_descriptor()
1172 pos = (pos + len) & (lanai_buf_size(&lvcc->tx.buf) - 1); in vcc_tx_add_aal5_descriptor()
1175 "start,ptr,end=%p,%p,%p\n", pos, lvcc->vci, in vcc_tx_add_aal5_descriptor()
1176 lvcc->tx.buf.start, lvcc->tx.buf.ptr, lvcc->tx.buf.end); in vcc_tx_add_aal5_descriptor()
1177 lvcc->tx.buf.ptr[-1] = in vcc_tx_add_aal5_descriptor()
1179 ((lvcc->tx.atmvcc->atm_options & ATM_ATMOPT_CLP) ? in vcc_tx_add_aal5_descriptor()
1181 if (lvcc->tx.buf.ptr >= lvcc->tx.buf.end) in vcc_tx_add_aal5_descriptor()
1182 lvcc->tx.buf.ptr = lvcc->tx.buf.start; in vcc_tx_add_aal5_descriptor()
1186 static inline void vcc_tx_add_aal5_trailer(struct lanai_vcc *lvcc, in vcc_tx_add_aal5_trailer() argument
1189 APRINTK((((unsigned long) lvcc->tx.buf.ptr) & 15) == 8, in vcc_tx_add_aal5_trailer()
1190 "vcc_tx_add_aal5_trailer: bad ptr=%p\n", lvcc->tx.buf.ptr); in vcc_tx_add_aal5_trailer()
1191 lvcc->tx.buf.ptr += 2; in vcc_tx_add_aal5_trailer()
1192 lvcc->tx.buf.ptr[-2] = cpu_to_be32((uu << 24) | (cpi << 16) | len); in vcc_tx_add_aal5_trailer()
1193 if (lvcc->tx.buf.ptr >= lvcc->tx.buf.end) in vcc_tx_add_aal5_trailer()
1194 lvcc->tx.buf.ptr = lvcc->tx.buf.start; in vcc_tx_add_aal5_trailer()
1197 static inline void vcc_tx_memcpy(struct lanai_vcc *lvcc, in vcc_tx_memcpy() argument
1202 e = ((unsigned char *) lvcc->tx.buf.ptr) + n; in vcc_tx_memcpy()
1203 m = e - (unsigned char *) lvcc->tx.buf.end; in vcc_tx_memcpy()
1206 memcpy(lvcc->tx.buf.ptr, src, n - m); in vcc_tx_memcpy()
1208 memcpy(lvcc->tx.buf.start, src + n - m, m); in vcc_tx_memcpy()
1209 e = ((unsigned char *) lvcc->tx.buf.start) + m; in vcc_tx_memcpy()
1211 lvcc->tx.buf.ptr = (u32 *) e; in vcc_tx_memcpy()
1214 static inline void vcc_tx_memzero(struct lanai_vcc *lvcc, int n) in vcc_tx_memzero() argument
1220 e = ((unsigned char *) lvcc->tx.buf.ptr) + n; in vcc_tx_memzero()
1221 m = e - (unsigned char *) lvcc->tx.buf.end; in vcc_tx_memzero()
1224 memset(lvcc->tx.buf.ptr, 0, n - m); in vcc_tx_memzero()
1226 memset(lvcc->tx.buf.start, 0, m); in vcc_tx_memzero()
1227 e = ((unsigned char *) lvcc->tx.buf.start) + m; in vcc_tx_memzero()
1229 lvcc->tx.buf.ptr = (u32 *) e; in vcc_tx_memzero()
1234 const struct lanai_vcc *lvcc) in lanai_endtx() argument
1236 int i, ptr = ((unsigned char *) lvcc->tx.buf.ptr) - in lanai_endtx()
1237 (unsigned char *) lvcc->tx.buf.start; in lanai_endtx()
1240 ptr, lvcc->vci, lvcc->tx.buf.start, lvcc->tx.buf.ptr, in lanai_endtx()
1241 lvcc->tx.buf.end); in lanai_endtx()
1270 reg_write(lanai, (ptr << 12) | lvcc->vci, Butt_Reg); in lanai_endtx()
1279 struct lanai_vcc *lvcc, struct sk_buff *skb, int pdusize) in lanai_send_one_aal5() argument
1285 vcc_tx_add_aal5_descriptor(lvcc, 0, pdusize); in lanai_send_one_aal5()
1289 vcc_tx_memcpy(lvcc, skb->data, skb->len); in lanai_send_one_aal5()
1290 vcc_tx_memzero(lvcc, pad); in lanai_send_one_aal5()
1291 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); in lanai_send_one_aal5()
1292 lanai_endtx(lanai, lvcc); in lanai_send_one_aal5()
1293 lanai_free_skb(lvcc->tx.atmvcc, skb); in lanai_send_one_aal5()
1294 atomic_inc(&lvcc->tx.atmvcc->stats->tx); in lanai_send_one_aal5()
1299 struct lanai_vcc *lvcc, int endptr) in vcc_tx_unqueue_aal5() argument
1303 int space = vcc_tx_space(lvcc, endptr); in vcc_tx_unqueue_aal5()
1304 APRINTK(vcc_is_backlogged(lvcc), in vcc_tx_unqueue_aal5()
1306 lvcc->vci); in vcc_tx_unqueue_aal5()
1308 skb = skb_dequeue(&lvcc->tx.backlog); in vcc_tx_unqueue_aal5()
1314 skb_queue_head(&lvcc->tx.backlog, skb); in vcc_tx_unqueue_aal5()
1317 lanai_send_one_aal5(lanai, lvcc, skb, n); in vcc_tx_unqueue_aal5()
1320 if (!vcc_is_backlogged(lvcc)) { in vcc_tx_unqueue_aal5()
1322 __clear_bit(lvcc->vci, lanai->backlog_vccs); in vcc_tx_unqueue_aal5()
1327 static void vcc_tx_aal5(struct lanai_dev *lanai, struct lanai_vcc *lvcc, in vcc_tx_aal5() argument
1331 if (vcc_is_backlogged(lvcc)) /* Already backlogged */ in vcc_tx_aal5()
1333 space = vcc_tx_space(lvcc, in vcc_tx_aal5()
1334 TXREADPTR_GET_PTR(cardvcc_read(lvcc, vcc_txreadptr))); in vcc_tx_aal5()
1338 __set_bit(lvcc->vci, lanai->backlog_vccs); in vcc_tx_aal5()
1340 skb_queue_tail(&lvcc->tx.backlog, skb); in vcc_tx_aal5()
1343 lanai_send_one_aal5(lanai, lvcc, skb, n); in vcc_tx_aal5()
1347 struct lanai_vcc *lvcc, int endptr) in vcc_tx_unqueue_aal0() argument
1353 static void vcc_tx_aal0(struct lanai_dev *lanai, struct lanai_vcc *lvcc, in vcc_tx_aal0() argument
1358 lanai_free_skb(lvcc->tx.atmvcc, skb); in vcc_tx_aal0()
1365 const struct lanai_vcc *lvcc, int n) in vcc_rx_memcpy() argument
1367 int m = ((const unsigned char *) lvcc->rx.buf.ptr) + n - in vcc_rx_memcpy()
1368 ((const unsigned char *) (lvcc->rx.buf.end)); in vcc_rx_memcpy()
1371 memcpy(dest, lvcc->rx.buf.ptr, n - m); in vcc_rx_memcpy()
1372 memcpy(dest + n - m, lvcc->rx.buf.start, m); in vcc_rx_memcpy()
1378 static void vcc_rx_aal5(struct lanai_vcc *lvcc, int endptr) in vcc_rx_aal5() argument
1383 u32 *end = &lvcc->rx.buf.start[endptr * 4]; in vcc_rx_aal5()
1384 int n = ((unsigned long) end) - ((unsigned long) lvcc->rx.buf.ptr); in vcc_rx_aal5()
1386 n += lanai_buf_size(&lvcc->rx.buf); in vcc_rx_aal5()
1387 APRINTK(n >= 0 && n < lanai_buf_size(&lvcc->rx.buf) && !(n & 15), in vcc_rx_aal5()
1389 n, lanai_buf_size(&lvcc->rx.buf)); in vcc_rx_aal5()
1391 if ((x = &end[-2]) < lvcc->rx.buf.start) in vcc_rx_aal5()
1392 x = &lvcc->rx.buf.end[-2]; in vcc_rx_aal5()
1403 lvcc->rx.atmvcc->dev->number, lvcc->vci, size, n); in vcc_rx_aal5()
1404 lvcc->stats.x.aal5.rx_badlen++; in vcc_rx_aal5()
1407 skb = atm_alloc_charge(lvcc->rx.atmvcc, size, GFP_ATOMIC); in vcc_rx_aal5()
1409 lvcc->stats.rx_nomem++; in vcc_rx_aal5()
1413 vcc_rx_memcpy(skb->data, lvcc, size); in vcc_rx_aal5()
1414 ATM_SKB(skb)->vcc = lvcc->rx.atmvcc; in vcc_rx_aal5()
1416 lvcc->rx.atmvcc->push(lvcc->rx.atmvcc, skb); in vcc_rx_aal5()
1417 atomic_inc(&lvcc->rx.atmvcc->stats->rx); in vcc_rx_aal5()
1419 lvcc->rx.buf.ptr = end; in vcc_rx_aal5()
1420 cardvcc_write(lvcc, endptr, vcc_rxreadptr); in vcc_rx_aal5()
1467 struct lanai_vcc *lvcc; in new_lanai_vcc() local
1468 lvcc = kzalloc(sizeof(*lvcc), GFP_KERNEL); in new_lanai_vcc()
1469 if (likely(lvcc != NULL)) { in new_lanai_vcc()
1470 skb_queue_head_init(&lvcc->tx.backlog); in new_lanai_vcc()
1472 lvcc->vci = -1; in new_lanai_vcc()
1475 return lvcc; in new_lanai_vcc()
1500 struct lanai_vcc *lvcc, const struct atm_qos *qos) in lanai_setup_rx_vci_aal5() argument
1502 return lanai_get_sized_buffer(lanai, &lvcc->rx.buf, in lanai_setup_rx_vci_aal5()
1507 static int lanai_setup_tx_vci(struct lanai_dev *lanai, struct lanai_vcc *lvcc, in lanai_setup_tx_vci() argument
1512 lvcc->tx.unqueue = vcc_tx_unqueue_aal0; in lanai_setup_tx_vci()
1516 lvcc->tx.unqueue = vcc_tx_unqueue_aal5; in lanai_setup_tx_vci()
1520 return lanai_get_sized_buffer(lanai, &lvcc->tx.buf, max_sdu, in lanai_setup_tx_vci()
1525 struct lanai_vcc *lvcc, vci_t vci) in host_vcc_bind() argument
1527 if (lvcc->vbase != NULL) in host_vcc_bind()
1538 lvcc->vbase = cardvcc_addr(lanai, vci); in host_vcc_bind()
1539 lanai->vccs[lvcc->vci = vci] = lvcc; in host_vcc_bind()
1543 struct lanai_vcc *lvcc) in host_vcc_unbind() argument
1545 if (lvcc->vbase == NULL) in host_vcc_unbind()
1547 DPRINTK("Unbinding vci %d\n", lvcc->vci); in host_vcc_unbind()
1548 lvcc->vbase = NULL; in host_vcc_unbind()
1549 lanai->vccs[lvcc->vci] = NULL; in host_vcc_unbind()
1620 struct lanai_vcc *lvcc; in handle_service() local
1622 lvcc = lanai->vccs[vci]; in handle_service()
1623 if (unlikely(lvcc == NULL)) { in handle_service()
1634 if (unlikely(lvcc->tx.atmvcc == NULL)) { in handle_service()
1642 lvcc->tx.endptr = SERVICE_GET_END(s); in handle_service()
1646 if (unlikely(lvcc->rx.atmvcc == NULL)) { in handle_service()
1653 if (unlikely(lvcc->rx.atmvcc->qos.aal != ATM_AAL5)) { in handle_service()
1658 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1662 vcc_rx_aal5(lvcc, SERVICE_GET_END(s)); in handle_service()
1670 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1671 lvcc->stats.x.aal5.service_trash++; in handle_service()
1673 (((unsigned long) lvcc->rx.buf.ptr) - in handle_service()
1674 ((unsigned long) lvcc->rx.buf.start)) + 47; in handle_service()
1676 bytes += lanai_buf_size(&lvcc->rx.buf); in handle_service()
1682 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1683 lvcc->stats.x.aal5.service_stream++; in handle_service()
1690 atomic_inc(&lvcc->rx.atmvcc->stats->rx_err); in handle_service()
1691 lvcc->stats.x.aal5.service_rxcrc++; in handle_service()
1692 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; in handle_service()
1693 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); in handle_service()
1701 struct lanai_vcc *lvcc = lanai->vccs[vci]; in iter_transmit() local
1702 if (vcc_is_backlogged(lvcc)) in iter_transmit()
1703 lvcc->tx.unqueue(lanai, lvcc, lvcc->tx.endptr); in iter_transmit()
1748 struct lanai_vcc *lvcc = lanai->vccs[vci]; in iter_dequeue() local
1750 if (lvcc == NULL || lvcc->tx.atmvcc == NULL || in iter_dequeue()
1751 !vcc_is_backlogged(lvcc)) { in iter_dequeue()
1755 endptr = TXREADPTR_GET_PTR(cardvcc_read(lvcc, vcc_txreadptr)); in iter_dequeue()
1756 lvcc->tx.unqueue(lanai, lvcc, endptr); in iter_dequeue()
1991 const struct lanai_vcc *lvcc = lanai->vccs[vci]; in vci_is_ok() local
1994 if (unlikely(lvcc != NULL)) { in vci_is_ok()
1996 lvcc->rx.atmvcc != NULL && lvcc->rx.atmvcc != atmvcc) in vci_is_ok()
1999 lvcc->tx.atmvcc != NULL && lvcc->tx.atmvcc != atmvcc) in vci_is_ok()
2273 struct lanai_vcc *lvcc = (struct lanai_vcc *) atmvcc->dev_data; in lanai_close() local
2275 if (lvcc == NULL) in lanai_close()
2279 if (lvcc->rx.atmvcc == atmvcc) { in lanai_close()
2280 lanai_shutdown_rx_vci(lvcc); in lanai_close()
2285 lanai_buf_deallocate(&lvcc->rx.buf, lanai->pci); in lanai_close()
2286 lvcc->rx.atmvcc = NULL; in lanai_close()
2288 if (lvcc->tx.atmvcc == atmvcc) { in lanai_close()
2290 if (lvcc->vbase != NULL) in lanai_close()
2294 lanai_shutdown_tx_vci(lanai, lvcc); in lanai_close()
2295 lanai_buf_deallocate(&lvcc->tx.buf, lanai->pci); in lanai_close()
2296 lvcc->tx.atmvcc = NULL; in lanai_close()
2298 if (--lvcc->nref == 0) { in lanai_close()
2299 host_vcc_unbind(lanai, lvcc); in lanai_close()
2300 kfree(lvcc); in lanai_close()
2310 struct lanai_vcc *lvcc; in lanai_open() local
2327 lvcc = lanai->vccs[vci]; in lanai_open()
2328 if (lvcc == NULL) { in lanai_open()
2329 lvcc = new_lanai_vcc(); in lanai_open()
2330 if (unlikely(lvcc == NULL)) in lanai_open()
2332 atmvcc->dev_data = lvcc; in lanai_open()
2334 lvcc->nref++; in lanai_open()
2336 APRINTK(lvcc->rx.atmvcc == NULL, "rx.atmvcc!=NULL, vci=%d\n", in lanai_open()
2343 lanai, lvcc, &atmvcc->qos); in lanai_open()
2346 lvcc->rx.atmvcc = atmvcc; in lanai_open()
2347 lvcc->stats.rx_nomem = 0; in lanai_open()
2348 lvcc->stats.x.aal5.rx_badlen = 0; in lanai_open()
2349 lvcc->stats.x.aal5.service_trash = 0; in lanai_open()
2350 lvcc->stats.x.aal5.service_stream = 0; in lanai_open()
2351 lvcc->stats.x.aal5.service_rxcrc = 0; in lanai_open()
2356 APRINTK(lvcc->tx.atmvcc == NULL, "tx.atmvcc!=NULL, vci=%d\n", in lanai_open()
2358 result = lanai_setup_tx_vci(lanai, lvcc, &atmvcc->qos); in lanai_open()
2361 lvcc->tx.atmvcc = atmvcc; in lanai_open()
2368 host_vcc_bind(lanai, lvcc, vci); in lanai_open()
2374 if (atmvcc == lvcc->rx.atmvcc) in lanai_open()
2375 host_vcc_start_rx(lvcc); in lanai_open()
2376 if (atmvcc == lvcc->tx.atmvcc) { in lanai_open()
2377 host_vcc_start_tx(lvcc); in lanai_open()
2391 struct lanai_vcc *lvcc = (struct lanai_vcc *) atmvcc->dev_data; in lanai_send() local
2394 if (unlikely(lvcc == NULL || lvcc->vbase == NULL || in lanai_send()
2395 lvcc->tx.atmvcc != atmvcc)) in lanai_send()
2411 vcc_tx_aal5(lanai, lvcc, skb); in lanai_send()
2420 vcc_tx_aal0(lanai, lvcc, skb); in lanai_send()
2444 struct lanai_vcc *lvcc; in lanai_proc_read() local
2499 if ((lvcc = lanai->vccs[left]) != NULL) in lanai_proc_read()
2505 lvcc->nref, lvcc->stats.rx_nomem); in lanai_proc_read()
2506 if (lvcc->rx.atmvcc != NULL) { in lanai_proc_read()
2508 lvcc->rx.atmvcc->qos.aal == ATM_AAL5 ? 5 : 0); in lanai_proc_read()
2509 if (lvcc->rx.atmvcc->qos.aal == ATM_AAL5) in lanai_proc_read()
2513 lanai_buf_size(&lvcc->rx.buf), in lanai_proc_read()
2514 lvcc->stats.x.aal5.rx_badlen, in lanai_proc_read()
2515 lvcc->stats.x.aal5.service_trash, in lanai_proc_read()
2516 lvcc->stats.x.aal5.service_stream, in lanai_proc_read()
2517 lvcc->stats.x.aal5.service_rxcrc); in lanai_proc_read()
2519 if (lvcc->tx.atmvcc != NULL) in lanai_proc_read()
2522 lvcc->tx.atmvcc->qos.aal == ATM_AAL5 ? 5 : 0, in lanai_proc_read()
2523 lanai_buf_size(&lvcc->tx.buf), in lanai_proc_read()
2524 lvcc->tx.atmvcc == lanai->cbrvcc ? 'C' : 'U', in lanai_proc_read()
2525 vcc_is_backlogged(lvcc) ? 'Y' : 'N'); in lanai_proc_read()