> +/* forward special tagged packets from port 0 to port 1 *or* port 2 */
> +static int lan9303_setup_tagging(struct lan9303 *chip)
> +{
> +     int ret;
> +     u32 val;
> +     /* enable defining the destination port via special VLAN tagging
> +      * for port 0
> +      */
> +     ret = lan9303_write_switch_reg(chip,
> LAN9303_SWE_INGRESS_PORT_TYPE,
> +
> LAN9303_SWE_INGRESS_PORT_TYPE_VLAN);
> +     if (ret)
> +             return ret;
> +
> +     /* tag incoming packets at port 1 and 2 on their way to port 0 to be
> +      * able to discover their source port
> +      */
> +     val = LAN9303_BM_EGRSS_PORT_TYPE_SPECIAL_TAG_PORT0;
> +     return lan9303_write_switch_reg(chip,
> LAN9303_BM_EGRSS_PORT_TYPE, val);
Specific reason to use val then using 
LAN9303_BM_EGRSS_PORT_TYPE_SPECIAL_TAG_PORT0
like previous line?

> @@ -644,6 +648,10 @@ static int lan9303_setup(struct dsa_switch *ds)
>               return -EINVAL;
>       }
> 
> +     ret = lan9303_setup_tagging(chip);
> +     if (ret)
> +             dev_err(chip->dev, "failed to setup port tagging %d\n", ret);
> +
Still move on when error happens?

>       ret = lan9303_separate_ports(chip);
>       if (ret)
>               dev_err(chip->dev, "failed to separate ports %d\n", ret);
> --
> 2.11.0

- Woojung

Reply via email to