Commit graph

39121 commits

Author SHA1 Message Date
Vladimir Kondratyev
470478ff01 hmt(4): Add support for touchpads with no "button type" or
"maximum number of contacts" usages.

Assume touchpad to be a clickpad if it has only internal button.
Set number of contacts to 5 for touchpads and to 10 for touchscreens.
Check for fetched report length to avoid reading of stalled data.
Fixes Dell Precision 7550 laptop.

Tested by:	Shawn Webb <shawn.webb_AT_hardenedbsd_DOT_org>
PR:		257992

(cherry picked from commit 9d04336b61)
2021-09-22 02:41:40 +03:00
Vladimir Kondratyev
d4a977ce18 hpen(4): Add support for legacy MS-compatible single touch protocol
It is used by many pre- and post- 2014 eGalax touchscreens.

Tested by:	Mark Kane <mark_AT_kane_DOT_mn>

(cherry picked from commit a36bdfc2b6)
2021-09-22 02:41:16 +03:00
Vladimir Kondratyev
29bcf5e7d7 hidbus(4): Add routine to check presence of collection of given usage
(cherry picked from commit d51e437669)
2021-09-22 02:40:53 +03:00
Vladimir Kondratyev
116adffd0f hidmap: Do not forget to initialize bitmap items to unset state
(cherry picked from commit bbed4b41c9)
2021-09-22 02:40:37 +03:00
Vladimir Kondratyev
1a918f430d hidmap: Implement forbidden flag for hidmap item.
If HID usage is mapped to evdev event by hidmap item marked with this
flag than entire driver attachment is blocked.

(cherry picked from commit cded1fdb37)
2021-09-22 02:40:18 +03:00
Vladimir Kondratyev
12061cf605 hmt(4): Add support for serial packet reporting mode
In Serial mode, each packet contains information that describes a
single physical contact point. Multiple contacts are streamed
serially. In this mode, devices report all contact information in a
series of packets. The device sends a separate packet for each
concurrent contact.

Serial packet reporting mode is used by post-2014 eGalax touchscreens.

Tested by:	Mark Kane <mark_AT_kane_DOT_mn>

(cherry picked from commit 0075742d18)
2021-09-22 02:39:58 +03:00
Vladimir Kondratyev
2cc53be889 psm: Use evdev autorelease feature for Synaptics and Elantech drivers
(cherry picked from commit 744fcd5ad2)
2021-09-22 02:39:20 +03:00
Vladimir Kondratyev
b966556125 psm: Enable touch-tracking for late Synaptics PS/2 touchpads.
They are true multitouch internally but Synaptics PS/2 protocol
limitations do not all allow to export touch identificators.

(cherry picked from commit c21171af68)
2021-09-22 02:38:55 +03:00
Vladimir Kondratyev
d5ed374c40 cyapa(4): Adapt to recent evdev KPI changes
(cherry picked from commit 4836af0d42)
2021-09-22 02:36:40 +03:00
Vladimir Kondratyev
3f03cc9a8e wmt(4): Adapt to recent KPI changes
(cherry picked from commit 527b6d60f8)
2021-09-22 02:36:18 +03:00
Vladimir Kondratyev
3956601292 hmt(4): Adapt to recent KPI changes
(cherry picked from commit 9d8ebe5ea1)
2021-09-22 02:35:58 +03:00
Mark Johnston
fefff1bac5 socket: De-duplicate SBLOCKWAIT() definitions
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit fa0463c384)
2021-09-21 09:37:21 -04:00
Krzysztof Galazka
3917b3c7e5
ixl(4): Fix 2.5 and 5G speeds reporting and update shared code
Fix 2.5 and 5G speeds reporting and update shared code with recent
changes:
- Update expected FW API versions for X710 and X722 adapters
- Define pointers related to Preservation Rules Module
- Add definitions for Shadow RAM pointers to new modules: 5th and 6th
  FPA, and Preservation Rules Module.
- Add I40E_RX_PTYPE_PARSER_ABORTED definition, so the driver will know
  opcode for parser aborted packets.
- Add the new filter types needed for custom cloud filters.
- Add support for Minimum Rollback Revision
- Fix RX_ONLY mode for unicast promiscuous on VLAN
- Add EEE LPI status check for X722 adapters
- Fix PHY type identifiers for 2.5G and 5G adapters
- Fix update link data for X722
- Increase the timeout value for PF reset to give PF more time to finish
  reset if it is loaded with filters.
- Added support for Min Rollback Revision for 4 more X722 modules
- Fix reporting of Active Optical Cable media type
- Add flags and fields for double VLAN processing
- Fix potentially uninitialized variables in NVM code

Reviewed by:	kbowling@, mike.jakubik@gmail.com
Tested by:	gowtham.kumar.ks@intel.com
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D31565

(cherry picked from commit abf774528d)
2021-09-20 13:43:29 -07:00
Krzysztof Galazka
6f6013102b
ixl(4): Fix reporting of unqualified transceivers
When link_active_on_if_down flag is disabled and link is brought down
with ifconfig, FW reports a false positive link event about an
unqualified transceiver. The condition used in the driver to filter out
those false positive events was incorrect and caused that unqualified
module event to also not be reported when the event was valid.

Change the condition to rely on IFF_UP flag instead of
link_active_on_if_down and bump driver version to 2.3.1-k.

Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by:	stallamr@netapp.com, erj@
Tested by:	gowtham.kumar.ks@intel.com
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D30733

(cherry picked from commit c4622b01d2)
2021-09-20 13:42:55 -07:00
Krzysztof Galazka
6583e84543
ixl(4): Add tunable to override Flow Control settings
Add flow_control to hw.ixl tunables tree to let override
initial flow control configuration for all interfaces.
Keep using configuration set by NVM by default.

Reviewed by:	erj@, gallatin@
Tested by:	gowtham.kumar.ks_intel.com
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D29338

(cherry picked from commit 20a52706c8)
2021-09-20 13:42:13 -07:00
Kevin Bowling
5f4ba94eb5 e1000: Revert Update intel shared code
This reverts commit fc7682b17f.

This will be done incrementally to help with bisecting an issue in
later I21x devices (ich8lan).

PR:		258153
Approved by:	imp
MFC after:	1 day

(cherry picked from commit a4378873e9)
2021-09-17 17:38:35 -07:00
Mark Johnston
476f87219f wpi: Fix a lock leak in an error path in wpi_run()
PR:		258243
Reported by:	dinghao.liu@zju.edu.cn

(cherry picked from commit 6d042d7c86)
2021-09-17 09:13:44 -04:00
Henri Hennebert
277a326b1e rtsx: Call taskqueue sooner, adjust DELAY(9) calls, add an inversion heuristic
- Some configurations, e.g. HP EliteBook 840 G3, come with a dummy card
in the card slot which is detected as a valid SD card.  This added long
timeout at boot time.  To alleviate the problem, the default timeout is
reduced to one second during the setup phase. [1]

- Some configurations crash at boot if rtsx(4) is defined in the kernel
config.  At boot time, without a card inserted, the driver found that
a card is present and just after that a "spontaneous" interrupt is
generated showing that no card is present.  To solve this problem,
DELAY(9) is set to one quarter of a second before checking card presence
during driver attach.

- As advised by adrian, taskqueue and DMA are set up sooner during
the driver attach.  A heuristic to try to detect configuration needing
inversion was added.

PR:		255130 [1]
Differential Revision:	https://reviews.freebsd.org/D30499

(cherry picked from commit 9d3bc16382)
2021-09-16 09:49:21 -04:00
Alexander Motin
8895170347 bnxt(4): Fix bugs in WOL support.
Before this change driver reported IFCAP_WOL_MAGIC enabled, but not
supported.  It caused errors on some SIOCSIFCAP calls.  Instead
report the support if hardware supports WOL, and enabled status if
it has such filter installed on boot.

Also bnxt_wol_config() should check WOL status in if_getcapenable(),
not in if_getcapabilities() to get current one.

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.

(cherry picked from commit 8c14d7da5b)
2021-09-15 21:43:40 -04:00
Wojciech Macek
aac5428f48 ipmi: fix negative logic in watchdog control flag
Use wd_enable instead of wd_disable

(cherry picked from commit e3500c602b)
2021-09-15 11:39:19 -04:00
Wojciech Macek
8fe536177a ipmi: New tunable to deactivate IPMI watchdog
In case we want to use other WD than IPMI-provided, add
sysctl to disable initialization.

Obtained from:		Semihalf
Sponsored by:		Stormshield
Differential revision:	https://reviews.freebsd.org/D31548

(cherry picked from commit e8ad0a0059)
2021-09-15 11:39:18 -04:00
Colin Percival
34a3091cc3 Turn off acpi_timer_test on !i386 by default
The ACPI timer test was introduced in 2002 to detect an erratum in
chipsets used with Pentium II and Pentium III processors.  No other
hardware is known to be affected, so on non-i386 systems it should
be safe to skip the test.

Turning off this test speeds up the FreeBSD boot process by roughly
140 ms on an EC2 c5.xlarge instance.

The previous behaviour can be restored by setting
hw.acpi.timer_test_enabled=1
in /boot/loader.conf.

Requested by:	jhb, imp
Sponsored by:	https://www.patreon.com/cperciva
2021-09-14 19:42:14 -07:00
Colin Percival
8edd7155aa Hide acpi_timer_test behind a tunable
When hw.acpi.timer_test_enabled is set to 0, this makes acpi_timer_test
return 1 without actually testing the ACPI timer; this results in the
ACPI-fast timecounter always being used rather than potentially using
ACPI-safe.

The ACPI timer testing was introduced in 2002 as a workaround for
errata in Pentium II and Pentium III chipsets, and is unlikely to be
needed in 2021.

While I'm here, add TSENTER/TSEXIT to make it easier to see the time
spent on the test (if it is enabled).

Reviewed by:	allanjude, imp
MFC After:	1 week

(cherry picked from commit 3c253d03d9)
2021-09-14 19:22:10 -07:00
Qiming Yang
538d7e8b1a ixgbe: increase the timeout
Increase SECRX_RDY polling frequency and semaphore timeout which
fixes the FWSW.PT check in ixgbe_mng_present().

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

Approved by:	imp
Obtained from:	DPDK (6175260d12cc22852cecf2fb7ecd95cdb07611b5)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 5fd1f4be8d)
2021-09-13 17:37:46 -07:00
Guinan Sun
61bb00e528 ixgbe: cleanup spelling mistakes in comments
Several functions in the driver code have a weird function comment
formatting which uses two spaces instead of only one space for the main
function body.

This formatting will be mechanically fixed by sed in a future patch, but
doing so leads to some spelling warnings on that patch. Cleanup the
spelling mistakes that will be detected first. This way, it is easier to
verify the mechanical transformation done by sed in the following patch.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (fc75eee32037c1379e77e57031c1c353badd2272)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 46981e903c)
2021-09-13 17:37:44 -07:00
Guinan Sun
04e5691087 ixgbe: remove unnecessary return value check
Remove unnecessary return value check.

Signed-off-by: Jakub Chylkowski <jakubx.chylkowski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (4b0ee6529b7897c2a08dd56669f07ac1f46a8474)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 3a89005394)
2021-09-13 17:37:41 -07:00
Guinan Sun
ae1d4986a5 ixgbe: create function to restart autoneg
This patch is for restarting auto negotiation on PHY.

Signed-off-by: Jakub Chylkowski <jakubx.chylkowski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (664ea2614eafbec8eda5c86764ff047475a1e5c6)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 80a39a2bda)
2021-09-13 17:37:39 -07:00
Guinan Sun
b469839bfd ixgbe: add register definitions for NVM update
Added additional register for X550 and above device family.

Signed-off-by: Piotr Skajewski <piotrx.skajewski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (4a6847d78814b1c3df896efe31562643d419317d)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit ff8db817ab)
2021-09-13 17:37:36 -07:00
Guinan Sun
815ff2d81d ixgbe: move increments after evaluations
The retry variable was being incremented before it was evaluated by the
subsequent conditional against the maximum retries to figure out which
message to print.  So we'll move the increment op to the end.

Signed-off-by: Jeb Cramer <jeb.j.cramer@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (390445ec30b4c52a3d2887c3d2a202d9cf37ea8e)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit dc11ba4eb3)
2021-09-13 17:37:34 -07:00
Kevin Bowling
48a64ffc0d ixgbe: remove whitespace in function comments
Remove unnecessary extra whitespace on all function comments, replacing
' *  ' with ' * '.

This was done automatically via sed using the following transformation:

  sed 's/^ \*  / * /'

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (40023f73c76579e58a859dab87b4c30278eb2e48)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 4cdc5e12a8)
2021-09-13 17:37:31 -07:00
Xiaoyun Li
32a190803c ixgbe: support DCB registers dump
Add support for DCB registers dump.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (36a036bc6fdd0da74576a39ab74e50954598ba82)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 9e65ae746d)
2021-09-13 17:37:29 -07:00
Xiaoyun Li
d255eb1565 ixgbe: update X550 SFP identification
Use ixgbe_identify_sfp_module_X550em to update SFP identification
flow. ixgbe_identify_sfp_module_X550em includes specific checks for
X550 about supported SFP modules.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (175bedb0cc8f801be3050fa35b8d8d0971cea7cc)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 0a4f0befab)
2021-09-13 17:37:27 -07:00
Kevin Bowling
329dce3d69 ixgbe: Update copyright to 2020
Synced to the ixgbe shared code with DPDK shared code which has local
fixes on top of "not-released-cid-ixgbe.2020.06.09.tar.gz"

Approved by:	imp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 8455e365f7)
2021-09-13 17:37:24 -07:00
Ferruh Yigit
3d6eccd721 ixgbe: remove dead code
The question around getting rid of the assignments seems lived
long enough, if they are not needed until now, we can drop them.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (a6395d471e14e5a7432875dad8fb3533238c5167)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 0b487fb454)
2021-09-13 17:37:22 -07:00
Xiaoyun Li
1fe6bec929 ixgbe: replace an operation in X550 setup
Replace "=" operation with "|=" operation to only set the intended
register bits.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (1b665ccd9cd73499e934b807bec2fd77193912ef)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit c85b6f2901)
2021-09-13 17:37:19 -07:00
Kevin Bowling
163e29cec6 ixgbe: Use C99 bool types
Approved by:	imp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 79b36ec91d)
2021-09-13 17:37:17 -07:00
Xiaoyun Li
de5fcf118a ixgbe: add FW recovery mode check
Add FM NVM recovery mode check. Allow the software to detect this.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (5fb0a9acbb844b21691568c0014866e0e887bd19)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit b622bdb4eb)
2021-09-13 17:37:15 -07:00
Guinan Sun
f554c144fb ixgbe: add typecast for type mismatch
Add typecast for type mismatch.

Signed-off-by: Jakub Chylkowski <jakubx.chylkowski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (d8e52b2cf771c31b523b46852fd86225b5a2c721)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 994dd6328c)
2021-09-13 17:37:12 -07:00
Ashijeet Acharya
b8f2ff6a43 ixgbe: wait for link after copper MAC setup
After setting up the link on x552/X557-AT 10GBASE-T NICs, sometimes the
link does not get set up properly and as a result all the subsequent
calls to ixgbe_check_link() from ixgbe_dev_link_update_share() fail.

Introduce a delay time of 1s in ixgbe_setup_mac_link_t_X550em() before
beginning to set up the external PHY link speed to ensure that the
controller can acquire the link.

Signed-off-by: Ashijeet Acharya <ashijeet.acharya@6wind.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (d31b95860d8e9dd7c6e242bd08baaac00a9714f0)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit d5bbb5500c)
2021-09-13 17:37:10 -07:00
Guinan Sun
31b67f9a10 ixgbe: check host interface return status
Writing to read-only fields returns a non-OK Return Status
for shadow RAM write command for X550.
This information was previously discarded.

Signed-off-by: Stanislaw Grzeszczak <stanislaw.a.grzeszczak@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (db18e37090a3b9af47d6a6886248520f6b220bf9)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit c1a56b6f5f)
2021-09-13 17:37:07 -07:00
Guinan Sun
ee69040634 ixgbe: initialize data field in struct buffer
While sending request using ixgbe_hic_unlocked() the data field in
buffer struct is not used. It is set when the struct is overwritten by
FW to deliver the response. To not pass random data to FW the whole
structure should be zeroed before use.

Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Signed-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (40543be5376ca415b2a7e196315d0555725b8bdf)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit b3ebe337ff)
2021-09-13 17:37:05 -07:00
Guinan Sun
6cd58ec393 ixgbe: fix x550em 10G NIC link status
With the NVM image for x550em XFI will not report
the auto-negotiation feature correctly. The auto-negotiation
should be "No" for supports and advertised items.
At the same time update speed makes it support 1G and 10G.

Signed-off-by: Piotr Skajewski <piotrx.skajewski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (fb03b51da940f1d56d701776fd85a0dfc1ace098)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 8e9f1b239d)
2021-09-13 17:37:02 -07:00
Xiaolong Ye
2e6fe41873 ixgbe: fix maximum wait time in comment
As the code has changed the max wait time to 1000ms, the comment should
be changed accordingly.

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (73247f1ced303c16987bb366d38a2d8a0fc40db4)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 96ef6eb3ae)
2021-09-13 17:36:59 -07:00
Matthew Smith
038c4f3f3f ixgbe: wait longer for link after fiber MAC setup
After setting up the link on a fiber port, the maximum wait time for
the link to come up is 500 ms in ixgbe_setup_mac_link_multispeed_fiber().
On an x550 SFP+ port, this is often not sufficiently long for the link
to come up. This can result in never being able to retrieve accurate
link status for the port using rte_eth_link_get_nowait().

Increase the maximum wait time in ixgbe_setup_mac_link_multispeed_fiber()
to 1 s.

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Approved by:	imp
Obtained from:	DPDK (64f1c8539c8ce99214b9eb1fb728a2c6745f3300)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit aaa3af802f)
2021-09-13 17:36:57 -07:00
Guinan Sun
ba1995e65c ixgbe: fix host interface shadow RAM read
Host interface Shadow RAM Read (0x31) command response
buffer length should be stored in two bytes, instead of one byte.
This patch fixes it.

Signed-off-by: Mateusz Kowalski <mateusz.kowalski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (713fc4dd340e5eadd3bfa9a468446afaa5188624)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 31a23e3eb5)
2021-09-13 17:36:54 -07:00
Guinan Sun
388fa55dcf ixgbe: fix response to apply-update command
For the "Apply Update" command the firmware does not
given an response. For this command, success should
be return.

Signed-off-by: Mateusz Kowalski <mateusz.kowalski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (03b09c71c0c6c516ce05cad8e8aa75e8b9e14fba)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit c966c431c7)
2021-09-13 17:36:51 -07:00
Guinan Sun
6bf001dfe5 ixgbe: improve log about autoneg being disabled
On ESXi OS, when user disables auto negotiation, the following log
appears: "(unsupported) Flow control autoneg is disabled".
It is true that auto negotiation is disabled but it is
not necessarily true that it is not supported.

Signed-off-by: Jakub Chylkowski <jakubx.chylkowski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (ab6ac48d483ef7f906b90f45182f2ddf3254d876)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit f511cd2258)
2021-09-13 17:36:47 -07:00
Guinan Sun
5755b5594b ixgbe: add IPv6 mask for flow director
Write FDIRIP6M register to allow flow director filter
to set ipv6 rules without setting ipv6 source/destination address.

Signed-off-by: Piotr Skajewski <piotrx.skajewski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (21feefa2fcd5899ee26a10be405c17c0a1109860)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit c4f73d5d6a)
2021-09-13 17:36:44 -07:00
Guinan Sun
d357a27643 ixgbe: fix infinite recursion on PCIe link down
In some corner cases the functions ixgbe_clear_rar_generic and
ixgbe_clear_vmdq_generic may call one another leading to infinite
recursion.

When ixgbe_clear_vmdq_generic is called with IXGBE_CLEAR_VMDQ_ALL
flag, it's going to clear MPSAR registers, and proceed to call
ixgbe_clear_rar_generic, which in turn will clear the RAR registers,
and recursively call back ixgbe_clear_vmdq_generic. Normally, the
latter would detect that MPSAR registers have already been cleared
and terminate the recursion.

However, when PCIe link is down, and before the driver has had the
opportunity to shut itself down, all register reads return 0xFFFFFFFF,
and all register writes fail silently. In such case, because
ixgbe_clear_vmdq_generic blindly assumes that clearing MPSAR registers
succeeded, it's going to always call ixgbe_clear_rar_generic, which
in turn will always call back ixgbe_clear_vmdq_generic, creating
infinite recursion.

This patch re-reads MPSAR register values after they had been cleared.
In case of PCIe link failure, the values read will be non-zero, which
will terminate the recursion. On the other hand, under normal
circumstances the value read from MPSAR registers is going to be equal
to the value previously written, so this patch is expected not to cause
any regressions.

Signed-off-by: Robert Konklewski <robertx.konklewski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>

Approved by:	imp
Obtained from:	DPDK (2d04b9e856125197ec8e967471426d56ab7efcf0)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 8270b7174c)
2021-09-13 17:36:41 -07:00
Simon Ellmann
df57aa230c ixgbe: clear all queues on VF reset
ixgbe devices support up to 8 Rx and Tx queues per virtual function.
Currently, the registers of only seven queues are set to default when
resetting a VF.

Signed-off-by: Simon Ellmann <simon.ellmann@tum.de>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>

Approved by:	imp
Obtained from:	DPDK (d2565b347915def3a0f3c68bde6824acf096a0e6)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D31621

(cherry picked from commit 7165504a17)
2021-09-13 17:35:47 -07:00