[PATCH net v2] net: ti: icssg-prueth: Fix r30 CMDs bitmasks

From: MD Danish Anwar
Date: Mon Oct 16 2023 - 12:16:08 EST


The bitmask for EMAC_PORT_DISABLE and EMAC_PORT_FORWARD has been changed
in the ICSSG firmware REL.PRU-ICSS-ETHERNET-SWITCH_02.02.12.05.

The current bitmasks are wrong and as a result EMAC_PORT_DISABLE and
EMAC_PORT_FORWARD commands doesn not work.
Update r30 commands to use the same bitmask as used by the ICSSG firmware
REL.PRU-ICSS-ETHERNET-SWITCH_02.02.12.05.

These bitmasks are not backwards compatible. This will work with
firmware version REL.PRU-ICSS-ETHERNET-SWITCH_02.02.12.05 and above but
not with lower firmware versions.

Fixes: e9b4ece7d74b ("net: ti: icssg-prueth: Add Firmware config and classification APIs.")
Signed-off-by: MD Danish Anwar <danishanwar@xxxxxx>
---
Cc: Andrew Lunn <andrew@xxxxxxx>
Cc: Ravi Gunasekaran <r-gunasekaran@xxxxxx>

Changes from v1 to v2:
*) Added firmware version in commit message as asked by Ravi.
*) Mentioned in commit message that the patch is not backwards compatible
as asked by Andrew.

v1: https://lore.kernel.org/all/20231013111758.213769-1-danishanwar@xxxxxx/

drivers/net/ethernet/ti/icssg/icssg_config.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/ti/icssg/icssg_config.c b/drivers/net/ethernet/ti/icssg/icssg_config.c
index 933b84666574..b272361e378f 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_config.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_config.c
@@ -379,9 +379,9 @@ int icssg_config(struct prueth *prueth, struct prueth_emac *emac, int slice)

/* Bitmask for ICSSG r30 commands */
static const struct icssg_r30_cmd emac_r32_bitmask[] = {
- {{0xffff0004, 0xffff0100, 0xffff0100, EMAC_NONE}}, /* EMAC_PORT_DISABLE */
+ {{0xffff0004, 0xffff0100, 0xffff0004, EMAC_NONE}}, /* EMAC_PORT_DISABLE */
{{0xfffb0040, 0xfeff0200, 0xfeff0200, EMAC_NONE}}, /* EMAC_PORT_BLOCK */
- {{0xffbb0000, 0xfcff0000, 0xdcff0000, EMAC_NONE}}, /* EMAC_PORT_FORWARD */
+ {{0xffbb0000, 0xfcff0000, 0xdcfb0000, EMAC_NONE}}, /* EMAC_PORT_FORWARD */
{{0xffbb0000, 0xfcff0000, 0xfcff2000, EMAC_NONE}}, /* EMAC_PORT_FORWARD_WO_LEARNING */
{{0xffff0001, EMAC_NONE, EMAC_NONE, EMAC_NONE}}, /* ACCEPT ALL */
{{0xfffe0002, EMAC_NONE, EMAC_NONE, EMAC_NONE}}, /* ACCEPT TAGGED */
--
2.34.1