Search Linux Wireless

Re: Question about starting up an AP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The legacy drivers don't work with iw, hostapd, etc., so I really couldn't test with those.

On Oct 15, 2010, at 5:46 AM, Helmut Schaa wrote:

> Am Donnerstag 14 Oktober 2010 schrieb Joshua Smith:
>> OK, I finally got a chance to run the test.  Before doing the revert, I
>> tried just using the current drivers, but with a ridiculously large
>> number of retries.
> 
> Thanks for testing.
> 
>> Lo and behold: no error.  So I think this is the reason the old drivers
>> were working for me, not anything that happened between July and September. 
>> When I went back to the old drivers, I had made this change, and they
>> worked.  I figured it was because I was using the old drivers, but now I
>> realize it is because of this change.
>> 
>> Also, I can see the behavior pretty clearly.  Sometimes when I start up
>> hostapd, it starts right up, and sometimes it takes about a second, and then
>> starts up.  So it looks like this retry number just needs to be really,
>> really big.  (Note that with this change in the old drivers, on very rare
>> occasions, I still see the "busy, aborting" error.  So perhaps it should
>> be even bigger than 1000?)
>> 
>> Not sure how you want to proceed with this, but this is the code that makes my AP work:
>> 
>> nl compat-wireless-2010-09-20/drivers/net/wireless/rt2x00/rt2800lib.c | grep -C 10 1000/
>> 
>>   225	int rt2800_wait_wpdma_ready(struct rt2x00_dev *rt2x00dev)
>>   226	{
>>   227		unsigned int i;
>>   228		u32 reg;
>> 
>>   229		for (i = 0; i < 1000/*REGISTER_BUSY_COUNT*/; i++) {
>>   230			rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg);
>>   231			if (!rt2x00_get_field32(reg, WPDMA_GLO_CFG_TX_DMA_BUSY) &&
>>   232			    !rt2x00_get_field32(reg, WPDMA_GLO_CFG_RX_DMA_BUSY))
>>   233				return 0;
>> 
>>   234			msleep(1);
>>   235		}
>> 
>>   236		ERROR(rt2x00dev, "WPDMA TX/RX busy, aborting.\n");
>>   237		return -EACCES;
> 
> I'll let Ivo decide on this. At least if we really want to wait more then one
> second for DMA to be ready we should increase the msleep(1) to msleep(10) and
> keep the maximum number of retries at 100.
> 
> Joshua, did you ever ran the ralink legacy driver? Because that one also waits
> a maximum of 100ms and thus would also fail sometimes ...
> 
> Helmut

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux