pci: Make fast reboot creset PHBs in parallel
pci: Make fast reboot creset PHBs in parallel

In this patch, we added a creset to the fast reboot path:

  commit a1eba9d29d17ff44fca1293b071023a9fbf4b938
  Author: Andrew Donnellan <efc2d7c347a094a6ec1d918179e819039044c564@au1.ibm.com>
  fast-reboot: creset PHBs on fast reboot

Unfortunately, this does the creset in serial rather than in
parallel.

This patch changes the creset on fast reboot to operate in
parallel. It simplifies the code by abstracting pci_init_slots() so
that it can be used on boot and fast reboot to perform all the PCI
retraining.

This improves fast reboot PCI training on a dual chip P9 from ~12
seconds down to ~2 seconds. Similar improvements for P8 are achieved
as well.

This means the time to download the BOOTKERNEL is the bottleneck for
fast reboot.

Signed-off-by: Michael Neuling <7b0ab45a730e48a69239010b5b8fe5fa4e8eaac6@neuling.org>
Reviewed-by: Russell Currey <b5ebcef270cdc73fa0593440445c07a93ae1bccb@russell.cc>
Acked-by: Andrew Donnellan <efc2d7c347a094a6ec1d918179e819039044c564@au1.ibm.com>
Signed-off-by: Stewart Smith <ec31ab75ddf977353c8f660f92ea8b23f64aef25@linux.vnet.ibm.com>

shenki/skiboot,open-power/skiboot,qemu/skiboot,open-power/skiboot,stewart-ibm/skiboot,legoater/skiboot,open-power/skiboot,shenki/skiboot,legoater/skiboot,open-power/skiboot,qemu/skiboot,shenki/skiboot,legoater/skiboot,shenki/skiboot,stewart-ibm/skiboot,open-power/skiboot,stewart-ibm/skiboot,qemu/skiboot,legoater/skiboot,qemu/skiboot,shenki/skiboot,legoater/skiboot,qemu/skiboot