diff options
| author | Marek Vasut <marek.vasut+renesas@mailbox.org> | 2026-09-03 22:50:54 +0200 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2026-09-25 15:50:46 -0500 |
| commit | 295657e392df0ccd19e95f3eb7db309ee2aad449 (patch) | |
| tree | be58c033ba0b0b46654fba70543f5f75da03aec5 /scripts | |
| parent | 26a78bf6d4c62be68eed2db7d0d2431331be1bb4 (diff) | |
| download | linux-295657e392df0ccd19e95f3eb7db309ee2aad449.tar.gz linux-295657e392df0ccd19e95f3eb7db309ee2aad449.zip | |
PCI: rcar-gen4: Add Application/Local register reset control
The R-Car Gen4 PCIe controller does contain core reset, which puts the
controller back into well-defined state, but it does also tear down the
PCIe link. This is called Application/Local register reset in the
documentation.
Deassert the core reset after the core clock has been enabled, and assert
the core reset in case of error or when shutting down the controller.
This also fixes reinitialization failure of the controller, where if the
controller driver is unbound and bound again via sysfs attributes, the
controller driver will fail to probe the second time because it fails to
access the controller DBI, which returns all zeroes unless the core reset
is toggled. The following commands trigger this fault on R-Car V4H:
$ echo e65d0000.pcie > /sys/bus/platform/drivers/pcie-rcar-gen4/unbind
$ echo e65d0000.pcie > /sys/bus/platform/drivers/pcie-rcar-gen4/bind
Fixes: faf5a975ee3b ("PCI: rcar-gen4: Add support for R-Car V4H")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
[mani: added fixes tag and cced noautosel]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: <stable+noautosel@kernel.org> # DTS dependency
Link: https://patch.msgid.link/20260903205153.283553-3-marek.vasut+renesas@mailbox.org
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
