net: phy: Factor manual relocation into separate function
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Sun, 19 Mar 2023 17:02:41 +0000 (18:02 +0100)
committerMarek Vasut <marek.vasut+renesas@mailbox.org>
Fri, 7 Apr 2023 12:18:48 +0000 (14:18 +0200)
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@mailbox.org>
Acked-by: Michal Simek <michal.simek@amd.com>
Tested-by: Michal Simek <michal.simek@amd.com> #microblaze (MANUAL_RELOC)
drivers/net/phy/phy.c

index 80230b9..5097c32 100644 (file)
@@ -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;
 }