This patchset contains various improvements: - Work targeting link up speedups: link interrupt introduced, some other logic changes to imrove this. - FW operations securing with mutex - Counters and statistics logic improved by Dmitry - read out of chip temperature via hwmon interface implemented by Yana and Nikita.
v3 changes: - temp ops renamed to phy_temp ops - mutex commits squashed for better structure v2 changes: - use threaded irq for link state handling - rework hwmon via devm_hwmon_device_register_with_info Extra comments on review from Andrew: - direct device name pointer is used in hwmon registration. This causes hwmon device to derive possible interface name changes - Will consider sanity checks for firmware mutex lock separately. Right now there is no single point exsists where such check could be easily added. - There is no way now to fetch and configure min/max/crit temperatures via FW. Will investigate this separately. Dmitry Bogdanov (3): net: aquantia: fetch up to date statistics on ethtool request net: aquantia: get total counters from DMA block net: aquantia: fixups on 64bit dma counters Igor Russkikh (7): net: aquantia: add link interrupt fields net: aquantia: link interrupt handling function net: aquantia: link status irq handling net: aquantia: improve ifup link detection net: aquantia: use macros for better visibility net: aquantia: user correct MSI irq type net: aquantia: extract timer cb into work job Nikita Danilov (3): net: aquantia: create global service workqueue net: aquantia: introduce fwreq mutex net: aquantia: remove outdated device ids Yana Esina (2): net: aquantia: add infrastructure to readout chip temperature net: aquantia: implement hwmon api for chip temperature .../net/ethernet/aquantia/atlantic/Makefile | 1 + .../ethernet/aquantia/atlantic/aq_common.h | 3 - .../ethernet/aquantia/atlantic/aq_drvinfo.c | 129 ++++++++++++++++++ .../ethernet/aquantia/atlantic/aq_drvinfo.h | 16 +++ .../ethernet/aquantia/atlantic/aq_ethtool.c | 22 ++- .../net/ethernet/aquantia/atlantic/aq_hw.h | 4 + .../net/ethernet/aquantia/atlantic/aq_main.c | 41 ++++++ .../net/ethernet/aquantia/atlantic/aq_main.h | 2 + .../net/ethernet/aquantia/atlantic/aq_nic.c | 121 ++++++++++++---- .../net/ethernet/aquantia/atlantic/aq_nic.h | 6 +- .../ethernet/aquantia/atlantic/aq_pci_func.c | 49 ++++--- .../ethernet/aquantia/atlantic/aq_pci_func.h | 7 +- .../aquantia/atlantic/hw_atl/hw_atl_a0.c | 8 +- .../aquantia/atlantic/hw_atl/hw_atl_b0.c | 13 +- .../aquantia/atlantic/hw_atl/hw_atl_b0.h | 3 - .../aquantia/atlantic/hw_atl/hw_atl_llh.c | 5 - .../aquantia/atlantic/hw_atl/hw_atl_llh.h | 3 - .../atlantic/hw_atl/hw_atl_llh_internal.h | 3 - .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 15 +- .../atlantic/hw_atl/hw_atl_utils_fw2x.c | 36 +++++ 20 files changed, 407 insertions(+), 80 deletions(-) create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.h -- 2.17.1