openwrt/target/linux/layerscape/patches-5.4/701-net-0059-sdk_fman-on-P-...

34 lines
1.3 KiB
Diff

From 7eb5f0a192efbe1fa94490881858ed45c5373233 Mon Sep 17 00:00:00 2001
From: Camelia Groza <camelia.groza@nxp.com>
Date: Mon, 2 Apr 2018 18:19:27 +0300
Subject: [PATCH] sdk_fman: on P-series platforms, the OH ports start at offset
1
Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
---
.../ethernet/freescale/sdk_fman/src/wrapper/lnxwrp_fm_port.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
--- a/drivers/net/ethernet/freescale/sdk_fman/src/wrapper/lnxwrp_fm_port.c
+++ b/drivers/net/ethernet/freescale/sdk_fman/src/wrapper/lnxwrp_fm_port.c
@@ -307,9 +307,17 @@ static t_LnxWrpFmPortDev *ReadFmPortDevT
of_device_is_compatible(port_node, "fsl,fman-v2-port-oh") ||
of_device_is_compatible(port_node, "fsl,fman-v3-port-oh")) {
#ifndef CONFIG_FMAN_ARM
- /* On PPC, OH ports start from cell-index 0x2 */
+#ifdef CONFIG_FMAN_P3040_P4080_P5020
+ /* On PPC FMan v2, OH ports start from cell-index 0x1 */
+ tmp_prop -= 0x1;
+#else
+ /* On PPC FMan v3 (Low and High), OH ports start from
+ * cell-index 0x2
+ */
tmp_prop -= 0x2;
-#endif
+#endif // CONFIG_FMAN_P3040_P4080_P5020
+#endif // CONFIG_FMAN_ARM
+
if (unlikely(tmp_prop >= FM_MAX_NUM_OF_OH_PORTS)) {
REPORT_ERROR(MAJOR, E_INVALID_VALUE,
("of_get_property(%s, cell-index) failed",