All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Marek Behún" <kabel@kernel.org>
To: 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>
Cc: "Russell King" <rmk+kernel@armlinux.org.uk>,
	"Alexander Couzens" <lynxis@fe80.eu>,
	"Daniel Golle" <daniel@makrotopia.org>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"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>,
	"Marek Behún" <kabel@kernel.org>
Subject: [PATCH net-next 02/15] net: phy: export indirect MMD register accessors
Date: Wed, 20 Dec 2023 16:55:05 +0100	[thread overview]
Message-ID: <20231220155518.15692-3-kabel@kernel.org> (raw)
In-Reply-To: <20231220155518.15692-1-kabel@kernel.org>

Export mmd_phy_read_indirect() and mmd_phy_write_indirect(), the
indirect MMD accessors, so that the functions can be used from the
.read_mmd / .write_mmd phy_driver methods.

Add a __ prefix to these functions.

Signed-off-by: Marek Behún <kabel@kernel.org>
---
 drivers/net/phy/phy-core.c | 14 ++++++++------
 include/linux/phy.h        | 10 ++++++++++
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
index 9318b65cca95..150020cfa593 100644
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -546,8 +546,8 @@ static int mmd_phy_indirect(struct mii_bus *bus, int phy_addr, int devad,
 			       devad | MII_MMD_CTRL_NOINCR);
 }
 
-static int mmd_phy_read_indirect(struct mii_bus *bus, int phy_addr, int devad,
-				 u32 regnum)
+int __mmd_phy_read_indirect(struct mii_bus *bus, int phy_addr, int devad,
+			    u32 regnum)
 {
 	int ret;
 
@@ -558,9 +558,10 @@ static int mmd_phy_read_indirect(struct mii_bus *bus, int phy_addr, int devad,
 	/* Read the content of the MMD's selected register */
 	return __mdiobus_read(bus, phy_addr, MII_MMD_DATA);
 }
+EXPORT_SYMBOL(__mmd_phy_read_indirect);
 
-static int mmd_phy_write_indirect(struct mii_bus *bus, int phy_addr, int devad,
-				  u32 regnum, u16 val)
+int __mmd_phy_write_indirect(struct mii_bus *bus, int phy_addr, int devad,
+			     u32 regnum, u16 val)
 {
 	int ret;
 
@@ -571,6 +572,7 @@ static int mmd_phy_write_indirect(struct mii_bus *bus, int phy_addr, int devad,
 	/* Write the data into MMD's selected register */
 	return __mdiobus_write(bus, phy_addr, MII_MMD_DATA, val);
 }
+EXPORT_SYMBOL(__mmd_phy_write_indirect);
 
 static int mmd_phy_read(struct mii_bus *bus, int phy_addr, bool is_c45,
 			int devad, u32 regnum)
@@ -578,7 +580,7 @@ static int mmd_phy_read(struct mii_bus *bus, int phy_addr, bool is_c45,
 	if (is_c45)
 		return __mdiobus_c45_read(bus, phy_addr, devad, regnum);
 
-	return mmd_phy_read_indirect(bus, phy_addr, devad, regnum);
+	return __mmd_phy_read_indirect(bus, phy_addr, devad, regnum);
 }
 
 static int mmd_phy_write(struct mii_bus *bus, int phy_addr, bool is_c45,
@@ -587,7 +589,7 @@ static int mmd_phy_write(struct mii_bus *bus, int phy_addr, bool is_c45,
 	if (is_c45)
 		return __mdiobus_c45_write(bus, phy_addr, devad, regnum, val);
 
-	return mmd_phy_write_indirect(bus, phy_addr, devad, regnum, val);
+	return __mmd_phy_write_indirect(bus, phy_addr, devad, regnum, val);
 }
 
 /**
diff --git a/include/linux/phy.h b/include/linux/phy.h
index e9e85d347587..65b79b155f3a 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1358,6 +1358,16 @@ int phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum);
 	__ret; \
 })
 
+/*
+ * __mmd_phy_read_indirect, __mmd_phy_write_indirect - Convenience functions for
+ * indirectly accessing MMD registers via clause 22 registers 13 and 14. Can be
+ * used in phy_driver's .read_mmd and .write_mmd methods.
+ */
+int __mmd_phy_read_indirect(struct mii_bus *bus, int phy_addr, int devad,
+			    u32 regnum);
+int __mmd_phy_write_indirect(struct mii_bus *bus, int phy_addr, int devad,
+			     u32 regnum, u16 val);
+
 /*
  * __phy_read_mmd - Convenience function for reading a register
  * from an MMD on a given PHY.
-- 
2.41.0


  parent reply	other threads:[~2023-12-20 15:55 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 ` Marek Behún [this message]
2024-01-02 11:15   ` [PATCH net-next 02/15] net: phy: export indirect MMD register accessors 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
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=20231220155518.15692-3-kabel@kernel.org \
    --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 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.