linux/drivers/pci/controller/dwc
Niklas Cassel cebb4baed8 PCI: dwc: endpoint: Fix advertised resizable BAR size
[ Upstream commit 72e34b8593 ]

The commit message in commit fc9a77040b ("PCI: designware-ep: Configure
Resizable BAR cap to advertise the smallest size") claims that it modifies
the Resizable BAR capability to only advertise support for 1 MB size BARs.

However, the commit writes all zeroes to PCI_REBAR_CAP (the register which
contains the possible BAR sizes that a BAR be resized to).

According to the spec, it is illegal to not have a bit set in
PCI_REBAR_CAP, and 1 MB is the smallest size allowed.

Set bit 4 in PCI_REBAR_CAP, so that we actually advertise support for a
1 MB BAR size.

Before:
        Capabilities: [2e8 v1] Physical Resizable BAR
                BAR 0: current size: 1MB
                BAR 1: current size: 1MB
                BAR 2: current size: 1MB
                BAR 3: current size: 1MB
                BAR 4: current size: 1MB
                BAR 5: current size: 1MB
After:
        Capabilities: [2e8 v1] Physical Resizable BAR
                BAR 0: current size: 1MB, supported: 1MB
                BAR 1: current size: 1MB, supported: 1MB
                BAR 2: current size: 1MB, supported: 1MB
                BAR 3: current size: 1MB, supported: 1MB
                BAR 4: current size: 1MB, supported: 1MB
                BAR 5: current size: 1MB, supported: 1MB

Fixes: fc9a77040b ("PCI: designware-ep: Configure Resizable BAR cap to advertise the smallest size")
Link: https://lore.kernel.org/linux-pci/20240307111520.3303774-1-cassel@kernel.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: <stable@vger.kernel.org> # 5.2
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-04-03 15:28:29 +02:00
..
Kconfig PCI: dwc: Sort Kconfig entries by vendor 2023-04-20 16:18:05 -05:00
Makefile PCI: dwc: Add Baikal-T1 PCIe controller support 2022-11-23 16:01:55 +01:00
pci-dra7xx.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pci-exynos.c PCI: exynos: Don't discard .remove() callback 2023-11-28 17:20:01 +00:00
pci-imx6.c Merge branch 'pci/misc' 2023-08-29 11:03:57 -05:00
pci-keystone.c PCI: keystone: Fix race condition when initializing PHYs 2024-01-25 15:35:55 -08:00
pci-layerscape-ep.c PCI: layerscape: Add workaround for lost link capabilities during reset 2023-08-24 10:08:25 +02:00
pci-layerscape.c PCI: layerscape: Add power management support for ls1028a 2023-08-24 11:49:38 +02:00
pci-meson.c Merge branch 'pci/misc' 2023-08-29 11:03:57 -05:00
pcie-al.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-armada8k.c PCI: Remove unnecessary <linux/of_irq.h> includes 2022-11-10 14:53:51 -06:00
pcie-artpec6.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-bt1.c PCI: dwc: Convert to platform remove callback returning void 2023-06-24 14:11:56 +00:00
pcie-designware-ep.c PCI: dwc: endpoint: Fix advertised resizable BAR size 2024-04-03 15:28:29 +02:00
pcie-designware-host.c pci-v6.6-changes 2023-08-30 20:23:07 -07:00
pcie-designware-plat.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-designware.c PCI: dwc: Add missing PCI_EXP_LNKCAP_MLW handling 2023-11-28 17:19:44 +00:00
pcie-designware.h pci-v6.6-changes 2023-08-30 20:23:07 -07:00
pcie-dw-rockchip.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-fu740.c PCI: fu740: Set the number of MSI vectors 2023-08-23 09:33:23 +02:00
pcie-hisi.c PCI: hisi: Avoid invalid address space conversions 2022-01-03 15:05:28 -06:00
pcie-histb.c PCI: dwc: Convert to platform remove callback returning void 2023-06-24 14:11:56 +00:00
pcie-intel-gw.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-keembay.c PCI: keembay: Remove cast between incompatible function type 2023-07-13 18:20:31 +00:00
pcie-kirin.c PCI: kirin: Don't discard .remove() callback 2023-11-28 17:20:01 +00:00
pcie-qcom-ep.c PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers 2023-11-28 17:20:01 +00:00
pcie-qcom.c PCI: qcom: Enable BDF to SID translation properly 2024-04-03 15:28:29 +02:00
pcie-spear13xx.c Merge branch 'pci/misc' 2022-08-04 11:46:53 -05:00
pcie-tegra194-acpi.c PCI: dwc: Simplify in/outbound iATU setup methods 2022-08-01 15:15:09 -05:00
pcie-tegra194.c PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields 2023-11-28 17:19:43 +00:00
pcie-uniphier-ep.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-uniphier.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-visconti.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00