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 1f8bfe0..df4cf6d 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 a878486..d365f85 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