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