aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0300-staging-fsl_ppfe-eth-use-mask-for-rx-max-frame-len.patch
blob: 457bc6882ab3d43cd3dfbfa868ffc7e4a8a5e568 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From f5be11cd83a6d6d4de7bd7cbeb641bb1032c4f84 Mon Sep 17 00:00:00 2001
From: Calvin Johnson <calvin.johnson@nxp.com>
Date: Wed, 20 Jun 2018 10:22:50 +0530
Subject: [PATCH] staging: fsl_ppfe/eth: use mask for rx max frame len

Define and use PFE_RCR_MAX_FL_MASK to properly set Rx max frame
length of MAC Receive Control Register.

Signed-off-by: Calvin Johnson <calvin.johnson@nxp.com>
---
 drivers/staging/fsl_ppfe/pfe_hal.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--- a/drivers/staging/fsl_ppfe/pfe_hal.c
+++ b/drivers/staging/fsl_ppfe/pfe_hal.c
@@ -19,6 +19,8 @@
 #include "pfe_mod.h"
 #include "pfe/pfe.h"
 
+#define PFE_RCR_MAX_FL_MASK	0xC000FFFF
+
 void *cbus_base_addr;
 void *ddr_base_addr;
 unsigned long ddr_phys_base_addr;
@@ -1011,8 +1013,8 @@ void gemac_no_broadcast(void *base)
 void gemac_enable_1536_rx(void *base)
 {
 	/* Set 1536 as Maximum frame length */
-	writel(readl(base + EMAC_RCNTRL_REG) | (1536 << 16), base +
-		EMAC_RCNTRL_REG);
+	writel((readl(base + EMAC_RCNTRL_REG) & PFE_RCR_MAX_FL_MASK)
+		| (1536 << 16), base +	EMAC_RCNTRL_REG);
 }
 
 /* GEMAC enable jumbo function.
@@ -1020,8 +1022,8 @@ void gemac_enable_1536_rx(void *base)
  */
 void gemac_enable_rx_jmb(void *base)
 {
-	writel(readl(base + EMAC_RCNTRL_REG) | (JUMBO_FRAME_SIZE << 16), base
-		+ EMAC_RCNTRL_REG);
+	writel((readl(base + EMAC_RCNTRL_REG) & PFE_RCR_MAX_FL_MASK)
+		| (JUMBO_FRAME_SIZE << 16), base + EMAC_RCNTRL_REG);
 }
 
 /* GEMAC enable stacked vlan function.