mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
net: qca8k: update PCS driver to use neg_mode
Update qca8k's embedded PCS driver to use neg_mode rather than the mode argument. As there is no pcs_link_up() method, this only affects the pcs_config() method. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://lore.kernel.org/r/E1qA8EU-00EaG9-1l@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
d5a0529930
commit
bfa0a3ac05
|
|
@ -1493,7 +1493,7 @@ static void qca8k_pcs_get_state(struct phylink_pcs *pcs,
|
|||
state->pause |= MLO_PAUSE_TX;
|
||||
}
|
||||
|
||||
static int qca8k_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
|
||||
static int qca8k_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
|
||||
phy_interface_t interface,
|
||||
const unsigned long *advertising,
|
||||
bool permit_pause_to_mac)
|
||||
|
|
@ -1520,14 +1520,12 @@ static int qca8k_pcs_config(struct phylink_pcs *pcs, unsigned int mode,
|
|||
}
|
||||
|
||||
/* Enable/disable SerDes auto-negotiation as necessary */
|
||||
ret = qca8k_read(priv, QCA8K_REG_PWS, &val);
|
||||
val = neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED ?
|
||||
0 : QCA8K_PWS_SERDES_AEN_DIS;
|
||||
|
||||
ret = qca8k_rmw(priv, QCA8K_REG_PWS, QCA8K_PWS_SERDES_AEN_DIS, val);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (phylink_autoneg_inband(mode))
|
||||
val &= ~QCA8K_PWS_SERDES_AEN_DIS;
|
||||
else
|
||||
val |= QCA8K_PWS_SERDES_AEN_DIS;
|
||||
qca8k_write(priv, QCA8K_REG_PWS, val);
|
||||
|
||||
/* Configure the SGMII parameters */
|
||||
ret = qca8k_read(priv, QCA8K_REG_SGMII_CTRL, &val);
|
||||
|
|
@ -1598,6 +1596,7 @@ static void qca8k_setup_pcs(struct qca8k_priv *priv, struct qca8k_pcs *qpcs,
|
|||
int port)
|
||||
{
|
||||
qpcs->pcs.ops = &qca8k_pcs_ops;
|
||||
qpcs->pcs.neg_mode = true;
|
||||
|
||||
/* We don't have interrupts for link changes, so we need to poll */
|
||||
qpcs->pcs.poll = true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user