misc: microchip: pci1xxxx: Add PCIe Hot reset disable support for Rev C0 and later...
authorRengarajan S <rengarajan.s@microchip.com>
Tue, 13 May 2025 09:15:56 +0000 (14:45 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 21 May 2025 12:44:19 +0000 (14:44 +0200)
commit7c970c657cf77ae0f230012138d8871ed573c7c7
tree16a5848a49ec08698707d8a48043b29d2fbd6b19
parent7b386d7454b610534026b279aa150e5a9e584082
misc: microchip: pci1xxxx: Add PCIe Hot reset disable support for Rev C0 and later devices

Systems that issue PCIe hot reset requests during a suspend/resume
cycle cause PCI1XXXX device revisions prior to C0 to get its GPIO
configuration registers reset to hardware default values. This results
in device inaccessibility and GPIO read/write failure. Starting with
Revision C0, support was added in the device hardware (via the Hot
Reset Disable Bit) to allow resetting only the PCIe interface and its
associated logic, but preserving the GPIO configurations during a hot
reset. This patch enables the hot reset disable feature during suspend/
resume for C0 and later revisions of the device.

mchp_pci1xxxx_gpio is an auxiliary child of mchp_pci1xxxx_gp and does
not have access to system register address space for reading the device
revision. Hence, the device revision is retrieved directly from PCIe
config space.

Signed-off-by: Rengarajan S <rengarajan.s@microchip.com>
Link: https://lore.kernel.org/r/20250513091557.3660-2-rengarajan.s@microchip.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gpio.c