kernel_samsung_a53x/drivers/pci/controller/dwc
Niklas Cassel d577a8237c PCI: dwc: endpoint: Fix advertised resizable BAR size
[ Upstream commit 72e34b8593e08a0ee759b7a038e0b178418ea6f8 ]

The commit message in commit fc9a77040b04 ("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: fc9a77040b04 ("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>
2024-11-19 09:22:35 +01:00
..
Kconfig
Makefile
pci-dra7xx.c
pci-exynos.c PCI: exynos: Don't discard .remove() callback 2024-11-18 11:43:27 +01:00
pci-imx6.c
pci-keystone.c PCI: keystone: Fix race condition when initializing PHYs 2024-11-18 12:12:50 +01:00
pci-layerscape-ep.c
pci-layerscape.c
pci-meson.c
pcie-al.c
pcie-armada8k.c
pcie-artpec6.c
pcie-designware-ep.c PCI: dwc: endpoint: Fix advertised resizable BAR size 2024-11-19 09:22:35 +01:00
pcie-designware-host.c
pcie-designware-plat.c
pcie-designware.c
pcie-designware.h
pcie-exynos-common.h
pcie-exynos-dbg.c
pcie-exynos-dbg.h
pcie-exynos-rc.c
pcie-exynos-rc.h
pcie-exynosS5E9925-rc-cal.c
pcie-exynosS5E9925-rc-cal_s5300.c
pcie-hisi.c
pcie-histb.c
pcie-intel-gw.c
pcie-kirin.c
pcie-qcom.c
pcie-spear13xx.c
pcie-tegra194.c
pcie-uniphier-ep.c
pcie-uniphier.c