| From 1b5d73fb862414106cf270a1a7300ce8ae77de83 Mon Sep 17 00:00:00 2001 |
| From: Vinicius Costa Gomes <vinicius.gomes@intel.com> |
| Date: Mon, 26 Jul 2021 20:36:56 -0700 |
| Subject: igc: Enable PCIe PTM |
| |
| From: Vinicius Costa Gomes <vinicius.gomes@intel.com> |
| |
| commit 1b5d73fb862414106cf270a1a7300ce8ae77de83 upstream. |
| |
| Enables PCIe PTM (Precision Time Measurement) support in the igc |
| driver. Notifies the PCI devices that PCIe PTM should be enabled. |
| |
| PCIe PTM is similar protocol to PTP (Precision Time Protocol) running |
| in the PCIe fabric, it allows devices to report time measurements from |
| their internal clocks and the correlation with the PCIe root clock. |
| |
| The i225 NIC exposes some registers that expose those time |
| measurements, those registers will be used, in later patches, to |
| implement the PTP_SYS_OFFSET_PRECISE ioctl(). |
| |
| Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com> |
| Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com> |
| Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
| Signed-off-by: Meng Tang <tangmeng@uniontech.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/igc/igc_main.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/net/ethernet/intel/igc/igc_main.c |
| +++ b/drivers/net/ethernet/intel/igc/igc_main.c |
| @@ -9,6 +9,7 @@ |
| #include <linux/udp.h> |
| #include <linux/ip.h> |
| #include <linux/pm_runtime.h> |
| +#include <linux/pci.h> |
| #include <net/pkt_sched.h> |
| |
| #include <net/ipv6.h> |
| @@ -5041,6 +5042,10 @@ static int igc_probe(struct pci_dev *pde |
| |
| pci_enable_pcie_error_reporting(pdev); |
| |
| + err = pci_enable_ptm(pdev, NULL); |
| + if (err < 0) |
| + dev_info(&pdev->dev, "PCIe PTM not supported by PCIe bus/controller\n"); |
| + |
| pci_set_master(pdev); |
| |
| err = -ENOMEM; |