* ath9k_hw_check_alive routine
@ 2011-01-10 20:23 Bill Jordan
2011-01-11 0:26 ` Felix Fietkau
0 siblings, 1 reply; 3+ messages in thread
From: Bill Jordan @ 2011-01-10 20:23 UTC (permalink / raw)
To: linux-wireless, ath9k-devel, Luis R. Rodriguez, Jouni Malinen,
Vasanthakumar Thiagarajan, Senthil Balasubramanian
This routine is failing a lot on my AR9160. The ((reg & 0x7E7FFFEF) ==
0x00702400) test is the one that always fails. There is no debug
messages in this path, so it may not be obvious whether others are
experiencing the problem.
This forces ath9k_tasklet to reset the hardware. If I increase the
count to 500, I can eliminate most of the resets, so the hardware
isn't really hung. However, it sometimes takes over 25 milliseconds
before the test condition passes.
I don't have specs for the radio, and the numeric constants aren't
very useful, so I can't tell what condition we are waiting for or why.
Can someone with a spec shed some light on this problem?
bool ath9k_hw_check_alive(struct ath_hw *ah)
{
int count = 50;
u32 reg;
if (AR_SREV_9285_10_OR_LATER(ah))
return true;
do {
reg = REG_READ(ah, AR_OBS_BUS_1);
if ((reg & 0x7E7FFFEF) == 0x00702400)
continue;
switch (reg & 0x7E000B00) {
case 0x1E000000:
case 0x52000B00:
case 0x18000B00:
continue;
default:
return true;
}
} while (count-- > 0);
return false;
}
Thanks,
Bill Jordan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ath9k_hw_check_alive routine
2011-01-10 20:23 ath9k_hw_check_alive routine Bill Jordan
@ 2011-01-11 0:26 ` Felix Fietkau
2011-01-12 1:37 ` Bill Jordan
0 siblings, 1 reply; 3+ messages in thread
From: Felix Fietkau @ 2011-01-11 0:26 UTC (permalink / raw)
To: Bill Jordan
Cc: linux-wireless, ath9k-devel, Luis R. Rodriguez, Jouni Malinen,
Vasanthakumar Thiagarajan, Senthil Balasubramanian
On 2011-01-10 1:23 PM, Bill Jordan wrote:
> This routine is failing a lot on my AR9160. The ((reg& 0x7E7FFFEF) ==
> 0x00702400) test is the one that always fails. There is no debug
> messages in this path, so it may not be obvious whether others are
> experiencing the problem.
>
> This forces ath9k_tasklet to reset the hardware. If I increase the
> count to 500, I can eliminate most of the resets, so the hardware
> isn't really hung. However, it sometimes takes over 25 milliseconds
> before the test condition passes.
>
> I don't have specs for the radio, and the numeric constants aren't
> very useful, so I can't tell what condition we are waiting for or why.
>
> Can someone with a spec shed some light on this problem?
I just posted a 4-patch series, the last patch of that should take care
of this problem. Please test.
- Felix
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ath9k_hw_check_alive routine
2011-01-11 0:26 ` Felix Fietkau
@ 2011-01-12 1:37 ` Bill Jordan
0 siblings, 0 replies; 3+ messages in thread
From: Bill Jordan @ 2011-01-12 1:37 UTC (permalink / raw)
To: Felix Fietkau
Cc: linux-wireless, ath9k-devel, Luis R. Rodriguez, Jouni Malinen,
Vasanthakumar Thiagarajan, Senthil Balasubramanian
On Mon, Jan 10, 2011 at 7:26 PM, Felix Fietkau <nbd@openwrt.org> wrote:
> On 2011-01-10 1:23 PM, Bill Jordan wrote:
>>
>> This routine is failing a lot on my AR9160. The ((reg& 0x7E7FFFEF) ==
>> 0x00702400) test is the one that always fails. There is no debug
>> messages in this path, so it may not be obvious whether others are
>> experiencing the problem.
>>
>> This forces ath9k_tasklet to reset the hardware. If I increase the
>> count to 500, I can eliminate most of the resets, so the hardware
>> isn't really hung. However, it sometimes takes over 25 milliseconds
>> before the test condition passes.
>>
>> I don't have specs for the radio, and the numeric constants aren't
>> very useful, so I can't tell what condition we are waiting for or why.
>>
>> Can someone with a spec shed some light on this problem?
>
> I just posted a 4-patch series, the last patch of that should take care of
> this problem. Please test.
>
> - Felix
>
I tried your patch. It improved the situation, but it still reset
every couple minutes. It also seems to reset a few times in quick
succession every time it resets. What is the routine testing for? Is
this a test for a stuck transmitter? I'm in a very noisy environment,
and it could take a while to transmit.
Bill Jordan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-01-12 1:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-10 20:23 ath9k_hw_check_alive routine Bill Jordan
2011-01-11 0:26 ` Felix Fietkau
2011-01-12 1:37 ` Bill Jordan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).