Skip to content

Add support for Aquantia AQtion USB to 5/2.5GbE devices

Igor Russkikh linux-usb netdev 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest21 patches 1 replyIn review
  2. v321 patches 7 repliesSuperseded
  3. v221 patches 11 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v119 patches49 repliesSuperseded

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/21net: usb: aqc111: Driver skeleton for Aquantia AQtion USB to 5GbEdrivers/net/usb/Kconfig drivers/net/usb/Makefile drivers/net/usb/aqc111.c+61 -00 replies
2/21net: usb: aqc111: Add bind and empty unbind callbacksdrivers/net/usb/aqc111.c+35 -00 replies
3/21net: usb: aqc111: Add implementation of read and write commandsdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+110 -00 replies
4/21net: usb: aqc111: Various callbacks implementationdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+177 -00 replies
5/21net: usb: aqc111: Introduce PHY accessdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+98 -00 replies
6/21net: usb: aqc111: Introduce link managementdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+248 -00 replies
7/21net: usb: aqc111: Add support for getting and setting of MAC addressdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+48 -00 replies
8/21net: usb: aqc111: Implement TX data pathdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+80 -00 replies
9/21net: usb: aqc111: Implement RX data pathdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+117 -00 replies
10/21net: usb: aqc111: Add checksum offload supportdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+52 -20 replies
11/21net: usb: aqc111: Add support for changing MTUdrivers/net/usb/aqc111.c+59 -10 replies
12/21net: usb: aqc111: Add support for enable/disable checksum offloaddrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+45 -10 replies
13/21net: usb: aqc111: Add support for TSOdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+12 -20 replies
14/21net: usb: aqc111: Implement set_rx_mode callbackdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+71 -50 replies
15/21net: usb: aqc111: Add support for VLAN_CTAG_TX/RX offloaddrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+28 -10 replies
16/21net: usb: aqc111: Add RX VLAN filtering supportdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+90 -10 replies
17/21net: usb: aqc111: Initialize ethtool_ops structuredrivers/net/usb/aqc111.c+28 -00 replies
18/21net: usb: aqc111: Implement get/set_link_ksettings callbacksdrivers/net/usb/aqc111.c+124 -00 replies
19/21net: usb: aqc111: Add support for wake on LAN by MAGIC packetdrivers/net/usb/aqc111.c drivers/net/usb/aqc111.h+192 -00 replies
20/21net: usb: aqc111: Add ASIX's HW idsdrivers/net/usb/aqc111.c+40 -00 replies
21/21net: usb: aqc111: Extend cdc_ether blacklistdrivers/net/usb/cdc_ether.c+26 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.

Read the v4 thread

Cover letter [PATCH v4 net-next 00/21] Add support for Aquantia AQtion USB to 5/2.5GbE devices

This patchset introduces support for new multigig ethernet to USB dongle, developed jointly by Aquantia (Phy) and ASIX (USB MAC).

The driver has similar structure with other ASIX MAC drivers (AX88179), but with a number of important differences:
- Driver supports both direct Phy and custom firmware interface for Phy programming. This is due to different firmware modules available with this product.
- Driver handles new 2.5G/5G link speed configuration and reporting.
- Device support all speeds from 100M up to 5G.
- Device supports MTU up to 16K.

Device supports various standard networking features, like checksum offloads, vlan tagging/filtering, TSO.

The code of this driver is based on original ASIX sources and was extended by Aquantia for 5G multigig support.

Patchset v2 includes following changes:
- Function variables declarions fixed to reverse xmass tree
- Improve patch layout structure
- Remove unnecessary curly braces in switch/case statements
- Use 'packed' attribute for HW structures only
- Use eth_mac_addr function in set_mac_addr callback
- Remove unnecessary 'memset' calls.
- Read MAC address from EEPROM function has now better name
- Use driver_priv field to store context. It avoids ugly cast.
- Set max_mtu field. Remove check for MTU size
- Rewrite read/write functions. Add helpers for read/write 16/32 bit values
- Use mask and shifts instead of bitfields to support BE platforms.
- Use stack allocated buffer for configuring mcast filters
- Use AUTONEG_ENABLE when go to suspend state
- Pad out wol_cfg field from context structure. Use stack allocated instead
- Remove driver version
- Check field 'duplex' in set_link_ksetting callback as well
- Use already created defines in usb matching macro
- Rename phy_ops struct to phy_cfg
- Use ether_addr_copy for copying mac address
- Add fall-through comment in switch/case for avoid checkpatch warning
- Remove match for CDC ether device
- Add ASIX's HW id-s to match this driver
- Add all HW id-s with which driver can work to blacklist of cdc_ether driver

Patchset v3 includes following changes:
- Use linkmode_copy instead of bitmap_copy
- Remove Direct PHY access code since production HW will not have this mode anymore
- Fix line over 80 symbols and alignments in cdc_ether patch
- Add match for ECM configuration
On start our HW reports both ECM and vendor configs. Linux prefers to use ECM driver and chooses active configuration which is for ecm driver (not for vendor specific).
We need to match this configuration and forcibly switch configuration to vendor specific.

Patchset v4 includes following changes:
- Set gso_max_size.
- Optimize accessing to descriptors
- Use SKB_TRUESIZE macro.

Dmitry Bezrukov (21):
net: usb: aqc111: Driver skeleton for Aquantia AQtion USB to 5GbE
net: usb: aqc111: Add bind and empty unbind callbacks
net: usb: aqc111: Add implementation of read and write commands
net: usb: aqc111: Various callbacks implementation
net: usb: aqc111: Introduce PHY access
net: usb: aqc111: Introduce link management
net: usb: aqc111: Add support for getting and setting of MAC address
net: usb: aqc111: Implement TX data path
net: usb: aqc111: Implement RX data path
net: usb: aqc111: Add checksum offload support
net: usb: aqc111: Add support for changing MTU
net: usb: aqc111: Add support for enable/disable checksum offload
net: usb: aqc111: Add support for TSO
net: usb: aqc111: Implement set_rx_mode callback
net: usb: aqc111: Add support for VLAN_CTAG_TX/RX offload
net: usb: aqc111: Add RX VLAN filtering support
net: usb: aqc111: Initialize ethtool_ops structure
net: usb: aqc111: Implement get/set_link_ksettings callbacks
net: usb: aqc111: Add support for wake on LAN by MAGIC packet
net: usb: aqc111: Add ASIX's HW ids
net: usb: aqc111: Extend cdc_ether blacklist

 drivers/net/usb/Kconfig     |   12 +
 drivers/net/usb/Makefile    |    1 +
 drivers/net/usb/aqc111.c    | 1457 +++++++++++++++++++++++++++++++++++
 drivers/net/usb/aqc111.h    |  232 ++++++
 drivers/net/usb/cdc_ether.c |   26 +
 5 files changed, 1728 insertions(+)
 create mode 100644 drivers/net/usb/aqc111.c
 create mode 100644 drivers/net/usb/aqc111.h
Signature · 1 line
2.17.1