--- a/devices/ccat/module.h Tue Feb 16 15:18:34 2016 +0100
+++ b/devices/ccat/module.h Tue Apr 12 11:17:36 2016 +0200
@@ -29,7 +29,7 @@
#include "../ecdev.h"
#define DRV_EXTRAVERSION "-ec"
-#define DRV_VERSION "0.14" DRV_EXTRAVERSION
+#define DRV_VERSION "0.15" DRV_EXTRAVERSION
#define DRV_DESCRIPTION "Beckhoff CCAT Ethernet/EtherCAT Network Driver"
#undef pr_fmt
--- a/devices/ccat/netdev.c Tue Feb 16 15:18:34 2016 +0100
+++ b/devices/ccat/netdev.c Tue Apr 12 11:17:36 2016 +0200
@@ -291,7 +291,7 @@
iowrite32((u32) phys | ((phys_hi) > 0), ioaddr);
iowrite32(phys_hi, ioaddr + 4);
- pr_debug
+ pr_info
("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",
(u64) channel, dma->base, fifo->dma.start, (u64) dma->phys,
ioread32(ioaddr + 4), ioread32(ioaddr),
@@ -749,12 +749,14 @@
static void poll_rx(struct ccat_eth_priv *const priv)
{
struct ccat_eth_fifo *const fifo = &priv->rx_fifo;
- const size_t len = fifo->ops->ready(fifo);
-
- if (len) {
+ size_t rx_per_poll = FIFO_LENGTH / 2;
+ size_t len = fifo->ops->ready(fifo);
+
+ while (len && --rx_per_poll) {
priv->receive(priv, len);
fifo->ops->add(fifo);
ccat_eth_fifo_inc(fifo);
+ len = fifo->ops->ready(fifo);
}
}