ar71xx: add missing code for ar933x WMAC reset that was left out during the ar71xx->ath79 migration, should fix wifi stability issues on ar933x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33446 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
1281f1c74c
commit
0611e73d53
|
@ -0,0 +1,31 @@
|
||||||
|
--- a/arch/mips/ath79/dev-wmac.c
|
||||||
|
+++ b/arch/mips/ath79/dev-wmac.c
|
||||||
|
@@ -67,10 +67,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)
|
Loading…
Reference in New Issue