diff options
author | Marek Vasut <marek.vasut+renesas@mailbox.org> | 2023-03-19 18:02:41 +0100 |
---|---|---|
committer | Marek Vasut <marek.vasut+renesas@mailbox.org> | 2023-04-07 14:18:48 +0200 |
commit | 9d5a38c2143e32d36908cbd5ef53a688e89edcb5 (patch) | |
tree | c8b95b4ca117b4c94ab8ca36aede275702c31838 /drivers/net/phy | |
parent | d1569689c65467af4f96a4571bda2f56229b088f (diff) | |
download | u-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.c | 39 |
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; } |