summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/hfi1/firmware.c
diff options
context:
space:
mode:
authorByczkowski, Jakub2017-07-24 16:46:24 +0200
committerDoug Ledford2017-07-31 21:17:55 +0200
commita156abb3cf14112d3aa3f3a9ba880d48cf064cef (patch)
tree798624801e66e7d62fe232e20b8ef0a33deadec5 /drivers/infiniband/hw/hfi1/firmware.c
parentIB/hfi1: Fix code consistency for if/else blocks in chip.c (diff)
downloadkernel-qcow2-linux-a156abb3cf14112d3aa3f3a9ba880d48cf064cef.tar.gz
kernel-qcow2-linux-a156abb3cf14112d3aa3f3a9ba880d48cf064cef.tar.xz
kernel-qcow2-linux-a156abb3cf14112d3aa3f3a9ba880d48cf064cef.zip
IB/hfi1: Fix initialization failure for debug firmware
Loading debug signed firmware fails if started immediately after failed attempt to load production firmware. A short delay is required so add about a 100us delay after RSA check failure. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Easwar Hariharan <easwar.hariharan@intel.com> Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Jakub Byczkowski <jakub.byczkowski@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/hfi1/firmware.c')
-rw-r--r--drivers/infiniband/hw/hfi1/firmware.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/firmware.c b/drivers/infiniband/hw/hfi1/firmware.c
index 4042c11b2742..83efd6bec657 100644
--- a/drivers/infiniband/hw/hfi1/firmware.c
+++ b/drivers/infiniband/hw/hfi1/firmware.c
@@ -615,6 +615,14 @@ retry:
fw_fabric_serdes_name = ALT_FW_FABRIC_NAME;
fw_sbus_name = ALT_FW_SBUS_NAME;
fw_pcie_serdes_name = ALT_FW_PCIE_NAME;
+
+ /*
+ * Add a delay before obtaining and loading debug firmware.
+ * Authorization will fail if the delay between firmware
+ * authorization events is shorter than 50us. Add 100us to
+ * make a delay time safe.
+ */
+ usleep_range(100, 120);
}
if (fw_sbus_load) {