[PATCH 38/41] net: phy: Drop static phy_drivers list
Ramon Fried
rfried.dev at gmail.com
Sat Apr 1 20:47:18 CEST 2023
On Sun, Mar 19, 2023 at 7:05 PM Marek Vasut
<marek.vasut+renesas at mailbox.org> wrote:
>
> 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+renesas at mailbox.org>
> ---
> Cc: "Ariel D'Alessandro" <ariel.dalessandro at collabora.com>
> Cc: "Cédric Le Goater" <clg at kaod.org>
> Cc: "Marek Behún" <kabel at kernel.org>
> Cc: Alex Nemirovsky <alex.nemirovsky at cortina-access.com>
> Cc: Haolin Li <li.haolin at qq.com>
> Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Cc: Joe Hershberger <joe.hershberger at ni.com>
> Cc: Joel Stanley <joel at jms.id.au>
> Cc: Josua Mayer <josua at solid-run.com>
> Cc: Marek Vasut <marek.vasut+renesas at mailbox.org>
> Cc: Michael Trimarchi <michael at amarulasolutions.com>
> Cc: Michal Simek <michal.simek at amd.com>
> Cc: Nate Drude <nate.d at variscite.com>
> Cc: Neil Armstrong <neil.armstrong at linaro.org>
> Cc: Radu Pirea <radu-nicolae.pirea at oss.nxp.com>
> Cc: Ramon Fried <rfried.dev at gmail.com>
> Cc: Samuel Mendoza-Jonas <sam at mendozajonas.com>
> Cc: Stefan Roese <sr at denx.de>
> Cc: T Karthik Reddy <t.karthik.reddy at xilinx.com>
> Cc: Tim Harvey <tharvey at gateworks.com>
> Cc: Vladimir Oltean <vladimir.oltean at nxp.com>
> Cc: u-boot-amlogic at 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
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>
More information about the U-Boot
mailing list