e1000: Retry transient MDIC failures on modern PCH
Some Meteor Lake and newer systems sporadically fail an MDIC PHY
transaction while the MAC and PHY clocks synchronize. Retry twice
before reporting the transaction failure.
Disable retries around PHY interface transitions where an MDI error
is expected. Preserve and restore the configured retry count on every
exit from those flows.
This follows DPDK commit bdca22d62ff0, extended to the PTP and NVP PCH
types.
MFC after: 2 weeks
e1000: fix semaphore timeout value
DPDK commit message
net/e1000/base: fix semaphore timeout value
According to datasheet, software ownership of SWSM.SWESMBI bit should
not exceed 100ms. Current implementation caused incorrect timeout
counter values, where each iteration equals 50us delay. Because of that
driver was allowed to wait for semaphore even for 1.5s. This might
trigger DPC timeout.
This implementation hardcodes value to 2000, which multiplied by 50us,
gives 100ms of possible wait time.
Fixes: af75078fece3 ("first public release")
Cc: stable at dpdk.org
Signed-off-by: Pawel Malinowski <pawel.malinowski at intel.com>
[5 lines not shown]
e1000: Separate hardware semaphore policies by family
The shared semaphore helper accesses both the 82571 retry counter and
the I210 one-time-clear flag. Those fields occupy overlapping members
of the device-specific union. On 82571, incrementing the counter thus
enables the I210 recovery and clears SMBI after the first timeout.
Give 82571, generic 80003/82575, and I210/I211 users distinct acquire
paths. Preserve the legacy peer-driver policy on 82571 and one-time
recovery on I210.
The separation follows the Intel e1000 base code in DPDK.
MFC after: 2 weeks
[CodeGen] Delete empty sub-ranges after refinement of rematerializations (#215632)
Rematerializing registers which have uses of undefined lanes can yield
empty sub-ranges during refinement of the rematerialized register's live
interval. These are only allowed to temporarily exist and should be
removed before extending the interval to new indices.
Add spirv backend registration guard to syncscope test (#215634)
This PR is just a hotfix for a test that assumed the spirv backend was
registered, introduced here:
https://github.com/llvm/llvm-project/pull/214592
Now we add a guard, so the test will be unsupported and not raise errors
on machines that don't have that backend registered.
Also improves a check pattern that could mismatch unintentionally.
[OpenMP][flang] Use auto-generated data for modifier verification
Introduce descriptors of OpenMP clauses and modifiers, auto-generated
from OpenMP specification data[*].
This replaces the preexisting modifier descriptors used in flang,
the code using it is adjusted to use the new definitions.
[*] This does not contain any actual auto-generation infrastructure.
The descriptors were generated by a custom script from the exported
OpenMP definitions.
e1000: Accept uninitialized Tiger Lake NVM checksums
Some transitional Tiger Lake systems shipped with an uninitialized
checksum word. Accept that state while continuing to validate newer
read-only NVM images.
MFC after: 2 weeks
e1000: improve NVM checksum handling
DPDK commit message
net/e1000/base: improve NVM checksum handling
When reading NVM checksum, we may encounter the following scenarios:
- Checksum may be invalid, and can be updated
- Checksum may be invalid but cannot be updated because NVM is read-only
For the latter case, we should just ignore invalid checksum and not
attempt to update it.
Signed-off-by: Sasha Neftin <sasha.neftin at intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
Obtained from: DPDK (5241c17f0d)
MFC after: 2 weeks