Re: [PATCH v2 2/7] net: phy: micrel: KSZ8081 & KSZ9031: add loopback support

2021-04-15 Thread Florian Fainelli



On 4/15/2021 6:07 AM, Oleksij Rempel wrote:
> PHY loopback is needed for the ethernet controller self test support.
> This PHY was tested with the generic net sefltest in combination with
> FEC ethernet controller and SJA1105 switch.
> 
> Signed-off-by: Oleksij Rempel 
> ---
>  drivers/net/phy/micrel.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> index a14a00328fa3..26066b1e02e5 100644
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -1311,6 +1311,7 @@ static struct phy_driver ksphy_driver[] = {
>   .get_stats  = kszphy_get_stats,
>   .suspend= kszphy_suspend,
>   .resume = kszphy_resume,
> + .set_loopback   = genphy_loopback,

The generic loopback is really generic and is defined by the 802.3
standard, we should just mandate that drivers implement a custom
loopback if the generic one cannot work. I would change the PHY library
to do something like this:

if (phydev->drv->set_loopback)
ret = phydev->drv->set_loopback(phydev, ...)
else
ret = genphy_loopback(phydev, ...)

This would enable many more drivers than that we currently have today.

>  }, {
>   .phy_id = PHY_ID_KSZ8061,
>   .name   = "Micrel KSZ8061",
> @@ -1356,6 +1357,7 @@ static struct phy_driver ksphy_driver[] = {
>   .get_stats  = kszphy_get_stats,
>   .suspend= genphy_suspend,
>   .resume = kszphy_resume,
> + .set_loopback   = genphy_loopback,
>  }, {
>   .phy_id = PHY_ID_LAN8814,
>   .phy_id_mask= MICREL_PHY_ID_MASK,
> 

-- 
Florian


[PATCH v2 2/7] net: phy: micrel: KSZ8081 & KSZ9031: add loopback support

2021-04-15 Thread Oleksij Rempel
PHY loopback is needed for the ethernet controller self test support.
This PHY was tested with the generic net sefltest in combination with
FEC ethernet controller and SJA1105 switch.

Signed-off-by: Oleksij Rempel 
---
 drivers/net/phy/micrel.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index a14a00328fa3..26066b1e02e5 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -1311,6 +1311,7 @@ static struct phy_driver ksphy_driver[] = {
.get_stats  = kszphy_get_stats,
.suspend= kszphy_suspend,
.resume = kszphy_resume,
+   .set_loopback   = genphy_loopback,
 }, {
.phy_id = PHY_ID_KSZ8061,
.name   = "Micrel KSZ8061",
@@ -1356,6 +1357,7 @@ static struct phy_driver ksphy_driver[] = {
.get_stats  = kszphy_get_stats,
.suspend= genphy_suspend,
.resume = kszphy_resume,
+   .set_loopback   = genphy_loopback,
 }, {
.phy_id = PHY_ID_LAN8814,
.phy_id_mask= MICREL_PHY_ID_MASK,
-- 
2.29.2