devices/ccat/netdev.c
branchstable-1.5
changeset 2578 d707b650fa52
parent 2576 f6a5b3bb0594
child 2636 0613017547fe
equal deleted inserted replaced
2577:8b2a511a2bf8 2578:d707b650fa52
   250 	fifo->next->length = cpu_to_le16(skb->len);
   250 	fifo->next->length = cpu_to_le16(skb->len);
   251 	memcpy(fifo->next->data, skb->data, skb->len);
   251 	memcpy(fifo->next->data, skb->data, skb->len);
   252 
   252 
   253 	/* Queue frame into CCAT TX-FIFO, CCAT ignores the first 8 bytes of the tx descriptor */
   253 	/* Queue frame into CCAT TX-FIFO, CCAT ignores the first 8 bytes of the tx descriptor */
   254 	addr_and_length = offsetof(struct ccat_eth_frame, length);
   254 	addr_and_length = offsetof(struct ccat_eth_frame, length);
   255 	addr_and_length += ((void*)fifo->next - fifo->dma.virt);
   255 	addr_and_length += ((void *)fifo->next - fifo->dma.virt);
   256 	addr_and_length += ((skb->len + CCAT_ETH_FRAME_HEAD_LEN) / 8) << 24;
   256 	addr_and_length += ((skb->len + CCAT_ETH_FRAME_HEAD_LEN) / 8) << 24;
   257 	iowrite32(addr_and_length, priv->reg.tx_fifo);
   257 	iowrite32(addr_and_length, priv->reg.tx_fifo);
   258 
   258 
   259 	/* update stats */
   259 	/* update stats */
   260 	atomic64_add(skb->len, &priv->tx_bytes);
   260 	atomic64_add(skb->len, &priv->tx_bytes);