linux/drivers/pci
Sumit Saxena d2182b2d4b PCI: Restore Resizable BAR size bits correctly for 1MB BARs
In a Resizable BAR Control Register, bits 13:8 control the size of the BAR.
The encoded values of these bits are as follows (see PCIe r5.0, sec
7.8.6.3):

  Value    BAR size
     0     1 MB (2^20 bytes)
     1     2 MB (2^21 bytes)
     2     4 MB (2^22 bytes)
   ...
    43     8 EB (2^63 bytes)

Previously we incorrectly set the BAR size bits for a 1 MB BAR to 0x1f
instead of 0, so devices that support that size, e.g., new megaraid_sas and
mpt3sas adapters, fail to initialize during resume from S3 sleep.

Correctly calculate the BAR size bits for Resizable BAR control registers.

Link: https://lore.kernel.org/r/20190725192552.24295-1-sumit.saxena@broadcom.com
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203939
Fixes: d3252ace0b ("PCI: Restore resized BAR state on resume")
Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Cc: stable@vger.kernel.org	# v4.19+
2019-08-08 15:12:17 -05:00
..
controller Merge branch 'pci/trivial' 2019-07-12 17:08:41 -05:00
endpoint PCI: endpoint: Clear BAR before freeing its space 2019-06-11 10:57:54 +01:00
hotplug pci-v5.2-changes 2019-05-14 10:30:10 -07:00
pcie pci-v5.3-changes 2019-07-15 20:44:49 -07:00
switch New feature to add support for NTB virtual MSI interrupts, the ability 2019-07-21 09:46:59 -07:00
access.c
ats.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
bus.c PCI: Replace dev_printk(KERN_DEBUG) with dev_info(), etc 2019-05-09 07:49:58 -05:00
ecam.c
host-bridge.c
iov.c PCI: Use PCI_SRIOV_NUM_BARS in loops instead of PCI_IOV_RESOURCE_END 2019-08-08 15:12:12 -05:00
irq.c
Kconfig PCI: Fix PCI kconfig menu organization 2019-01-14 17:01:20 -06:00
Makefile PCI: OF: Allow of_pci_get_max_link_speed() to be used by PCI Endpoint drivers 2019-04-15 13:24:02 +01:00
mmap.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
msi.c New feature to add support for NTB virtual MSI interrupts, the ability 2019-07-21 09:46:59 -07:00
of.c PCI: OF: Initialize dev->fwnode appropriately 2019-06-06 17:32:13 -04:00
p2pdma.c pci-v5.3-changes 2019-07-15 20:44:49 -07:00
pci-acpi.c PCI: PM/ACPI: Refresh all stale power state data in pci_pm_complete() 2019-06-27 12:33:26 +02:00
pci-bridge-emul.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
pci-bridge-emul.h PCI: pci-bridge-emul: Extend pci_bridge_emul_init() with flags 2019-02-22 10:51:14 +00:00
pci-driver.c pci-v5.3-changes 2019-07-15 20:44:49 -07:00
pci-label.c
pci-mid.c
pci-pf-stub.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
pci-stub.c PCI: Replace printk(KERN_INFO) with pr_info(), etc 2019-05-09 07:49:54 -05:00
pci-sysfs.c PCI: sysfs: Ignore lockdep for remove attribute 2019-06-21 09:40:13 -05:00
pci.c PCI: Restore Resizable BAR size bits correctly for 1MB BARs 2019-08-08 15:12:17 -05:00
pci.h pci-v5.3-changes 2019-07-15 20:44:49 -07:00
probe.c pci-v5.3-changes 2019-07-15 20:44:49 -07:00
proc.c PCI: Use seq_puts() instead of seq_printf() in show_device() 2019-07-02 18:38:51 -05:00
quirks.c PCI: Enable NVIDIA HDA controllers 2019-07-11 11:13:26 -05:00
remove.c
rom.c
search.c bus_find_device: Unify the match callback with class_find_device 2019-06-24 05:22:31 +02:00
setup-bus.c PCI: Use PCI_SRIOV_NUM_BARS in loops instead of PCI_IOV_RESOURCE_END 2019-08-08 15:12:12 -05:00
setup-irq.c
setup-res.c
slot.c PCI: Decode PCIe 32 GT/s link speed 2019-06-13 16:49:45 -05:00
syscall.c
vc.c
vpd.c
xen-pcifront.c Merge branch 'pci/printk' 2019-05-13 18:34:46 -05:00