1. 06 Apr, 2017 38 commits
  2. 05 Apr, 2017 2 commits
    • David S. Miller's avatar
      Merge branch 'nfp-ksettings' · a4b7c07f
      David S. Miller authored
      Jakub Kicinski says:
      
      ====================
      nfp: ethtool link settings
      
      This series adds support for getting and setting link settings
      via the (moderately) new ethtool ksettings ops.
      
      First patch introduces minimal speed and duplex reporting using
      the information directly provided in PCI BAR0 memory.
      
      Next few changes deal with the need to refresh port state read
      from the service process and patch 6 finally uses that information
      to provide link speed and duplex.  Patches 7 and 8 add auto
      negotiation and port type reporting.
      
      Remaining changes provide the set support for speed and auto
      negotiation.  An upcoming series will also add port splitting
      support via devlink.
      
      Quite a bit of churn in this series is caused by the fact that
      currently port speed and split changes will usually require a
      reboot to take effect.  Current service process code is not capable
      of performing MAC reinitialization after chip has been passing
      traffic.  To make sure user is aware of this limitation we refuse
      the configuration unless netdev is down, print warning to the logs
      and if configuration was performed but did take effect we unregister
      the netdev.  Service process has a "reboot needed" sticky bit, so
      reloading the driver will not bring the netdev back.
      
      Note that there is a helper in patch 13 which is marked as
      __always_inline, because the FIELD_* macros require the parameters
      to be known at compilation time.  I hope that is OK.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a4b7c07f
    • Jakub Kicinski's avatar
      nfp: add support for .set_link_ksettings() · 7c698737
      Jakub Kicinski authored
      Support setting link speed and autonegotiation through
      set_link_ksettings() ethtool op.  If the port is reconfigured
      in incompatible way and reboot is required the netdev will get
      unregistered and not come back until user reboots the system.
      Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@netronome.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c698737