lkml.org 
[lkml]   [2018]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC net-next 5/5] net: phy: broadcom: Add support for PHY test modes
    Date
    Re-use the generic PHY library test modes for 100BaseT2 and 1000BaseT
    and advertise support for those through the newly added ethtool knobs.

    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    ---
    drivers/net/phy/bcm-phy-lib.c | 15 +++++++++------
    drivers/net/phy/bcm7xxx.c | 3 +++
    2 files changed, 12 insertions(+), 6 deletions(-)

    diff --git a/drivers/net/phy/bcm-phy-lib.c b/drivers/net/phy/bcm-phy-lib.c
    index e797e0863895..cb3081e523a5 100644
    --- a/drivers/net/phy/bcm-phy-lib.c
    +++ b/drivers/net/phy/bcm-phy-lib.c
    @@ -334,6 +334,8 @@ int bcm_phy_get_sset_count(struct phy_device *phydev, int sset)
    {
    if (sset == ETH_SS_PHY_STATS)
    return ARRAY_SIZE(bcm_phy_hw_stats);
    + else if (sset == ETH_SS_PHY_TESTS)
    + return genphy_get_test_count(phydev);

    return -EOPNOTSUPP;
    }
    @@ -343,12 +345,13 @@ void bcm_phy_get_strings(struct phy_device *phydev, u32 stringset, u8 *data)
    {
    unsigned int i;

    - if (stringset != ETH_SS_PHY_STATS)
    - return;
    -
    - for (i = 0; i < ARRAY_SIZE(bcm_phy_hw_stats); i++)
    - strlcpy(data + i * ETH_GSTRING_LEN,
    - bcm_phy_hw_stats[i].string, ETH_GSTRING_LEN);
    + if (stringset == ETH_SS_PHY_STATS) {
    + for (i = 0; i < ARRAY_SIZE(bcm_phy_hw_stats); i++)
    + strlcpy(data + i * ETH_GSTRING_LEN,
    + bcm_phy_hw_stats[i].string, ETH_GSTRING_LEN);
    + } else if (stringset == ETH_SS_PHY_TESTS) {
    + genphy_get_test_strings(phydev, data);
    + }
    }
    EXPORT_SYMBOL_GPL(bcm_phy_get_strings);

    diff --git a/drivers/net/phy/bcm7xxx.c b/drivers/net/phy/bcm7xxx.c
    index 1835af147eea..1efd287ed320 100644
    --- a/drivers/net/phy/bcm7xxx.c
    +++ b/drivers/net/phy/bcm7xxx.c
    @@ -619,6 +619,9 @@ static int bcm7xxx_28nm_probe(struct phy_device *phydev)
    .get_sset_count = bcm_phy_get_sset_count, \
    .get_strings = bcm_phy_get_strings, \
    .get_stats = bcm7xxx_28nm_get_phy_stats, \
    + .set_test = genphy_set_test, \
    + .get_test = genphy_get_test, \
    + .get_test_len = genphy_get_test_len, \
    .probe = bcm7xxx_28nm_probe, \
    }

    --
    2.14.1
    \
     
     \ /
      Last update: 2018-04-28 02:34    [W:4.108 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site