I have been reading through and I am debugging what appears to be the same problem. I have 2 different AR9331 based systems here, one with a single, direct to CPU USB port and another with an onboard powered hub to provide extra ports (Alfa Hornet + another Alfa design). On both, a busy USB disconnects when the WLAN interface is also busy. I tried both of the fixes listed above by @Squonk with no change. I have tested it on the LSDK 9.2.0_U10.1020 source and also on a pretty stock linux-3.8, both exhibit the same problem.
It seems that the problem only occurs after I set an SSID, so scanning for networks is fine, but once I have set an SSID the USB disconnects (if its busy). If the USB is idle or the WLAN is idle, all seems fine, its only once you get them both busy with tasks like network traffic and file transfers that the USB gets disconnected.
Right now I am trying through other avenues to find someone who can confirm that it is possible to have both the WLAN and USB ports busy on this SOC using either some other version of the drivers/linux or a completely different OS. That would point to a SW issue and mean the problem can be solved or worked around. So if anyone feels their AR9331 platform can do this fine please let me know and I'll provide a really simple test to confirm it works :-)
The other avenue is to see what is happening with a USB analyser. Unfortunately I don't have access to one of those :-) Having looked at the USB lines with a probe there doesn't seem to be any "additional" induced noise when the WLAN is active, so it doesn't seem to be cross talk or interference, but I wouldn't rule it out. DMA is another area that is shared
and might be related to the problem.
Like others, I have also tested with external powered and unpowered hubs, no change.
Anyway, if anyone has any ideas they would like to see me try I am open to suggestions as I am actively trying to resolve this issue, thanks.