linux/drivers/staging
Easwar Hariharan 9775a991f9 IB/hfi1: Wait for QSFP modules to initialize
The function level reset in init_chip() and subsequent write of all 1s
to the ASIC_QSFP registers effectively resets attached active and
optical QSFP modules that pay attention to the RESET_N pin.

We subsequently try to access the QSFP management interface to qualify
and tune the channel and fabric SerDes before enough time (2 seconds
per SFF 8679 spec for QSFP28 modules) has elapsed for the module to
finish initialization. This fails and causes the failure of the channel
tuning algorithm, preventing us from bringing the link up.

This patch checks the port type prior to beginning channel and SerDes
tuning, and if found to be QSFP, watches for the QSFP initialization
complete interrupt, with a maximum timeout of 2 seconds, to allow the
initialization to complete.

Reviewed-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Easwar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-05-13 19:39:14 -04:00
..
android Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2016-03-25 08:48:31 -07:00
board
clocking-wizard
comedi staging: comedi: ni_mio_common: fix the ni_write[blw]() functions 2016-03-22 22:22:13 -04:00
dgnc Staging driver patches for 4.6-rc1 2016-03-17 22:13:41 -07:00
emxx_udc Staging: emxx_udc: Return NULL instead of 0. 2016-03-11 22:09:09 -08:00
fbtft staging: fbtft: fb_uc1611.c: Drop void pointer cast 2016-03-11 22:09:09 -08:00
fsl-mc staging: fsl-mc: fix incorrect type passed to dev_err macros 2016-03-22 22:22:13 -04:00
fwserial
gdm724x Staging: gdm724x: Replace random_ether_addr with eth_random_addr 2016-03-05 14:48:04 -08:00
goldfish staging: goldfish: audio: fix compiliation on arm 2016-03-11 22:09:09 -08:00
gs_fpgaboot staging: gs_fpgaboot: drop wrapper function 'finish_driver' 2016-03-11 22:09:09 -08:00
i4l isdn: i4l: move active-isdn drivers to staging 2016-03-05 15:00:38 -08:00
iio staging: iio: addac: Remove unnecessary else after return 2016-03-11 22:09:09 -08:00
lustre mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage 2016-04-04 10:41:08 -07:00
media Staging driver patches for 4.6-rc1 2016-03-17 22:13:41 -07:00
most staging: most: hdm-dim2: Remove possible dereference error 2016-03-22 22:22:13 -04:00
mt29f_spinand MTD updates for v4.6 2016-03-24 19:57:15 -07:00
netlogic staging: netlogic: Replacing pr_err with dev_err after the call to devm_kzalloc 2016-03-11 22:14:06 -08:00
nvec Staging: nvec: removes an unnecessary cast on a void pointer 2016-03-11 22:09:09 -08:00
octeon staging: octeon: Fix braces in condition statement 2016-03-11 22:09:09 -08:00
octeon-usb staging: octeon-usb: update TODO 2016-02-25 22:38:16 -08:00
olpc_dcon Revert "Staging: olpc_dcon: Remove obsolete driver" 2016-04-04 13:52:35 -07:00
rdma IB/hfi1: Wait for QSFP modules to initialize 2016-05-13 19:39:14 -04:00
rtl8188eu Staging: rtl8188eu: Remove function rtw_freq2ch 2016-03-11 22:09:09 -08:00
rtl8192e Staging driver patches for 4.6-rc1 2016-03-17 22:13:41 -07:00
rtl8192u Staging driver patches for 4.6-rc1 2016-03-17 22:13:41 -07:00
rtl8712 staging: refresh TODO for rtl8712 2016-03-22 22:22:13 -04:00
rtl8723au staging: refresh TODO for rtl8723au 2016-03-22 22:22:13 -04:00
rts5208 staging: rts5208: Replace pci_enable_device with pcim_enable_device 2016-03-11 22:09:09 -08:00
skein staging: skein: threefish_block: Use rol64 2016-03-11 22:09:09 -08:00
slicoss Staging: slicoss: changes comparisons to NULL in slicoss.c 2016-03-11 22:09:09 -08:00
sm750fb Staging: sm750fb: Remove unused functions 2016-03-11 22:09:09 -08:00
speakup staging: speakup: Replace del_timer with del_timer_sync 2016-03-11 22:09:09 -08:00
unisys staging: unisys: visornic: Remove unnecessary else after return 2016-03-10 19:29:45 -08:00
vme staging: vme: devices: Replace kzalloc with devm_kzalloc 2016-03-11 22:09:09 -08:00
vt6655 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
vt6656 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
wilc1000 staging: wilc1000: fix a couple of memory leaks 2016-03-22 22:27:36 -04:00
wlan-ng Staging: wlan-ng: Do not print message if kzalloc() failed. 2016-03-11 22:09:09 -08:00
xgifb Staging: xgifb: remove useless blank lines 2016-03-11 22:09:09 -08:00
Kconfig Revert "Staging: olpc_dcon: Remove obsolete driver" 2016-04-04 13:52:35 -07:00
Makefile Revert "Staging: olpc_dcon: Remove obsolete driver" 2016-04-04 13:52:35 -07:00