From: Andrew Lunn <andrew@lunn.ch>
To: Parthiban.Veerasooran@microchip.com
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, horms@kernel.org, saeedm@nvidia.com,
anthony.l.nguyen@intel.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, corbet@lwn.net,
linux-doc@vger.kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
devicetree@vger.kernel.org, Horatiu.Vultur@microchip.com,
ruanjinjie@huawei.com, Steen.Hegelund@microchip.com,
vladimir.oltean@nxp.com, UNGLinuxDriver@microchip.com,
Thorsten.Kummermehr@microchip.com, Pier.Beruto@onsemi.com,
Selvamani.Rajagopal@onsemi.com, Nicolas.Ferre@microchip.com,
benjamin.bigler@bernformulastudent.ch
Subject: Re: [PATCH net-next v3 06/12] net: ethernet: oa_tc6: implement internal PHY initialization
Date: Mon, 15 Apr 2024 15:15:31 +0200 [thread overview]
Message-ID: <3fc3b5c3-0750-4aff-ab26-240f4bc55236@lunn.ch> (raw)
In-Reply-To: <ee5dcd07-7c44-4317-9d62-0fc68565988a@microchip.com>
On Fri, Apr 12, 2024 at 10:43:15AM +0000, Parthiban.Veerasooran@microchip.com wrote:
> Hi Andrew,
>
> After implementing the new APIs oa_tc6_mdiobus_read_c45() and
> oa_tc6_mdiobus_write_c45(), I tried testing. But, for some reason these
> APIs are never get called by phy_read_mmd() or phy_write_mmd() as those
> APIs are checking for phydev->is_c45 flag for calling this new c45 APIs
> which is not set in this case.
>
> If the phydev is found via c22, phylib does not set phydev->is_c45, and
> everything ends up going indirect.
We don't have a clean separation between C22/C45 register space and
C22/C45 MDIO bus protocols. As you said, if the PHY is discovered via
C22 bus protocol it assumes it uses C22 protocol.
Those PHYs which do support C45, and in particular, features which
need C45, all call genphy_c45_pma_read_abilities() in there
.get_features function to add in C45 features. However, it will
continue using C45 over C22 because genphy_c45_pma_read_abilities()
only really says the device has C45 registers, not C45 protocol.
I can see two different things you can try.
1) set .read_mmd and .write_mmd in the PHY driver to phy_read_mmd()
and phy_write_mmd(). That is not great however, since each vendor
is likely to have their own PHY driver.
2) Add a helper to set is_c45. This however has side effects you might
not want. e.g. auto-neg will be performed via C45, not C22. This
might not matter for a T1 PHY where is think auto-neg is not
actually used. But i don't see anything in TC6 which limits it to
T1, i could well imagine a T2 or T4 PHY being used with full
auto-neg.
We really do need to separate C45 registers from C45 protocol in the
phylib core to cleanly solve this.
Andrew
next prev parent reply other threads:[~2024-04-15 13:41 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 8:50 [PATCH net-next v3 00/12] Add support for OPEN Alliance 10BASE-T1x MACPHY Serial Interface Parthiban Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 01/12] Documentation: networking: add OPEN Alliance 10BASE-T1x MAC-PHY serial interface Parthiban Veerasooran
2024-03-06 13:23 ` Andrew Lunn
2024-03-07 6:29 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 02/12] net: ethernet: oa_tc6: implement register write operation Parthiban Veerasooran
2024-03-06 13:40 ` Andrew Lunn
2024-03-07 6:46 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 03/12] net: ethernet: oa_tc6: implement register read operation Parthiban Veerasooran
2024-03-07 0:19 ` Andrew Lunn
2024-03-07 7:04 ` Parthiban.Veerasooran
2024-03-07 13:22 ` Andrew Lunn
2024-03-08 7:12 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 04/12] net: ethernet: oa_tc6: implement software reset Parthiban Veerasooran
2024-03-07 0:35 ` Andrew Lunn
2024-03-07 7:39 ` Parthiban.Veerasooran
2024-03-07 13:24 ` Andrew Lunn
2024-03-08 8:25 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 05/12] net: ethernet: oa_tc6: implement error interrupts unmasking Parthiban Veerasooran
2024-03-07 0:43 ` Andrew Lunn
2024-03-07 8:28 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 06/12] net: ethernet: oa_tc6: implement internal PHY initialization Parthiban Veerasooran
2024-03-07 1:13 ` Andrew Lunn
2024-03-07 14:41 ` Parthiban.Veerasooran
2024-03-07 16:36 ` Andrew Lunn
2024-03-08 12:05 ` Parthiban.Veerasooran
2024-03-08 13:33 ` Andrew Lunn
2024-03-18 11:01 ` Parthiban.Veerasooran
2024-04-12 10:43 ` Parthiban.Veerasooran
2024-04-15 13:15 ` Andrew Lunn [this message]
2024-04-16 11:02 ` Parthiban.Veerasooran
2024-04-16 18:18 ` Andrew Lunn
2024-04-17 8:55 ` Parthiban.Veerasooran
2024-03-21 18:49 ` Selvamani Rajagopal
2024-03-22 5:50 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 07/12] net: ethernet: oa_tc6: enable open alliance tc6 data communication Parthiban Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 08/12] net: ethernet: oa_tc6: implement transmit path to transfer tx ethernet frames Parthiban Veerasooran
2024-03-07 17:08 ` Andrew Lunn
2024-03-19 12:54 ` Parthiban.Veerasooran
2024-03-19 13:19 ` Andrew Lunn
2024-03-20 10:43 ` Parthiban.Veerasooran
2024-03-21 19:04 ` Selvamani Rajagopal
2024-03-21 19:42 ` Andrew Lunn
2024-03-22 18:31 ` Selvamani Rajagopal
2024-03-06 8:50 ` [PATCH net-next v3 09/12] net: ethernet: oa_tc6: implement receive path to receive rx " Parthiban Veerasooran
2024-03-08 0:14 ` Andrew Lunn
2024-03-19 12:54 ` Parthiban.Veerasooran
2024-03-19 13:20 ` Andrew Lunn
2024-03-20 5:55 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 10/12] net: ethernet: oa_tc6: implement mac-phy interrupt Parthiban Veerasooran
2024-03-06 23:42 ` Woojung.Huh
2024-03-07 10:16 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 11/12] microchip: lan865x: add driver support for Microchip's LAN865X MAC-PHY Parthiban Veerasooran
2024-03-06 23:44 ` Woojung.Huh
2024-03-07 9:13 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 12/12] dt-bindings: net: add Microchip's LAN865X 10BASE-T1S MACPHY Parthiban Veerasooran
2024-03-06 18:16 ` Conor Dooley
2024-03-06 18:48 ` Andrew Lunn
2024-03-06 19:01 ` Conor Dooley
2024-03-20 8:40 ` Parthiban.Veerasooran
2024-03-20 9:53 ` Krzysztof Kozlowski
2024-03-21 8:38 ` Parthiban.Veerasooran
2024-03-21 8:40 ` Krzysztof Kozlowski
2024-03-21 12:00 ` Parthiban.Veerasooran
2024-03-21 15:34 ` Conor Dooley
2024-03-22 6:25 ` Parthiban.Veerasooran
2024-03-22 7:03 ` Krzysztof Kozlowski
2024-03-22 8:28 ` Parthiban.Veerasooran
2024-03-23 10:24 ` Krzysztof Kozlowski
2024-03-25 7:10 ` Parthiban.Veerasooran
2024-03-25 7:10 ` Parthiban.Veerasooran
2024-03-22 18:08 ` Conor Dooley
2024-03-25 7:12 ` Parthiban.Veerasooran
2024-03-20 8:40 ` Parthiban.Veerasooran
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=3fc3b5c3-0750-4aff-ab26-240f4bc55236@lunn.ch \
--to=andrew@lunn.ch \
--cc=Horatiu.Vultur@microchip.com \
--cc=Nicolas.Ferre@microchip.com \
--cc=Parthiban.Veerasooran@microchip.com \
--cc=Pier.Beruto@onsemi.com \
--cc=Selvamani.Rajagopal@onsemi.com \
--cc=Steen.Hegelund@microchip.com \
--cc=Thorsten.Kummermehr@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=anthony.l.nguyen@intel.com \
--cc=benjamin.bigler@bernformulastudent.ch \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh+dt@kernel.org \
--cc=ruanjinjie@huawei.com \
--cc=saeedm@nvidia.com \
--cc=vladimir.oltean@nxp.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