OpenWrt – Rev 1

Subversion Repositories:
Rev:
--- a/arch/mips/ath79/dev-wmac.c
+++ b/arch/mips/ath79/dev-wmac.c
@@ -62,10 +62,26 @@ static void __init ar913x_wmac_setup(voi
 
 static int ar933x_wmac_reset(void)
 {
+       int retries = 20;
+
        ath79_device_reset_set(AR933X_RESET_WMAC);
        ath79_device_reset_clear(AR933X_RESET_WMAC);
 
-       return 0;
+       while (1) {
+               u32 bootstrap;
+
+               bootstrap = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP);
+               if ((bootstrap & AR933X_BOOTSTRAP_EEPBUSY) == 0)
+                       return 0;
+
+               if (retries-- == 0)
+                       break;
+
+               udelay(10000);
+       }
+
+       pr_err("ar933x: WMAC reset timed out");
+       return -ETIMEDOUT;
 }
 
 static int ar933x_r1_get_wmac_revision(void)