ptp: Enable clock drivers along with associated net/PHY drivers
svn path=/dists/trunk/linux/; revision=19641
This commit is contained in:
parent
a876ad1228
commit
0fb560ca34
|
@ -43,6 +43,7 @@ linux (3.7.1-1~experimental.1) UNRELEASED; urgency=low
|
|||
* phy: Enable AT803X_PHY as module
|
||||
* rt2800pci: Enable RT2800PCI_RT3290
|
||||
* wireless/ti: Enable WL18XX as module
|
||||
* ptp: Enable clock drivers along with associated net/PHY drivers
|
||||
|
||||
-- maximilian attems <maks@debian.org> Thu, 06 Dec 2012 18:14:33 +0100
|
||||
|
||||
|
|
48
debian/patches/bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
vendored
Normal file
48
debian/patches/bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
From: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Date: Fri, 16 Nov 2012 15:43:59 +0000
|
||||
Subject: [5/5] pch_gbe, ptp_pch: Fix the dependency direction between these
|
||||
drivers
|
||||
|
||||
commit 18d359ceb04485df0e387e04b0e52a761c4c58a0 upstream.
|
||||
|
||||
In commit a24006ed12616bde1bbdb26868495906a212d8dc ('ptp: Enable clock
|
||||
drivers along with associated net/PHY drivers') I wrongly made
|
||||
PTP_1588_CLOCK_PCH depend on PCH_GBE. The dependency is really the
|
||||
other way around. Therefore make PCH_GBE select PTP_1588_CLOCK_PCH
|
||||
and remove the 'default y' from the latter.
|
||||
|
||||
Reported-by: Randy Dunlap <rdunlap@xenotime.net>
|
||||
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/oki-semi/pch_gbe/Kconfig | 1 +
|
||||
drivers/ptp/Kconfig | 2 --
|
||||
2 files changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
index 00bc4fc..34d05bf 100644
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
@@ -7,6 +7,7 @@ config PCH_GBE
|
||||
depends on PCI
|
||||
select NET_CORE
|
||||
select MII
|
||||
+ select PTP_1588_CLOCK_PCH
|
||||
---help---
|
||||
This is a gigabit ethernet driver for EG20T PCH.
|
||||
EG20T PCH is the platform controller hub that is used in Intel's
|
||||
diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig
|
||||
index 70c5836..1ea6f1d 100644
|
||||
--- a/drivers/ptp/Kconfig
|
||||
+++ b/drivers/ptp/Kconfig
|
||||
@@ -72,9 +72,7 @@ config DP83640_PHY
|
||||
|
||||
config PTP_1588_CLOCK_PCH
|
||||
tristate "Intel PCH EG20T as PTP clock"
|
||||
- depends on PCH_GBE
|
||||
select PTP_1588_CLOCK
|
||||
- default y
|
||||
help
|
||||
This driver adds support for using the PCH EG20T as a PTP
|
||||
clock. The hardware supports time stamping of PTP packets
|
|
@ -0,0 +1,77 @@
|
|||
From: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Date: Wed, 31 Oct 2012 15:31:29 +0000
|
||||
Subject: [1/5] pps, ptp: Remove dependencies on EXPERIMENTAL
|
||||
|
||||
commit c56283034ce28f99de494b69896528ae90cd9730 upstream.
|
||||
|
||||
These are now established subsystems, and we want drivers to be able
|
||||
to select PPS and PTP_1588_CLOCK without depending on EXPERIMENTAL.
|
||||
Further, the use of EXPERIMENTAL is now deprecated in general.
|
||||
|
||||
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/intel/Kconfig | 4 ++--
|
||||
drivers/net/ethernet/oki-semi/pch_gbe/Kconfig | 1 -
|
||||
drivers/pps/Kconfig | 1 -
|
||||
drivers/ptp/Kconfig | 1 -
|
||||
4 files changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
|
||||
index 0cafe4f..9e49217 100644
|
||||
--- a/drivers/net/ethernet/intel/Kconfig
|
||||
+++ b/drivers/net/ethernet/intel/Kconfig
|
||||
@@ -123,7 +123,7 @@ config IGB_DCA
|
||||
config IGB_PTP
|
||||
bool "PTP Hardware Clock (PHC)"
|
||||
default n
|
||||
- depends on IGB && EXPERIMENTAL
|
||||
+ depends on IGB
|
||||
select PPS
|
||||
select PTP_1588_CLOCK
|
||||
---help---
|
||||
@@ -225,7 +225,7 @@ config IXGBE_DCB
|
||||
config IXGBE_PTP
|
||||
bool "PTP Clock Support"
|
||||
default n
|
||||
- depends on IXGBE && EXPERIMENTAL
|
||||
+ depends on IXGBE
|
||||
select PPS
|
||||
select PTP_1588_CLOCK
|
||||
---help---
|
||||
diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
index 5296cc8..9867bc6 100644
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
@@ -26,7 +26,6 @@ if PCH_GBE
|
||||
config PCH_PTP
|
||||
bool "PCH PTP clock support"
|
||||
default n
|
||||
- depends on EXPERIMENTAL
|
||||
select PPS
|
||||
select PTP_1588_CLOCK
|
||||
select PTP_1588_CLOCK_PCH
|
||||
diff --git a/drivers/pps/Kconfig b/drivers/pps/Kconfig
|
||||
index 258ca59..982d16b 100644
|
||||
--- a/drivers/pps/Kconfig
|
||||
+++ b/drivers/pps/Kconfig
|
||||
@@ -6,7 +6,6 @@ menu "PPS support"
|
||||
|
||||
config PPS
|
||||
tristate "PPS support"
|
||||
- depends on EXPERIMENTAL
|
||||
---help---
|
||||
PPS (Pulse Per Second) is a special pulse provided by some GPS
|
||||
antennae. Userland can use it to get a high-precision time
|
||||
diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig
|
||||
index ffdf712..a6e4b7c 100644
|
||||
--- a/drivers/ptp/Kconfig
|
||||
+++ b/drivers/ptp/Kconfig
|
||||
@@ -9,7 +9,6 @@ comment "Enable Device Drivers -> PPS to see the PTP clock options."
|
||||
|
||||
config PTP_1588_CLOCK
|
||||
tristate "PTP clock support"
|
||||
- depends on EXPERIMENTAL
|
||||
depends on PPS
|
||||
help
|
||||
The IEEE 1588 standard defines a method to precisely
|
784
debian/patches/bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
vendored
Normal file
784
debian/patches/bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
vendored
Normal file
|
@ -0,0 +1,784 @@
|
|||
From: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Date: Wed, 31 Oct 2012 15:33:52 +0000
|
||||
Subject: [3/5] ptp: Enable clock drivers along with associated net/PHY
|
||||
drivers
|
||||
|
||||
commit a24006ed12616bde1bbdb26868495906a212d8dc upstream.
|
||||
|
||||
Where a PTP clock driver is associated with a net or PHY driver, it
|
||||
should be enabled automatically whenever that driver is enabled.
|
||||
Therefore:
|
||||
|
||||
- Make PTP clock drivers select rather than depending on PTP_1588_CLOCK
|
||||
- Remove separate boolean options for PTP clock drivers that are built
|
||||
as part of net driver modules. (This also fixes cases where the PTP
|
||||
subsystem is wrongly forced to be built-in.)
|
||||
- Set 'default y' for PTP clock drivers that depend on specific net
|
||||
drivers but are built separately
|
||||
|
||||
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
[bwh: Backported to 3.7: adjust context; drop removal of #ifdefs that
|
||||
aren't present]
|
||||
---
|
||||
--- a/drivers/net/ethernet/intel/Kconfig
|
||||
+++ b/drivers/net/ethernet/intel/Kconfig
|
||||
@@ -93,6 +93,7 @@ config E1000E
|
||||
config IGB
|
||||
tristate "Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support"
|
||||
depends on PCI
|
||||
+ select PTP_1588_CLOCK
|
||||
---help---
|
||||
This driver supports Intel(R) 82575/82576 gigabit ethernet family of
|
||||
adapters. For more information on how to identify your adapter, go
|
||||
@@ -120,18 +121,6 @@ config IGB_DCA
|
||||
driver. DCA is a method for warming the CPU cache before data
|
||||
is used, with the intent of lessening the impact of cache misses.
|
||||
|
||||
-config IGB_PTP
|
||||
- bool "PTP Hardware Clock (PHC)"
|
||||
- default n
|
||||
- depends on IGB
|
||||
- select PTP_1588_CLOCK
|
||||
- ---help---
|
||||
- Say Y here if you want to use PTP Hardware Clock (PHC) in the
|
||||
- driver. Only the basic clock operations have been implemented.
|
||||
-
|
||||
- Every timestamp and clock read operations must consult the
|
||||
- overflow counter to form a correct time value.
|
||||
-
|
||||
config IGBVF
|
||||
tristate "Intel(R) 82576 Virtual Function Ethernet support"
|
||||
depends on PCI
|
||||
@@ -179,6 +168,7 @@ config IXGBE
|
||||
tristate "Intel(R) 10GbE PCI Express adapters support"
|
||||
depends on PCI && INET
|
||||
select MDIO
|
||||
+ select PTP_1588_CLOCK
|
||||
---help---
|
||||
This driver supports Intel(R) 10GbE PCI Express family of
|
||||
adapters. For more information on how to identify your adapter, go
|
||||
@@ -221,18 +211,6 @@ config IXGBE_DCB
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
-config IXGBE_PTP
|
||||
- bool "PTP Clock Support"
|
||||
- default n
|
||||
- depends on IXGBE
|
||||
- select PTP_1588_CLOCK
|
||||
- ---help---
|
||||
- Say Y here if you want support for 1588 Timestamping with a
|
||||
- PHC device, using the PTP 1588 Clock support. This is
|
||||
- required to enable timestamping support for the device.
|
||||
-
|
||||
- If unsure, say N.
|
||||
-
|
||||
config IXGBEVF
|
||||
tristate "Intel(R) 82599 Virtual Function Ethernet support"
|
||||
depends on PCI_MSI
|
||||
--- a/drivers/net/ethernet/intel/igb/Makefile
|
||||
+++ b/drivers/net/ethernet/intel/igb/Makefile
|
||||
@@ -34,6 +34,4 @@ obj-$(CONFIG_IGB) += igb.o
|
||||
|
||||
igb-objs := igb_main.o igb_ethtool.o e1000_82575.o \
|
||||
e1000_mac.o e1000_nvm.o e1000_phy.o e1000_mbx.o \
|
||||
- e1000_i210.o
|
||||
-
|
||||
-igb-$(CONFIG_IGB_PTP) += igb_ptp.o
|
||||
+ e1000_i210.o igb_ptp.o
|
||||
--- a/drivers/net/ethernet/intel/igb/igb.h
|
||||
+++ b/drivers/net/ethernet/intel/igb/igb.h
|
||||
@@ -34,11 +34,9 @@
|
||||
#include "e1000_mac.h"
|
||||
#include "e1000_82575.h"
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/net_tstamp.h>
|
||||
#include <linux/ptp_clock_kernel.h>
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/if_vlan.h>
|
||||
|
||||
@@ -373,7 +371,6 @@ struct igb_adapter {
|
||||
u32 wvbr;
|
||||
u32 *shadow_vfta;
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
struct ptp_clock *ptp_clock;
|
||||
struct ptp_clock_info ptp_caps;
|
||||
struct delayed_work ptp_overflow_work;
|
||||
@@ -382,7 +379,6 @@ struct igb_adapter {
|
||||
spinlock_t tmreg_lock;
|
||||
struct cyclecounter cc;
|
||||
struct timecounter tc;
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
char fw_version[32];
|
||||
};
|
||||
@@ -436,7 +432,6 @@ extern bool igb_has_link(struct igb_adap
|
||||
extern void igb_set_ethtool_ops(struct net_device *);
|
||||
extern void igb_power_up_link(struct igb_adapter *);
|
||||
extern void igb_set_fw_version(struct igb_adapter *);
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
extern void igb_ptp_init(struct igb_adapter *adapter);
|
||||
extern void igb_ptp_stop(struct igb_adapter *adapter);
|
||||
extern void igb_ptp_reset(struct igb_adapter *adapter);
|
||||
@@ -447,7 +442,6 @@ extern void igb_ptp_rx_hwtstamp(struct i
|
||||
struct sk_buff *skb);
|
||||
extern int igb_ptp_hwtstamp_ioctl(struct net_device *netdev,
|
||||
struct ifreq *ifr, int cmd);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
static inline s32 igb_reset_phy(struct e1000_hw *hw)
|
||||
{
|
||||
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
|
||||
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
|
||||
@@ -2301,7 +2301,6 @@ static int igb_get_ts_info(struct net_de
|
||||
struct igb_adapter *adapter = netdev_priv(dev);
|
||||
|
||||
switch (adapter->hw.mac.type) {
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
case e1000_82576:
|
||||
case e1000_82580:
|
||||
case e1000_i350:
|
||||
@@ -2337,7 +2336,6 @@ static int igb_get_ts_info(struct net_de
|
||||
(1 << HWTSTAMP_FILTER_PTP_V2_EVENT);
|
||||
|
||||
return 0;
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
--- a/drivers/net/ethernet/intel/igb/igb_main.c
|
||||
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
|
||||
@@ -1706,10 +1706,8 @@ void igb_reset(struct igb_adapter *adapt
|
||||
/* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */
|
||||
wr32(E1000_VET, ETHERNET_IEEE_VLAN_TYPE);
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
/* Re-enable PTP, where applicable. */
|
||||
igb_ptp_reset(adapter);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
igb_get_phy_info(hw);
|
||||
}
|
||||
@@ -2141,10 +2139,8 @@ static int __devinit igb_probe(struct pc
|
||||
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
/* do hw tstamp init after resetting */
|
||||
igb_ptp_init(adapter);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
dev_info(&pdev->dev, "Intel(R) Gigabit Ethernet Network Connection\n");
|
||||
/* print bus type/speed/width info */
|
||||
@@ -2219,9 +2215,7 @@ static void __devexit igb_remove(struct
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
|
||||
pm_runtime_get_noresume(&pdev->dev);
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
igb_ptp_stop(adapter);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
/*
|
||||
* The watchdog timer may be rescheduled, so explicitly
|
||||
@@ -3112,10 +3106,8 @@ void igb_configure_rx_ring(struct igb_ad
|
||||
srrctl |= (PAGE_SIZE / 2) >> E1000_SRRCTL_BSIZEPKT_SHIFT;
|
||||
#endif
|
||||
srrctl |= E1000_SRRCTL_DESCTYPE_HDR_SPLIT_ALWAYS;
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
if (hw->mac.type >= e1000_82580)
|
||||
srrctl |= E1000_SRRCTL_TIMESTAMP;
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
/* Only set Drop Enable if we are supporting multiple queues */
|
||||
if (adapter->vfs_allocated_count || adapter->num_rx_queues > 1)
|
||||
srrctl |= E1000_SRRCTL_DROP_EN;
|
||||
@@ -4159,11 +4151,9 @@ static __le32 igb_tx_cmd_type(u32 tx_fla
|
||||
if (tx_flags & IGB_TX_FLAGS_VLAN)
|
||||
cmd_type |= cpu_to_le32(E1000_ADVTXD_DCMD_VLE);
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
/* set timestamp bit if present */
|
||||
if (unlikely(tx_flags & IGB_TX_FLAGS_TSTAMP))
|
||||
cmd_type |= cpu_to_le32(E1000_ADVTXD_MAC_TSTAMP);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
/* set segmentation bits for TSO */
|
||||
if (tx_flags & IGB_TX_FLAGS_TSO)
|
||||
@@ -4372,9 +4362,7 @@ static inline int igb_maybe_stop_tx(stru
|
||||
netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
|
||||
struct igb_ring *tx_ring)
|
||||
{
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
struct igb_adapter *adapter = netdev_priv(tx_ring->netdev);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
struct igb_tx_buffer *first;
|
||||
int tso;
|
||||
u32 tx_flags = 0;
|
||||
@@ -4397,7 +4385,6 @@ netdev_tx_t igb_xmit_frame_ring(struct s
|
||||
first->bytecount = skb->len;
|
||||
first->gso_segs = 1;
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
|
||||
!(adapter->ptp_tx_skb))) {
|
||||
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
|
||||
@@ -4407,7 +4394,6 @@ netdev_tx_t igb_xmit_frame_ring(struct s
|
||||
if (adapter->hw.mac.type == e1000_82576)
|
||||
schedule_work(&adapter->ptp_tx_work);
|
||||
}
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
if (vlan_tx_tag_present(skb)) {
|
||||
tx_flags |= IGB_TX_FLAGS_VLAN;
|
||||
@@ -4800,7 +4786,6 @@ static irqreturn_t igb_msix_other(int ir
|
||||
mod_timer(&adapter->watchdog_timer, jiffies + 1);
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
if (icr & E1000_ICR_TS) {
|
||||
u32 tsicr = rd32(E1000_TSICR);
|
||||
|
||||
@@ -4811,7 +4796,6 @@ static irqreturn_t igb_msix_other(int ir
|
||||
schedule_work(&adapter->ptp_tx_work);
|
||||
}
|
||||
}
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
wr32(E1000_EIMS, adapter->eims_other);
|
||||
|
||||
@@ -5545,7 +5529,6 @@ static irqreturn_t igb_intr_msi(int irq,
|
||||
mod_timer(&adapter->watchdog_timer, jiffies + 1);
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
if (icr & E1000_ICR_TS) {
|
||||
u32 tsicr = rd32(E1000_TSICR);
|
||||
|
||||
@@ -5556,7 +5539,6 @@ static irqreturn_t igb_intr_msi(int irq,
|
||||
schedule_work(&adapter->ptp_tx_work);
|
||||
}
|
||||
}
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
napi_schedule(&q_vector->napi);
|
||||
|
||||
@@ -5599,7 +5581,6 @@ static irqreturn_t igb_intr(int irq, voi
|
||||
mod_timer(&adapter->watchdog_timer, jiffies + 1);
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
if (icr & E1000_ICR_TS) {
|
||||
u32 tsicr = rd32(E1000_TSICR);
|
||||
|
||||
@@ -5610,7 +5591,6 @@ static irqreturn_t igb_intr(int irq, voi
|
||||
schedule_work(&adapter->ptp_tx_work);
|
||||
}
|
||||
}
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
|
||||
napi_schedule(&q_vector->napi);
|
||||
|
||||
@@ -5999,9 +5979,7 @@ static bool igb_clean_rx_irq(struct igb_
|
||||
goto next_desc;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
igb_ptp_rx_hwtstamp(q_vector, rx_desc, skb);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
igb_rx_hash(rx_ring, rx_desc, skb);
|
||||
igb_rx_checksum(rx_ring, rx_desc, skb);
|
||||
igb_rx_vlan(rx_ring, rx_desc, skb);
|
||||
@@ -6207,10 +6185,8 @@ static int igb_ioctl(struct net_device *
|
||||
case SIOCGMIIREG:
|
||||
case SIOCSMIIREG:
|
||||
return igb_mii_ioctl(netdev, ifr, cmd);
|
||||
-#ifdef CONFIG_IGB_PTP
|
||||
case SIOCSHWTSTAMP:
|
||||
return igb_ptp_hwtstamp_ioctl(netdev, ifr, cmd);
|
||||
-#endif /* CONFIG_IGB_PTP */
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
--- a/drivers/net/ethernet/intel/ixgbe/Makefile
|
||||
+++ b/drivers/net/ethernet/intel/ixgbe/Makefile
|
||||
@@ -34,11 +34,10 @@ obj-$(CONFIG_IXGBE) += ixgbe.o
|
||||
|
||||
ixgbe-objs := ixgbe_main.o ixgbe_common.o ixgbe_ethtool.o ixgbe_debugfs.o\
|
||||
ixgbe_82599.o ixgbe_82598.o ixgbe_phy.o ixgbe_sriov.o \
|
||||
- ixgbe_mbx.o ixgbe_x540.o ixgbe_lib.o
|
||||
+ ixgbe_mbx.o ixgbe_x540.o ixgbe_lib.o ixgbe_ptp.o
|
||||
|
||||
ixgbe-$(CONFIG_IXGBE_DCB) += ixgbe_dcb.o ixgbe_dcb_82598.o \
|
||||
ixgbe_dcb_82599.o ixgbe_dcb_nl.o
|
||||
|
||||
-ixgbe-$(CONFIG_IXGBE_PTP) += ixgbe_ptp.o
|
||||
ixgbe-$(CONFIG_IXGBE_HWMON) += ixgbe_sysfs.o
|
||||
ixgbe-$(CONFIG_FCOE:m=y) += ixgbe_fcoe.o
|
||||
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
|
||||
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
|
||||
@@ -36,11 +36,9 @@
|
||||
#include <linux/aer.h>
|
||||
#include <linux/if_vlan.h>
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/net_tstamp.h>
|
||||
#include <linux/ptp_clock_kernel.h>
|
||||
-#endif /* CONFIG_IXGBE_PTP */
|
||||
|
||||
#include "ixgbe_type.h"
|
||||
#include "ixgbe_common.h"
|
||||
@@ -571,7 +569,6 @@ struct ixgbe_adapter {
|
||||
u32 interrupt_event;
|
||||
u32 led_reg;
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
struct ptp_clock *ptp_clock;
|
||||
struct ptp_clock_info ptp_caps;
|
||||
unsigned long last_overflow_check;
|
||||
@@ -581,7 +578,6 @@ struct ixgbe_adapter {
|
||||
int rx_hwtstamp_filter;
|
||||
u32 base_incval;
|
||||
u32 cycle_speed;
|
||||
-#endif /* CONFIG_IXGBE_PTP */
|
||||
|
||||
/* SR-IOV */
|
||||
DECLARE_BITMAP(active_vfs, IXGBE_MAX_VF_FUNCTIONS);
|
||||
@@ -739,7 +735,6 @@ static inline struct netdev_queue *txrin
|
||||
return netdev_get_tx_queue(ring->netdev, ring->queue_index);
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
extern void ixgbe_ptp_init(struct ixgbe_adapter *adapter);
|
||||
extern void ixgbe_ptp_stop(struct ixgbe_adapter *adapter);
|
||||
extern void ixgbe_ptp_overflow_check(struct ixgbe_adapter *adapter);
|
||||
@@ -752,6 +747,5 @@ extern int ixgbe_ptp_hwtstamp_ioctl(stru
|
||||
struct ifreq *ifr, int cmd);
|
||||
extern void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter);
|
||||
extern void ixgbe_ptp_check_pps_event(struct ixgbe_adapter *adapter, u32 eicr);
|
||||
-#endif /* CONFIG_IXGBE_PTP */
|
||||
|
||||
#endif /* _IXGBE_H_ */
|
||||
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
|
||||
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
|
||||
@@ -2669,7 +2669,6 @@ static int ixgbe_get_ts_info(struct net_
|
||||
struct ixgbe_adapter *adapter = netdev_priv(dev);
|
||||
|
||||
switch (adapter->hw.mac.type) {
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
case ixgbe_mac_X540:
|
||||
case ixgbe_mac_82599EB:
|
||||
info->so_timestamping =
|
||||
@@ -2695,7 +2694,6 @@ static int ixgbe_get_ts_info(struct net_
|
||||
(1 << HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) |
|
||||
(1 << HWTSTAMP_FILTER_PTP_V2_EVENT);
|
||||
break;
|
||||
-#endif /* CONFIG_IXGBE_PTP */
|
||||
default:
|
||||
return ethtool_op_get_ts_info(dev, info);
|
||||
break;
|
||||
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
|
||||
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
|
||||
@@ -791,10 +791,8 @@ static bool ixgbe_clean_tx_irq(struct ix
|
||||
total_bytes += tx_buffer->bytecount;
|
||||
total_packets += tx_buffer->gso_segs;
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
if (unlikely(tx_buffer->tx_flags & IXGBE_TX_FLAGS_TSTAMP))
|
||||
ixgbe_ptp_tx_hwtstamp(q_vector, tx_buffer->skb);
|
||||
-#endif
|
||||
|
||||
/* free the skb */
|
||||
dev_kfree_skb_any(tx_buffer->skb);
|
||||
@@ -1369,9 +1367,7 @@ static void ixgbe_process_skb_fields(str
|
||||
|
||||
ixgbe_rx_checksum(rx_ring, rx_desc, skb);
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
ixgbe_ptp_rx_hwtstamp(rx_ring->q_vector, rx_desc, skb);
|
||||
-#endif
|
||||
|
||||
if ((dev->features & NETIF_F_HW_VLAN_RX) &&
|
||||
ixgbe_test_staterr(rx_desc, IXGBE_RXD_STAT_VP)) {
|
||||
@@ -2324,10 +2320,8 @@ static inline void ixgbe_irq_enable(stru
|
||||
break;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
if (adapter->hw.mac.type == ixgbe_mac_X540)
|
||||
mask |= IXGBE_EIMS_TIMESYNC;
|
||||
-#endif
|
||||
|
||||
if ((adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) &&
|
||||
!(adapter->flags2 & IXGBE_FLAG2_FDIR_REQUIRES_REINIT))
|
||||
@@ -2393,10 +2387,8 @@ static irqreturn_t ixgbe_msix_other(int
|
||||
|
||||
ixgbe_check_fan_failure(adapter, eicr);
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
if (unlikely(eicr & IXGBE_EICR_TIMESYNC))
|
||||
ixgbe_ptp_check_pps_event(adapter, eicr);
|
||||
-#endif
|
||||
|
||||
/* re-enable the original interrupt state, no lsc, no queues */
|
||||
if (!test_bit(__IXGBE_DOWN, &adapter->state))
|
||||
@@ -2588,10 +2580,8 @@ static irqreturn_t ixgbe_intr(int irq, v
|
||||
}
|
||||
|
||||
ixgbe_check_fan_failure(adapter, eicr);
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
if (unlikely(eicr & IXGBE_EICR_TIMESYNC))
|
||||
ixgbe_ptp_check_pps_event(adapter, eicr);
|
||||
-#endif
|
||||
|
||||
/* would disable interrupts here but EIAM disabled it */
|
||||
napi_schedule(&q_vector->napi);
|
||||
@@ -5482,9 +5472,7 @@ static void ixgbe_watchdog_link_is_up(st
|
||||
break;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
ixgbe_ptp_start_cyclecounter(adapter);
|
||||
-#endif
|
||||
|
||||
e_info(drv, "NIC Link is Up %s, Flow Control: %s\n",
|
||||
(link_speed == IXGBE_LINK_SPEED_10GB_FULL ?
|
||||
@@ -5526,9 +5514,7 @@ static void ixgbe_watchdog_link_is_down(
|
||||
if (ixgbe_is_sfp(hw) && hw->mac.type == ixgbe_mac_82598EB)
|
||||
adapter->flags2 |= IXGBE_FLAG2_SEARCH_FOR_SFP;
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
ixgbe_ptp_start_cyclecounter(adapter);
|
||||
-#endif
|
||||
|
||||
e_info(drv, "NIC Link is Down\n");
|
||||
netif_carrier_off(netdev);
|
||||
@@ -5833,9 +5819,7 @@ static void ixgbe_service_task(struct wo
|
||||
ixgbe_watchdog_subtask(adapter);
|
||||
ixgbe_fdir_reinit_subtask(adapter);
|
||||
ixgbe_check_hang_subtask(adapter);
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
ixgbe_ptp_overflow_check(adapter);
|
||||
-#endif
|
||||
|
||||
ixgbe_service_event_complete(adapter);
|
||||
}
|
||||
@@ -5988,10 +5972,8 @@ static __le32 ixgbe_tx_cmd_type(u32 tx_f
|
||||
if (tx_flags & IXGBE_TX_FLAGS_HW_VLAN)
|
||||
cmd_type |= cpu_to_le32(IXGBE_ADVTXD_DCMD_VLE);
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
if (tx_flags & IXGBE_TX_FLAGS_TSTAMP)
|
||||
cmd_type |= cpu_to_le32(IXGBE_ADVTXD_MAC_TSTAMP);
|
||||
-#endif
|
||||
|
||||
/* set segmentation enable bits for TSO/FSO */
|
||||
#ifdef IXGBE_FCOE
|
||||
@@ -6393,12 +6375,10 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct
|
||||
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) {
|
||||
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
|
||||
tx_flags |= IXGBE_TX_FLAGS_TSTAMP;
|
||||
}
|
||||
-#endif
|
||||
|
||||
#ifdef CONFIG_PCI_IOV
|
||||
/*
|
||||
@@ -6547,10 +6527,8 @@ static int ixgbe_ioctl(struct net_device
|
||||
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
||||
|
||||
switch (cmd) {
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
case SIOCSHWTSTAMP:
|
||||
return ixgbe_ptp_hwtstamp_ioctl(adapter, req, cmd);
|
||||
-#endif
|
||||
default:
|
||||
return mdio_mii_ioctl(&adapter->hw.phy.mdio, if_mii(req), cmd);
|
||||
}
|
||||
@@ -7364,9 +7342,7 @@ static int __devinit ixgbe_probe(struct
|
||||
|
||||
device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
ixgbe_ptp_init(adapter);
|
||||
-#endif /* CONFIG_IXGBE_PTP*/
|
||||
|
||||
/* save off EEPROM version number */
|
||||
hw->eeprom.ops.read(hw, 0x2e, &adapter->eeprom_verh);
|
||||
@@ -7505,9 +7481,7 @@ static void __devexit ixgbe_remove(struc
|
||||
set_bit(__IXGBE_DOWN, &adapter->state);
|
||||
cancel_work_sync(&adapter->service_task);
|
||||
|
||||
-#ifdef CONFIG_IXGBE_PTP
|
||||
ixgbe_ptp_stop(adapter);
|
||||
-#endif
|
||||
|
||||
#ifdef CONFIG_IXGBE_DCA
|
||||
if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
@@ -20,17 +20,3 @@ config PCH_GBE
|
||||
purpose use.
|
||||
ML7223/ML7831 is companion chip for Intel Atom E6xx series.
|
||||
ML7223/ML7831 is completely compatible for Intel EG20T PCH.
|
||||
-
|
||||
-if PCH_GBE
|
||||
-
|
||||
-config PCH_PTP
|
||||
- bool "PCH PTP clock support"
|
||||
- default n
|
||||
- select PTP_1588_CLOCK
|
||||
- select PTP_1588_CLOCK_PCH
|
||||
- ---help---
|
||||
- Say Y here if you want to use Precision Time Protocol (PTP) in the
|
||||
- driver. PTP is a method to precisely synchronize distributed clocks
|
||||
- over Ethernet networks.
|
||||
-
|
||||
-endif # PCH_GBE
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
|
||||
@@ -649,7 +649,6 @@ extern void pch_gbe_free_tx_resources(st
|
||||
extern void pch_gbe_free_rx_resources(struct pch_gbe_adapter *adapter,
|
||||
struct pch_gbe_rx_ring *rx_ring);
|
||||
extern void pch_gbe_update_stats(struct pch_gbe_adapter *adapter);
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
extern u32 pch_ch_control_read(struct pci_dev *pdev);
|
||||
extern void pch_ch_control_write(struct pci_dev *pdev, u32 val);
|
||||
extern u32 pch_ch_event_read(struct pci_dev *pdev);
|
||||
@@ -659,7 +658,6 @@ extern u32 pch_src_uuid_hi_read(struct p
|
||||
extern u64 pch_rx_snap_read(struct pci_dev *pdev);
|
||||
extern u64 pch_tx_snap_read(struct pci_dev *pdev);
|
||||
extern int pch_set_station_address(u8 *addr, struct pci_dev *pdev);
|
||||
-#endif
|
||||
|
||||
/* pch_gbe_param.c */
|
||||
extern void pch_gbe_check_options(struct pch_gbe_adapter *adapter);
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
@@ -21,10 +21,8 @@
|
||||
#include "pch_gbe.h"
|
||||
#include "pch_gbe_api.h"
|
||||
#include <linux/module.h>
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
#include <linux/net_tstamp.h>
|
||||
#include <linux/ptp_classify.h>
|
||||
-#endif
|
||||
|
||||
#define DRV_VERSION "1.01"
|
||||
const char pch_driver_version[] = DRV_VERSION;
|
||||
@@ -98,7 +96,6 @@ const char pch_driver_version[] = DRV_VE
|
||||
|
||||
#define PCH_GBE_INT_DISABLE_ALL 0
|
||||
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
/* Macros for ieee1588 */
|
||||
/* 0x40 Time Synchronization Channel Control Register Bits */
|
||||
#define MASTER_MODE (1<<0)
|
||||
@@ -113,7 +110,6 @@ const char pch_driver_version[] = DRV_VE
|
||||
|
||||
#define PTP_L4_MULTICAST_SA "01:00:5e:00:01:81"
|
||||
#define PTP_L2_MULTICAST_SA "01:1b:19:00:00:00"
|
||||
-#endif
|
||||
|
||||
static unsigned int copybreak __read_mostly = PCH_GBE_COPYBREAK_DEFAULT;
|
||||
|
||||
@@ -122,7 +118,6 @@ static void pch_gbe_mdio_write(struct ne
|
||||
int data);
|
||||
static void pch_gbe_set_multi(struct net_device *netdev);
|
||||
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
static struct sock_filter ptp_filter[] = {
|
||||
PTP_FILTER
|
||||
};
|
||||
@@ -291,7 +286,6 @@ static int hwtstamp_ioctl(struct net_dev
|
||||
|
||||
return copy_to_user(ifr->ifr_data, &cfg, sizeof(cfg)) ? -EFAULT : 0;
|
||||
}
|
||||
-#endif
|
||||
|
||||
inline void pch_gbe_mac_load_mac_addr(struct pch_gbe_hw *hw)
|
||||
{
|
||||
@@ -1244,9 +1238,7 @@ static void pch_gbe_tx_queue(struct pch_
|
||||
(int)sizeof(struct pch_gbe_tx_desc) * ring_num,
|
||||
&hw->reg->TX_DSC_SW_P);
|
||||
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
pch_tx_timestamp(adapter, skb);
|
||||
-#endif
|
||||
|
||||
dev_kfree_skb_any(skb);
|
||||
}
|
||||
@@ -1730,9 +1722,7 @@ pch_gbe_clean_rx(struct pch_gbe_adapter
|
||||
/* Write meta date of skb */
|
||||
skb_put(skb, length);
|
||||
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
pch_rx_timestamp(adapter, skb);
|
||||
-#endif
|
||||
|
||||
skb->protocol = eth_type_trans(skb, netdev);
|
||||
if (tcp_ip_status & PCH_GBE_RXD_ACC_STAT_TCPIPOK)
|
||||
@@ -2334,10 +2324,8 @@ static int pch_gbe_ioctl(struct net_devi
|
||||
|
||||
pr_debug("cmd : 0x%04x\n", cmd);
|
||||
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
if (cmd == SIOCSHWTSTAMP)
|
||||
return hwtstamp_ioctl(netdev, ifr, cmd);
|
||||
-#endif
|
||||
|
||||
return generic_mii_ioctl(&adapter->mii, if_mii(ifr), cmd, NULL);
|
||||
}
|
||||
@@ -2623,14 +2611,12 @@ static int pch_gbe_probe(struct pci_dev
|
||||
goto err_free_netdev;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_PCH_PTP
|
||||
adapter->ptp_pdev = pci_get_bus_and_slot(adapter->pdev->bus->number,
|
||||
PCI_DEVFN(12, 4));
|
||||
if (ptp_filter_init(ptp_filter, ARRAY_SIZE(ptp_filter))) {
|
||||
pr_err("Bad ptp filter\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
-#endif
|
||||
|
||||
netdev->netdev_ops = &pch_gbe_netdev_ops;
|
||||
netdev->watchdog_timeo = PCH_GBE_WATCHDOG_PERIOD;
|
||||
--- a/drivers/net/ethernet/sfc/Kconfig
|
||||
+++ b/drivers/net/ethernet/sfc/Kconfig
|
||||
@@ -34,10 +34,3 @@ config SFC_SRIOV
|
||||
This enables support for the SFC9000 I/O Virtualization
|
||||
features, allowing accelerated network performance in
|
||||
virtualized environments.
|
||||
-config SFC_PTP
|
||||
- bool "Solarflare SFC9000-family PTP support"
|
||||
- depends on SFC && PTP_1588_CLOCK && !(SFC=y && PTP_1588_CLOCK=m)
|
||||
- default y
|
||||
- ---help---
|
||||
- This enables support for the Precision Time Protocol (PTP)
|
||||
- on SFC9000-family NICs
|
||||
--- a/drivers/net/ethernet/sfc/Makefile
|
||||
+++ b/drivers/net/ethernet/sfc/Makefile
|
||||
@@ -2,9 +2,8 @@ sfc-y += efx.o nic.o falcon.o siena.o
|
||||
falcon_xmac.o mcdi_mac.o \
|
||||
selftest.o ethtool.o qt202x_phy.o mdio_10g.o \
|
||||
tenxpress.o txc43128_phy.o falcon_boards.o \
|
||||
- mcdi.o mcdi_phy.o mcdi_mon.o
|
||||
+ mcdi.o mcdi_phy.o mcdi_mon.o ptp.o
|
||||
sfc-$(CONFIG_SFC_MTD) += mtd.o
|
||||
sfc-$(CONFIG_SFC_SRIOV) += siena_sriov.o
|
||||
-sfc-$(CONFIG_SFC_PTP) += ptp.o
|
||||
|
||||
obj-$(CONFIG_SFC) += sfc.o
|
||||
--- a/drivers/net/ethernet/sfc/net_driver.h
|
||||
+++ b/drivers/net/ethernet/sfc/net_driver.h
|
||||
@@ -868,9 +868,7 @@ struct efx_nic {
|
||||
struct work_struct peer_work;
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_SFC_PTP
|
||||
struct efx_ptp_data *ptp_data;
|
||||
-#endif
|
||||
|
||||
/* The following fields may be written more often */
|
||||
|
||||
--- a/drivers/net/ethernet/sfc/nic.h
|
||||
+++ b/drivers/net/ethernet/sfc/nic.h
|
||||
@@ -252,7 +252,6 @@ extern int efx_sriov_set_vf_spoofchk(str
|
||||
bool spoofchk);
|
||||
|
||||
struct ethtool_ts_info;
|
||||
-#ifdef CONFIG_SFC_PTP
|
||||
extern void efx_ptp_probe(struct efx_nic *efx);
|
||||
extern int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd);
|
||||
extern int efx_ptp_get_ts_info(struct net_device *net_dev,
|
||||
@@ -260,31 +259,6 @@ extern int efx_ptp_get_ts_info(struct ne
|
||||
extern bool efx_ptp_is_ptp_tx(struct efx_nic *efx, struct sk_buff *skb);
|
||||
extern int efx_ptp_tx(struct efx_nic *efx, struct sk_buff *skb);
|
||||
extern void efx_ptp_event(struct efx_nic *efx, efx_qword_t *ev);
|
||||
-#else
|
||||
-static inline void efx_ptp_probe(struct efx_nic *efx) {}
|
||||
-static inline int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd)
|
||||
-{
|
||||
- return -EOPNOTSUPP;
|
||||
-}
|
||||
-static inline int efx_ptp_get_ts_info(struct net_device *net_dev,
|
||||
- struct ethtool_ts_info *ts_info)
|
||||
-{
|
||||
- ts_info->so_timestamping = (SOF_TIMESTAMPING_SOFTWARE |
|
||||
- SOF_TIMESTAMPING_RX_SOFTWARE);
|
||||
- ts_info->phc_index = -1;
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-static inline bool efx_ptp_is_ptp_tx(struct efx_nic *efx, struct sk_buff *skb)
|
||||
-{
|
||||
- return false;
|
||||
-}
|
||||
-static inline int efx_ptp_tx(struct efx_nic *efx, struct sk_buff *skb)
|
||||
-{
|
||||
- return NETDEV_TX_OK;
|
||||
-}
|
||||
-static inline void efx_ptp_event(struct efx_nic *efx, efx_qword_t *ev) {}
|
||||
-#endif
|
||||
|
||||
extern const struct efx_nic_type falcon_a1_nic_type;
|
||||
extern const struct efx_nic_type falcon_b0_nic_type;
|
||||
--- a/drivers/ptp/Kconfig
|
||||
+++ b/drivers/ptp/Kconfig
|
||||
@@ -25,8 +25,9 @@ config PTP_1588_CLOCK
|
||||
|
||||
config PTP_1588_CLOCK_GIANFAR
|
||||
tristate "Freescale eTSEC as PTP clock"
|
||||
- depends on PTP_1588_CLOCK
|
||||
depends on GIANFAR
|
||||
+ select PTP_1588_CLOCK
|
||||
+ default y
|
||||
help
|
||||
This driver adds support for using the eTSEC as a PTP
|
||||
clock. This clock is only useful if your PTP programs are
|
||||
@@ -38,8 +39,9 @@ config PTP_1588_CLOCK_GIANFAR
|
||||
|
||||
config PTP_1588_CLOCK_IXP46X
|
||||
tristate "Intel IXP46x as PTP clock"
|
||||
- depends on PTP_1588_CLOCK
|
||||
depends on IXP4XX_ETH
|
||||
+ select PTP_1588_CLOCK
|
||||
+ default y
|
||||
help
|
||||
This driver adds support for using the IXP46X as a PTP
|
||||
clock. This clock is only useful if your PTP programs are
|
||||
@@ -50,13 +52,13 @@ config PTP_1588_CLOCK_IXP46X
|
||||
will be called ptp_ixp46x.
|
||||
|
||||
comment "Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks."
|
||||
- depends on PTP_1588_CLOCK && (PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n)
|
||||
+ depends on PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n
|
||||
|
||||
config DP83640_PHY
|
||||
tristate "Driver for the National Semiconductor DP83640 PHYTER"
|
||||
- depends on PTP_1588_CLOCK
|
||||
depends on NETWORK_PHY_TIMESTAMPING
|
||||
depends on PHYLIB
|
||||
+ select PTP_1588_CLOCK
|
||||
---help---
|
||||
Supports the DP83640 PHYTER with IEEE 1588 features.
|
||||
|
||||
@@ -70,8 +72,9 @@ config DP83640_PHY
|
||||
|
||||
config PTP_1588_CLOCK_PCH
|
||||
tristate "Intel PCH EG20T as PTP clock"
|
||||
- depends on PTP_1588_CLOCK
|
||||
depends on PCH_GBE
|
||||
+ select PTP_1588_CLOCK
|
||||
+ default y
|
||||
help
|
||||
This driver adds support for using the PCH EG20T as a PTP
|
||||
clock. The hardware supports time stamping of PTP packets
|
69
debian/patches/bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
vendored
Normal file
69
debian/patches/bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
vendored
Normal file
|
@ -0,0 +1,69 @@
|
|||
From: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Date: Wed, 31 Oct 2012 15:32:44 +0000
|
||||
Subject: [2/5] ptp: Make PTP_1588_CLOCK select rather than depend on PPS
|
||||
|
||||
commit 42a7ccef0a06519e2ea0be71d7c0f4ed9198509f upstream.
|
||||
|
||||
PTP hardware clock drivers that select PTP_1588_CLOCK must currently
|
||||
also select PPS. For those drivers that don't, the user must enable
|
||||
PPS, then enable PTP_1588_CLOCK, then the driver. Simplify things for
|
||||
developers and users by putting this selection in one place.
|
||||
|
||||
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/intel/Kconfig | 2 --
|
||||
drivers/net/ethernet/oki-semi/pch_gbe/Kconfig | 1 -
|
||||
drivers/ptp/Kconfig | 5 +----
|
||||
3 files changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
|
||||
index 9e49217..d5b359d 100644
|
||||
--- a/drivers/net/ethernet/intel/Kconfig
|
||||
+++ b/drivers/net/ethernet/intel/Kconfig
|
||||
@@ -124,7 +124,6 @@ config IGB_PTP
|
||||
bool "PTP Hardware Clock (PHC)"
|
||||
default n
|
||||
depends on IGB
|
||||
- select PPS
|
||||
select PTP_1588_CLOCK
|
||||
---help---
|
||||
Say Y here if you want to use PTP Hardware Clock (PHC) in the
|
||||
@@ -226,7 +225,6 @@ config IXGBE_PTP
|
||||
bool "PTP Clock Support"
|
||||
default n
|
||||
depends on IXGBE
|
||||
- select PPS
|
||||
select PTP_1588_CLOCK
|
||||
---help---
|
||||
Say Y here if you want support for 1588 Timestamping with a
|
||||
diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
index 9867bc6..d0e36f2 100644
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
|
||||
@@ -26,7 +26,6 @@ if PCH_GBE
|
||||
config PCH_PTP
|
||||
bool "PCH PTP clock support"
|
||||
default n
|
||||
- select PPS
|
||||
select PTP_1588_CLOCK
|
||||
select PTP_1588_CLOCK_PCH
|
||||
---help---
|
||||
diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig
|
||||
index a6e4b7c..131ef03 100644
|
||||
--- a/drivers/ptp/Kconfig
|
||||
+++ b/drivers/ptp/Kconfig
|
||||
@@ -4,12 +4,9 @@
|
||||
|
||||
menu "PTP clock support"
|
||||
|
||||
-comment "Enable Device Drivers -> PPS to see the PTP clock options."
|
||||
- depends on PPS=n
|
||||
-
|
||||
config PTP_1588_CLOCK
|
||||
tristate "PTP clock support"
|
||||
- depends on PPS
|
||||
+ select PPS
|
||||
help
|
||||
The IEEE 1588 standard defines a method to precisely
|
||||
synchronize distributed clocks over Ethernet networks. The
|
|
@ -0,0 +1,29 @@
|
|||
From: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Date: Thu, 1 Nov 2012 11:22:22 +0000
|
||||
Subject: [4/5] sfc: Select PTP_1588_CLOCK
|
||||
|
||||
commit 3ba368c43565f31528b3aea585bb4119fded4eb1 upstream.
|
||||
|
||||
This was missed in commit a24006ed12616bde1bbdb26868495906a212d8dc
|
||||
('ptp: Enable clock drivers along with associated net/PHY drivers')
|
||||
which enabled sfc's clock driver unconditionally.
|
||||
|
||||
Reported-by: kbuild test robot <fengguang.wu@intel.com>
|
||||
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/sfc/Kconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/net/ethernet/sfc/Kconfig b/drivers/net/ethernet/sfc/Kconfig
|
||||
index fb3cbc2..3ab2c428 100644
|
||||
--- a/drivers/net/ethernet/sfc/Kconfig
|
||||
+++ b/drivers/net/ethernet/sfc/Kconfig
|
||||
@@ -5,6 +5,7 @@ config SFC
|
||||
select CRC32
|
||||
select I2C
|
||||
select I2C_ALGOBIT
|
||||
+ select PTP_1588_CLOCK
|
||||
---help---
|
||||
This driver supports 10-gigabit Ethernet cards based on
|
||||
the Solarflare SFC4000 and SFC9000-family controllers.
|
|
@ -60,3 +60,8 @@ bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
|
|||
bugfix/all/exec-do-not-leave-bprm-interp-on-stack.patch
|
||||
bugfix/all/exec-use-ELOOP-for-max-recursion-depth.patch
|
||||
bugfix/all/megaraid_sas-fix-memory-leak-if-SGL-has-zero-length-entries.patch
|
||||
bugfix/all/pps-ptp-Remove-dependencies-on-EXPERIMENTAL.patch
|
||||
bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
|
||||
bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
|
||||
bugfix/all/sfc-Select-PTP_1588_CLOCK.patch
|
||||
bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
|
||||
|
|
Loading…
Reference in New Issue