linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).