aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/phy
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut+renesas@mailbox.org>2023-03-19 18:02:41 +0100
committerMarek Vasut <marek.vasut+renesas@mailbox.org>2023-04-07 14:18:48 +0200
commit9d5a38c2143e32d36908cbd5ef53a688e89edcb5 (patch)
treec8b95b4ca117b4c94ab8ca36aede275702c31838 /drivers/net/phy
parentd1569689c65467af4f96a4571bda2f56229b088f (diff)
downloadu-boot-9d5a38c2143e32d36908cbd5ef53a688e89edcb5.zip
u-boot-9d5a38c2143e32d36908cbd5ef53a688e89edcb5.tar.gz
u-boot-9d5a38c2143e32d36908cbd5ef53a688e89edcb5.tar.bz2
net: phy: Factor manual relocation into separate function
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)
Diffstat (limited to 'drivers/net/phy')
-rw-r--r--drivers/net/phy/phy.c39
1 files changed, 23 insertions, 16 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 80230b9..5097c32 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;
}