]> git.baikalelectronics.ru Git - kernel.git/commitdiff
igc: Enable PCIe PTM
authorVinicius Costa Gomes <vinicius.gomes@intel.com>
Tue, 27 Jul 2021 03:36:56 +0000 (20:36 -0700)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 24 Aug 2021 18:49:21 +0000 (11:49 -0700)
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>
drivers/net/ethernet/intel/igc/igc_main.c

index b7aab35c11325a9f08f72e09abe511d685e3cfb0..db1c63e8802aebc0269feaff9be4c0bd37513599 100644 (file)
@@ -12,6 +12,8 @@
 #include <net/pkt_sched.h>
 #include <linux/bpf_trace.h>
 #include <net/xdp_sock_drv.h>
+#include <linux/pci.h>
+
 #include <net/ipv6.h>
 
 #include "igc.h"
@@ -6174,6 +6176,10 @@ static int igc_probe(struct pci_dev *pdev,
 
        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;