ar71xx: add linux 3.10
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / patches-3.10 / 213-MIPS-ath79-fix-ar933x-wmac-reset.patch
1 --- a/arch/mips/ath79/dev-wmac.c
2 +++ b/arch/mips/ath79/dev-wmac.c
3 @@ -62,10 +62,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)