net: dsa: qca8k: enlarge mdio delay and timeout
authorAnsuel Smith <ansuelsmth@gmail.com>
Fri, 14 May 2021 21:00:09 +0000 (23:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 May 2021 22:30:22 +0000 (15:30 -0700)
The witch require some extra delay after setting page or the next
read/write can use still use the old page. Add a delay after the
set_page function to address this as it's done in QSDK legacy driver.
Some timeouts were notice with VLAN and phy function, enlarge the
mdio busy wait timeout to fix these problems.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c
drivers/net/dsa/qca8k.h

index 1f8bfe0a78f45b090b67df02792d4985d4eea4d2..df4cf6d75074bc8ea3469a047c080409726c3aeb 100644 (file)
@@ -143,6 +143,7 @@ qca8k_set_page(struct mii_bus *bus, u16 page)
        }
 
        qca8k_current_page = page;
+       usleep_range(1000, 2000);
        return 0;
 }
 
index a878486d9bcd62db1640af057ab4b93e190109e8..d365f85ab34f880a2a206e17c99cd123593079f1 100644 (file)
@@ -20,7 +20,7 @@
 #define PHY_ID_QCA8337                                 0x004dd036
 #define QCA8K_ID_QCA8337                               0x13
 
-#define QCA8K_BUSY_WAIT_TIMEOUT                                20
+#define QCA8K_BUSY_WAIT_TIMEOUT                                2000
 
 #define QCA8K_NUM_FDB_RECORDS                          2048