npu2: Reset NVLinks when resetting a GPU
npu2: Reset NVLinks when resetting a GPU

Resetting a V100 GPU brings its NVLinks down and if an NPU tries using
those, an HMI occurs. We were lucky not to observe this as the bare metal
does not normally reset a GPU and when passed through, GPUs are usually
before NPUs in QEMU command line or Libvirt XML and because of that NPUs
are naturally reset first. However simple change of the device order
brings HMIs.

This defines a bus control filter for a PCI slot with a GPU with NVLinks
so when the host system issues secondary bus reset to the slot, it resets
associated NVLinks.

Signed-off-by: Alexey Kardashevskiy <ac1fc56530d7d037e1ea666f130daca22d72f964@ozlabs.ru>
Signed-off-by: Stewart Smith <ec31ab75ddf977353c8f660f92ea8b23f64aef25@linux.ibm.com>

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