From: Robert-Ionut Alexa Date: Fri, 21 May 2021 08:47:05 +0000 (+0300) Subject: LF-3799 dpaa2-switch: convert BR_STATE enum to DPSW_STP_STATE enum X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~59 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=ea07558fb29b4b2fdf0a8bc633d8e98004d6d2eb;p=linux.git LF-3799 dpaa2-switch: convert BR_STATE enum to DPSW_STP_STATE enum Starting with mc 10.28.0, the firmware returns an error any time an invalid STP state is configured. An explicit function converts from BR_STATE_* kernel enums to DPSW_STP_STATE_* mc enums. Signed-off-by: Robert-Ionut Alexa --- diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index d524e92051a3..90207fe79391 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -199,10 +199,28 @@ static int dpaa2_switch_port_set_flood(struct ethsw_port_priv *port_priv, bool e return 0; } +static enum dpsw_stp_state br_stp_state_to_dpsw(u8 state) +{ + switch (state) { + case BR_STATE_DISABLED: + return DPSW_STP_STATE_DISABLED; + case BR_STATE_LISTENING: + return DPSW_STP_STATE_LISTENING; + case BR_STATE_LEARNING: + return DPSW_STP_STATE_LEARNING; + case BR_STATE_FORWARDING: + return DPSW_STP_STATE_FORWARDING; + case BR_STATE_BLOCKING: + return DPSW_STP_STATE_BLOCKING; + default: + return DPSW_STP_STATE_DISABLED; + } +} + static int dpaa2_switch_port_set_stp_state(struct ethsw_port_priv *port_priv, u8 state) { struct dpsw_stp_cfg stp_cfg = { - .state = state, + .state = br_stp_state_to_dpsw(state), }; int err; u16 vid;