Thread (17 messages) 17 messages, 3 authors, 2011-10-12

Re: r8712u driver - on ARM

From: Christian Lamparter <chunkeey@googlemail.com>
Date: 2011-09-30 19:06:16

On Friday 30 September 2011 20:39:23 Ian Jeffray wrote:
On 27/09/2011 17:24, Larry Finger wrote:
quoted
On 09/27/2011 10:36 AM, Ian Jeffray wrote:
quoted
Dear all,

I'm attempting to get some sense from a Realtek 8191S device on
ARM linux.
<SNIP>
quoted
quoted
My host is a TI DaVinci DM8168 (OMAP3+toys). The USB host is not
fantastic, but has been thrashed heavily with other devices and seems
to be reliable in those cases.
<SNIP>
quoted
I have not tried this chip on an ARM host as I have no hardware. My
testing has been with X86 and PPC - thus I know the endianess is OK, but
that is the extent of my platform testing.

The first thing I would try is wireshark on another host to verify that
packets are actually getting on the air.
Ok, so I've spent more more days working on this.  The driver appears
to be fine on an ARM9 S3X board.   I've contacted the TI support
team about the USB host and applied some patches from them which have
slightly improved the situation, but it's still horrible - I'm actually
getting "reliable" scans but only a pathetic 1Mbit or less of data
throughput.

I've also tried this driver (and the realtek upstream version) with
a Blackfin BF527 device, which has roughly the same 'musb' Inventra
USB host controller... and I see exactly the same problem there!
The firmware appears to load fine, but scans produce no results.

I'm not really sure about your comment about wireshark because,
as far as I understand, a 'iwlist wlan0 scan' command doesn't cause
any traffic which would be wireshark capturable on another host...
am I misunderstanding something?

So it appears as though there may be some general problem with this
driver and an 'musb' host controller.  Very strange.

My next course of attack is to try comparing outputs of 'usbmon'
dumps between hosts which work and hosts which don't... but I can't
make a great deal of sense looking at them really.

I'd greatly appreciate any more advice you may be able to give.
Well, I'm not really in r8712u but I can tell you a few things about
carl9170 and musb.

You see I had a similar discussion a while ago:
http://www.spinics.net/lists/linux-wireless/msg68870.html

Apparently, musb can't do DMA with non 4-bytes aligned buffers
and falls back to PIO [which results in a much higher cpu utilization
and really bad usb throughput... so if timing is critical this "fact"
is pretty much a deal-breaker for the combination].

Now, you might ask, why this DMA vs. PIO is so importent... Well,
it's because the network stack has its own alignment ideas and
about the data/skbs. There's a comment in include/linux/skbuff.h
around line 1400 which explains the situation. The upshot is you
can choose between a penatly on the packet processing by the
stack, or a penatly on the driver/hardware site if r8712u does
not implement any additional techniques to counter the issues.

Regards,
	Chr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help