[kernel] r19641 - in dists/trunk/linux/debian: . patches patches/bugfix/all

Ben Hutchings benh at alioth.debian.org
Sun Dec 23 23:06:59 UTC 2012


Author: benh
Date: Sun Dec 23 23:06:58 2012
New Revision: 19641

Log:
ptp: Enable clock drivers along with associated net/PHY drivers

Added:
   dists/trunk/linux/debian/patches/bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
   dists/trunk/linux/debian/patches/bugfix/all/pps-ptp-Remove-dependencies-on-EXPERIMENTAL.patch
   dists/trunk/linux/debian/patches/bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
   dists/trunk/linux/debian/patches/bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
   dists/trunk/linux/debian/patches/bugfix/all/sfc-Select-PTP_1588_CLOCK.patch
Modified:
   dists/trunk/linux/debian/changelog
   dists/trunk/linux/debian/patches/series

Modified: dists/trunk/linux/debian/changelog
==============================================================================
--- dists/trunk/linux/debian/changelog	Sun Dec 23 22:52:15 2012	(r19640)
+++ dists/trunk/linux/debian/changelog	Sun Dec 23 23:06:58 2012	(r19641)
@@ -43,6 +43,7 @@
   * 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 at debian.org>  Thu, 06 Dec 2012 18:14:33 +0100
 

Added: dists/trunk/linux/debian/patches/bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux/debian/patches/bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch	Sun Dec 23 23:06:58 2012	(r19641)
@@ -0,0 +1,48 @@
+From: Ben Hutchings <bhutchings at 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 at xenotime.net>
+Signed-off-by: Ben Hutchings <bhutchings at solarflare.com>
+Acked-by: Randy Dunlap <rdunlap at xenotime.net>
+Signed-off-by: David S. Miller <davem at 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

Added: dists/trunk/linux/debian/patches/bugfix/all/pps-ptp-Remove-dependencies-on-EXPERIMENTAL.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux/debian/patches/bugfix/all/pps-ptp-Remove-dependencies-on-EXPERIMENTAL.patch	Sun Dec 23 23:06:58 2012	(r19641)
@@ -0,0 +1,77 @@
+From: Ben Hutchings <bhutchings at 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 at solarflare.com>
+Signed-off-by: David S. Miller <davem at 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

Added: dists/trunk/linux/debian/patches/bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux/debian/patches/bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch	Sun Dec 23 23:06:58 2012	(r19641)
@@ -0,0 +1,784 @@
+From: Ben Hutchings <bhutchings at 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 at solarflare.com>
+Signed-off-by: David S. Miller <davem at 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

Added: dists/trunk/linux/debian/patches/bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux/debian/patches/bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch	Sun Dec 23 23:06:58 2012	(r19641)
@@ -0,0 +1,69 @@
+From: Ben Hutchings <bhutchings at 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 at solarflare.com>
+Signed-off-by: David S. Miller <davem at 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

Added: dists/trunk/linux/debian/patches/bugfix/all/sfc-Select-PTP_1588_CLOCK.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux/debian/patches/bugfix/all/sfc-Select-PTP_1588_CLOCK.patch	Sun Dec 23 23:06:58 2012	(r19641)
@@ -0,0 +1,29 @@
+From: Ben Hutchings <bhutchings at 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 at intel.com>
+Signed-off-by: Ben Hutchings <bhutchings at solarflare.com>
+Signed-off-by: David S. Miller <davem at 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.

Modified: dists/trunk/linux/debian/patches/series
==============================================================================
--- dists/trunk/linux/debian/patches/series	Sun Dec 23 22:52:15 2012	(r19640)
+++ dists/trunk/linux/debian/patches/series	Sun Dec 23 23:06:58 2012	(r19641)
@@ -60,3 +60,8 @@
 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



More information about the Kernel-svn-changes mailing list