Re: [PATCH 1/4] PCI/PTM: Preserve PTM Root Select

Sathyanarayanan Kuppuswamy
2022-09-02T17:24:09Z

On 9/2/22 7:58 AM, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> When disabling PTM, there's no need to clear the Root Select bit. We
> disable PTM during suspend, and we want to re-enable it during resume.
> Clearing Root Select here makes re-enabling more complicated.

Currently, it looks like we disable PCI_PTM_CTRL_ROOT in pci_disable_ptm(),
but not enable it in pci_enable_ptm(). Do you know this did not trigger an
issue?

Also, you mentioned that it is complicated to enable it, can you add some
details?

>
> Per PCIe r6.0, sec 7.9.15.3, "When set, if the PTM Enable bit is also Set,
> this Time Source is the PTM Root," so if PTM Enable is cleared, the value
> of Root Select should be irrelevant.
>
> Preserve Root Select to simplify re-enabling PTM.
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> Cc: David E. Box <david.e.box@linux.intel.com>
> ---
> drivers/pci/pcie/ptm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/pcie/ptm.c b/drivers/pci/pcie/ptm.c
> index 368a254e3124..b6a417247ce3 100644
> --- a/drivers/pci/pcie/ptm.c
> +++ b/drivers/pci/pcie/ptm.c
> @@ -42,7 +42,7 @@ void pci_disable_ptm(struct pci_dev *dev)
> return;
>
> pci_read_config_word(dev, ptm + PCI_PTM_CTRL, &ctrl);
> - ctrl &= ~(PCI_PTM_CTRL_ENABLE | PCI_PTM_CTRL_ROOT);
> + ctrl &= ~PCI_PTM_CTRL_ENABLE;
> pci_write_config_word(dev, ptm + PCI_PTM_CTRL, ctrl);
> }
>

--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer