All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode.
@ 2019-04-16  8:46 Sudarsana Reddy Kalluru
  2019-04-16  8:46 ` [PATCH net-next 1/2] bnx2x: Replace magic numbers with macro definitions Sudarsana Reddy Kalluru
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Sudarsana Reddy Kalluru @ 2019-04-16  8:46 UTC (permalink / raw)
  To: davem, aelior; +Cc: netdev

The patch series adds driver support for timestamping the ptp packets
in peer-delay (P2P) mode.
 - Patch (1) performs the code cleanup.
 - Patch (2) adds the required implementation.

Please consider applying it 'net-next' tree.

Sudarsana Reddy Kalluru (2):
  bnx2x: Replace magic numbers with macro definitions.
  bnx2x: Add support for detection of P2P event packets.

 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 52 +++++++++++++++---------
 1 file changed, 32 insertions(+), 20 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH net-next 1/2] bnx2x: Replace magic numbers with macro definitions.
  2019-04-16  8:46 [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode Sudarsana Reddy Kalluru
@ 2019-04-16  8:46 ` Sudarsana Reddy Kalluru
  2019-04-16  8:46 ` [PATCH net-next 2/2] bnx2x: Add support for detection of P2P event packets Sudarsana Reddy Kalluru
  2019-04-17  4:35 ` [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Sudarsana Reddy Kalluru @ 2019-04-16  8:46 UTC (permalink / raw)
  To: davem, aelior; +Cc: netdev

This patch performs code cleanup by defining macros for the ptp-timestamp
filters.

Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 50 ++++++++++++++----------
 1 file changed, 30 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 626b491..0ebc526 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -15376,27 +15376,45 @@ static int bnx2x_enable_ptp_packets(struct bnx2x *bp)
 	return 0;
 }
 
+#define BNX2X_PTP_TX_ON_PARAM_MASK 0x6AA
+#define BNX2X_PTP_TX_ON_RULE_MASK 0x3EEE
+#define BNX2X_PTP_V1_L4_PARAM_MASK 0x7EE
+#define BNX2X_PTP_V1_L4_RULE_MASK 0x3FFE
+#define BNX2X_PTP_V2_L4_PARAM_MASK 0x7EA
+#define BNX2X_PTP_V2_L4_RULE_MASK 0x3FEE
+#define BNX2X_PTP_V2_L2_PARAM_MASK 0x6BF
+#define BNX2X_PTP_V2_L2_RULE_MASK 0x3EFF
+#define BNX2X_PTP_V2_PARAM_MASK 0x6AA
+#define BNX2X_PTP_V2_RULE_MASK 0x3EEE
+
 int bnx2x_configure_ptp_filters(struct bnx2x *bp)
 {
 	int port = BP_PORT(bp);
+	u32 param, rule;
 	int rc;
 
 	if (!bp->hwtstamp_ioctl_called)
 		return 0;
 
+	param = port ? NIG_REG_P1_TLLH_PTP_PARAM_MASK :
+		NIG_REG_P0_TLLH_PTP_PARAM_MASK;
+	rule = port ? NIG_REG_P1_TLLH_PTP_RULE_MASK :
+		NIG_REG_P0_TLLH_PTP_RULE_MASK;
 	switch (bp->tx_type) {
 	case HWTSTAMP_TX_ON:
 		bp->flags |= TX_TIMESTAMPING_EN;
-		REG_WR(bp, port ? NIG_REG_P1_TLLH_PTP_PARAM_MASK :
-		       NIG_REG_P0_TLLH_PTP_PARAM_MASK, 0x6AA);
-		REG_WR(bp, port ? NIG_REG_P1_TLLH_PTP_RULE_MASK :
-		       NIG_REG_P0_TLLH_PTP_RULE_MASK, 0x3EEE);
+		REG_WR(bp, param, BNX2X_PTP_TX_ON_PARAM_MASK);
+		REG_WR(bp, rule, BNX2X_PTP_TX_ON_RULE_MASK);
 		break;
 	case HWTSTAMP_TX_ONESTEP_SYNC:
 		BNX2X_ERR("One-step timestamping is not supported\n");
 		return -ERANGE;
 	}
 
+	param = port ? NIG_REG_P1_LLH_PTP_PARAM_MASK :
+		NIG_REG_P0_LLH_PTP_PARAM_MASK;
+	rule = port ? NIG_REG_P1_LLH_PTP_RULE_MASK :
+		NIG_REG_P0_LLH_PTP_RULE_MASK;
 	switch (bp->rx_filter) {
 	case HWTSTAMP_FILTER_NONE:
 		break;
@@ -15410,30 +15428,24 @@ int bnx2x_configure_ptp_filters(struct bnx2x *bp)
 	case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ:
 		bp->rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
 		/* Initialize PTP detection for UDP/IPv4 events */
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_PARAM_MASK :
-		       NIG_REG_P0_LLH_PTP_PARAM_MASK, 0x7EE);
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_RULE_MASK :
-		       NIG_REG_P0_LLH_PTP_RULE_MASK, 0x3FFE);
+		REG_WR(bp, param, BNX2X_PTP_V1_L4_PARAM_MASK);
+		REG_WR(bp, rule, BNX2X_PTP_V1_L4_RULE_MASK);
 		break;
 	case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
 	case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
 	case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
 		bp->rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_EVENT;
 		/* Initialize PTP detection for UDP/IPv4 or UDP/IPv6 events */
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_PARAM_MASK :
-		       NIG_REG_P0_LLH_PTP_PARAM_MASK, 0x7EA);
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_RULE_MASK :
-		       NIG_REG_P0_LLH_PTP_RULE_MASK, 0x3FEE);
+		REG_WR(bp, param, BNX2X_PTP_V2_L4_PARAM_MASK);
+		REG_WR(bp, rule, BNX2X_PTP_V2_L4_RULE_MASK);
 		break;
 	case HWTSTAMP_FILTER_PTP_V2_L2_EVENT:
 	case HWTSTAMP_FILTER_PTP_V2_L2_SYNC:
 	case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ:
 		bp->rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
 		/* Initialize PTP detection L2 events */
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_PARAM_MASK :
-		       NIG_REG_P0_LLH_PTP_PARAM_MASK, 0x6BF);
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_RULE_MASK :
-		       NIG_REG_P0_LLH_PTP_RULE_MASK, 0x3EFF);
+		REG_WR(bp, param, BNX2X_PTP_V2_L2_PARAM_MASK);
+		REG_WR(bp, rule, BNX2X_PTP_V2_L2_RULE_MASK);
 
 		break;
 	case HWTSTAMP_FILTER_PTP_V2_EVENT:
@@ -15441,10 +15453,8 @@ int bnx2x_configure_ptp_filters(struct bnx2x *bp)
 	case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ:
 		bp->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
 		/* Initialize PTP detection L2, UDP/IPv4 or UDP/IPv6 events */
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_PARAM_MASK :
-		       NIG_REG_P0_LLH_PTP_PARAM_MASK, 0x6AA);
-		REG_WR(bp, port ? NIG_REG_P1_LLH_PTP_RULE_MASK :
-		       NIG_REG_P0_LLH_PTP_RULE_MASK, 0x3EEE);
+		REG_WR(bp, param, BNX2X_PTP_V2_PARAM_MASK);
+		REG_WR(bp, rule, BNX2X_PTP_V2_RULE_MASK);
 		break;
 	}
 
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH net-next 2/2] bnx2x: Add support for detection of P2P event packets.
  2019-04-16  8:46 [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode Sudarsana Reddy Kalluru
  2019-04-16  8:46 ` [PATCH net-next 1/2] bnx2x: Replace magic numbers with macro definitions Sudarsana Reddy Kalluru
@ 2019-04-16  8:46 ` Sudarsana Reddy Kalluru
  2019-04-17  4:35 ` [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Sudarsana Reddy Kalluru @ 2019-04-16  8:46 UTC (permalink / raw)
  To: davem, aelior; +Cc: netdev

The patch adds support for detecting the P2P (peer-to-peer) event packets.
This is required for timestamping the PTP packets in peer delay mode.
Unmask the below bits (set to 0) for device to detect the p2p packets.
  NIG_REG_P0/1_LLH_PTP_PARAM_MASK
  NIG_REG_P0/1_TLLH_PTP_PARAM_MASK
    bit 1 - IPv4 DA 1 of 224.0.0.107.
    bit 3 - IPv6 DA 1 of 0xFF02:0:0:0:0:0:0:6B.
    bit 9 - MAC DA 1 of 0x01-80-C2-00-00-0E.
  NIG_REG_P0/1_LLH_PTP_RULE_MASK
  NIG_REG_P0/1_TLLH_PTP_RULE_MASK
    bit 2 - {IPv4 DA 1; UDP DP 0}
    bit 6 - MAC Ethertype 0 of 0x88F7.
    bit 9 - MAC DA 1 of 0x01-80-C2-00-00-0E.

Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 0ebc526..0d6c98a 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -15376,16 +15376,18 @@ static int bnx2x_enable_ptp_packets(struct bnx2x *bp)
 	return 0;
 }
 
-#define BNX2X_PTP_TX_ON_PARAM_MASK 0x6AA
-#define BNX2X_PTP_TX_ON_RULE_MASK 0x3EEE
-#define BNX2X_PTP_V1_L4_PARAM_MASK 0x7EE
-#define BNX2X_PTP_V1_L4_RULE_MASK 0x3FFE
-#define BNX2X_PTP_V2_L4_PARAM_MASK 0x7EA
-#define BNX2X_PTP_V2_L4_RULE_MASK 0x3FEE
-#define BNX2X_PTP_V2_L2_PARAM_MASK 0x6BF
-#define BNX2X_PTP_V2_L2_RULE_MASK 0x3EFF
-#define BNX2X_PTP_V2_PARAM_MASK 0x6AA
-#define BNX2X_PTP_V2_RULE_MASK 0x3EEE
+#define BNX2X_P2P_DETECT_PARAM_MASK 0x5F5
+#define BNX2X_P2P_DETECT_RULE_MASK 0x3DBB
+#define BNX2X_PTP_TX_ON_PARAM_MASK (BNX2X_P2P_DETECT_PARAM_MASK & 0x6AA)
+#define BNX2X_PTP_TX_ON_RULE_MASK (BNX2X_P2P_DETECT_RULE_MASK & 0x3EEE)
+#define BNX2X_PTP_V1_L4_PARAM_MASK (BNX2X_P2P_DETECT_PARAM_MASK & 0x7EE)
+#define BNX2X_PTP_V1_L4_RULE_MASK (BNX2X_P2P_DETECT_RULE_MASK & 0x3FFE)
+#define BNX2X_PTP_V2_L4_PARAM_MASK (BNX2X_P2P_DETECT_PARAM_MASK & 0x7EA)
+#define BNX2X_PTP_V2_L4_RULE_MASK (BNX2X_P2P_DETECT_RULE_MASK & 0x3FEE)
+#define BNX2X_PTP_V2_L2_PARAM_MASK (BNX2X_P2P_DETECT_PARAM_MASK & 0x6BF)
+#define BNX2X_PTP_V2_L2_RULE_MASK (BNX2X_P2P_DETECT_RULE_MASK & 0x3EFF)
+#define BNX2X_PTP_V2_PARAM_MASK (BNX2X_P2P_DETECT_PARAM_MASK & 0x6AA)
+#define BNX2X_PTP_V2_RULE_MASK (BNX2X_P2P_DETECT_RULE_MASK & 0x3EEE)
 
 int bnx2x_configure_ptp_filters(struct bnx2x *bp)
 {
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode.
  2019-04-16  8:46 [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode Sudarsana Reddy Kalluru
  2019-04-16  8:46 ` [PATCH net-next 1/2] bnx2x: Replace magic numbers with macro definitions Sudarsana Reddy Kalluru
  2019-04-16  8:46 ` [PATCH net-next 2/2] bnx2x: Add support for detection of P2P event packets Sudarsana Reddy Kalluru
@ 2019-04-17  4:35 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2019-04-17  4:35 UTC (permalink / raw)
  To: skalluru; +Cc: aelior, netdev

From: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Date: Tue, 16 Apr 2019 01:46:11 -0700

> The patch series adds driver support for timestamping the ptp packets
> in peer-delay (P2P) mode.
>  - Patch (1) performs the code cleanup.
>  - Patch (2) adds the required implementation.
> 
> Please consider applying it 'net-next' tree.

Series applied, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-04-17  4:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-16  8:46 [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode Sudarsana Reddy Kalluru
2019-04-16  8:46 ` [PATCH net-next 1/2] bnx2x: Replace magic numbers with macro definitions Sudarsana Reddy Kalluru
2019-04-16  8:46 ` [PATCH net-next 2/2] bnx2x: Add support for detection of P2P event packets Sudarsana Reddy Kalluru
2019-04-17  4:35 ` [PATCH net-next 0/2] bnx2x: Support for timestamping in P2P mode David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.