Lines Matching +full:re +full:- +full:enabled
1 // SPDX-License-Identifier: GPL-2.0
30 if (ups && ups->ptm_cap) in pci_upstream_ptm()
53 dev->ptm_cap = ptm; in pci_ptm_init()
57 dev->ptm_granularity = FIELD_GET(PCI_PTM_GRANULARITY_MASK, cap); in pci_ptm_init()
67 if (ups->ptm_granularity == 0) in pci_ptm_init()
68 dev->ptm_granularity = 0; in pci_ptm_init()
69 else if (ups->ptm_granularity > dev->ptm_granularity) in pci_ptm_init()
70 dev->ptm_granularity = ups->ptm_granularity; in pci_ptm_init()
72 dev->ptm_root = 1; in pci_ptm_init()
80 dev->ptm_granularity = 0; in pci_ptm_init()
90 u16 ptm = dev->ptm_cap; in pci_save_ptm_state()
101 cap = (u32 *)&save_state->cap.data[0]; in pci_save_ptm_state()
107 u16 ptm = dev->ptm_cap; in pci_restore_ptm_state()
118 cap = (u32 *)&save_state->cap.data[0]; in pci_restore_ptm_state()
125 u16 ptm = dev->ptm_cap; in __pci_enable_ptm()
130 return -EINVAL; in __pci_enable_ptm()
135 * path must support PTM and have it enabled so it can handle the in __pci_enable_ptm()
137 * upstream link partner must have PTM enabled before we can enable in __pci_enable_ptm()
140 if (!dev->ptm_root) { in __pci_enable_ptm()
142 if (!ups || !ups->ptm_enabled) in __pci_enable_ptm()
143 return -EINVAL; in __pci_enable_ptm()
150 ctrl |= FIELD_PREP(PCI_PTM_GRANULARITY_MASK, dev->ptm_granularity); in __pci_enable_ptm()
151 if (dev->ptm_root) in __pci_enable_ptm()
159 * pci_enable_ptm() - Enable Precision Time Measurement
164 * @granularity is non-NULL, return the Effective Granularity.
166 * Return: zero if successful, or -EINVAL if @dev lacks a PTM Capability or
167 * is not a PTM Root and lacks an upstream path of PTM-enabled devices.
178 dev->ptm_enabled = 1; in pci_enable_ptm()
181 *granularity = dev->ptm_granularity; in pci_enable_ptm()
183 switch (dev->ptm_granularity) { in pci_enable_ptm()
192 dev->ptm_granularity); in pci_enable_ptm()
195 pci_info(dev, "PTM enabled%s, %s granularity\n", in pci_enable_ptm()
196 dev->ptm_root ? " (root)" : "", clock_desc); in pci_enable_ptm()
204 u16 ptm = dev->ptm_cap; in __pci_disable_ptm()
216 * pci_disable_ptm() - Disable Precision Time Measurement
223 if (dev->ptm_enabled) { in pci_disable_ptm()
225 dev->ptm_enabled = 0; in pci_disable_ptm()
231 * Disable PTM, but preserve dev->ptm_enabled so we silently re-enable it on
236 if (dev->ptm_enabled) in pci_suspend_ptm()
240 /* If PTM was enabled before suspend, re-enable it when resuming */
243 if (dev->ptm_enabled) in pci_resume_ptm()
252 return dev->ptm_enabled; in pcie_ptm_enabled()