PCI: xgene: Disable Configuration Request Retry Status for v1 silicon
PCI: xgene: Disable Configuration Request Retry Status for v1 silicon

When a CPU reads the Vendor and Device ID of a non-existent device, the
controller should fabricate return data of 0xFFFFFFFF.  Configuration
Request Retry Status (CRS) is not applicable in this case because the
device doesn't exist at all.

The X-Gene v1 PCIe controller has a bug in the CRS logic such that when CRS
is enabled, it fabricates return data of 0xFFFF0001 for this case, which
means "the device exists but is not ready."  That causes the PCI core to
retry the read until it times out after 60 seconds.

Disable CRS capability advertisement by clearing the CRS Software
Visibility bit in the Root Capabilities Register.

[bhelgaas: changelog and comment]
Tested-by: Ian Campbell <9be92b3dbbd6611e3e4c9209fb3d04b4919e7cca@citrix.com>
Tested-by: Marcin Juszkiewicz <58d59dcbe19e67611ed6eafb38d501a9f0873444@redhat.com>
Signed-off-by: Duc Dang <02e69028202e3ab4ba908f4d29572c8c5e579377@apm.com>
Signed-off-by: Bjorn Helgaas <f10ec01be0c6b54271af5c550cd257810bdf3268@google.com>
Acked-by: Tanmay Inamdar <94fb1b00a5527ce6d5176a5dabd0cd73b0c22875@apm.com>
KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs