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');