Well after a couple of years of putting up with the ath9k driver disconnecting all the time, the final straw came when it worked worse after a kernel upgrade.

I got a TP-Link TL-WA901ND access point that can work in client mode and all is bliss. Funny thing is, it has an Atheros chip in it, but the manufacturers manage to get it to work fine. I will put my now redundant wireless-n card in my daughter's computer in which it will no doubt work fine as that runs Windows.

Sometimes wireless can be frustrating. I have a Broadcom BCM43224 that keeps me stuck with a 3.2 kernel because broadcom-sta won't work on higher versions and brcmsmac won't work for me at all even though all the docs say it's supposed to.

audiodef,
I feel for you with the 3.2 kernel trip. I had a similar experience with wireless and the r8712u realtek driver module.

The kernel versions before 3.2 worked fine, but when 3.2 was released it was problematic. They had trouble fixing it for 3.2, 3.3, and finally Larry finger (kernel maintainer) came up with the fixes, which I helped test out for him as he made progress over a few months.

Anyway during this testing, what I did on all 3.2 and 3.3, and IIRC even early 3.4 kernels was before compiling my newer kernels, I first replaced the new rtl8712 driver directory source with one from a 3.1 kernel source, and then compiled my new kernel normally.

Worked every time on all new kernels where the updated version always failed. (I was really determined to keep using my little usb r8712u wirelessN adapter due to it's fantastic performance with a woprking driver).

After Larry F. finally sorted out the file edits in that rtl8712. the fixes we finally arrived at were back-ported to some of the earlier kernels. It consisted of quite a few minor edits in various source files, but before those were solved I relied on the older 3.1 kernel source.

Anyway, this little procedure might be worth a shot if you really want to use a newer kernel. Maybe replace the newer linux-3.x.x/drivers/net/wireless/brcm80211/brcmsmac source directory with the version from 3.2 (if that's the one that works), and compile the newer kernel?

Or, maybe change your wifi card? Get a little usb type with a different chipset real cheap- I did that (got an ath9k usb adapter) before I discovered using the 3.1 source in 3.2 and 3.3 kernels.

I have a TP-LINK 54 Mbps | TL-WN312G supported by the module rt73usb . As a client or as an access point, it never work very good. I have an 'Atheros Communications Inc. AR9485 Wireless Network Adapter' on the PCIe bus of a laptop, supported by the ath9k module. It work normally (can be or not an euphemism)._________________Paul

The randomness of it appears to be a theme, drivers work for some people and hardware, not for others. I wonder if there is something about how different manufacturers build cards round the chips that means their flavour of driver is going to work better than a generic one?

ETA one thing that I noticed when rummaging about the internet for fixes is that usb devices seem to have a better success rate than PCI ones (though that is just an impression)