Check the compatible string of ethernet1 node for KS8851 very early on,
before calling uclass_get_device_by_of_path() which might initialize
the device and possibly attempt to configure MAC address into device
which is not KS8851. Doing the compatibility check early prevent this.

Signed-off-by: Marek Vasut <marek.va...@mailbox.org>
---
Cc: Patrice Chotard <patrice.chot...@foss.st.com>
Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Tom Rini <tr...@konsulko.com>
Cc: u-b...@dh-electronics.com
Cc: u-boot@lists.denx.de
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 board/dhelectronics/dh_stm32mp1/board.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/board/dhelectronics/dh_stm32mp1/board.c 
b/board/dhelectronics/dh_stm32mp1/board.c
index a15348ad7e7..551094b9489 100644
--- a/board/dhelectronics/dh_stm32mp1/board.c
+++ b/board/dhelectronics/dh_stm32mp1/board.c
@@ -85,6 +85,9 @@ static bool dh_stm32_mac_is_in_ks8851(void)
        if (!ofnode_valid(node))
                return false;
 
+       if (!ofnode_device_is_compatible(node, "micrel,ks8851-mll"))
+               return false;
+
        ret = ofnode_get_path(node, path, sizeof(path));
        if (ret)
                return false;
@@ -93,9 +96,6 @@ static bool dh_stm32_mac_is_in_ks8851(void)
        if (ret)
                return false;
 
-       if (!ofnode_device_is_compatible(node, "micrel,ks8851-mll"))
-               return false;
-
        /*
         * KS8851 with EEPROM may use custom MAC from EEPROM, read
         * out the KS8851 CCR register to determine whether EEPROM
-- 
2.51.0

Reply via email to