On Thu, May 18, 2017 at 02:40:49AM +0200, Stefan Sperling wrote: > > AR9380 devices are currently not supported by our athn(4). > There is code for them in the driver, but this code does not work yet. > > This diff makes monitor mode work with an AR9380 device I have lying around. > > athn0 at pci1 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 2 int 16 > athn0: AR9380 rev 3 (3T3R), ROM rev 0, address xx:xx:xx:xx:xx:xx > > This means it can now receive packets (transmit is still broken). > The fixes are: > 1) The Rx done bit is in word 11 of the Rx descriptor, not in word 1. > 2) The card sends an RXEOL interrupt when it receives a packet. > 3) Rx enable bits in the config registers differ from older devices > (the common code in athn.c looks at these bits). > > I have cross-checked these changes with Linux ath9k. > > To test this diff, PCI_PRODUCT_ATHEROS_AR9300 must also be added > to the PCI device list in if_athn_pci.c (not included here since > I doubt anyone will bother at this point). > > ok?
Can't receive packets with my AR9382 card. Tested with: ifconfig athn0 mediaopt monitor up tcpdump -n -i athn0 -y IEEE802_11_RADIO -vv Here are hardware info: # dmesg |grep athn0 athn0 at pci2 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 1 int 17 athn0: AR9380 rev 3 (2T2R), ROM rev 0, address 00:0e:8e:75:16:9a # pkg_info |grep athn athn-firmware-1.1p1 firmware binary images for athn(4) driver
