public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: khalasa@piap•pl (Krzysztof Hałasa)
To: linux-kernel@vger•kernel.org
Cc: netdev@vger•kernel.org
Subject: Re: [PATCH 01/15] net: phy: Add phy_ethtool_nway_reset
Date: Thu, 17 Nov 2016 11:06:36 +0100	[thread overview]
Message-ID: <m3oa1e2zf7.fsf@t19.piap.pl> (raw)
In-Reply-To: 20161115180644.3941-2-f.fainelli@gmail.com

Hi,

Florian Fainelli <f.fainelli@gmail•com> writes:

> This function just calls into genphy_restart_aneg() to perform an
> autonegotation restart.
>
> +int phy_ethtool_nway_reset(struct net_device *ndev)
> +{
> +	struct phy_device *phydev = ndev->phydev;
> +
> +	if (!phydev)
> +		return -ENODEV;
> +
> +	return genphy_restart_aneg(phydev);
> +}

and then you're using this function as .nway_reset of all netdev drivers
in question.

genphy_restart_aneg() deals directly with MII BMCR register:

int genphy_restart_aneg(struct phy_device *phydev)
{
        int ctl = phy_read(phydev, MII_BMCR);

        if (ctl < 0)
                return ctl;

        ctl |= BMCR_ANENABLE | BMCR_ANRESTART;

        /* Don't isolate the PHY if we're negotiating */
        ctl &= ~BMCR_ISOLATE;

        return phy_write(phydev, MII_BMCR, ctl);
}

Will the above work if the PHY is something special, e.g. a "fixed"
connection, or some kind of fiber trx etc? Normally, the PHY driver
could provide its own config_aneg().
-- 
Krzysztof Halasa

Industrial Research Institute for Automation and Measurements PIAP
Al. Jerozolimskie 202, 02-486 Warsaw, Poland

  reply	other threads:[~2016-11-17 10:06 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-15 18:06 [PATCH 00/15] net: phy: Centralize auto-negotation restart Florian Fainelli
2016-11-15 18:06 ` [PATCH 01/15] net: phy: Add phy_ethtool_nway_reset Florian Fainelli
2016-11-17 10:06   ` Krzysztof Hałasa [this message]
2016-11-15 18:06 ` [PATCH 02/15] net: nb8800: Utilize phy_ethtool_nway_reset Florian Fainelli
2016-11-15 18:06 ` [PATCH 03/15] net: bcm63xx_enet: " Florian Fainelli
2016-11-15 19:59   ` Heinrich Schuchardt
2016-11-15 20:15     ` Florian Fainelli
2016-11-15 18:06 ` [PATCH 04/15] net: mv643xx_eth: " Florian Fainelli
2016-11-15 19:28   ` Andrew Lunn
2016-11-15 18:06 ` [PATCH 05/15] net: smsc911x: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 06/15] net: ethernet: smsc9420: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 07/15] net: ethernet: ll_temac: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 08/15] net: ethernet: ixp4xx_eth: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 09/15] net: bcmgenet: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 10/15] net: fs_enet: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 11/15] net: fec: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 12/15] net: ethernet: ucc: " Florian Fainelli
2016-11-15 18:06 ` [PATCH 13/15] net: ethernet: lantiq_etop: " Florian Fainelli
2016-11-15 21:14   ` Langer, Thomas
2016-11-15 18:06 ` [PATCH 14/15] net: usb: ax88172x: " Florian Fainelli
     [not found] ` <20161115180644.3941-1-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-11-15 18:06   ` [PATCH 15/15] net: usb: lan78xx: " Florian Fainelli
2016-11-15 18:14     ` Woojung.Huh
2016-11-15 21:33 ` [PATCH 00/15] net: phy: Centralize auto-negotation restart David Miller

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=m3oa1e2zf7.fsf@t19.piap.pl \
    --to=khalasa@piap$(echo .)pl \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=netdev@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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