[PATCH 05/41] net: phy: Factor manual relocation into separate function

Marek Vasut marek.vasut+renesas at mailbox.org
Sun Mar 19 18:02:41 CET 2023


Create separate function to implement manual relocation of PHY driver
functions and make use of that function. This is a preparatory patch
for introduction of PHY driver definition using linker lists.

No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: "Ariel D'Alessandro" <ariel.dalessandro at collabora.com>
Cc: "Cédric Le Goater" <clg at kaod.org>
Cc: "Marek Behún" <kabel at kernel.org>
Cc: Alex Nemirovsky <alex.nemirovsky at cortina-access.com>
Cc: Haolin Li <li.haolin at qq.com>
Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
Cc: Joe Hershberger <joe.hershberger at ni.com>
Cc: Joel Stanley <joel at jms.id.au>
Cc: Josua Mayer <josua at solid-run.com>
Cc: Marek Vasut <marek.vasut+renesas at mailbox.org>
Cc: Michael Trimarchi <michael at amarulasolutions.com>
Cc: Michal Simek <michal.simek at amd.com>
Cc: Nate Drude <nate.d at variscite.com>
Cc: Neil Armstrong <neil.armstrong at linaro.org>
Cc: Radu Pirea <radu-nicolae.pirea at oss.nxp.com>
Cc: Ramon Fried <rfried.dev at gmail.com>
Cc: Samuel Mendoza-Jonas <sam at mendozajonas.com>
Cc: Stefan Roese <sr at denx.de>
Cc: T Karthik Reddy <t.karthik.reddy at xilinx.com>
Cc: Tim Harvey <tharvey at gateworks.com>
Cc: Vladimir Oltean <vladimir.oltean at nxp.com>
Cc: u-boot-amlogic at groups.io
---
 drivers/net/phy/phy.c | 39 +++++++++++++++++++++++----------------
 1 file changed, 23 insertions(+), 16 deletions(-)

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 80230b907c1..5097c32b829 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -470,6 +470,28 @@ static int genphy_init(void)
 
 static LIST_HEAD(phy_drivers);
 
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
+static void phy_drv_reloc(struct phy_driver *drv)
+{
+	if (drv->probe)
+		drv->probe += gd->reloc_off;
+	if (drv->config)
+		drv->config += gd->reloc_off;
+	if (drv->startup)
+		drv->startup += gd->reloc_off;
+	if (drv->shutdown)
+		drv->shutdown += gd->reloc_off;
+	if (drv->readext)
+		drv->readext += gd->reloc_off;
+	if (drv->writeext)
+		drv->writeext += gd->reloc_off;
+	if (drv->read_mmd)
+		drv->read_mmd += gd->reloc_off;
+	if (drv->write_mmd)
+		drv->write_mmd += gd->reloc_off;
+}
+#endif
+
 int phy_init(void)
 {
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
@@ -582,22 +604,7 @@ int phy_register(struct phy_driver *drv)
 	list_add_tail(&drv->list, &phy_drivers);
 
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
-	if (drv->probe)
-		drv->probe += gd->reloc_off;
-	if (drv->config)
-		drv->config += gd->reloc_off;
-	if (drv->startup)
-		drv->startup += gd->reloc_off;
-	if (drv->shutdown)
-		drv->shutdown += gd->reloc_off;
-	if (drv->readext)
-		drv->readext += gd->reloc_off;
-	if (drv->writeext)
-		drv->writeext += gd->reloc_off;
-	if (drv->read_mmd)
-		drv->read_mmd += gd->reloc_off;
-	if (drv->write_mmd)
-		drv->write_mmd += gd->reloc_off;
+	phy_drv_reloc(drv);
 #endif
 	return 0;
 }
-- 
2.39.2



More information about the U-Boot mailing list