All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Russell King - ARM Linux <linux@armlinux.org.uk>
Cc: Florian Fainelli <f.fainelli@gmail.com>, netdev@vger.kernel.org
Subject: Re: [PATCH 2/5] net: phy: hook up clause 45 autonegotiation restart
Date: Fri, 2 Jun 2017 15:46:32 +0200	[thread overview]
Message-ID: <20170602134632.GI12261@lunn.ch> (raw)
In-Reply-To: <20170602124339.GO22219@n2100.armlinux.org.uk>

On Fri, Jun 02, 2017 at 01:43:39PM +0100, Russell King - ARM Linux wrote:
> On Thu, Jun 01, 2017 at 10:16:17AM -0700, Florian Fainelli wrote:
> > On 06/01/2017 09:24 AM, Russell King - ARM Linux wrote:
> > > Checking 802.3-2015, in "22.2.4 Management functions", the first
> > > sentence requires all PHYs that respond to Clause 22 cycles to
> > > implement BMCR and BMSR.  However, my statement about unimplemented
> > > registers returning zero seems to be a C45 thing, not a C22 thing,
> > > according to the C22 PICS and "45.2 MDIO Interface Registers"
> > > 
> > > However, digging a bit further, "22.2.4.2.10 Auto-Negotiation complete"
> > > states that bit 5 shall be zero if aneg has not completed or if aneg is
> > > unimplemented.
> > > 
> > 
> > So how about we are more defensive than that and if we are presented
> > with a C45 PHY driver that does not have an aneg_done() function pointer
> > set we return an error/warning during driver registration?
> 
> We don't mark drivers as being C22 or C45, we rely on them matching
> the IDs and/or the probe function making that decision, so it's a
> tad difficult to make that decision at driver registration time.
> 
> We could reject an attempt to probe a C45 phy with a driver that
> does not provide an aneg_done() pointer.

Just an idea.

We could make phy_read/phy_write look to see if the is_c45 flag is
set. If so, return -EINVAL if the register being accessed does not
have MII_ADDR_C45.

That should catch all these sort of problems.

     Andrew

  reply	other threads:[~2017-06-02 13:46 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-01 10:23 [PATCH 0/5] Add phylib support for MV88X3310 10G phy Russell King - ARM Linux
2017-06-01 10:26 ` [PATCH 1/5] net: phy: add 802.3 clause 45 support to phylib Russell King
2017-06-01 12:28   ` Andrew Lunn
2017-06-01 17:15   ` Florian Fainelli
2017-06-02 12:39     ` Russell King - ARM Linux
2017-06-01 10:26 ` [PATCH 2/5] net: phy: hook up clause 45 autonegotiation restart Russell King
2017-06-01 12:23   ` Andrew Lunn
2017-06-01 12:51     ` Russell King - ARM Linux
2017-06-01 13:05       ` Andrew Lunn
2017-06-01 13:09         ` Russell King - ARM Linux
2017-06-01 13:19           ` Andrew Lunn
2017-06-01 15:47             ` Russell King - ARM Linux
2017-06-01 16:24               ` Russell King - ARM Linux
2017-06-01 17:16                 ` Florian Fainelli
2017-06-02 12:43                   ` Russell King - ARM Linux
2017-06-02 13:46                     ` Andrew Lunn [this message]
2017-06-02 14:04                       ` Russell King - ARM Linux
2017-06-01 10:26 ` [PATCH 3/5] net: phy: split out 10G genphy support Russell King
2017-06-01 12:29   ` Andrew Lunn
2017-06-01 17:17   ` Florian Fainelli
2017-06-01 10:26 ` [PATCH 4/5] net: phy: add XAUI and 10GBASE-KR PHY connection types Russell King
     [not found]   ` <E1dGNJX-00043v-3M-eh5Bv4kxaXIk46pC+1QYvQNdhmdF6hFW@public.gmane.org>
2017-06-01 12:30     ` Andrew Lunn
2017-06-01 16:56   ` Florian Fainelli
     [not found]     ` <fb1a81e0-b5b9-80e4-7852-cc65a574b9e9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-01 17:32       ` Russell King - ARM Linux
2017-06-01 10:26 ` [PATCH 5/5] net: phy: add Marvell Alaska X 88X3310 10Gigabit PHY support Russell King
2017-06-01 12:51   ` Andrew Lunn
2017-06-01 13:06     ` Russell King - ARM Linux
2017-06-01 17:28   ` Florian Fainelli
2017-06-01 17:57     ` Russell King - ARM Linux
2017-06-01 16:07 ` [PATCH 0/5] Add phylib support for MV88X3310 10G phy David Miller
     [not found]   ` <20170601.120736.670167741447008364.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2017-06-01 16:54     ` Russell King - ARM Linux
     [not found] ` <20170601102327.GF27796-l+eeeJia6m9URfEZ8mYm6t73F7V6hmMc@public.gmane.org>
2017-06-05 11:22   ` [PATCH v2 0/6] " Russell King - ARM Linux
2017-06-05 11:22     ` [PATCH 1/6] net: phy: add 802.3 clause 45 support to phylib Russell King
2017-06-05 16:25       ` Florian Fainelli
2017-06-05 11:22     ` [PATCH 2/6] net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support Russell King
2017-06-05 11:58       ` Andrew Lunn
2017-06-05 16:29       ` Florian Fainelli
2017-06-05 11:23     ` [PATCH 3/6] net: phy: hook up clause 45 autonegotiation restart Russell King
2017-06-05 11:59       ` Andrew Lunn
2017-06-05 16:30       ` Florian Fainelli
2017-06-05 11:23     ` [PATCH 4/6] net: phy: split out 10G genphy support Russell King
2017-06-05 11:23     ` [PATCH 5/6] net: phy: add XAUI and 10GBASE-KR PHY connection types Russell King
     [not found]       ` <E1dHq6I-0005XE-VR-eh5Bv4kxaXIk46pC+1QYvQNdhmdF6hFW@public.gmane.org>
2017-06-05 12:00         ` Andrew Lunn
2017-06-05 16:24       ` Florian Fainelli
2017-06-05 11:23     ` [PATCH 6/6] net: phy: add Marvell Alaska X 88X3310 10Gigabit PHY support Russell King
2017-06-05 18:20       ` Andrew Lunn
2017-06-05 18:21       ` Florian Fainelli
2017-06-05 18:21       ` Andrew Lunn
2017-06-05 22:10         ` Russell King - ARM Linux
     [not found]     ` <20170605112203.GA10680-l+eeeJia6m9URfEZ8mYm6t73F7V6hmMc@public.gmane.org>
2017-06-05 21:53       ` [PATCH v2 0/6] Add phylib support for MV88X3310 10G phy 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=20170602134632.GI12261@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=f.fainelli@gmail.com \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.