From: "Marek Behún" <kabel@kernel.org>
To: Heiner Kallweit <hkallweit1@gmail.com>
Cc: netdev@vger.kernel.org, "Andrew Lunn" <andrew@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Russell King" <rmk+kernel@armlinux.org.uk>,
"Alexander Couzens" <lynxis@fe80.eu>,
"Daniel Golle" <daniel@makrotopia.org>,
"Willy Liu" <willy.liu@realtek.com>,
"Ioana Ciornei" <ioana.ciornei@nxp.com>,
"Marek Mojík" <marek.mojik@nic.cz>,
"Maximilián Maliar" <maximilian.maliar@nic.cz>
Subject: Re: [PATCH net-next 13/15] net: phy: realtek: drop .read_page and .write_page for rtl822x series
Date: Thu, 21 Dec 2023 11:21:53 +0100 [thread overview]
Message-ID: <20231221112153.436d8bdb@dellmb> (raw)
In-Reply-To: <cb28278d-c038-4dbf-81e7-097bf61dfb74@gmail.com>
On Wed, 20 Dec 2023 18:23:21 +0100
Heiner Kallweit <hkallweit1@gmail.com> wrote:
> On 20.12.2023 16:55, Marek Behún wrote:
> > Drop the .read_page() and .write_page() methods for rtl822x series.
> >
> > The rtl822x driver methods are now reimplemented to only access clause
> > 45 registers and these are the last methods that explicitly access
> > clause 22 registers.
> >
> > If the underlying MDIO bus is clause 22, the paging mechanism is still
> > used internally in the .read_mmd() and .write_mmd() methods when
> > accessing registers in MMD 31.
> >
> > Signed-off-by: Marek Behún <kabel@kernel.org>
> > ---
> > drivers/net/phy/realtek.c | 12 ------------
> > 1 file changed, 12 deletions(-)
> >
> > diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
> > index cf608d390aa5..e2f68ac4b005 100644
> > --- a/drivers/net/phy/realtek.c
> > +++ b/drivers/net/phy/realtek.c
> > @@ -963,8 +963,6 @@ static struct phy_driver realtek_drvs[] = {
> > .read_status = rtl822x_read_status,
> > .suspend = genphy_c45_pma_suspend,
> > .resume = rtl822x_resume,
> > - .read_page = rtl821x_read_page,
> > - .write_page = rtl821x_write_page,
> > .read_mmd = rtlgen_read_mmd,
> > .write_mmd = rtlgen_write_mmd,
> > }, {
> > @@ -975,8 +973,6 @@ static struct phy_driver realtek_drvs[] = {
> > .read_status = rtl822x_read_status,
> > .suspend = genphy_c45_pma_suspend,
> > .resume = rtl822x_resume,
> > - .read_page = rtl821x_read_page,
> > - .write_page = rtl821x_write_page,
> > .read_mmd = rtlgen_read_mmd,
> > .write_mmd = rtlgen_write_mmd,
> > }, {
> > @@ -987,8 +983,6 @@ static struct phy_driver realtek_drvs[] = {
> > .read_status = rtl822x_read_status,
> > .suspend = genphy_c45_pma_suspend,
> > .resume = rtl822x_resume,
> > - .read_page = rtl821x_read_page,
> > - .write_page = rtl821x_write_page,
> > .read_mmd = rtlgen_read_mmd,
> > .write_mmd = rtlgen_write_mmd,
> > }, {
> > @@ -999,8 +993,6 @@ static struct phy_driver realtek_drvs[] = {
> > .read_status = rtl822x_read_status,
> > .suspend = genphy_c45_pma_suspend,
> > .resume = rtl822x_resume,
> > - .read_page = rtl821x_read_page,
> > - .write_page = rtl821x_write_page,
> > .read_mmd = rtlgen_read_mmd,
> > .write_mmd = rtlgen_write_mmd,
> > }, {
> > @@ -1011,8 +1003,6 @@ static struct phy_driver realtek_drvs[] = {
> > .read_status = rtl822x_read_status,
> > .suspend = genphy_c45_pma_suspend,
> > .resume = rtl822x_resume,
> > - .read_page = rtl821x_read_page,
> > - .write_page = rtl821x_write_page,
> > .read_mmd = rtlgen_read_mmd,
> > .write_mmd = rtlgen_write_mmd,
> > }, {
> > @@ -1023,8 +1013,6 @@ static struct phy_driver realtek_drvs[] = {
> > .read_status = rtl822x_read_status,
> > .suspend = genphy_c45_pma_suspend,
> > .resume = rtl822x_resume,
> > - .read_page = rtl821x_read_page,
> > - .write_page = rtl821x_write_page,
> > .read_mmd = rtlgen_read_mmd,
> > .write_mmd = rtlgen_write_mmd,
> > }, {
>
> Dropping the read_page/write_page hooks will be problematic,
> because they are used by the PHY initialization in e.g.
> rtl8125a_2_hw_phy_config().
I see.
Maybe it would be simpler to just remove it from this series.
Looking at all instances of paged access in r8169, most of them seem to
access the vendor 2 MMD registers. Also the person from Realtek says
that MMD registers are available also on 1gbps PHYs.
Looking at PHY specs for RTL8211 series, all of them (as old as 2009)
seem to document MMD access.
So I think we can safely add .read_mmd() and .write_mmd() methods to
all the PHYs in realtek.c that may be used by r8169, and then we can
change the relevant phy_read/write/modify_paged calls into
phy_read/write/modify_mmd in r8169 according to the formula.
(The relevant accesses being those where page is set to value >= 0xa00.)
What do you think?
Marek
next prev parent reply other threads:[~2023-12-21 10:22 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-20 15:55 [PATCH net-next 00/15] Realtek RTL822x PHY rework to c45 and SerDes interface switching Marek Behún
2023-12-20 15:55 ` [PATCH net-next 01/15] net: phy: fail early with error code if indirect MMD access fails Marek Behún
2024-01-02 11:09 ` Russell King (Oracle)
2023-12-20 15:55 ` [PATCH net-next 02/15] net: phy: export indirect MMD register accessors Marek Behún
2024-01-02 11:15 ` Russell King (Oracle)
2023-12-20 15:55 ` [PATCH net-next 03/15] net: phy: realtek: rework MMD register access methods Marek Behún
2024-01-02 11:16 ` Russell King (Oracle)
2024-01-02 13:18 ` Heiner Kallweit
2023-12-20 15:55 ` [PATCH net-next 04/15] net: phy: realtek: fill .read_mmd and .write_mmd methods for all rtl822x PHYs Marek Behún
2024-01-02 11:16 ` Russell King (Oracle)
2023-12-20 15:55 ` [PATCH net-next 05/15] net: mdio: add 2.5g and 5g related PMA speed constants Marek Behún
2024-01-02 11:05 ` Russell King (Oracle)
2023-12-20 15:55 ` [PATCH net-next 06/15] net: phy: realtek: use generic MDIO constants Marek Behún
2024-01-02 11:06 ` Russell King (Oracle)
2023-12-20 15:55 ` [PATCH net-next 07/15] net: phy: realtek: set is_c45 and fill in c45 IDs in PHY probe for rtl822x PHYs Marek Behún
2023-12-20 15:55 ` [PATCH net-next 08/15] net: phy: realtek: use generic clause 45 feature reading " Marek Behún
2023-12-20 15:55 ` [PATCH net-next 09/15] net: phy: realtek: read standard MMD register for rtlgen speed capability Marek Behún
2023-12-20 15:55 ` [PATCH net-next 10/15] net: phy: realtek: use generic c45 AN config with 1000baseT vendor extension for rtl822x Marek Behún
2023-12-20 15:55 ` [PATCH net-next 11/15] net: phy: realtek: use generic c45 status reading " Marek Behún
2023-12-20 15:55 ` [PATCH net-next 12/15] net: phy: realtek: use generic c45 suspend/resume " Marek Behún
2023-12-20 15:55 ` [PATCH net-next 13/15] net: phy: realtek: drop .read_page and .write_page for rtl822x series Marek Behún
2023-12-20 17:23 ` Heiner Kallweit
2023-12-21 10:21 ` Marek Behún [this message]
2023-12-20 15:55 ` [PATCH net-next 14/15] net: phy: realtek: configure SerDes mode for rtl822x PHYs Marek Behún
2023-12-20 15:55 ` [PATCH net-next 15/15] net: sfp: add quirk for another multigig RollBall transceiver Marek Behún
2023-12-20 16:20 ` [PATCH net-next 00/15] Realtek RTL822x PHY rework to c45 and SerDes interface switching Heiner Kallweit
2023-12-20 16:25 ` Marek Behún
2023-12-20 17:07 ` Heiner Kallweit
2023-12-23 19:09 ` Heiner Kallweit
2023-12-25 10:28 ` Marek Behún
2023-12-26 12:46 ` Heiner Kallweit
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=20231221112153.436d8bdb@dellmb \
--to=kabel@kernel.org \
--cc=andrew@lunn.ch \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=hkallweit1@gmail.com \
--cc=ioana.ciornei@nxp.com \
--cc=kuba@kernel.org \
--cc=lynxis@fe80.eu \
--cc=marek.mojik@nic.cz \
--cc=maximilian.maliar@nic.cz \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=willy.liu@realtek.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