linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* wl1271 with atmel-mci
@ 2010-07-22 18:33 Logan Gunthorpe
  2010-07-26 21:40 ` Logan Gunthorpe
  0 siblings, 1 reply; 2+ messages in thread
From: Logan Gunthorpe @ 2010-07-22 18:33 UTC (permalink / raw)
  To: Luciano Coelho; +Cc: linux-wireless

Hi Luciano,

I've had the wl1271 working for the most part on an Atmel 
micro-controller, but I've been fighting with a bug for the past couple 
of days.

The problem happens whenever I try to transmit large packets of data 
(using iperf, or nc, etc) the driver would hang and no longer be able to 
send packets. tx_queue_len in the debugfs would then grow as I tried to 
send packets but nothing would actually be sent to the device. At the 
same time receiving packets would consistently work all of the time.

When this occurred I usually got the following messages:

atmel_mci atmel_mci.0: data CRC error
wl1271: ERROR sdio write failed (-84) - addr 0x14fd8, 1076 bytes, 1

(Note: I added the bit at the end of the wl1271 write failed message in 
order to try and debug this problem.)

Upon further investigation I found that any calls to sdio_writesb with a 
length greater than or equal to 1024 will occasionally fail with a data 
CRC error and this would cause the device to stop working.

I have also found that the following ugly hack in wl1271_sdio_raw_write 
seems to fix the problem:

if (len <= 1000) {
     ret = sdio_writesb(func, addr, buf, len);
} else {
     ret = sdio_writesb(func, addr, buf, 1000);
     ret |= sdio_writesb(func, addr, &buf[1000], len-1000);
}

Based on the above, I am currently thinking there may be a bug in the 
atmel-mci driver that causes this problem. Therefore, I will likely 
contact that driver's maintainer next. I was just hoping to get your 
insight in case there is something I am missing on the wl1271 side.

Thanks,

Logan

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: wl1271 with atmel-mci
  2010-07-22 18:33 wl1271 with atmel-mci Logan Gunthorpe
@ 2010-07-26 21:40 ` Logan Gunthorpe
  0 siblings, 0 replies; 2+ messages in thread
From: Logan Gunthorpe @ 2010-07-26 21:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Luciano Coelho, Levi, Shahar

Hi Everyone,


> I've had the wl1271 working for the most part on an Atmel 
> micro-controller, but I've been fighting with a bug for the past couple 
> of days.
> 
> The problem happens whenever I try to transmit large packets of data 
> (using iperf, or nc, etc) the driver would hang and no longer be able to 
> send packets. tx_queue_len in the debugfs would then grow as I tried to 
> send packets but nothing would actually be sent to the device. At the 
> same time receiving packets would consistently work all of the time.
> 
> When this occurred I usually got the following messages:
> 
> atmel_mci atmel_mci.0: data CRC error
> wl1271: ERROR sdio write failed (-84) - addr 0x14fd8, 1076 bytes, 1

Firstly, I'd like to let anyone who's interested know that the problem I 
had above turned out to be a hardware issue. I tried two newly populated 
boards which both turned out not to exhibit this problem. I now have the 
wl1271 working on two AT91SAM9G45-EKES development kits.

Using iperf I have gathered some performance data. I am seeing between a 
wl1271 device and a host PC (connected via a dlink router):

PC to Device: ~23.0Mbit/s
Device to PC: ~21.7Mbit/s

When running in Ad-Hoc mode between two devices I am getting between 
about 15Mbit/s and 17Mbit/s.

Does anyone have any insight as to why the Ad-Hoc mode between two 
devices is noticeably slower? Can anything be done to improve this?


Thanks,

Logan



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-26 21:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-22 18:33 wl1271 with atmel-mci Logan Gunthorpe
2010-07-26 21:40 ` Logan Gunthorpe

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