devices/ccat/netdev.c
branchstable-1.5
changeset 2654 b3f6b3e5ef29
parent 2638 5995331a55fe
child 2695 ad58465e75ca
equal deleted inserted replaced
2639:3bedfc5ecd74 2654:b3f6b3e5ef29
   289 
   289 
   290 	/** bit 0 enables 64 bit mode on ccat */
   290 	/** bit 0 enables 64 bit mode on ccat */
   291 	iowrite32((u32) phys | ((phys_hi) > 0), ioaddr);
   291 	iowrite32((u32) phys | ((phys_hi) > 0), ioaddr);
   292 	iowrite32(phys_hi, ioaddr + 4);
   292 	iowrite32(phys_hi, ioaddr + 4);
   293 
   293 
   294 	pr_debug
   294 	pr_info
   295 	    ("DMA%llu mem initialized\n base:         0x%p\n start:        0x%p\n phys:         0x%09llx\n pci addr:     0x%01x%08x\n size:         %llu |%llx bytes.\n",
   295 	    ("DMA%llu mem initialized\n base:         0x%p\n start:        0x%p\n phys:         0x%09llx\n pci addr:     0x%01x%08x\n size:         %llu |%llx bytes.\n",
   296 	     (u64) channel, dma->base, fifo->dma.start, (u64) dma->phys,
   296 	     (u64) channel, dma->base, fifo->dma.start, (u64) dma->phys,
   297 	     ioread32(ioaddr + 4), ioread32(ioaddr),
   297 	     ioread32(ioaddr + 4), ioread32(ioaddr),
   298 	     (u64) dma->size, (u64) dma->size);
   298 	     (u64) dma->size, (u64) dma->size);
   299 	return 0;
   299 	return 0;
   747  * Poll for available rx dma descriptors in ethernet operating mode
   747  * Poll for available rx dma descriptors in ethernet operating mode
   748  */
   748  */
   749 static void poll_rx(struct ccat_eth_priv *const priv)
   749 static void poll_rx(struct ccat_eth_priv *const priv)
   750 {
   750 {
   751 	struct ccat_eth_fifo *const fifo = &priv->rx_fifo;
   751 	struct ccat_eth_fifo *const fifo = &priv->rx_fifo;
   752 	const size_t len = fifo->ops->ready(fifo);
   752 	size_t rx_per_poll = FIFO_LENGTH / 2;
   753 
   753 	size_t len = fifo->ops->ready(fifo);
   754 	if (len) {
   754 
       
   755 	while (len && --rx_per_poll) {
   755 		priv->receive(priv, len);
   756 		priv->receive(priv, len);
   756 		fifo->ops->add(fifo);
   757 		fifo->ops->add(fifo);
   757 		ccat_eth_fifo_inc(fifo);
   758 		ccat_eth_fifo_inc(fifo);
       
   759 		len = fifo->ops->ready(fifo);
   758 	}
   760 	}
   759 }
   761 }
   760 
   762 
   761 static void ec_poll(struct net_device *dev)
   763 static void ec_poll(struct net_device *dev)
   762 {
   764 {