netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Igor Russkikh <Igor.Russkikh@aquantia.com>
To: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: "andrew@lunn.ch" <andrew@lunn.ch>,
	Dmitry Bezrukov <Dmitry.Bezrukov@aquantia.com>,
	Igor Russkikh <Igor.Russkikh@aquantia.com>
Subject: [PATCH v4 net-next 00/21] Add support for Aquantia AQtion USB to 5/2.5GbE devices
Date: Mon, 26 Nov 2018 09:32:56 +0000	[thread overview]
Message-ID: <cover.1543224254.git.igor.russkikh@aquantia.com> (raw)

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

-- 
2.17.1

             reply	other threads:[~2018-11-26 20:26 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-26  9:32 Igor Russkikh [this message]
2018-11-26  9:32 ` [PATCH v4 net-next 01/21] net: usb: aqc111: Driver skeleton for Aquantia AQtion USB to 5GbE Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 02/21] net: usb: aqc111: Add bind and empty unbind callbacks Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 03/21] net: usb: aqc111: Add implementation of read and write commands Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 04/21] net: usb: aqc111: Various callbacks implementation Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 05/21] net: usb: aqc111: Introduce PHY access Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 06/21] net: usb: aqc111: Introduce link management Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 07/21] net: usb: aqc111: Add support for getting and setting of MAC address Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 08/21] net: usb: aqc111: Implement TX data path Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 09/21] net: usb: aqc111: Implement RX " Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 10/21] net: usb: aqc111: Add checksum offload support Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 11/21] net: usb: aqc111: Add support for changing MTU Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 12/21] net: usb: aqc111: Add support for enable/disable checksum offload Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 13/21] net: usb: aqc111: Add support for TSO Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 14/21] net: usb: aqc111: Implement set_rx_mode callback Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 15/21] net: usb: aqc111: Add support for VLAN_CTAG_TX/RX offload Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 16/21] net: usb: aqc111: Add RX VLAN filtering support Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 17/21] net: usb: aqc111: Initialize ethtool_ops structure Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 18/21] net: usb: aqc111: Implement get/set_link_ksettings callbacks Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 19/21] net: usb: aqc111: Add support for wake on LAN by MAGIC packet Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 20/21] net: usb: aqc111: Add ASIX's HW ids Igor Russkikh
2018-11-26  9:33 ` [PATCH v4 net-next 21/21] net: usb: aqc111: Extend cdc_ether blacklist Igor Russkikh
2018-11-27 23:47 ` [PATCH v4 net-next 00/21] Add support for Aquantia AQtion USB to 5/2.5GbE devices David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1543224254.git.igor.russkikh@aquantia.com \
    --to=igor.russkikh@aquantia.com \
    --cc=Dmitry.Bezrukov@aquantia.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=linux-usb@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).