lkml.org 
[lkml]   [2014]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v8 1/1] Driver for Beckhoff CX5020 EtherCAT master module.
On 2014-05-06 at 16:56:06 +0200, Tobias Klauser <tklauser@distanz.ch> wrote:
> On 2014-05-05 at 21:10:45 +0200, Darek Marcinkiewicz <reksio@newterm.pl> wrote:
> >
> > This driver adds support for EtherCAT master module located on CCAT
> > FPGA found on Beckhoff CX series industrial PCs. The driver exposes
> > EtherCAT master as an ethernet interface.
> >
> > EtherCAT is a fieldbus protocol defined on top of ethernet and Beckhoff
> > CX5020 PCs come with built-in EtherCAT master module located on a FPGA,
> > which in turn is connected to a PCI bus.
> >
> > Signed-off-by: Dariusz Marcinkiewicz <reksio@newterm.pl>
> > ---
> >
> > Changes from v7:
> > * added 'depends on PCI' to the driver's Kconfig entry
> >
> > Changes from v6:
> > * added memory barriers to avoid race between timer handler and xmit routine
> > * includes formatting/indeting changes from Francois Romieu
> >
> > Changes from v5:
> > * removal of needless locking on tx path
> > * driver makes actual use of tx fifo
> > * driver uses descriptors' array instead of descriptor list
> >
> > Changes from v4:
> > * incorporates Francois Romieu comments
> > * fixes typo spotted by Jesper Brouer
> >
> > Changes from v3:
> > * some clarificatoins around buffer allocations
> >
> > Changes from v2:
> > * removed all checkpatch warnings
> > * driver makes use of device rx fifo
> >
> > Changes from v1:
> > * added endianess annotation to descriptors' structures
> > * killed checkpath warnings about string literals being split into multiple
> > lines
> >
> > drivers/net/ethernet/Kconfig | 12 +
> > drivers/net/ethernet/Makefile | 1 +
> > drivers/net/ethernet/ec_bhf.c | 705 +++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 718 insertions(+)
> > create mode 100644 drivers/net/ethernet/ec_bhf.c
>
> [...]
>
> > +struct ec_bhf_priv {
> > + struct net_device *net_dev;
> > +
> > + struct pci_dev *dev;
> > +
> > + void * __iomem io;
> > + void * __iomem dma_io;
> > +
> > + struct hrtimer hrtimer;
> > +
> > + int tx_dma_chan;
> > + int rx_dma_chan;
> > + void * __iomem ec_io;
> > + void * __iomem fifo_io;
> > + void * __iomem mii_io;
> > + void * __iomem mac_io;
> > +
> > + struct bhf_dma rx_buf;
> > + struct rx_desc *rx_descs;
> > + int rx_dnext;
> > + int rx_dcount;
> > +
> > + struct bhf_dma tx_buf;
> > + struct tx_desc *tx_descs;
> > + int tx_dcount;
> > + int tx_dnext;
> > +
> > + u64 stat_rx_bytes;
> > + u64 stat_tx_bytes;
>
> netdev->stats already provides {rx,tx}_bytes members, so you can get rid
> of these two.

Actually, no. The net_device_stats members are unsigned long, so your
solution is fine. Please disregard.


\
 
 \ /
  Last update: 2014-05-06 23:21    [W:0.137 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site