|
@@ -1041,7 +1041,12 @@ static void stex_hard_reset(struct st_hba *hba)
|
|
|
pci_read_config_byte(bus->self, PCI_BRIDGE_CONTROL, &pci_bctl);
|
|
|
pci_bctl |= PCI_BRIDGE_CTL_BUS_RESET;
|
|
|
pci_write_config_byte(bus->self, PCI_BRIDGE_CONTROL, pci_bctl);
|
|
|
- msleep(1);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 1 ms may be enough for 8-port controllers. But 16-port controllers
|
|
|
+ * require more time to finish bus reset. Use 100 ms here for safety
|
|
|
+ */
|
|
|
+ msleep(100);
|
|
|
pci_bctl &= ~PCI_BRIDGE_CTL_BUS_RESET;
|
|
|
pci_write_config_byte(bus->self, PCI_BRIDGE_CONTROL, pci_bctl);
|
|
|
|