The switch needs to be taken out of reset before we can read its ID
register on the MDIO bus.

Signed-off-by: Andrew Lunn <and...@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.dide...@savoirfairelinux.com>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index e30d0eaf2b5f..062b9128a58d 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -3855,16 +3855,16 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
        if (err)
                return err;
 
+       chip->reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
+       if (IS_ERR(chip->reset))
+               return PTR_ERR(chip->reset);
+
        err = mv88e6xxx_detect(chip);
        if (err)
                return err;
 
        mv88e6xxx_phy_init(chip);
 
-       chip->reset = devm_gpiod_get_optional(dev, "reset", GPIOD_ASIS);
-       if (IS_ERR(chip->reset))
-               return PTR_ERR(chip->reset);
-
        if (chip->info->ops->get_eeprom &&
            !of_property_read_u32(np, "eeprom-length", &eeprom_len))
                chip->eeprom_len = eeprom_len;
-- 
2.10.2

Reply via email to