The static phy_drivers list is superseded by linker list of struct phy_drivers
now that all drivers have been converted to the later. Drop the phy_drivers
list as well as list_head from struct phy_driver.

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 | 26 ++------------------------
 include/phy.h         |  2 --
 2 files changed, 2 insertions(+), 26 deletions(-)

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index bd9c576f459..f4aa1f664cb 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -463,8 +463,6 @@ U_BOOT_PHY_DRIVER(genphy) = {
        .shutdown       = genphy_shutdown,
 };
 
-static LIST_HEAD(phy_drivers);
-
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
 static void phy_drv_reloc(struct phy_driver *drv)
 {
@@ -493,16 +491,6 @@ int phy_init(void)
        const int ll_n_ents = ll_entry_count(struct phy_driver, phy_driver);
        struct phy_driver *drv, *ll_entry;
 
-       /*
-        * The pointers inside phy_drivers also needs to be updated incase of
-        * manual reloc, without which these points to some invalid
-        * pre reloc address and leads to invalid accesses, hangs.
-        */
-       struct list_head *head = &phy_drivers;
-
-       head->next = (void *)head->next + gd->reloc_off;
-       head->prev = (void *)head->prev + gd->reloc_off;
-
        /* Perform manual relocation on linker list based PHY drivers */
        ll_entry = ll_entry_start(struct phy_driver, phy_driver);
        for (drv = ll_entry; drv != ll_entry + ll_n_ents; drv++)
@@ -514,9 +502,6 @@ int phy_init(void)
 
 int phy_register(struct phy_driver *drv)
 {
-       INIT_LIST_HEAD(&drv->list);
-       list_add_tail(&drv->list, &phy_drivers);
-
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
        phy_drv_reloc(drv);
 #endif
@@ -575,16 +560,9 @@ static struct phy_driver *generic_for_phy(struct 
phy_device *phydev)
 static struct phy_driver *get_phy_driver(struct phy_device *phydev)
 {
        const int ll_n_ents = ll_entry_count(struct phy_driver, phy_driver);
-       struct phy_driver *ll_entry;
-       struct list_head *entry;
        int phy_id = phydev->phy_id;
-       struct phy_driver *drv = NULL;
-
-       list_for_each(entry, &phy_drivers) {
-               drv = list_entry(entry, struct phy_driver, list);
-               if ((drv->uid & drv->mask) == (phy_id & drv->mask))
-                       return drv;
-       }
+       struct phy_driver *ll_entry;
+       struct phy_driver *drv;
 
        ll_entry = ll_entry_start(struct phy_driver, phy_driver);
        for (drv = ll_entry; drv != ll_entry + ll_n_ents; drv++)
diff --git a/include/phy.h b/include/phy.h
index 5f4967cb150..5e8ae5e29aa 100644
--- a/include/phy.h
+++ b/include/phy.h
@@ -125,8 +125,6 @@ struct phy_driver {
        int (*write_mmd)(struct phy_device *phydev, int devad, int reg,
                         u16 val);
 
-       struct list_head list;
-
        /* driver private data */
        ulong data;
 };
-- 
2.39.2

Reply via email to