lkml.org 
[lkml]   [2021]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v11 0/3] AX88796C SPI Ethernet Adapter
    Date
    This is a driver for AX88796C Ethernet Adapter connected in SPI mode as
    found on ARTIK5 evaluation board. The driver has been ported from a
    v3.10.9 vendor kernel for ARTIK5 board.

    Changes in v11:
    - changed stat counters to 64-bit
    - replaced WARN_ON(!mutex_is_locked()) with lockdep_assert_held()
    - replaced ax88796c_free_skb_queue() with __skb_queue_purge()
    - added cancel_work_sync() for ax_work
    - removed unused fields of struct skb_data
    - replaced MAX() with max() from minmax.h

    Changes in v10:
    - removed unused variable

    Changes in v9:
    - used pskb_extend_head()
    - used ethtool private flags instead of tunables to switch SPI
    compression
    - changed
    - alloc_skb() to netdev_alloc(skb)
    - __pskb_trim() to pskb_trim()
    - removed:
    - chages to skb->truesize
    - unnecessary casting to short
    - return f() in a void function
    - IRQF_SHARED flags
    - unnecessary memset(0) of kzalloc()ed buffer
    - unused endiannes detection
    - unnecessary __packed attribute for some structures
    - added:
    - temporary variable in AX_WRITE/READ sequences
    - missin mutex_unlock() in error paths
    - axspi_read_reg() returns a constant value in case of an error

    Changes in v8:
    - fixed the entry in MAINTAINERS
    - removed unnecessary netif_err()
    - changed netif_rx() to netif_rx_ni() for code running in a process
    context
    - added explicit type casting for ~BIT()

    Changes in v7:
    - removed duplicate code
    - moved a constant buffer definition away from a header file

    Changes in v6:
    - fixed typos in Kconfig
    - checked argument value in ax88796c_set_tunable
    - updated tags in commit messages

    Changes in v5:
    - coding style (local variable declarations)
    - added spi0 node in the DT binding example and removed
    interrupt-parent
    - removed comp module parameter
    - added CONFIG_SPI_AX88796C_COMPRESSION option to set the initial
    state of SPI compression
    - introduced new ethtool tunable "spi-compression" to controll SPI
    transfer compression
    - removed unused fields in struct ax88796c_device
    - switched from using buffers allocated on stack for SPI transfers
    to DMA safe ones embedded in struct ax_spi and allocated with
    kmalloc()

    Changes in v4:
    - fixed compilation problems in asix,ax88796c.yaml and in
    ax88796c_main.c introduced in v3

    Changes in v3:
    - modify vendor-prefixes.yaml in a separate patch
    - fix several problems in the dt binding
    - removed unnecessary descriptions and properties
    - changed the order of entries
    - fixed problems with missing defines in the example
    - change (1 << N) to BIT(N), left a few (0 << N)
    - replace ax88796c_get_link(), ax88796c_get_link_ksettings(),
    ax88796c_set_link_ksettings(), ax88796c_nway_reset(),
    ax88796c_set_mac_address() with appropriate kernel functions.
    - disable PHY auto-polling in MAC and use PHYLIB to track the state
    of PHY and configure MAC
    - propagate return values instead of returning constants in several
    places
    - add WARN_ON() for unlocked mutex
    - remove local work queue and use the system_wq
    - replace phy_connect_direct() with phy_connect() and move
    devm_register_netdev() to the end of ax88796c_probe()
    (Unlike phy_connect_direct() phy_connect() does not crash if the
    network device isn't registered yet.)
    - remove error messages on ENOMEM
    - move free_irq() to the end of ax88796c_close() to avoid race
    condition
    - implement flow-control

    Changes in v2:
    - use phylib
    - added DT bindings
    - moved #includes to *.c files
    - used mutex instead of a semaphore for locking
    - renamed some constants
    - added error propagation for several functions
    - used ethtool for dumping registers
    - added control over checksum offloading
    - remove vendor specific PM
    - removed macaddr module parameter and added support for reading a MAC
    address from platform data (e.g. DT)
    - removed dependency on SPI from NET_VENDOR_ASIX
    - added an entry in the MAINTAINERS file
    - simplified logging with appropriate netif_* and netdev_* helpers
    - lots of style fixes

    Łukasz Stelmach (3):
    dt-bindings: vendor-prefixes: Add asix prefix
    dt-bindings: net: Add bindings for AX88796C SPI Ethernet Adapter
    net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver

    .../bindings/net/asix,ax88796c.yaml | 73 ++
    .../devicetree/bindings/vendor-prefixes.yaml | 2 +
    MAINTAINERS | 6 +
    drivers/net/ethernet/Kconfig | 1 +
    drivers/net/ethernet/Makefile | 1 +
    drivers/net/ethernet/asix/Kconfig | 35 +
    drivers/net/ethernet/asix/Makefile | 6 +
    drivers/net/ethernet/asix/ax88796c_ioctl.c | 239 ++++
    drivers/net/ethernet/asix/ax88796c_ioctl.h | 26 +
    drivers/net/ethernet/asix/ax88796c_main.c | 1146 +++++++++++++++++
    drivers/net/ethernet/asix/ax88796c_main.h | 568 ++++++++
    drivers/net/ethernet/asix/ax88796c_spi.c | 115 ++
    drivers/net/ethernet/asix/ax88796c_spi.h | 69 +
    13 files changed, 2287 insertions(+)
    create mode 100644 Documentation/devicetree/bindings/net/asix,ax88796c.yaml
    create mode 100644 drivers/net/ethernet/asix/Kconfig
    create mode 100644 drivers/net/ethernet/asix/Makefile
    create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.c
    create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.h
    create mode 100644 drivers/net/ethernet/asix/ax88796c_main.c
    create mode 100644 drivers/net/ethernet/asix/ax88796c_main.h
    create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.c
    create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.h

    --
    2.26.2

    \
     
     \ /
      Last update: 2021-01-26 08:59    [W:7.319 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site