--- a/arch/mips/ath79/dev-wmac.c +++ b/arch/mips/ath79/dev-wmac.c @@ -62,10 +62,27 @@ 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); + retries++; + } + + pr_err("ar933x: WMAC reset timed out"); + return -ETIMEDOUT; } static int ar933x_r1_get_wmac_revision(void) o' rowspan='2'>cgit logo index : openwrt/upstream
upstream openwrtJames
aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/patches-5.4/405-mtd-tp-link-partition-parser.patch
blob: 11d1869544a595a6258c54c5f32f426c8df68b4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25