Replace the name based look up in bb_miiphy_getbus() with trivial
container_of() call. This works because the struct bb_miiphy_bus
always embeds the matching struct mii_dev . This also makes the
code much simpler and more efficient.

Signed-off-by: Marek Vasut <marek.vasut+rene...@mailbox.org>
---
Cc: Christian Marangi <ansuels...@gmail.com>
Cc: Evgeny Bachinin <eabachi...@salutedevices.com>
Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org>
Cc: Jerome Forissier <jerome.foriss...@linaro.org>
Cc: Joe Hershberger <joe.hershber...@ni.com>
Cc: Mario Six <mario....@gdsys.cc>
Cc: Michal Simek <michal.si...@amd.com>
Cc: Nobuhiro Iwamatsu <iwama...@nigauri.org>
Cc: Paul Barker <paul.barker...@bp.renesas.com>
Cc: Ramon Fried <rfried....@gmail.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Sughosh Ganu <sughosh.g...@linaro.org>
Cc: Tom Rini <tr...@konsulko.com>
Cc: u-boot@lists.denx.de
---
 drivers/net/phy/miiphybb.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/net/phy/miiphybb.c b/drivers/net/phy/miiphybb.c
index 9733ebf6f09..cdb0ee9dc8a 100644
--- a/drivers/net/phy/miiphybb.c
+++ b/drivers/net/phy/miiphybb.c
@@ -29,17 +29,9 @@ int bb_miiphy_init(void)
        return 0;
 }
 
-static inline struct bb_miiphy_bus *bb_miiphy_getbus(const char *devname)
+static inline struct bb_miiphy_bus *bb_miiphy_getbus(struct mii_dev *miidev)
 {
-       int i;
-
-       /* Search the correct bus */
-       for (i = 0; i < bb_miiphy_buses_num; i++) {
-               if (!strcmp(bb_miiphy_buses[i].name, devname)) {
-                       return &bb_miiphy_buses[i];
-               }
-       }
-       return NULL;
+       return container_of(miidev, struct bb_miiphy_bus, mii);
 }
 
 struct bb_miiphy_bus *bb_miiphy_alloc(void)
@@ -152,7 +144,7 @@ int bb_miiphy_read(struct mii_dev *miidev, int addr, int 
devad, int reg)
        int j; /* counter */
        struct bb_miiphy_bus *bus;
 
-       bus = bb_miiphy_getbus(miidev->name);
+       bus = bb_miiphy_getbus(miidev);
        if (bus == NULL) {
                return -1;
        }
@@ -220,7 +212,7 @@ int bb_miiphy_write(struct mii_dev *miidev, int addr, int 
devad, int reg,
        struct bb_miiphy_bus *bus;
        int j;                  /* counter */
 
-       bus = bb_miiphy_getbus(miidev->name);
+       bus = bb_miiphy_getbus(miidev);
        if (bus == NULL) {
                /* Bus not found! */
                return -1;
-- 
2.45.2

Reply via email to