mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-26 04:25:27 +08:00
net: dsa: ocelot: accept 1000base-X for VSC9959 and VSC9953
Switches using the Lynx PCS driver support 1000base-X optical SFP modules. Accept this interface type on a port. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://lore.kernel.org/r/20220510164320.10313-1-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
b57c7e8b76
commit
11ecf3412b
@ -1008,6 +1008,7 @@ static const u32 felix_phy_match_table[PHY_INTERFACE_MODE_MAX] = {
|
||||
[PHY_INTERFACE_MODE_SGMII] = OCELOT_PORT_MODE_SGMII,
|
||||
[PHY_INTERFACE_MODE_QSGMII] = OCELOT_PORT_MODE_QSGMII,
|
||||
[PHY_INTERFACE_MODE_USXGMII] = OCELOT_PORT_MODE_USXGMII,
|
||||
[PHY_INTERFACE_MODE_1000BASEX] = OCELOT_PORT_MODE_1000BASEX,
|
||||
[PHY_INTERFACE_MODE_2500BASEX] = OCELOT_PORT_MODE_2500BASEX,
|
||||
};
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#define OCELOT_PORT_MODE_QSGMII BIT(2)
|
||||
#define OCELOT_PORT_MODE_2500BASEX BIT(3)
|
||||
#define OCELOT_PORT_MODE_USXGMII BIT(4)
|
||||
#define OCELOT_PORT_MODE_1000BASEX BIT(5)
|
||||
|
||||
/* Platform-specific information */
|
||||
struct felix_info {
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#define VSC9959_PORT_MODE_SERDES (OCELOT_PORT_MODE_SGMII | \
|
||||
OCELOT_PORT_MODE_QSGMII | \
|
||||
OCELOT_PORT_MODE_1000BASEX | \
|
||||
OCELOT_PORT_MODE_2500BASEX | \
|
||||
OCELOT_PORT_MODE_USXGMII)
|
||||
|
||||
@ -973,6 +974,7 @@ static void vsc9959_phylink_validate(struct ocelot *ocelot, int port,
|
||||
phylink_set(mask, 100baseT_Full);
|
||||
phylink_set(mask, 1000baseT_Half);
|
||||
phylink_set(mask, 1000baseT_Full);
|
||||
phylink_set(mask, 1000baseX_Full);
|
||||
|
||||
if (state->interface == PHY_INTERFACE_MODE_INTERNAL ||
|
||||
state->interface == PHY_INTERFACE_MODE_2500BASEX ||
|
||||
|
@ -21,7 +21,8 @@
|
||||
#define VSC9953_VCAP_POLICER_BASE2 120
|
||||
#define VSC9953_VCAP_POLICER_MAX2 161
|
||||
|
||||
#define VSC9953_PORT_MODE_SERDES (OCELOT_PORT_MODE_SGMII | \
|
||||
#define VSC9953_PORT_MODE_SERDES (OCELOT_PORT_MODE_1000BASEX | \
|
||||
OCELOT_PORT_MODE_SGMII | \
|
||||
OCELOT_PORT_MODE_QSGMII)
|
||||
|
||||
static const u32 vsc9953_port_modes[VSC9953_NUM_PORTS] = {
|
||||
@ -947,6 +948,7 @@ static void vsc9953_phylink_validate(struct ocelot *ocelot, int port,
|
||||
phylink_set(mask, 100baseT_Full);
|
||||
phylink_set(mask, 100baseT_Half);
|
||||
phylink_set(mask, 1000baseT_Full);
|
||||
phylink_set(mask, 1000baseX_Full);
|
||||
|
||||
if (state->interface == PHY_INTERFACE_MODE_INTERNAL) {
|
||||
phylink_set(mask, 2500baseT_Full);
|
||||
|
Loading…
Reference in New Issue
Block a user