All patches of LSDK 19.03 were ported to Openwrt kernel. We still used an all-in-one patch for each IP/feature for OpenWrt. Below are the changes this patch introduced. - Updated original IP/feature patches to LSDK 19.03. - Added new IP/feature patches for eTSEC/PTP/TMU. - Squashed scattered patches into IP/feature patches. - Updated config-4.14 correspondingly. - Refreshed all patches. More info about LSDK and the kernel: - https://lsdk.github.io/components.html - https://source.codeaurora.org/external/qoriq/qoriq-components/linux Signed-off-by: Biwen Li <biwen.li@nxp.com> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From f0f6e88696957d376d8875f675c1caf75a33fd67 Mon Sep 17 00:00:00 2001
 | 
						|
From: Biwen Li <biwen.li@nxp.com>
 | 
						|
Date: Wed, 17 Apr 2019 18:58:34 +0800
 | 
						|
Subject: [PATCH] etsec: support layerscape
 | 
						|
 | 
						|
This is an integrated patch of etsec for layerscape
 | 
						|
 | 
						|
Signed-off-by: Biwen Li <biwen.li@nxp.com>
 | 
						|
Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
						|
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
 | 
						|
---
 | 
						|
 drivers/net/ethernet/freescale/gianfar.h      |  3 ---
 | 
						|
 .../net/ethernet/freescale/gianfar_ethtool.c  | 23 +++++++++++++++----
 | 
						|
 2 files changed, 18 insertions(+), 8 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/ethernet/freescale/gianfar.h
 | 
						|
+++ b/drivers/net/ethernet/freescale/gianfar.h
 | 
						|
@@ -1372,7 +1372,4 @@ struct filer_table {
 | 
						|
 	struct gfar_filer_entry fe[MAX_FILER_CACHE_IDX + 20];
 | 
						|
 };
 | 
						|
 
 | 
						|
-/* The gianfar_ptp module will set this variable */
 | 
						|
-extern int gfar_phc_index;
 | 
						|
-
 | 
						|
 #endif /* __GIANFAR_H */
 | 
						|
--- a/drivers/net/ethernet/freescale/gianfar_ethtool.c
 | 
						|
+++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c
 | 
						|
@@ -41,6 +41,8 @@
 | 
						|
 #include <linux/phy.h>
 | 
						|
 #include <linux/sort.h>
 | 
						|
 #include <linux/if_vlan.h>
 | 
						|
+#include <linux/of_platform.h>
 | 
						|
+#include <linux/fsl/ptp_qoriq.h>
 | 
						|
 
 | 
						|
 #include "gianfar.h"
 | 
						|
 
 | 
						|
@@ -1509,24 +1511,35 @@ static int gfar_get_nfc(struct net_devic
 | 
						|
 	return ret;
 | 
						|
 }
 | 
						|
 
 | 
						|
-int gfar_phc_index = -1;
 | 
						|
-EXPORT_SYMBOL(gfar_phc_index);
 | 
						|
-
 | 
						|
 static int gfar_get_ts_info(struct net_device *dev,
 | 
						|
 			    struct ethtool_ts_info *info)
 | 
						|
 {
 | 
						|
 	struct gfar_private *priv = netdev_priv(dev);
 | 
						|
+	struct platform_device *ptp_dev;
 | 
						|
+	struct device_node *ptp_node;
 | 
						|
+	struct qoriq_ptp *ptp = NULL;
 | 
						|
+
 | 
						|
+	info->phc_index = -1;
 | 
						|
 
 | 
						|
 	if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_TIMER)) {
 | 
						|
 		info->so_timestamping = SOF_TIMESTAMPING_RX_SOFTWARE |
 | 
						|
 					SOF_TIMESTAMPING_SOFTWARE;
 | 
						|
-		info->phc_index = -1;
 | 
						|
 		return 0;
 | 
						|
 	}
 | 
						|
+
 | 
						|
+	ptp_node = of_find_compatible_node(NULL, NULL, "fsl,etsec-ptp");
 | 
						|
+	if (ptp_node) {
 | 
						|
+		ptp_dev = of_find_device_by_node(ptp_node);
 | 
						|
+		if (ptp_dev)
 | 
						|
+			ptp = platform_get_drvdata(ptp_dev);
 | 
						|
+	}
 | 
						|
+
 | 
						|
+	if (ptp)
 | 
						|
+		info->phc_index = ptp->phc_index;
 | 
						|
+
 | 
						|
 	info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE |
 | 
						|
 				SOF_TIMESTAMPING_RX_HARDWARE |
 | 
						|
 				SOF_TIMESTAMPING_RAW_HARDWARE;
 | 
						|
-	info->phc_index = gfar_phc_index;
 | 
						|
 	info->tx_types = (1 << HWTSTAMP_TX_OFF) |
 | 
						|
 			 (1 << HWTSTAMP_TX_ON);
 | 
						|
 	info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
 |