Module Name: src Committed By: msaitoh Date: Thu Aug 9 16:27:23 UTC 2018
Modified Files: src/sys/dev/pci: if_wm.c Log Message: Fix two bugs for non-SERDES fiber. Tested on 82544EI(0x1009), 82545GM(0x1027), 82546GB(0x107a), 82571GB(0x105f), 82572EI(0x107e). Tested on SERDES 82580(0x150e (Winyao SERDES SFP)) and 82580(0x150e) as regression test: - Fix a bug that the link can't detect in link interrupt function for non-SERDES fiber. When the signal is detected & STATUS_LU == 0 & RXCW == 0, it's required to set CTRL_SLU and CTRL_FD bit. wm_check_for_link() is the function to do it. If a link status change interrupt occured, call wm_check_for_link() before checking current link staus. - Fix a bug that 82542 misunderstand fiber's signal detection. CTRL_SWDPIN(1) is used for fiber's signal and it's value is reversed only on 82543 and 82544. Simplify the code and move it into a new function wm_tbi_havesignal() and use it. To generate a diff of this commit: cvs rdiff -u -r1.583 -r1.584 src/sys/dev/pci/if_wm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.