linux/drivers/pci/pcie
Vidya Sagar 6d42666752 PCI/ASPM: Update save_state when configuration changes
Many PCIe device drivers save the configuration state of their device
during probe and restore it when their .slot_reset() hook is called during
PCIe error recovery.

If the ASPM configuration is changed after the driver's probe is called and
before an error event occurs, .slot_reset() restores the ASPM configuration
to what it was at the time of probe, not to what it was just before the
occurrence of the error event.  This leads to a mismatch in ASPM
configuration between the device and its upstream device.

Update the saved configuration of the device when the ASPM configuration
changes.

Link: https://lore.kernel.org/r/20240222174436.3565146-1-vidyas@nvidia.com
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
[bhelgaas: commit log, rebase to pci/aspm, rename to
pci_update_aspm_saved_state() since it updates only LNKCTL, update only
ASPMC and CLKREQ_EN in LNKCTL]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Reviewed-by: David E. Box <david.e.box@linux.intel.com>
2024-03-12 12:09:12 -05:00
..
aer_inject.c PCI/AER: Update aer-inject URL 2022-03-02 11:26:17 -06:00
aer.c PCI/AER: Use explicit register sizes for struct members 2024-01-02 16:51:39 -06:00
aspm.c PCI/ASPM: Update save_state when configuration changes 2024-03-12 12:09:12 -05:00
dpc.c PCI/DPC: Use defines with DPC reason fields 2023-10-24 10:54:04 -05:00
edr.c PCI/EDR: Add edr_handle_event() comments 2023-04-07 17:39:53 -05:00
err.c PCI/ERR: Recognize disconnected devices in report_error_detected() 2022-06-08 15:08:40 -05:00
Kconfig PCI/AER: Forward RCH downstream port-detected errors to the CXL.mem dev handler 2023-10-27 20:13:39 -07:00
Makefile PCI/ASPM: Always build aspm.c 2024-03-07 14:29:17 -06:00
pme.c PCI/PME: Use FIELD_GET() 2023-10-24 16:55:45 -05:00
portdrv.c PCI/portdrv: Use FIELD_GET() 2023-10-24 16:55:45 -05:00
portdrv.h PCI/AER: Export pcie_aer_is_native() 2023-09-11 15:24:16 -07:00
ptm.c PCI/PTM: Use FIELD_GET() 2023-10-24 16:55:45 -05:00
rcec.c PCI/RCEC: Fix RCiEP device to RCEC association 2021-03-10 15:10:46 -06:00