25 Mar, 2020
2 commits
-
use readl_poll_timeout() to replace the poll codes for simplify
iproc_mdio_wait_for_idle() functionSigned-off-by: Dejin Zheng
Reviewed-by: Andrew Lunn
Signed-off-by: David S. Miller -
…ux/kernel/git/kvalo/wireless-drivers-next
Kalle Valo says:
====================
wireless-drivers-next patches for v5.7Second 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>
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Factor out setting GPHY 10M to new helper rtl8168g_enable_gphy_10m.
Signed-off-by: Heiner Kallweit
Signed-off-by: David S. Miller -
Jeff Kirsher says:
====================
100GbE Intel Wired LAN Driver Updates 2020-03-21Implement 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
-
This patch removes wrapper fn()s around mutex_init/lock/unlock.
Signed-off-by: Sunil Goutham
Signed-off-by: David S. Miller -
Removed MODULE_VERSION and fixed MODULE_AUTHOR.
Signed-off-by: Sunil Goutham
Reviewed-by: Leon Romanovsky
Signed-off-by: David S. Miller -
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 -
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 -
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 etcIt'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 -
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 -
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 -
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 -
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 -
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 -
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_statusSigned-off-by: Heiner Kallweit
Signed-off-by: David S. Miller -
Restart AutoNeg if we didn't get a valid result from previous run.
Signed-off-by: Jose Abreu
Signed-off-by: David S. Miller -
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 -
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 -
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 -
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 -
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