PCI: dwc: ep: Fix advertised resizable BAR size again
Subsystems (4)
PATCH 1/1 PCI: dwc: ep: Fix advertised resizable BAR size again
The advertised resizable BAR size was fixed in commit 72e34b8593e0 ("PCI:
dwc: endpoint: Fix advertised resizable BAR size").
Commit 867ab111b242 ("PCI: dwc: ep: Add a generic dw_pcie_ep_linkdown() API to handle Link Down event") was included shortly after this, and moved the code to another function. When the code was moved, this fix was mistakenly lost.
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.
--- drivers/pci/controller/dwc/pcie-designware-ep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/pci/controller/dwc/pcie-designware-ep.c +1 -1
@@ -689,7 +689,7 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)* for 1 MB BAR size only. */ for (i =0 ; i < nbars; i++, offset +=PCI_REBAR_CTRL ) -dw_pcie_writel_dbi (pci, offset +PCI_REBAR_CAP ,0x0 ); +dw_pcie_writel_dbi (pci, offset +PCI_REBAR_CAP ,BIT (4 )); }dw_pcie_setup (pci);
Signature · 1 line
2.47.0
Krzysztof Wilczyński
AppliedHello,
Quoted 8 lines · Niklas Cassel
The advertised resizable BAR size was fixed in commit
72e34b8593e0("PCI:
dwc: endpoint: Fix advertised resizable BAR size").Commit
867ab111b242("PCI: dwc: ep: Add a genericdw_pcie_ep_linkdown()API to handle Link Down event") was included shortly after this, and moved the code to another function. When the code was moved, this fix was mistakenly lost.
Quoted 5 lines
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.
Applied to controller/dwc, thank you!
[01/01] PCI: dwc: ep: Fix advertised resizable BAR size regression
https://git.kernel.org/pci/pci/c/ead24c08af48 Krzysztof