Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1649137

RE: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs

From Bogdan Purcareata <bogdan.purcareata@nxp.com>
Newsgroups linux.kernel
Subject RE: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs
Date 2017-05-24 08:10 +0200
Message-ID <tKxEB-6Td-1@gated-at.bofh.it> (permalink)
References (1 earlier) <tKkxI-5uz-27@gated-at.bofh.it> <tKkxI-5uz-25@gated-at.bofh.it> <tKl0K-5Ft-17@gated-at.bofh.it> <tKlk5-5NX-1@gated-at.bofh.it> <tKmzw-6Qv-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


> -----Original Message-----
> From: Florian Fainelli [mailto:f.fainelli@gmail.com]
> Sent: Tuesday, May 23, 2017 9:12 PM
> To: Andrew Lunn <andrew@lunn.ch>; Bogdan Purcareata
> <bogdan.purcareata@nxp.com>
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs
> 
> On 05/23/2017 09:55 AM, Andrew Lunn wrote:
> >> The patches mentioned in the commit message add _some_ support for
> >> the Cortina PHYs - mainly checking for devices at additional
> >> locations. Once they are found, the phy IDs must be read from custom
> >> locations.
> >
> > As a general principle, we don't add hacks in generic code to handle
> > broken devices. We add generic mechanisms to work around the
> > brokenness.
> >
> > In this case, by using ethernet-phy-id in the device tree, we are
> > saying, this PHYs probing is totally borked, but we know it is there,
> > at this address. Just load the driver.
> >
> > Please try to make ethernet-phy-id work.
> 
> What Andrew is suggesting is to leverage the code in
> drivers/of/of_mdio.c which does the following:
> 
>        is_c45 = of_device_is_compatible(child,
>                                          "ethernet-phy-ieee802.3-c45");
> 
>         if (!is_c45 && !of_get_phy_id(child, &phy_id))
>                 phy = phy_device_create(mdio, addr, phy_id, 0, NULL);
>         else
>                 phy = get_phy_device(mdio, addr, is_c45);
>         if (IS_ERR(phy))
>                 return;
> 
> If you know the PHY ID, and you did put it in the PHY node's compatible
> string (in the format that of_get_phy_id() expects it to, and you also
> did not add "ethernet-phy-ieee802.3-c45") then the PHY library will
> directly create the PHY device, with the designated ID, at the specific
> address.
> 
> While this works for clause 22 PHYs, I don't know if it also does for
> clause 45 PHYs, but as Andrew is suggesting, I would be more inclined
> into making this scheme work for all types (22 or 45) PHYs, rather than
> hacking the core code that tries to identify devices in packages.
> 
> Can you give it a spin?

Sure. My first thought was to latch onto the codepath that had some mention of Cortina PHYs.

I will check of_get_phy_id() and see if it does the job.

Thank you!
Bogdan

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs Andrew Lunn <andrew@lunn.ch> - 2017-05-23 18:10 +0200
  RE: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs Bogdan Purcareata <bogdan.purcareata@nxp.com> - 2017-05-23 18:40 +0200
    Re: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs Andrew Lunn <andrew@lunn.ch> - 2017-05-23 19:00 +0200
      Re: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs Florian Fainelli <f.fainelli@gmail.com> - 2017-05-23 20:20 +0200
        RE: [PATCH 1/2] net: phy: Update get_phy_c45_ids for Cortina PHYs Bogdan Purcareata <bogdan.purcareata@nxp.com> - 2017-05-24 08:10 +0200

csiph-web