Root/target/linux/ar71xx/patches-3.3/650-MIPS-ath79-fix-ar933x-reset.patch

1--- a/arch/mips/ath79/dev-wmac.c
2+++ b/arch/mips/ath79/dev-wmac.c
3@@ -67,10 +67,27 @@ static void __init ar913x_wmac_setup(voi
4 
5 static int ar933x_wmac_reset(void)
6 {
7+ int retries = 20;
8+
9     ath79_device_reset_set(AR933X_RESET_WMAC);
10     ath79_device_reset_clear(AR933X_RESET_WMAC);
11 
12- return 0;
13+ while (1) {
14+ u32 bootstrap;
15+
16+ bootstrap = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP);
17+ if ((bootstrap & AR933X_BOOTSTRAP_EEPBUSY) == 0)
18+ return 0;
19+
20+ if (retries-- == 0)
21+ break;
22+
23+ udelay(10000);
24+ retries++;
25+ }
26+
27+ pr_err("ar933x: WMAC reset timed out");
28+ return -ETIMEDOUT;
29 }
30 
31 static int ar933x_r1_get_wmac_revision(void)
32

Archive Download this file



interactive