Skip to content

Commit

Permalink
ar71xx: add missing code for ar933x WMAC reset that was left out duri…
Browse files Browse the repository at this point in the history
…ng 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-a3cf2f4a3e73
  • Loading branch information
nbd committed Sep 17, 2012
1 parent 55c1dae commit 6cd2814
Showing 1 changed file with 31 additions and 0 deletions.
@@ -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)

0 comments on commit 6cd2814

Please sign in to comment.