layerscape: add patches-5.4
[openwrt/staging/wigyori.git] / target / linux / layerscape / patches-5.4 / 701-net-0300-staging-fsl_ppfe-eth-use-mask-for-rx-max-frame-len.patch
diff --git a/target/linux/layerscape/patches-5.4/701-net-0300-staging-fsl_ppfe-eth-use-mask-for-rx-max-frame-len.patch b/target/linux/layerscape/patches-5.4/701-net-0300-staging-fsl_ppfe-eth-use-mask-for-rx-max-frame-len.patch
new file mode 100644 (file)
index 0000000..457bc68
--- /dev/null
@@ -0,0 +1,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.