25 Mar, 2020

2 commits

  • use readl_poll_timeout() to replace the poll codes for simplify
    iproc_mdio_wait_for_idle() function

    Signed-off-by: Dejin Zheng
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • …ux/kernel/git/kvalo/wireless-drivers-next

    Kalle Valo says:

    ====================
    wireless-drivers-next patches for v5.7

    Second set of patches for v5.7. Lots of cleanup patches this time, but
    of course various new features as well fixes.

    When merging with wireless-drivers this pull request has a conflict in:

    drivers/net/wireless/intel/iwlwifi/pcie/drv.c

    To solve that just drop the changes from commit cf52c8a776d1 in
    wireless-drivers and take the hunk from wireless-drivers-next as is.
    The list of specific subsystem device IDs are not necessary after
    commit d6f2134a3831 (in wireless-drivers-next) anymore, the detection
    is based on other characteristics of the devices.

    Major changes:

    qtnfmac

    * support WPA3 SAE and OWE in AP mode

    ath10k

    * support for getting btcoex settings from Device Tree

    * support QCA9377 SDIO device

    ath11k

    * add HE rate accounting

    * add thermal sensor and cooling devices

    mt76

    * MT7663 support for the MT7615 driver
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

24 Mar, 2020

38 commits

  • The SJA1105 switch family has a PTP_CLK pin which emits a signal with
    fixed 50% duty cycle, but variable frequency and programmable start time.

    On the second generation (P/Q/R/S) switches, this pin supports even more
    functionality. The use case described by the hardware documents talks
    about synchronization via oneshot pulses: given 2 sja1105 switches,
    arbitrarily designated as a master and a slave, the master emits a
    single pulse on PTP_CLK, while the slave is configured to timestamp this
    pulse received on its PTP_CLK pin (which must obviously be configured as
    input). The difference between the timestamps then exactly becomes the
    slave offset to the master.

    The only trouble with the above is that the hardware is very much tied
    into this use case only, and not very generic beyond that:
    - When emitting a oneshot pulse, instead of being told when to emit it,
    the switch just does it "now" and tells you later what time it was,
    via the PTPSYNCTS register. [ Incidentally, this is the same register
    that the slave uses to collect the ext_ts timestamp from, too. ]
    - On the sync slave, there is no interrupt mechanism on reception of a
    new extts, and no FIFO to buffer them, because in the foreseen use
    case, software is in control of both the master and the slave pins,
    so it "knows" when there's something to collect.

    These 2 problems mean that:
    - We don't support (at least yet) the quirky oneshot mode exposed by
    the hardware, just normal periodic output.
    - We abuse the hardware a little bit when we expose generic extts.
    Because there's no interrupt mechanism, we need to poll at double the
    frequency we expect to receive a pulse. Currently that means a
    non-configurable "twice a second".

    Signed-off-by: Vladimir Oltean
    Acked-by: Richard Cochran
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • The AVB table contains the CAS_MASTER field (to be added in the next
    patch) which decides the direction of the PTP_CLK pin.

    Reconfiguring this field dynamically is highly preferable to having to
    reset the switch and upload a new static configuration, so we add
    support for exactly that.

    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • Because the PTP_CLK pin starts toggling only at a time higher than the
    current PTP clock, this helper from the time-aware shaper code comes in
    handy here as well. We'll use it to transform generic user input for the
    perout request into valid input for the sja1105 hardware.

    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • These fields configure the destination and source MAC address that the
    switch will put in the Ethernet frames sent towards the CPU port that
    contain RX timestamps for PTP.

    These fields do not enable the feature itself, that is configured via
    SEND_META0 and SEND_META1 in the General Params table.

    The implication of this patch is that the AVB Params table will always
    be present in the static config. Which doesn't really hurt.

    This is needed because in a future patch, we will add another field from
    this table, CAS_MASTER, for configuring the PTP_CLK pin function. That
    can be configured irrespective of whether RX timestamping is enabled or
    not, so always having this table present is going to simplify things a
    bit.

    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • checkpatch found a lack of appropriate whitespace after certain keywords
    as per the style guide. Add it in.

    Signed-off-by: Logan Magee
    Signed-off-by: David S. Miller

    Logan Magee
     
  • use phy_read_poll_timeout() to replace the poll codes for
    simplify tja11xx_check() function.

    Suggested-by: Andrew Lunn
    Reviewed-by: Andrew Lunn
    Reviewed-by: Florian Fainelli
    Signed-off-by: Dejin Zheng
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • use phy_read_poll_timeout() to replace the poll codes for
    simplify lan87xx_read_status() function.

    Suggested-by: Andrew Lunn
    Reviewed-by: Florian Fainelli
    Signed-off-by: Dejin Zheng
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • use phy_read_poll_timeout() to replace the poll codes for
    simplify the code in phy_poll_reset() function.

    Reviewed-by: Andrew Lunn
    Signed-off-by: Dejin Zheng
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • use phy_read_mmd_poll_timeout() to replace the poll codes for
    simplify mv3310_reset() function.

    Suggested-by: Andrew Lunn
    Signed-off-by: Dejin Zheng
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • use phy_read_mmd_poll_timeout() to replace the poll codes for
    simplify aqr107_wait_reset_complete() function.

    Reviewed-by: Andrew Lunn
    Reviewed-by: Florian Fainelli
    Signed-off-by: Dejin Zheng
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • use phy_read_mmd_poll_timeout() to replace the poll codes for
    simplify bcm84881_wait_init() function.

    Reviewed-by: Andrew Lunn
    Reviewed-by: Florian Fainelli
    Signed-off-by: Dejin Zheng
    Signed-off-by: David S. Miller

    Dejin Zheng
     
  • Previous changes to the IP routing code have removed all the
    tests for the DS_HOST route flag.
    Remove the flags and all the code that sets it.

    Signed-off-by: David Laight
    Acked-by: David Ahern
    Signed-off-by: David S. Miller

    David Laight
     
  • Fixes gcc '-Wunused-but-set-variable' warning:

    drivers/net/ethernet/cavium/thunder/nicvf_queues.c: In function nicvf_sq_free_used_descs:
    drivers/net/ethernet/cavium/thunder/nicvf_queues.c:1182:12: warning:
    variable tail set but not used [-Wunused-but-set-variable]

    It's not used since commit 4863dea3fab01("net: Adding support for Cavium ThunderX network controller"),
    so remove it.

    Reported-by: Hulk Robot
    Signed-off-by: Zheng zengkai
    Signed-off-by: David S. Miller

    Zheng zengkai
     
  • Packet trap groups are now explicitly registered by drivers and not
    implicitly registered when the packet traps are registered. Therefore,
    there is no need to encode entire group structure the trap is associated
    with inside the trap structure.

    Instead, only pass the group identifier. Refer to it as initial group
    identifier, as future patches will allow user space to move traps
    between groups.

    Signed-off-by: Ido Schimmel
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     
  • Use the previously added API to explicitly register / unregister
    supported packet trap groups. This is in preparation for future patches
    that will enable drivers to pass additional group attributes, such as
    associated policer identifier.

    Signed-off-by: Ido Schimmel
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     
  • Use the previously added API to explicitly register / unregister
    supported packet trap groups. This is in preparation for future patches
    that will enable drivers to pass additional group attributes, such as
    associated policer identifier.

    Signed-off-by: Ido Schimmel
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     
  • So far only the reset bit it set, but the handler executing the reset
    is not scheduled. Therefore nothing will happen until some other action
    schedules the handler. Improve this by ensuring that the handler is
    scheduled.

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • The current implementation makes the implicit assumption that if a bit
    is set, then the work is scheduled already. Remove the need for this
    implicit assumption and call schedule_work() always. It will check
    internally whether the work is scheduled already.

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Currently rtl_task() is designed to handle a large number of tasks.
    However we have just one, so we can remove some overhead.

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Factor out setting GPHY 10M to new helper rtl8168g_enable_gphy_10m.

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Jeff Kirsher says:

    ====================
    100GbE Intel Wired LAN Driver Updates 2020-03-21

    Implement basic support for the devlink interface in the ice driver.
    Additionally pave some necessary changes for adding a devlink region that
    exposes the NVM contents.

    This series first contains 5 patches for enabling and implementing full NVM
    read access via the ETHTOOL_GEEPROM interface. This includes some cleanup of
    endian-types, a new function for reading from the NVM and Shadow RAM as a flat
    addressable space, a function to calculate the available flash size during
    load, and a change to how some of the NVM version fields are stored in the
    ice_nvm_info structure.

    Following this is 3 patches for implementing devlink support. First, one patch
    which implements the basic framework and introduces the ice_devlink.c file.
    Second, a patch to implement basic .info_get support. Finally, a patch which
    reads the device PBA identifier and reports it as the `board.id` value in the
    .info_get response.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch removes wrapper fn()s around mutex_init/lock/unlock.

    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Sunil Goutham
     
  • Removed MODULE_VERSION and fixed MODULE_AUTHOR.

    Signed-off-by: Sunil Goutham
    Reviewed-by: Leon Romanovsky
    Signed-off-by: David S. Miller

    Sunil Goutham
     
  • With MTU sized receive buffers it is not expected to have CQE_RX
    with multiple receive buffer pointers. But since same physcial link
    is shared by PF and it's VFs, the max receive packet configured
    at link could be morethan MTU. Hence there is a chance of receiving
    plts morethan MTU which then gets DMA'ed into multiple buffers
    and notified in a single CQE_RX. This patch treats such pkts as errors
    and frees up receive buffers pointers back to hardware.

    Also on the transmit side this patch sets SMQ MAXLEN to max value to avoid
    HW length errors for the packets whose size > MTU, eg due to path MTU.

    Signed-off-by: Geetha sowjanya
    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Geetha sowjanya
     
  • VF shares physical link with PF. Admin function (AF) sends
    notification to PF whenever a link change event happens. PF
    has to forward the same notification to each of the enabled VF.

    PF traps START/STOP_RX messages sent by VF to AF to keep track of
    VF's enabled/disabled state.

    Signed-off-by: Tomasz Duszynski
    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Tomasz Duszynski
     
  • Added ethtool support for VF devices for
    - Driver stats, Tx/Rx perqueue stats
    - Set/show Rx/Tx queue count
    - Set/show Rx/Tx ring sizes
    - Set/show IRQ coalescing parameters
    - RSS configuration etc

    It's the PF which owns the interface, hence VF
    cannot display underlying CGX interface stats.
    Except for this rest ethtool support reuses PF's
    APIs.

    Signed-off-by: Tomasz Duszynski
    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Tomasz Duszynski
     
  • On OcteonTx2 silicon there two two types VFs, VFs that share the
    physical link with their parent SR-IOV PF and the VFs which work
    in pairs using internal HW loopback channels (LBK). Except for the
    underlying Rx/Tx channel mapping from netdev functionality perspective
    they are almost identical. This patch adds netdev driver support
    for these VFs.

    Unlike it's parent PF a VF cannot directly communicate with admin
    function (AF) and it has to go through PF for the same. The mailbox
    communication with AF works like 'VF PF AF'.

    Also functionality wise VF and PF are identical, hence to avoid code
    duplication PF driver's APIs are resued here for HW initialization,
    packet handling etc etc ie almost everything. For VF driver to compile
    as module exported few of the existing PF driver APIs.

    Signed-off-by: Subbaraya Sundeep
    Signed-off-by: Geetha sowjanya
    Signed-off-by: Tomasz Duszynski
    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Tomasz Duszynski
     
  • When FLR is initiated for a VF (PCI function level reset),
    the parent PF gets a interrupt. PF then sends a message to
    admin function (AF), which then cleanups all resources attached
    to that VF.

    Also handled IRQs triggered when master enable bit is cleared
    or set for VFs. This handler just clears the transaction pending
    ie TRPEND bit.

    Signed-off-by: Geetha sowjanya
    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Geetha sowjanya
     
  • Added 'sriov_configure' to enable/disable virtual functions (VFs).
    Also added handling of mailbox messages from these VFs.

    Admin function (AF) is the only one with all priviliges to configure
    HW, alloc resources etc etc, PFs and it's VFs have to request AF
    via mbox for all their needs. But unlike PFs, their VFs cannot
    send a mbox request directly. A VF shares a mailbox region with
    it's parent PF, so VF sends a mailbox msg to PF and then PF forwards
    it to AF. Then AF after processing sends response to PF which it
    again forwards to VF.

    This patch adds support for this 'VF PF AF' mailbox
    communication.

    Signed-off-by: Tomasz Duszynski
    Signed-off-by: Subbaraya Sundeep
    Signed-off-by: Christina Jacob
    Signed-off-by: Sunil Goutham
    Signed-off-by: David S. Miller

    Sunil Goutham
     
  • Now that phylib notifies the user of a downshift we can remove
    this functionality from the driver.

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Now that phylib notifies the user of a downshift we can remove
    this functionality from the driver.

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • So far PHY drivers have to check whether a downshift occurred to be
    able to notify the user. To make life of drivers authors a little bit
    easier move the downshift notification to phylib. phy_check_downshift()
    compares the highest mutually advertised speed with the actual value
    of phydev->speed (typically read by the PHY driver from a
    vendor-specific register) to detect a downshift.

    v2:
    - Add downshift hint to phy_print_status

    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Restart AutoNeg if we didn't get a valid result from previous run.

    Signed-off-by: Jose Abreu
    Signed-off-by: David S. Miller

    Jose Abreu
     
  • Set XPCS Link as down when AutoNeg is enabled but it didn't finish with
    success.

    Signed-off-by: Jose Abreu
    Signed-off-by: David S. Miller

    Jose Abreu
     
  • Reset the XPCS upon probe stage so that we start it from well known
    state.

    Signed-off-by: Jose Abreu
    Signed-off-by: David S. Miller

    Jose Abreu
     
  • For 10GKR rate, when link errors are found we need to return fault
    status so that XPCS is correctly resumed.

    Signed-off-by: Jose Abreu
    Signed-off-by: David S. Miller

    Jose Abreu
     
  • When building arm32 allyesconfig:

    ld.lld: error: undefined symbol: __aeabi_uldivmod
    >>> referenced by spectrum_cnt.c
    >>> net/ethernet/mellanox/mlxsw/spectrum_cnt.o:(mlxsw_sp_counter_resources_register) in archive drivers/built-in.a
    >>> did you mean: __aeabi_uidivmod
    >>> defined in: arch/arm/lib/lib.a(lib1funcs.o)

    pool_size and bank_size are u64; use div64_u64 so that 32-bit platforms
    do not error.

    Fixes: ab8c4cc60420 ("mlxsw: spectrum_cnt: Move config validation along with resource register")
    Signed-off-by: Nathan Chancellor
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Nathan Chancellor
     
  • Commit 53eca1f3479f ("net: rename flow_action_hw_stats_types* ->
    flow_action_hw_stats*") renamed just the flow action types and
    helpers. For consistency rename variables, enums, struct members
    and UAPI too (note that this UAPI was not in any official release,
    yet).

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jakub Kicinski