net: dsa: sja1105: SGMII and 2500base-x on the SJA1110 are 'special'
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 11 Jun 2021 20:05:30 +0000 (23:05 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 11 Jun 2021 20:43:56 +0000 (13:43 -0700)
For the xMII Mode Parameters Table to be properly configured for SGMII
mode on SJA1110, we need to set the "special" bit, since SGMII is
officially bitwise coded as 0b0011 in SJA1105 (decimal 3, equal to
XMII_MODE_SGMII), and as 0b1011 in SJA1110 (decimal 11).

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105_main.c

index bd1f268..3e32b86 100644 (file)
@@ -209,12 +209,14 @@ static int sja1105_init_mii_settings(struct sja1105_private *priv)
                                goto unsupported;
 
                        mii->xmii_mode[i] = XMII_MODE_SGMII;
+                       mii->special[i] = true;
                        break;
                case PHY_INTERFACE_MODE_2500BASEX:
                        if (!priv->info->supports_2500basex[i])
                                goto unsupported;
 
                        mii->xmii_mode[i] = XMII_MODE_SGMII;
+                       mii->special[i] = true;
                        break;
 unsupported:
                default: