mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: Heiner Kallweit <hkallweit1@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Michal Kubecek <mkubecek@suse.cz>,
	kernel@pengutronix.de, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org
Subject: Re: [PATCH net-next v1 1/1] net: phy: add remote fault support
Date: Sat, 11 Jun 2022 18:11:57 +0200	[thread overview]
Message-ID: <YqS+zYHf6eHMWJlD@lunn.ch> (raw)
In-Reply-To: <20220608093403.3999446-1-o.rempel@pengutronix.de>

> diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c
> index c67bf3060173..6c55c7f9b680 100644
> --- a/drivers/net/phy/phy-c45.c
> +++ b/drivers/net/phy/phy-c45.c
> @@ -205,7 +205,7 @@ static int genphy_c45_baset1_an_config_aneg(struct phy_device *phydev)
>  		break;
>  	case MASTER_SLAVE_CFG_UNKNOWN:
>  	case MASTER_SLAVE_CFG_UNSUPPORTED:
> -		return 0;
> +		break;
>  	default:
>  		phydev_warn(phydev, "Unsupported Master/Slave mode\n");
>  		return -EOPNOTSUPP;
> @@ -223,11 +223,16 @@ static int genphy_c45_baset1_an_config_aneg(struct phy_device *phydev)
>  		break;
>  	}
>  
> +	if (phydev->remote_fault_set >= REMOTE_FAULT_CFG_ERROR)
> +		adv_l |= MDIO_AN_T1_ADV_L_REMOTE_FAULT;
> +
>  	adv_l |= linkmode_adv_to_mii_t1_adv_l_t(phydev->advertising);
>  
>  	ret = phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_T1_ADV_L,
> -				     (MDIO_AN_T1_ADV_L_FORCE_MS | MDIO_AN_T1_ADV_L_PAUSE_CAP
> -				     | MDIO_AN_T1_ADV_L_PAUSE_ASYM), adv_l);
> +				     (MDIO_AN_T1_ADV_L_FORCE_MS |
> +				      MDIO_AN_T1_ADV_L_PAUSE_CAP |
> +				      MDIO_AN_T1_ADV_L_PAUSE_ASYM |
> +				      MDIO_AN_T1_ADV_L_REMOTE_FAULT), adv_l);

Since this is part of config_aneg, i assume you have to trigger an
renegotiation, which will put the link down for a while. Is that
actually required? Can the fault indicator be set at runtime without a
full auto-neg? I suppose for a fault indicator, it probably does not
matter, there is a fault... But i'm wondering about future extensions
which might want to send values when the link is up. I've seen some
PHYs indicate their make/model, etc. What sort of API would be needed
for that?

It might also be useful if we could send an event to userspace when
the receive state changes, so there is no need to poll. I thought
something link a linkstate message was broadcast under some
conditions? That again my suggest ksetting is maybe not the best place
for this?

I see no problem in exposing this information, but i would like to be
sure we get the API correct.

     Andrew

  parent reply	other threads:[~2022-06-11 16:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-08  9:34 Oleksij Rempel
2022-06-11 15:50 ` Andrew Lunn
2022-06-11 16:11 ` Andrew Lunn [this message]
2022-06-13 12:55   ` Oleksij Rempel
2022-06-13 14:56     ` Andrew Lunn
2022-06-14  5:12       ` Oleksij Rempel
2022-06-14 21:37         ` Andrew Lunn
2022-06-15  1:52       ` Jakub Kicinski
2022-06-15  3:37         ` Andrew Lunn
2022-06-15  5:09           ` Jakub Kicinski
2022-06-15 20:07             ` Andrew Lunn
2022-06-16  9:34               ` Oleksij Rempel
2022-06-16 15:57                 ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YqS+zYHf6eHMWJlD@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkubecek@suse.cz \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®