mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
net: phy: qcom: qca808x: add helper for checking for 1G only model
There are 2 versions of QCA808x, one 2.5G capable and one 1G capable. Currently, this matter only in the .get_features call however, it will be required for filling supported interface modes so lets add a helper that can be reused. Signed-off-by: Robert Marko <robimarko@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f29f9199c2
commit
f058b2dd70
|
|
@ -156,6 +156,17 @@ static bool qca808x_has_fast_retrain_or_slave_seed(struct phy_device *phydev)
|
|||
return linkmode_test_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT, phydev->supported);
|
||||
}
|
||||
|
||||
static bool qca808x_is_1g_only(struct phy_device *phydev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = phy_read_mmd(phydev, MDIO_MMD_AN, QCA808X_PHY_MMD7_CHIP_TYPE);
|
||||
if (ret < 0)
|
||||
return true;
|
||||
|
||||
return !!(QCA808X_PHY_CHIP_TYPE_1G & ret);
|
||||
}
|
||||
|
||||
static int qca808x_probe(struct phy_device *phydev)
|
||||
{
|
||||
struct device *dev = &phydev->mdio.dev;
|
||||
|
|
@ -350,11 +361,7 @@ static int qca808x_get_features(struct phy_device *phydev)
|
|||
* existed in the bit0 of MMD1.21, we need to remove it manually if
|
||||
* it is the qca8081 1G chip according to the bit0 of MMD7.0x901d.
|
||||
*/
|
||||
ret = phy_read_mmd(phydev, MDIO_MMD_AN, QCA808X_PHY_MMD7_CHIP_TYPE);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (QCA808X_PHY_CHIP_TYPE_1G & ret)
|
||||
if (qca808x_is_1g_only(phydev))
|
||||
linkmode_clear_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT, phydev->supported);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user