PCI: pciehp: wait 100 ms after Link Training check
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Thu, 10 Nov 2011 07:42:16 +0000 (16:42 +0900)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 11 Nov 2011 17:31:43 +0000 (09:31 -0800)
If the port supports Link speeds greater than 5.0 GT/s, we must wait
for 100 ms after Link training completes before sending configuration
request.

Acked-by: Yinghai Lu <yinghai@kernel.org>
Tested-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/hotplug/pciehp_hpc.c

index 81a177a5f032243ef0c7437ec30096f323eb3e91..7b1414810ae3e0e0a5ccbcd9bec0f21051cf95db 100644 (file)
@@ -302,6 +302,14 @@ int pciehp_check_link_status(struct controller *ctrl)
                return retval;
        }
 
+       /*
+        * If the port supports Link speeds greater than 5.0 GT/s, we
+        * must wait for 100 ms after Link training completes before
+        * sending configuration request.
+        */
+       if (ctrl->pcie->port->subordinate->max_bus_speed > PCIE_SPEED_5_0GT)
+               msleep(100);
+
        pcie_update_link_speed(ctrl->pcie->port->subordinate, lnk_status);
 
        return retval;