On 9/2/22 7:58 AM, Bjorn Helgaas wrote: > From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > The suspend path may disable PTM before saving config state, which means > the PCI_PTM_CTRL_ENABLE bit in the saved state may be cleared even though > we want PTM to be enabled when resuming. If suspend is disabling PTM separately, why not enable it during the resume operation? Why club it with PTM state restoration? > > If "dev->ptm_enabled" is set, it means PTM should be enabled, so make sure > PCI_PTM_CTRL_ENABLE is set when restoring the PTM state. > > Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > --- > drivers/pci/pcie/ptm.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/pci/pcie/ptm.c b/drivers/pci/pcie/ptm.c > index b6a417247ce3..3115601a85ef 100644 > --- a/drivers/pci/pcie/ptm.c > +++ b/drivers/pci/pcie/ptm.c > @@ -82,6 +82,14 @@ void pci_restore_ptm_state(struct pci_dev *dev) > return; > > cap = (u16 *)&save_state->cap.data[0]; > + > + /* > + * The suspend path may disable PTM before saving config state. > + * Make sure PCI_PTM_CTRL_ENABLE is set if PTM should be enabled. > + */ > + if (dev->ptm_enabled) > + *cap |= PCI_PTM_CTRL_ENABLE; > + > pci_write_config_word(dev, ptm + PCI_PTM_CTRL, *cap); > } > -- Sathyanarayanan Kuppuswamy Linux Kernel Developer