On Thu, 18 Nov 2021 09:41:27 +0000 "Russell King (Oracle)" <linux@xxxxxxxxxxxxxxx> wrote: > On Wed, Nov 17, 2021 at 11:50:50PM +0100, Marek Behún wrote: > > +static int mv3310_select_mactype(unsigned long *interfaces) > > +{ > > + if (test_bit(PHY_INTERFACE_MODE_USXGMII, interfaces)) > > + return MV_V2_33X0_PORT_CTRL_MACTYPE_USXGMII; > > + else if (test_bit(PHY_INTERFACE_MODE_SGMII, interfaces) && > > + test_bit(PHY_INTERFACE_MODE_10GBASER, interfaces)) > > + return MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER; > > + else if (test_bit(PHY_INTERFACE_MODE_SGMII, interfaces) && > > + test_bit(PHY_INTERFACE_MODE_RXAUI, interfaces)) > > + return MV_V2_33X0_PORT_CTRL_MACTYPE_RXAUI; > > + else if (test_bit(PHY_INTERFACE_MODE_SGMII, interfaces) && > > + test_bit(PHY_INTERFACE_MODE_XAUI, interfaces)) > > + return MV_V2_3310_PORT_CTRL_MACTYPE_XAUI; > > + else if (test_bit(PHY_INTERFACE_MODE_10GBASER, interfaces)) > > + return MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER_RATE_MATCH; > > + else if (test_bit(PHY_INTERFACE_MODE_RXAUI, interfaces)) > > + return MV_V2_33X0_PORT_CTRL_MACTYPE_RXAUI_RATE_MATCH; > > + else if (test_bit(PHY_INTERFACE_MODE_XAUI, interfaces)) > > + return MV_V2_3310_PORT_CTRL_MACTYPE_XAUI_RATE_MATCH; > > + else if (test_bit(PHY_INTERFACE_MODE_SGMII, interfaces)) > > + return MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER; > > Hi, > > There are differences in the MACTYPE register between the 88X3310 > and 88X3340. For example, the 88X3340 has no support for XAUI. > This is documented in the data sheet, and in the definitions of > these values - note that MV_V2_3310_PORT_CTRL_MACTYPE_XAUI and > MV_V2_3310_PORT_CTRL_MACTYPE_XAUI_RATE_MATCH are only applicable > to the 88X3310 (they don't use MV_V2_33X0_*). Yes, but 88X3340 does not support XAUI, only RXAUI, it is defined in supported_interfaces. So PHY_INTERFACE_MODE_XAUI will never be set in interfaces, and thus this function can be used for both 88X3310 and 88X3340. Marek