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+rene...@mailbox.org> --- Cc: "Ariel D'Alessandro" <ariel.dalessan...@collabora.com> Cc: "Cédric Le Goater" <c...@kaod.org> Cc: "Marek Behún" <ka...@kernel.org> Cc: Alex Nemirovsky <alex.nemirov...@cortina-access.com> Cc: Haolin Li <li.hao...@qq.com> Cc: Heinrich Schuchardt <xypron.g...@gmx.de> Cc: Joe Hershberger <joe.hershber...@ni.com> Cc: Joel Stanley <j...@jms.id.au> Cc: Josua Mayer <jo...@solid-run.com> Cc: Marek Vasut <marek.vasut+rene...@mailbox.org> Cc: Michael Trimarchi <mich...@amarulasolutions.com> Cc: Michal Simek <michal.si...@amd.com> Cc: Nate Drude <nat...@variscite.com> Cc: Neil Armstrong <neil.armstr...@linaro.org> Cc: Radu Pirea <radu-nicolae.pi...@oss.nxp.com> Cc: Ramon Fried <rfried....@gmail.com> Cc: Samuel Mendoza-Jonas <s...@mendozajonas.com> Cc: Stefan Roese <s...@denx.de> Cc: T Karthik Reddy <t.karthik.re...@xilinx.com> Cc: Tim Harvey <thar...@gateworks.com> Cc: Vladimir Oltean <vladimir.olt...@nxp.com> Cc: u-boot-amlo...@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