• Home
  • Raw
  • Download

Lines Matching refs:c

111 static void z8530_rx_done(struct z8530_channel *c);
112 static void z8530_tx_done(struct z8530_channel *c);
126 static inline u8 read_zsreg(struct z8530_channel *c, u8 reg) in read_zsreg() argument
129 z8530_write_port(c->ctrlio, reg); in read_zsreg()
130 return z8530_read_port(c->ctrlio); in read_zsreg()
141 static inline u8 read_zsdata(struct z8530_channel *c) in read_zsdata() argument
144 r=z8530_read_port(c->dataio); in read_zsdata()
160 static inline void write_zsreg(struct z8530_channel *c, u8 reg, u8 val) in write_zsreg() argument
163 z8530_write_port(c->ctrlio, reg); in write_zsreg()
164 z8530_write_port(c->ctrlio, val); in write_zsreg()
176 static inline void write_zsctrl(struct z8530_channel *c, u8 val) in write_zsctrl() argument
178 z8530_write_port(c->ctrlio, val); in write_zsctrl()
190 static inline void write_zsdata(struct z8530_channel *c, u8 val) in write_zsdata() argument
192 z8530_write_port(c->dataio, val); in write_zsdata()
276 static void z8530_flush_fifo(struct z8530_channel *c) in z8530_flush_fifo() argument
278 read_zsreg(c, R1); in z8530_flush_fifo()
279 read_zsreg(c, R1); in z8530_flush_fifo()
280 read_zsreg(c, R1); in z8530_flush_fifo()
281 read_zsreg(c, R1); in z8530_flush_fifo()
282 if(c->dev->type==Z85230) in z8530_flush_fifo()
284 read_zsreg(c, R1); in z8530_flush_fifo()
285 read_zsreg(c, R1); in z8530_flush_fifo()
286 read_zsreg(c, R1); in z8530_flush_fifo()
287 read_zsreg(c, R1); in z8530_flush_fifo()
302 static void z8530_rtsdtr(struct z8530_channel *c, int set) in z8530_rtsdtr() argument
305 c->regs[5] |= (RTS | DTR); in z8530_rtsdtr()
307 c->regs[5] &= ~(RTS | DTR); in z8530_rtsdtr()
308 write_zsreg(c, R5, c->regs[5]); in z8530_rtsdtr()
335 static void z8530_rx(struct z8530_channel *c) in z8530_rx() argument
342 if(!(read_zsreg(c, R0)&1)) in z8530_rx()
344 ch=read_zsdata(c); in z8530_rx()
345 stat=read_zsreg(c, R1); in z8530_rx()
350 if(c->count < c->max) in z8530_rx()
352 *c->dptr++=ch; in z8530_rx()
353 c->count++; in z8530_rx()
365 if(c->skb) in z8530_rx()
366 c->dptr=c->skb->data; in z8530_rx()
367 c->count=0; in z8530_rx()
370 pr_warn("%s: overrun\n", c->dev->name); in z8530_rx()
371 c->rx_overrun++; in z8530_rx()
375 c->rx_crc_err++; in z8530_rx()
386 z8530_rx_done(c); in z8530_rx()
387 write_zsctrl(c, RES_Rx_CRC); in z8530_rx()
394 write_zsctrl(c, ERR_RES); in z8530_rx()
395 write_zsctrl(c, RES_H_IUS); in z8530_rx()
409 static void z8530_tx(struct z8530_channel *c) in z8530_tx() argument
411 while(c->txcount) { in z8530_tx()
413 if(!(read_zsreg(c, R0)&4)) in z8530_tx()
415 c->txcount--; in z8530_tx()
419 write_zsreg(c, R8, *c->tx_ptr++); in z8530_tx()
420 write_zsctrl(c, RES_H_IUS); in z8530_tx()
422 if(c->txcount==0) in z8530_tx()
424 write_zsctrl(c, RES_EOM_L); in z8530_tx()
425 write_zsreg(c, R10, c->regs[10]&~ABUNDER); in z8530_tx()
434 write_zsctrl(c, RES_Tx_P); in z8530_tx()
436 z8530_tx_done(c); in z8530_tx()
437 write_zsctrl(c, RES_H_IUS); in z8530_tx()
628 static void z8530_rx_clear(struct z8530_channel *c) in z8530_rx_clear() argument
635 read_zsdata(c); in z8530_rx_clear()
636 stat=read_zsreg(c, R1); in z8530_rx_clear()
639 write_zsctrl(c, RES_Rx_CRC); in z8530_rx_clear()
643 write_zsctrl(c, ERR_RES); in z8530_rx_clear()
644 write_zsctrl(c, RES_H_IUS); in z8530_rx_clear()
656 static void z8530_tx_clear(struct z8530_channel *c) in z8530_tx_clear() argument
658 write_zsctrl(c, RES_Tx_P); in z8530_tx_clear()
659 write_zsctrl(c, RES_H_IUS); in z8530_tx_clear()
788 int z8530_sync_open(struct net_device *dev, struct z8530_channel *c) in z8530_sync_open() argument
792 spin_lock_irqsave(c->lock, flags); in z8530_sync_open()
794 c->sync = 1; in z8530_sync_open()
795 c->mtu = dev->mtu+64; in z8530_sync_open()
796 c->count = 0; in z8530_sync_open()
797 c->skb = NULL; in z8530_sync_open()
798 c->skb2 = NULL; in z8530_sync_open()
799 c->irqs = &z8530_sync; in z8530_sync_open()
802 z8530_rx_done(c); /* Load the frame ring */ in z8530_sync_open()
803 z8530_rx_done(c); /* Load the backup frame */ in z8530_sync_open()
804 z8530_rtsdtr(c,1); in z8530_sync_open()
805 c->dma_tx = 0; in z8530_sync_open()
806 c->regs[R1]|=TxINT_ENAB; in z8530_sync_open()
807 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_open()
808 write_zsreg(c, R3, c->regs[R3]|RxENABLE); in z8530_sync_open()
810 spin_unlock_irqrestore(c->lock, flags); in z8530_sync_open()
826 int z8530_sync_close(struct net_device *dev, struct z8530_channel *c) in z8530_sync_close() argument
831 spin_lock_irqsave(c->lock, flags); in z8530_sync_close()
832 c->irqs = &z8530_nop; in z8530_sync_close()
833 c->max = 0; in z8530_sync_close()
834 c->sync = 0; in z8530_sync_close()
836 chk=read_zsreg(c,R0); in z8530_sync_close()
837 write_zsreg(c, R3, c->regs[R3]); in z8530_sync_close()
838 z8530_rtsdtr(c,0); in z8530_sync_close()
840 spin_unlock_irqrestore(c->lock, flags); in z8530_sync_close()
856 int z8530_sync_dma_open(struct net_device *dev, struct z8530_channel *c) in z8530_sync_dma_open() argument
860 c->sync = 1; in z8530_sync_dma_open()
861 c->mtu = dev->mtu+64; in z8530_sync_dma_open()
862 c->count = 0; in z8530_sync_dma_open()
863 c->skb = NULL; in z8530_sync_dma_open()
864 c->skb2 = NULL; in z8530_sync_dma_open()
868 c->rxdma_on = 0; in z8530_sync_dma_open()
869 c->txdma_on = 0; in z8530_sync_dma_open()
877 if(c->mtu > PAGE_SIZE/2) in z8530_sync_dma_open()
880 c->rx_buf[0]=(void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); in z8530_sync_dma_open()
881 if(c->rx_buf[0]==NULL) in z8530_sync_dma_open()
883 c->rx_buf[1]=c->rx_buf[0]+PAGE_SIZE/2; in z8530_sync_dma_open()
885 c->tx_dma_buf[0]=(void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); in z8530_sync_dma_open()
886 if(c->tx_dma_buf[0]==NULL) in z8530_sync_dma_open()
888 free_page((unsigned long)c->rx_buf[0]); in z8530_sync_dma_open()
889 c->rx_buf[0]=NULL; in z8530_sync_dma_open()
892 c->tx_dma_buf[1]=c->tx_dma_buf[0]+PAGE_SIZE/2; in z8530_sync_dma_open()
894 c->tx_dma_used=0; in z8530_sync_dma_open()
895 c->dma_tx = 1; in z8530_sync_dma_open()
896 c->dma_num=0; in z8530_sync_dma_open()
897 c->dma_ready=1; in z8530_sync_dma_open()
903 spin_lock_irqsave(c->lock, cflags); in z8530_sync_dma_open()
909 c->regs[R14]|= DTRREQ; in z8530_sync_dma_open()
910 write_zsreg(c, R14, c->regs[R14]); in z8530_sync_dma_open()
912 c->regs[R1]&= ~TxINT_ENAB; in z8530_sync_dma_open()
913 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_dma_open()
919 c->regs[R1]|= WT_FN_RDYFN; in z8530_sync_dma_open()
920 c->regs[R1]|= WT_RDY_RT; in z8530_sync_dma_open()
921 c->regs[R1]|= INT_ERR_Rx; in z8530_sync_dma_open()
922 c->regs[R1]&= ~TxINT_ENAB; in z8530_sync_dma_open()
923 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_dma_open()
924 c->regs[R1]|= WT_RDY_ENAB; in z8530_sync_dma_open()
925 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_dma_open()
937 disable_dma(c->rxdma); in z8530_sync_dma_open()
938 clear_dma_ff(c->rxdma); in z8530_sync_dma_open()
939 set_dma_mode(c->rxdma, DMA_MODE_READ|0x10); in z8530_sync_dma_open()
940 set_dma_addr(c->rxdma, virt_to_bus(c->rx_buf[0])); in z8530_sync_dma_open()
941 set_dma_count(c->rxdma, c->mtu); in z8530_sync_dma_open()
942 enable_dma(c->rxdma); in z8530_sync_dma_open()
944 disable_dma(c->txdma); in z8530_sync_dma_open()
945 clear_dma_ff(c->txdma); in z8530_sync_dma_open()
946 set_dma_mode(c->txdma, DMA_MODE_WRITE); in z8530_sync_dma_open()
947 disable_dma(c->txdma); in z8530_sync_dma_open()
955 c->rxdma_on = 1; in z8530_sync_dma_open()
956 c->txdma_on = 1; in z8530_sync_dma_open()
957 c->tx_dma_used = 1; in z8530_sync_dma_open()
959 c->irqs = &z8530_dma_sync; in z8530_sync_dma_open()
960 z8530_rtsdtr(c,1); in z8530_sync_dma_open()
961 write_zsreg(c, R3, c->regs[R3]|RxENABLE); in z8530_sync_dma_open()
963 spin_unlock_irqrestore(c->lock, cflags); in z8530_sync_dma_open()
979 int z8530_sync_dma_close(struct net_device *dev, struct z8530_channel *c) in z8530_sync_dma_close() argument
984 c->irqs = &z8530_nop; in z8530_sync_dma_close()
985 c->max = 0; in z8530_sync_dma_close()
986 c->sync = 0; in z8530_sync_dma_close()
993 disable_dma(c->rxdma); in z8530_sync_dma_close()
994 clear_dma_ff(c->rxdma); in z8530_sync_dma_close()
996 c->rxdma_on = 0; in z8530_sync_dma_close()
998 disable_dma(c->txdma); in z8530_sync_dma_close()
999 clear_dma_ff(c->txdma); in z8530_sync_dma_close()
1002 c->txdma_on = 0; in z8530_sync_dma_close()
1003 c->tx_dma_used = 0; in z8530_sync_dma_close()
1005 spin_lock_irqsave(c->lock, flags); in z8530_sync_dma_close()
1011 c->regs[R1]&= ~WT_RDY_ENAB; in z8530_sync_dma_close()
1012 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_dma_close()
1013 c->regs[R1]&= ~(WT_RDY_RT|WT_FN_RDYFN|INT_ERR_Rx); in z8530_sync_dma_close()
1014 c->regs[R1]|= INT_ALL_Rx; in z8530_sync_dma_close()
1015 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_dma_close()
1016 c->regs[R14]&= ~DTRREQ; in z8530_sync_dma_close()
1017 write_zsreg(c, R14, c->regs[R14]); in z8530_sync_dma_close()
1019 if(c->rx_buf[0]) in z8530_sync_dma_close()
1021 free_page((unsigned long)c->rx_buf[0]); in z8530_sync_dma_close()
1022 c->rx_buf[0]=NULL; in z8530_sync_dma_close()
1024 if(c->tx_dma_buf[0]) in z8530_sync_dma_close()
1026 free_page((unsigned long)c->tx_dma_buf[0]); in z8530_sync_dma_close()
1027 c->tx_dma_buf[0]=NULL; in z8530_sync_dma_close()
1029 chk=read_zsreg(c,R0); in z8530_sync_dma_close()
1030 write_zsreg(c, R3, c->regs[R3]); in z8530_sync_dma_close()
1031 z8530_rtsdtr(c,0); in z8530_sync_dma_close()
1033 spin_unlock_irqrestore(c->lock, flags); in z8530_sync_dma_close()
1050 int z8530_sync_txdma_open(struct net_device *dev, struct z8530_channel *c) in z8530_sync_txdma_open() argument
1055 c->sync = 1; in z8530_sync_txdma_open()
1056 c->mtu = dev->mtu+64; in z8530_sync_txdma_open()
1057 c->count = 0; in z8530_sync_txdma_open()
1058 c->skb = NULL; in z8530_sync_txdma_open()
1059 c->skb2 = NULL; in z8530_sync_txdma_open()
1067 if(c->mtu > PAGE_SIZE/2) in z8530_sync_txdma_open()
1070 c->tx_dma_buf[0]=(void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); in z8530_sync_txdma_open()
1071 if(c->tx_dma_buf[0]==NULL) in z8530_sync_txdma_open()
1074 c->tx_dma_buf[1] = c->tx_dma_buf[0] + PAGE_SIZE/2; in z8530_sync_txdma_open()
1077 spin_lock_irqsave(c->lock, cflags); in z8530_sync_txdma_open()
1083 z8530_rx_done(c); in z8530_sync_txdma_open()
1084 z8530_rx_done(c); in z8530_sync_txdma_open()
1090 c->rxdma_on = 0; in z8530_sync_txdma_open()
1091 c->txdma_on = 0; in z8530_sync_txdma_open()
1093 c->tx_dma_used=0; in z8530_sync_txdma_open()
1094 c->dma_num=0; in z8530_sync_txdma_open()
1095 c->dma_ready=1; in z8530_sync_txdma_open()
1096 c->dma_tx = 1; in z8530_sync_txdma_open()
1105 c->regs[R14]|= DTRREQ; in z8530_sync_txdma_open()
1106 write_zsreg(c, R14, c->regs[R14]); in z8530_sync_txdma_open()
1108 c->regs[R1]&= ~TxINT_ENAB; in z8530_sync_txdma_open()
1109 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_txdma_open()
1117 disable_dma(c->txdma); in z8530_sync_txdma_open()
1118 clear_dma_ff(c->txdma); in z8530_sync_txdma_open()
1119 set_dma_mode(c->txdma, DMA_MODE_WRITE); in z8530_sync_txdma_open()
1120 disable_dma(c->txdma); in z8530_sync_txdma_open()
1128 c->rxdma_on = 0; in z8530_sync_txdma_open()
1129 c->txdma_on = 1; in z8530_sync_txdma_open()
1130 c->tx_dma_used = 1; in z8530_sync_txdma_open()
1132 c->irqs = &z8530_txdma_sync; in z8530_sync_txdma_open()
1133 z8530_rtsdtr(c,1); in z8530_sync_txdma_open()
1134 write_zsreg(c, R3, c->regs[R3]|RxENABLE); in z8530_sync_txdma_open()
1135 spin_unlock_irqrestore(c->lock, cflags); in z8530_sync_txdma_open()
1151 int z8530_sync_txdma_close(struct net_device *dev, struct z8530_channel *c) in z8530_sync_txdma_close() argument
1157 spin_lock_irqsave(c->lock, cflags); in z8530_sync_txdma_close()
1159 c->irqs = &z8530_nop; in z8530_sync_txdma_close()
1160 c->max = 0; in z8530_sync_txdma_close()
1161 c->sync = 0; in z8530_sync_txdma_close()
1169 disable_dma(c->txdma); in z8530_sync_txdma_close()
1170 clear_dma_ff(c->txdma); in z8530_sync_txdma_close()
1171 c->txdma_on = 0; in z8530_sync_txdma_close()
1172 c->tx_dma_used = 0; in z8530_sync_txdma_close()
1180 c->regs[R1]&= ~WT_RDY_ENAB; in z8530_sync_txdma_close()
1181 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_txdma_close()
1182 c->regs[R1]&= ~(WT_RDY_RT|WT_FN_RDYFN|INT_ERR_Rx); in z8530_sync_txdma_close()
1183 c->regs[R1]|= INT_ALL_Rx; in z8530_sync_txdma_close()
1184 write_zsreg(c, R1, c->regs[R1]); in z8530_sync_txdma_close()
1185 c->regs[R14]&= ~DTRREQ; in z8530_sync_txdma_close()
1186 write_zsreg(c, R14, c->regs[R14]); in z8530_sync_txdma_close()
1188 if(c->tx_dma_buf[0]) in z8530_sync_txdma_close()
1190 free_page((unsigned long)c->tx_dma_buf[0]); in z8530_sync_txdma_close()
1191 c->tx_dma_buf[0]=NULL; in z8530_sync_txdma_close()
1193 chk=read_zsreg(c,R0); in z8530_sync_txdma_close()
1194 write_zsreg(c, R3, c->regs[R3]); in z8530_sync_txdma_close()
1195 z8530_rtsdtr(c,0); in z8530_sync_txdma_close()
1197 spin_unlock_irqrestore(c->lock, cflags); in z8530_sync_txdma_close()
1381 int z8530_channel_load(struct z8530_channel *c, u8 *rtable) in z8530_channel_load() argument
1385 spin_lock_irqsave(c->lock, flags); in z8530_channel_load()
1391 write_zsreg(c, R15, c->regs[15]|1); in z8530_channel_load()
1392 write_zsreg(c, reg&0x0F, *rtable); in z8530_channel_load()
1394 write_zsreg(c, R15, c->regs[15]&~1); in z8530_channel_load()
1395 c->regs[reg]=*rtable++; in z8530_channel_load()
1397 c->rx_function=z8530_null_rx; in z8530_channel_load()
1398 c->skb=NULL; in z8530_channel_load()
1399 c->tx_skb=NULL; in z8530_channel_load()
1400 c->tx_next_skb=NULL; in z8530_channel_load()
1401 c->mtu=1500; in z8530_channel_load()
1402 c->max=0; in z8530_channel_load()
1403 c->count=0; in z8530_channel_load()
1404 c->status=read_zsreg(c, R0); in z8530_channel_load()
1405 c->sync=1; in z8530_channel_load()
1406 write_zsreg(c, R3, c->regs[R3]|RxENABLE); in z8530_channel_load()
1408 spin_unlock_irqrestore(c->lock, flags); in z8530_channel_load()
1429 static void z8530_tx_begin(struct z8530_channel *c) in z8530_tx_begin() argument
1432 if(c->tx_skb) in z8530_tx_begin()
1435 c->tx_skb=c->tx_next_skb; in z8530_tx_begin()
1436 c->tx_next_skb=NULL; in z8530_tx_begin()
1437 c->tx_ptr=c->tx_next_ptr; in z8530_tx_begin()
1439 if(c->tx_skb==NULL) in z8530_tx_begin()
1442 if(c->dma_tx) in z8530_tx_begin()
1445 disable_dma(c->txdma); in z8530_tx_begin()
1449 if (get_dma_residue(c->txdma)) in z8530_tx_begin()
1451 c->netdevice->stats.tx_dropped++; in z8530_tx_begin()
1452 c->netdevice->stats.tx_fifo_errors++; in z8530_tx_begin()
1456 c->txcount=0; in z8530_tx_begin()
1460 c->txcount=c->tx_skb->len; in z8530_tx_begin()
1463 if(c->dma_tx) in z8530_tx_begin()
1473 disable_dma(c->txdma); in z8530_tx_begin()
1480 if(c->dev->type!=Z85230) in z8530_tx_begin()
1482 write_zsctrl(c, RES_Tx_CRC); in z8530_tx_begin()
1483 write_zsctrl(c, RES_EOM_L); in z8530_tx_begin()
1485 write_zsreg(c, R10, c->regs[10]&~ABUNDER); in z8530_tx_begin()
1486 clear_dma_ff(c->txdma); in z8530_tx_begin()
1487 set_dma_addr(c->txdma, virt_to_bus(c->tx_ptr)); in z8530_tx_begin()
1488 set_dma_count(c->txdma, c->txcount); in z8530_tx_begin()
1489 enable_dma(c->txdma); in z8530_tx_begin()
1491 write_zsctrl(c, RES_EOM_L); in z8530_tx_begin()
1492 write_zsreg(c, R5, c->regs[R5]|TxENAB); in z8530_tx_begin()
1498 write_zsreg(c, R10, c->regs[10]); in z8530_tx_begin()
1499 write_zsctrl(c, RES_Tx_CRC); in z8530_tx_begin()
1501 while(c->txcount && (read_zsreg(c,R0)&Tx_BUF_EMP)) in z8530_tx_begin()
1503 write_zsreg(c, R8, *c->tx_ptr++); in z8530_tx_begin()
1504 c->txcount--; in z8530_tx_begin()
1512 netif_wake_queue(c->netdevice); in z8530_tx_begin()
1526 static void z8530_tx_done(struct z8530_channel *c) in z8530_tx_done() argument
1531 if (c->tx_skb == NULL) in z8530_tx_done()
1534 skb = c->tx_skb; in z8530_tx_done()
1535 c->tx_skb = NULL; in z8530_tx_done()
1536 z8530_tx_begin(c); in z8530_tx_done()
1537 c->netdevice->stats.tx_packets++; in z8530_tx_done()
1538 c->netdevice->stats.tx_bytes += skb->len; in z8530_tx_done()
1551 void z8530_null_rx(struct z8530_channel *c, struct sk_buff *skb) in z8530_null_rx() argument
1571 static void z8530_rx_done(struct z8530_channel *c) in z8530_rx_done() argument
1580 if(c->rxdma_on) in z8530_rx_done()
1587 int ready=c->dma_ready; in z8530_rx_done()
1588 unsigned char *rxb=c->rx_buf[c->dma_num]; in z8530_rx_done()
1597 disable_dma(c->rxdma); in z8530_rx_done()
1598 clear_dma_ff(c->rxdma); in z8530_rx_done()
1599 c->rxdma_on=0; in z8530_rx_done()
1600 ct=c->mtu-get_dma_residue(c->rxdma); in z8530_rx_done()
1603 c->dma_ready=0; in z8530_rx_done()
1612 c->dma_num^=1; in z8530_rx_done()
1613 set_dma_mode(c->rxdma, DMA_MODE_READ|0x10); in z8530_rx_done()
1614 set_dma_addr(c->rxdma, virt_to_bus(c->rx_buf[c->dma_num])); in z8530_rx_done()
1615 set_dma_count(c->rxdma, c->mtu); in z8530_rx_done()
1616 c->rxdma_on = 1; in z8530_rx_done()
1617 enable_dma(c->rxdma); in z8530_rx_done()
1620 write_zsreg(c, R0, RES_Rx_CRC); in z8530_rx_done()
1625 netdev_warn(c->netdevice, "DMA flip overrun!\n"); in z8530_rx_done()
1639 c->netdevice->stats.rx_dropped++; in z8530_rx_done()
1640 netdev_warn(c->netdevice, "Memory squeeze\n"); in z8530_rx_done()
1644 c->netdevice->stats.rx_packets++; in z8530_rx_done()
1645 c->netdevice->stats.rx_bytes += ct; in z8530_rx_done()
1647 c->dma_ready = 1; in z8530_rx_done()
1650 skb = c->skb; in z8530_rx_done()
1664 ct=c->count; in z8530_rx_done()
1666 c->skb = c->skb2; in z8530_rx_done()
1667 c->count = 0; in z8530_rx_done()
1668 c->max = c->mtu; in z8530_rx_done()
1669 if (c->skb) { in z8530_rx_done()
1670 c->dptr = c->skb->data; in z8530_rx_done()
1671 c->max = c->mtu; in z8530_rx_done()
1673 c->count = 0; in z8530_rx_done()
1674 c->max = 0; in z8530_rx_done()
1678 c->skb2 = dev_alloc_skb(c->mtu); in z8530_rx_done()
1679 if (c->skb2 == NULL) in z8530_rx_done()
1680 netdev_warn(c->netdevice, "memory squeeze\n"); in z8530_rx_done()
1682 skb_put(c->skb2, c->mtu); in z8530_rx_done()
1683 c->netdevice->stats.rx_packets++; in z8530_rx_done()
1684 c->netdevice->stats.rx_bytes += ct; in z8530_rx_done()
1691 c->rx_function(c, skb); in z8530_rx_done()
1693 c->netdevice->stats.rx_dropped++; in z8530_rx_done()
1694 netdev_err(c->netdevice, "Lost a frame\n"); in z8530_rx_done()
1729 netdev_tx_t z8530_queue_xmit(struct z8530_channel *c, struct sk_buff *skb) in z8530_queue_xmit() argument
1733 netif_stop_queue(c->netdevice); in z8530_queue_xmit()
1734 if(c->tx_next_skb) in z8530_queue_xmit()
1745 …if(c->dma_tx && ((unsigned long)(virt_to_bus(skb->data+skb->len))>=16*1024*1024 || spans_boundary(… in z8530_queue_xmit()
1754 c->tx_next_ptr=c->tx_dma_buf[c->tx_dma_used]; in z8530_queue_xmit()
1755 c->tx_dma_used^=1; /* Flip temp buffer */ in z8530_queue_xmit()
1756 skb_copy_from_linear_data(skb, c->tx_next_ptr, skb->len); in z8530_queue_xmit()
1759 c->tx_next_ptr=skb->data; in z8530_queue_xmit()
1761 c->tx_next_skb=skb; in z8530_queue_xmit()
1764 spin_lock_irqsave(c->lock, flags); in z8530_queue_xmit()
1765 z8530_tx_begin(c); in z8530_queue_xmit()
1766 spin_unlock_irqrestore(c->lock, flags); in z8530_queue_xmit()