OSDN Git Service

net: dsa: mv88e6xxx: wait for 88E6185 PPU disabled
authorVivien Didelot <vivien.didelot@gmail.com>
Fri, 9 Aug 2019 22:47:53 +0000 (18:47 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 Aug 2019 04:27:15 +0000 (21:27 -0700)
The PPU state of 88E6185 can be either "Disabled at Reset" or
"Disabled after Initialization". Because we intentionally clear the
PPU Enabled bit before checking its state, it is safe to wait for the
MV88E6185_G1_STS_PPU_STATE_DISABLED state explicitly instead of waiting
for any state different than MV88E6185_G1_STS_PPU_STATE_POLLING.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/global1.c

index 1323ef3..bbd31c9 100644 (file)
@@ -46,7 +46,7 @@ static int mv88e6185_g1_wait_ppu_disabled(struct mv88e6xxx_chip *chip)
 
                /* Check the value of the PPUState bits 15:14 */
                state &= MV88E6185_G1_STS_PPU_STATE_MASK;
-               if (state != MV88E6185_G1_STS_PPU_STATE_POLLING)
+               if (state == MV88E6185_G1_STS_PPU_STATE_DISABLED)
                        return 0;
 
                usleep_range(1000, 2000);