12345678910111213141516171819202122232425262728293031 |
- --- 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)
|