aboutsummaryrefslogtreecommitdiff
path: root/lib/Checker/SimpleSValuator.cpp
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-29 02:38:43 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-08-29 13:23:00 +0000
commit245437113020582f3622c9bcc6d841b7d9dc8f96 (patch)
tree2b25b2c1dbd768fcedd3f83537942c7529c06c7a /lib/Checker/SimpleSValuator.cpp
parent46f09c4f099b11a997a58207c78bd5f5752cc853 (diff)
e1000: Correct igb(4) DMA coalescing register programmingHEADmain
The disabled path wrote the complement of DMAC_EN to DMACR. That set every other field, including reserved bits, the one-shot EXIT_DC command, watchdog enables, receive threshold, and PCIe Lx selection. When DMA coalescing was enabled, the requested watchdog and Lx-delay values were ORed into their reset values rather than replacing the fields. PCIEMISC.LX_DECISION was also cleared, preventing DMACR.DMAC_Lx from controlling PCIe low-power entry. Disable coalescing by clearing only DMAC_EN and retaining the documented DMAC_Lx policy and watchdog fields. On enable, replace the variable fields under their masks, select DMA requirements for PCIe low-power entry, and program the loopback and BMC watchdog policies independently of prior state. Make igb_init_dmac() the sole owner of this policy, including when SR-IOV is active, so later IOV initialization cannot overwrite it. Apply this consistently to I350, I354, and I210 while preserving the I354-specific timer units. Leave I210 reserved fields at their required encodings and do not expose the ineffective control on I211. Validated on I210 and I350 hardware. Repeated I210 enable, disable, and reset cycles preserved the watchdog, Lx, TTLX, and LX_DECISION fields. On I350, dmac values of 250, 1000, and 10000 programmed DMACWT as 0x7, 0x1f, and 0x138, respectively, while retaining a four-tick TTLX and leaving the reserved and watchdog fields stable. A real reset initiated by a sibling function restored the enabled dmac=1000 tuple and a down interface path restored the disabled tuple. MFC after: 2 weeks Sponsored by: BBOX.io
Diffstat (limited to 'lib/Checker/SimpleSValuator.cpp')
0 files changed, 0 insertions, 0 deletions