This is the first version of a patch series that adds the ionic driver, supporting the Pensando ethernet devices.
In this first patchset we implement basic network driver functionality. Later patchsets will add more advanced features. Shannon Nelson (18): ionic: Add basic framework for IONIC Network device driver ionic: Add hardware init and device commands ionic: Add port management commands ionic: Add basic lif support ionic: Add interrupts and doorbells ionic: Add basic adminq support ionic: Add adminq action ionic: Add notifyq support ionic: Add the basic NDO callbacks for netdev support ionic: Add management of rx filters ionic: Add Rx filter and rx_mode nod support ionic: Add async link status check and basic stats ionic: Add initial ethtool support ionic: Add Tx and Rx handling ionic: Add netdev-event handling ionic: Add driver stats ionic: Add RSS support ionic: Add coalesce and other features .../networking/device_drivers/index.rst | 1 + .../device_drivers/pensando/ionic.rst | 75 + MAINTAINERS | 8 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/pensando/Kconfig | 32 + drivers/net/ethernet/pensando/Makefile | 6 + drivers/net/ethernet/pensando/ionic/Makefile | 8 + drivers/net/ethernet/pensando/ionic/ionic.h | 74 + .../net/ethernet/pensando/ionic/ionic_bus.h | 16 + .../ethernet/pensando/ionic/ionic_bus_pci.c | 295 ++ .../ethernet/pensando/ionic/ionic_debugfs.c | 499 ++++ .../ethernet/pensando/ionic/ionic_debugfs.h | 38 + .../net/ethernet/pensando/ionic/ionic_dev.c | 535 ++++ .../net/ethernet/pensando/ionic/ionic_dev.h | 284 ++ .../ethernet/pensando/ionic/ionic_ethtool.c | 820 ++++++ .../ethernet/pensando/ionic/ionic_ethtool.h | 9 + .../net/ethernet/pensando/ionic/ionic_if.h | 2553 +++++++++++++++++ .../net/ethernet/pensando/ionic/ionic_lif.c | 2304 +++++++++++++++ .../net/ethernet/pensando/ionic/ionic_lif.h | 276 ++ .../net/ethernet/pensando/ionic/ionic_main.c | 556 ++++ .../net/ethernet/pensando/ionic/ionic_regs.h | 133 + .../ethernet/pensando/ionic/ionic_rx_filter.c | 139 + .../ethernet/pensando/ionic/ionic_rx_filter.h | 34 + .../net/ethernet/pensando/ionic/ionic_stats.c | 325 +++ .../net/ethernet/pensando/ionic/ionic_stats.h | 53 + .../net/ethernet/pensando/ionic/ionic_txrx.c | 880 ++++++ .../net/ethernet/pensando/ionic/ionic_txrx.h | 15 + 28 files changed, 9970 insertions(+) create mode 100644 Documentation/networking/device_drivers/pensando/ionic.rst create mode 100644 drivers/net/ethernet/pensando/Kconfig create mode 100644 drivers/net/ethernet/pensando/Makefile create mode 100644 drivers/net/ethernet/pensando/ionic/Makefile create mode 100644 drivers/net/ethernet/pensando/ionic/ionic.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_bus.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_debugfs.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_dev.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_dev.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_ethtool.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_if.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_lif.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_lif.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_main.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_regs.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_rx_filter.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_rx_filter.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_stats.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_stats.h create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_txrx.c create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_txrx.h -- 2.17.1