net: dsa: mv88e6xxx: wait after reset deactivation
authorBaruch Siach <baruch@tkos.co.il>
Thu, 27 Jun 2019 18:17:39 +0000 (21:17 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Jul 2019 05:28:45 +0000 (07:28 +0200)
[ Upstream commit 7b75e49de424ceb53d13e60f35d0a73765626fda ]

Add a 1ms delay after reset deactivation. Otherwise the chip returns
bogus ID value. This is observed with 88E6390 (Peridot) chip.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/dsa/mv88e6xxx/chip.c

index 086603de1859849f19237c0d633ce8128fa0dd40..0fff1502267a4af25d5a79328d11b7c2b53b27d8 100644 (file)
@@ -4044,6 +4044,8 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
                                goto out_g1_irq;
                }
        }
+       if (chip->reset)
+               usleep_range(1000, 2000);
 
        err = mv88e6xxx_mdios_register(chip, np);
        if (err)