Loading
PCI: rzg3s-host: Use pci_generic_config_write() for the root bus
The Renesas RZ/G3S host controller allows writing to read-only PCIe configuration registers when the RZG3S_PCI_PERM_CFG_HWINIT_EN bit is set in the RZG3S_PCI_PERM register. However, callers of struct pci_ops::write expect the semantics defined by the PCIe specification, meaning that writes to read-only registers must not be allowed. The previous custom struct pci_ops::write implementation for the root bus temporarily enabled write access before calling pci_generic_config_write(). This breaks the expected semantics. Remove the custom implementation and simply use pci_generic_config_write(). Along with this change, the updates of the PCI_PRIMARY_BUS, PCI_SECONDARY_BUS, and PCI_SUBORDINATE_BUS registers were moved so that they no longer depends on the RZG3S_PCI_PERM_CFG_HWINIT_EN bit in the RZG3S_PCI_PERM_CFG register, since these registers are R/W. Fixes: 7ef502fb ("PCI: Add Renesas RZ/G3S host controller driver") Suggested-by:Bjorn Helgaas <helgaas@kernel.org> Signed-off-by:
Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> Signed-off-by:
Manivannan Sadhasivam <mani@kernel.org> Tested-by:
Wolfram Sang <wsa+renesas@sang-engineering.com> Link: https://patch.msgid.link/20251217111510.138848-2-claudiu.beznea.uj@bp.renesas.com