octeontx2-af: cn10k: Do not enable RPM loopback for LPC interfaces
Internal looback is not supported to low rate LPCS interface like
SGMII/QSGMII. Hence don't allow to enable for such interfaces.
Fixes: 3ad3f8f93c
("octeontx2-af: cn10k: MAC internal loopback support")
Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1581d61b42
commit
df66b6ebc5
@ -291,23 +291,20 @@ int rpm_lmac_internal_loopback(void *rpmd, int lmac_id, bool enable)
|
||||
if (!rpm || lmac_id >= rpm->lmac_count)
|
||||
return -ENODEV;
|
||||
lmac_type = rpm->mac_ops->get_lmac_type(rpm, lmac_id);
|
||||
if (lmac_type == LMAC_MODE_100G_R) {
|
||||
cfg = rpm_read(rpm, lmac_id, RPMX_MTI_PCS100X_CONTROL1);
|
||||
|
||||
if (enable)
|
||||
cfg |= RPMX_MTI_PCS_LBK;
|
||||
else
|
||||
cfg &= ~RPMX_MTI_PCS_LBK;
|
||||
rpm_write(rpm, lmac_id, RPMX_MTI_PCS100X_CONTROL1, cfg);
|
||||
} else {
|
||||
cfg = rpm_read(rpm, lmac_id, RPMX_MTI_LPCSX_CONTROL1);
|
||||
if (enable)
|
||||
cfg |= RPMX_MTI_PCS_LBK;
|
||||
else
|
||||
cfg &= ~RPMX_MTI_PCS_LBK;
|
||||
rpm_write(rpm, lmac_id, RPMX_MTI_LPCSX_CONTROL1, cfg);
|
||||
if (lmac_type == LMAC_MODE_QSGMII || lmac_type == LMAC_MODE_SGMII) {
|
||||
dev_err(&rpm->pdev->dev, "loopback not supported for LPC mode\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
cfg = rpm_read(rpm, lmac_id, RPMX_MTI_PCS100X_CONTROL1);
|
||||
|
||||
if (enable)
|
||||
cfg |= RPMX_MTI_PCS_LBK;
|
||||
else
|
||||
cfg &= ~RPMX_MTI_PCS_LBK;
|
||||
rpm_write(rpm, lmac_id, RPMX_MTI_PCS100X_CONTROL1, cfg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user