Author: avos
Date: Mon Oct 17 20:38:24 2016
New Revision: 307529
URL: https://svnweb.freebsd.org/changeset/base/307529

Log:
  rtwn(4), urtwn(4): merge common code, add support for 11ac devices.
  
  All devices:
  - add support for rate adaptation via ieee80211_amrr(9);
  - use short preamble for transmitted frames when needed;
  - multi-bss support:
   * for RTL8821AU: 2 VAPs at the same time;
   * other: 1 any VAP + 1 sta VAP.
  RTL8188CE:
  - fix IQ calibration bug (reason of significant speed degradation);
  - add h/w crypto acceleration support.
  USB:
  - A-MPDU Tx support;
  - short GI support;
  Other:
  - add support for RTL8812AU / RTL8821AU chipsets
  (a/b/g/n only; no ac yet);
  - split merged code into subparts:
   * bus glue (usb/*, pci/*, rtl*/usb/*, rtl*/pci/*)
   * common (if_rtwn*)
   * chip-specific (rtl*/*)
  - various other bugfixes.
  
  Due to code reorganization, module names / requirements were changed too:
  urtwn urtwnfw -> rtwn rtwn_usb rtwnfw
  rtwn  rtwnfw  -> rtwn rtwn_pci rtwnfw
  
  Tested with RTL8188CE, RTL8188CUS, RTL8188EU and RTL8821AU.
  
  Tested by:    kevlo, garga,
                Peter Garshtja <peter.garsh...@ambient-md.com>,
                Kevin McAleavey <kevin.mcalea...@knosproject.com>,
                Ilias-Dimitrios Vrachnis <i...@vrachnis.com>,
                <otacilio.n...@bsd.com.br>
  Relnotes:     yes

Added:
  head/share/man/man4/rtwn_pci.4   (contents, props changed)
  head/share/man/man4/rtwn_usb.4   (contents, props changed)
  head/sys/contrib/dev/rtwn/rtwn-rtl8188eufw.fw.uu
     - copied, changed from r307528, 
head/sys/contrib/dev/urtwn/urtwn-rtl8188eufw.fw.uu
  head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwE.fw.uu
  head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwE_B.fw.uu
     - copied, changed from r307528, 
head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU_B.fw.uu
  head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwT.fw.uu
  head/sys/contrib/dev/rtwn/rtwn-rtl8812aufw.fw.uu
  head/sys/contrib/dev/rtwn/rtwn-rtl8821aufw.fw.uu
  head/sys/dev/rtwn/if_rtwn_beacon.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_beacon.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_calib.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_calib.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_cam.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_cam.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_debug.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_efuse.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_efuse.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_fw.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_fw.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_nop.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_ridx.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_rx.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_rx.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_task.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_task.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_tx.c   (contents, props changed)
  head/sys/dev/rtwn/if_rtwn_tx.h   (contents, props changed)
  head/sys/dev/rtwn/if_rtwnvar.h   (contents, props changed)
  head/sys/dev/rtwn/pci/
  head/sys/dev/rtwn/pci/rtwn_pci_attach.c   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_attach.h   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_reg.c   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_reg.h   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_rx.c   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_rx.h   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_tx.c   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_tx.h   (contents, props changed)
  head/sys/dev/rtwn/pci/rtwn_pci_var.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/
  head/sys/dev/rtwn/rtl8188e/r88e.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_beacon.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_calib.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_chan.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_fw.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_fw_cmd.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_led.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_priv.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_rf.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_rom.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_rom_defs.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_rom_image.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_rx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_tx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/r88e_tx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/usb/
  head/sys/dev/rtwn/rtl8188e/usb/r88eu.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/usb/r88eu_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/usb/r88eu_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8188e/usb/r88eu_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/
  head/sys/dev/rtwn/rtl8192c/pci/
  head/sys/dev/rtwn/rtl8192c/pci/r92ce.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_attach.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_calib.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_fw.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_led.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_priv.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_rx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_tx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/pci/r92ce_tx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_attach.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_beacon.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_calib.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_chan.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_fw.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_fw_cmd.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_priv.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_rf.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_rom.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_rom_defs.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_rom_image.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_rx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_tx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_tx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/r92c_var.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/
  head/sys/dev/rtwn/rtl8192c/usb/r92cu.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_attach.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_led.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_priv.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_tx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8192c/usb/r92cu_tx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/
  head/sys/dev/rtwn/rtl8812a/r12a.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_beacon.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_calib.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_caps.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_chan.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_fw.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_fw_cmd.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_led.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_priv.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_rf.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_rom.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_rom_defs.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_rom_image.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_rx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_tx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_tx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/r12a_var.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/
  head/sys/dev/rtwn/rtl8812a/usb/r12au.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/r12au_attach.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/r12au_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/r12au_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/r12au_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/r12au_tx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8812a/usb/r12au_tx_desc.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/
  head/sys/dev/rtwn/rtl8821a/r21a.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_beacon.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_calib.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_chan.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_fw.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_led.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_priv.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_reg.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_rom.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/r21a_rx.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/usb/
  head/sys/dev/rtwn/rtl8821a/usb/r21au.h   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/usb/r21au_attach.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/usb/r21au_init.c   (contents, props changed)
  head/sys/dev/rtwn/rtl8821a/usb/r21au_reg.h   (contents, props changed)
  head/sys/dev/rtwn/usb/
  head/sys/dev/rtwn/usb/rtwn_usb_attach.c   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_attach.h   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_ep.c   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_ep.h   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_reg.c   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_reg.h   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_rx.c   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_rx.h   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_tx.c   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_tx.h   (contents, props changed)
  head/sys/dev/rtwn/usb/rtwn_usb_var.h   (contents, props changed)
  head/sys/modules/rtwn_pci/
  head/sys/modules/rtwn_pci/Makefile   (contents, props changed)
  head/sys/modules/rtwn_usb/
  head/sys/modules/rtwn_usb/Makefile   (contents, props changed)
  head/sys/modules/rtwnfw/rtwnrtl8188eu/
  head/sys/modules/rtwnfw/rtwnrtl8188eu/Makefile   (contents, props changed)
  head/sys/modules/rtwnfw/rtwnrtl8192cE/
  head/sys/modules/rtwnfw/rtwnrtl8192cE/Makefile   (contents, props changed)
  head/sys/modules/rtwnfw/rtwnrtl8192cEB/
  head/sys/modules/rtwnfw/rtwnrtl8192cEB/Makefile   (contents, props changed)
  head/sys/modules/rtwnfw/rtwnrtl8192cT/
  head/sys/modules/rtwnfw/rtwnrtl8192cT/Makefile   (contents, props changed)
  head/sys/modules/rtwnfw/rtwnrtl8812au/
  head/sys/modules/rtwnfw/rtwnrtl8812au/Makefile   (contents, props changed)
  head/sys/modules/rtwnfw/rtwnrtl8821au/
  head/sys/modules/rtwnfw/rtwnrtl8821au/Makefile   (contents, props changed)
Deleted:
  head/share/man/man4/urtwn.4
  head/share/man/man4/urtwnfw.4
  head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU_B.fw.uu
  head/sys/contrib/dev/urtwn/
  head/sys/dev/urtwn/
  head/sys/modules/rtwnfw/rtwnrtl8192cUB/
  head/sys/modules/urtwn/
  head/sys/modules/urtwnfw/
Modified:
  head/ObsoleteFiles.inc
  head/etc/devd.conf
  head/etc/devd/usb.conf
  head/share/doc/legal/realtek/Makefile
  head/share/man/man4/Makefile
  head/share/man/man4/rtwn.4
  head/share/man/man4/rtwnfw.4
  head/share/man/man4/wlan.4
  head/sys/conf/WITHOUT_SOURCELESS_UCODE
  head/sys/conf/files
  head/sys/conf/options
  head/sys/contrib/dev/rtwn/LICENSE
  head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU.fw.uu
  head/sys/dev/rtwn/if_rtwn.c
  head/sys/dev/rtwn/if_rtwnreg.h
  head/sys/mips/conf/std.AR933X
  head/sys/mips/conf/std.AR934X
  head/sys/mips/conf/std.QCA955X
  head/sys/modules/Makefile
  head/sys/modules/rtwn/Makefile
  head/sys/modules/rtwnfw/Makefile
  head/sys/modules/rtwnfw/Makefile.inc
  head/sys/riscv/conf/GENERIC
  head/sys/sys/param.h
  head/tools/build/mk/OptionalObsoleteFiles.inc

Modified: head/ObsoleteFiles.inc
==============================================================================
--- head/ObsoleteFiles.inc      Mon Oct 17 19:51:00 2016        (r307528)
+++ head/ObsoleteFiles.inc      Mon Oct 17 20:38:24 2016        (r307529)
@@ -38,6 +38,9 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20161016: urtwn(4) was merged into rtwn(4)
+OLD_FILES+=usr/share/man/man4/urtwn.4.gz
+OLD_FILES+=usr/share/man/man4/urtwnfw.4.gz
 # 20161015: Remove GNU rcs
 OLD_FILES+=usr/bin/ci
 OLD_FILES+=usr/bin/co

Modified: head/etc/devd.conf
==============================================================================
--- head/etc/devd.conf  Mon Oct 17 19:51:00 2016        (r307528)
+++ head/etc/devd.conf  Mon Oct 17 20:38:24 2016        (r307529)
@@ -24,7 +24,7 @@ options {
                [0-9]+";
        set wifi-driver-regex
                "(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|\
-               upgt|ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+";
+               upgt|ural|urtw|rtwn_usb|wi|wpi|wtap|zyd)[0-9]+";
 };
 
 # Note that the attach/detach with the highest value wins, so that one can

Modified: head/etc/devd/usb.conf
==============================================================================
--- head/etc/devd/usb.conf      Mon Oct 17 19:51:00 2016        (r307528)
+++ head/etc/devd/usb.conf      Mon Oct 17 20:38:24 2016        (r307529)
@@ -185,6 +185,14 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x0409";
+       match "product" "0x0408";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
+       match "vendor" "0x0409";
        match "product" "(0x8024|0x8025)";
        action "kldload -n uipaq";
 };
@@ -304,6 +312,14 @@ nomatch 32 {
 nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
+       match "vendor" "0x0411";
+       match "product" "(0x0242|0x025d)";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
        match "vendor" "0x0413";
        match "product" "0x2101";
        action "kldload -n uplcom";
@@ -553,6 +569,14 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x04bb";
+       match "product" "0x0952";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
+       match "vendor" "0x04bb";
        match "product" "(0x0a03|0x0a0e)";
        action "kldload -n uplcom";
 };
@@ -682,7 +706,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x04f2";
        match "product" "(0xaff7|0xaff8|0xaff9|0xaffa|0xaffa)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -754,7 +778,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x050d";
        match "product" "0x1102";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -778,7 +802,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x050d";
        match "product" "(0x2102|0x2103)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -1050,7 +1074,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x056e";
        match "product" "0x4008";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -1146,7 +1170,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0586";
        match "product" "0x341f";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -1160,6 +1184,14 @@ nomatch 32 {
 nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
+       match "vendor" "0x0586";
+       match "product" "0x3426";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
        match "vendor" "0x058f";
        match "product" "0x9720";
        action "kldload -n uplcom";
@@ -1442,7 +1474,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x06f8";
        match "product" "0xe033";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -1658,7 +1690,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x07aa";
        match "product" "0x0056";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -1722,7 +1754,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x07b8";
        match "product" "(0x8178|0x8179|0x8188|0x8189)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2026,7 +2058,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0846";
        match "product" "0x9021";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2041,8 +2073,8 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x0846";
-       match "product" "0x9041";
-       action "kldload -n if_urtwn";
+       match "product" "(0x9041|0x9052)";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2498,7 +2530,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0b05";
        match "product" "0x17ab";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2522,7 +2554,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0b05";
        match "product" "0x17ba";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2537,6 +2569,14 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x0b05";
+       match "product" "0x17d2";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
+       match "vendor" "0x0b05";
        match "product" "(0x4200|0x4201|0x4202|0x420f|0x9200|0x9202)";
        action "kldload -n uipaq";
 };
@@ -2658,7 +2698,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0bda";
        match "product" "(0x0179|0x018a|0x317f)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2682,7 +2722,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0bda";
        match "product" "0x8170";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2698,7 +2738,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0bda";
        match "product" 
"(0x8176|0x8177|0x8178|0x8179|0x817a|0x817b|0x817c|0x817d|0x817e|0x817f)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2714,7 +2754,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0bda";
        match "product" "(0x818a|0x8191)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -2738,7 +2778,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0bda";
        match "product" "0x8754";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -3162,7 +3202,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0df6";
        match "product" "0x0052";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -3178,7 +3218,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0df6";
        match "product" "(0x005c|0x0061)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -3193,6 +3233,14 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x0df6";
+       match "product" "0x0074";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
+       match "vendor" "0x0df6";
        match "product" "0x061c";
        action "kldload -n if_axe";
 };
@@ -3257,8 +3305,8 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x0e66";
-       match "product" "0x0019";
-       action "kldload -n if_urtwn";
+       match "product" "(0x0019|0x0023)";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -3330,7 +3378,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x0eb0";
        match "product" "0x9071";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -3490,7 +3538,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x103c";
        match "product" "0x1629";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -3976,6 +4024,14 @@ nomatch 32 {
 nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
+       match "vendor" "0x13b1";
+       match "product" "0x003f";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
        match "vendor" "0x13d2";
        match "product" "0x0400";
        action "kldload -n if_kue";
@@ -4018,7 +4074,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x13d3";
        match "product" "(0x3357|0x3358|0x3359)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -4569,6 +4625,14 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x1740";
+       match "product" "0x0100";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
+       match "vendor" "0x1740";
        match "product" "(0x0605|0x0615)";
        action "kldload -n if_run";
 };
@@ -4961,8 +5025,8 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x2001";
-       match "product" "(0x3307|0x3308|0x3309|0x330a|0x330d|0x330f|0x3310)";
-       action "kldload -n if_urtwn";
+       match "product" 
"(0x3307|0x3308|0x3309|0x330a|0x330d|0x330f|0x3310|0x3314|0x3315|0x3316|0x3318)";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5042,7 +5106,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x2019";
        match "product" "(0x1201|0x4902)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5089,8 +5153,8 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x2019";
-       match "product" "(0xab2a|0xab2b|0xab2e)";
-       action "kldload -n if_urtwn";
+       match "product" "(0xab2a|0xab2b|0xab2e|0xab30)";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5130,7 +5194,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x2019";
        match "product" "0xed17";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5170,7 +5234,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x20f4";
        match "product" "0x624d";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5185,8 +5249,8 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x20f4";
-       match "product" "0x648b";
-       action "kldload -n if_urtwn";
+       match "product" "(0x648b|0x805b)";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5232,6 +5296,14 @@ nomatch 32 {
 nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
+       match "vendor" "0x2357";
+       match "product" "0x0101";
+       action "kldload -n if_rtwn_usb";
+};
+
+nomatch 32 {
+       match "bus" "uhub[0-9]+";
+       match "mode" "host";
        match "vendor" "0x2405";
        match "product" "0x0003";
        action "kldload -n uslcom";
@@ -5354,7 +5426,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x4855";
        match "product" "(0x0090|0x0091)";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5465,8 +5537,8 @@ nomatch 32 {
        match "bus" "uhub[0-9]+";
        match "mode" "host";
        match "vendor" "0x7392";
-       match "product" "(0x7811|0x7822)";
-       action "kldload -n if_urtwn";
+       match "product" "(0x7811|0x7822|0xa811|0xa812|0xa822)";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5522,7 +5594,7 @@ nomatch 32 {
        match "mode" "host";
        match "vendor" "0x9846";
        match "product" "0x9041";
-       action "kldload -n if_urtwn";
+       action "kldload -n if_rtwn_usb";
 };
 
 nomatch 32 {
@@ -5817,5 +5889,5 @@ nomatch 32 {
        action "kldload -n umass";
 };
 
-# 2722 USB entries processed
+# 2743 USB entries processed
 

Modified: head/share/doc/legal/realtek/Makefile
==============================================================================
--- head/share/doc/legal/realtek/Makefile       Mon Oct 17 19:51:00 2016        
(r307528)
+++ head/share/doc/legal/realtek/Makefile       Mon Oct 17 20:38:24 2016        
(r307529)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-FILES=         ${.CURDIR}/../../../../sys/contrib/dev/urtwn/LICENSE
+FILES=         ${.CURDIR}/../../../../sys/contrib/dev/rtwn/LICENSE
 FILESDIR=      ${SHAREDIR}/doc/legal
 FILESNAME=     realtek.LICENSE
 

Modified: head/share/man/man4/Makefile
==============================================================================
--- head/share/man/man4/Makefile        Mon Oct 17 19:51:00 2016        
(r307528)
+++ head/share/man/man4/Makefile        Mon Oct 17 20:38:24 2016        
(r307529)
@@ -433,6 +433,7 @@ MAN=        aac.4 \
        rp.4 \
        rtwn.4 \
        rtwnfw.4 \
+       rtwn_pci.4 \
        rue.4 \
        rum.4 \
        run.4 \
@@ -692,6 +693,8 @@ MLINKS+=pms.4 pmspcv.4
 MLINKS+=ral.4 if_ral.4
 MLINKS+=re.4 if_re.4
 MLINKS+=rl.4 if_rl.4
+MLINKS+=rtwn.4 if_rtwn.4
+MLINKS+=rtwn_pci.4 if_rtwn_pci.4
 MLINKS+=rue.4 if_rue.4
 MLINKS+=rum.4 if_rum.4
 MLINKS+=run.4 if_run.4
@@ -886,6 +889,7 @@ MAN+=       \
        otusfw.4 \
        rsu.4 \
        rsufw.4 \
+       rtwn_usb.4 \
        u3g.4 \
        uark.4 \
        uart.4 \
@@ -928,8 +932,6 @@ MAN+=       \
        urio.4 \
        urndis.4 \
        ${_urtw.4} \
-       urtwn.4 \
-       urtwnfw.4 \
        usb.4 \
        usb_quirk.4 \
        usb_template.4 \
@@ -941,6 +943,7 @@ MAN+=       \
 
 MLINKS+=otus.4 if_otus.4
 MLINKS+=rsu.4 if_rsu.4
+MLINKS+=rtwn_usb.4 if_rtwn_usb.4
 MLINKS+=u3g.4 u3gstub.4
 MLINKS+=uath.4 if_uath.4
 MLINKS+=udav.4 if_udav.4
@@ -948,7 +951,6 @@ MLINKS+=upgt.4 if_upgt.4
 MLINKS+=ural.4 if_ural.4
 MLINKS+=urndis.4 if_urndis.4
 MLINKS+=${_urtw.4} ${_if_urtw.4}
-MLINKS+=urtwn.4 if_urtwn.4
 .endif
 
 .include <bsd.prog.mk>

Modified: head/share/man/man4/rtwn.4
==============================================================================
--- head/share/man/man4/rtwn.4  Mon Oct 17 19:51:00 2016        (r307528)
+++ head/share/man/man4/rtwn.4  Mon Oct 17 20:38:24 2016        (r307529)
@@ -2,6 +2,7 @@
 .\"
 .\" Copyright (c) 2010 Damien Bergamini <damien.bergam...@free.fr>
 .\" Copyright (c) 2015 Stefan Sperling <s...@openbsd.org>
+.\" Copyright (c) 2016 Andriy Voskoboinyk <a...@freebsd.org>
 .\"
 .\" Permission to use, copy, modify, and distribute this software for any
 .\" purpose with or without fee is hereby granted, provided that the above
@@ -17,89 +18,88 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 28, 2015
+.Dd September 19, 2016
 .Dt RTWN 4
 .Os
 .Sh NAME
 .Nm rtwn
-.Nd Realtek RTL8188CE PCIe IEEE 802.11b/g/n wireless network device
+.Nd Realtek IEEE 802.11 wireless network driver
 .Sh SYNOPSIS
+.Cd "options RTWN_DEBUG"
+.Cd "options RTWN_WITHOUT_UCODE"
+.Pp
 To compile this driver into the kernel,
 place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device rtwn"
 .Cd "device rtwnfw"
+.Cd "device rtwn_usb"
+.Cd "device rtwn_pci"
 .Cd "device wlan"
 .Cd "device firmware"
 .Ed
 .Pp
 Alternatively, to load the driver as a
-module at boot time, place the following line in
+module at boot time, place following lines in
 .Xr loader.conf 5 :
 .Bd -literal -offset indent
 if_rtwn_load="YES"
-.Ed
-.Pp
-After you have read the license in
-.Pa /usr/share/doc/legal/realtek.LICENSE
-you will want to add the following lines to
-.Xr loader.conf 5 :
-.Bd -literal -offset indent
-legal.realtek.license_ack=1
-rtwn-rtl8192cfwU_load="YES"
-rtwn-rtl8192cfwU_B_load="YES"
+if_rtwn_pci_load="YES"
+if_rtwn_usb_load="YES"
 .Ed
 .Sh DESCRIPTION
 The
 .Nm
-driver supports PCIe wireless network devices based on the Realtek
-RTL8188CE chipset.
+driver provides support for wireless network devices based on
+the Realtek RTL8192C, RTL8188E, RTL8812A and RTL8821A programming APIs.
+These APIs are used by a wide variety of chips; most chips with USB
+and some with PCI interface are supported.
+.Pp
+To enable use for PCI/PCIe systems, see the rtwn_pci(4) driver;
+for USB devices, use the rtwn_usb(4) driver.
+.Pp
+The driver supports
+.Cm station ,
+.Cm adhoc ,
+.Cm hostap
+and
+.Cm monitor
+mode operation.
+There are no limitations for number of
+.Cm monitor
+mode
+virtual interfaces; in addition to any other virtual interface
+one
+.Cm station
+interface can be added (Note: RTL8821AU supports two non-monitor
+mode interfaces at the same time).
 .Pp
-The RTL8188CE is a highly integrated 802.11n adapter that combines a MAC,
-a 1T1R capable baseband and an RF in a single chip.
-It operates in the 2GHz spectrum only.
-.Pp
-These are the modes the
-.Nm
-driver can operate in:
-.Bl -tag -width "IBSS-masterXX"
-.It BSS mode
-Also known as
-.Em infrastructure
-mode, this is used when associating with an access point, through
-which all traffic passes.
-This mode is the default.
-.It monitor mode
-In this mode the driver is able to receive packets without
-associating with an access point.
-This disables the internal receive filter and enables the card to
-capture packets from networks which it wouldn't normally have access to,
-or to scan for access points.
-.El
-.Pp
-The
-.Nm
-driver can be configured to use
-Wired Equivalent Privacy (WEP) or
-Wi-Fi Protected Access (WPA-PSK and WPA2-PSK).
-WPA is the current encryption standard for wireless networks.
-It is strongly recommended that WEP
-not be used as the sole mechanism
-to secure wireless communication,
-due to serious weaknesses in it.
+All chips have hardware support for WEP, AES-CCM and TKIP encryption.
 .Pp
 The
 .Nm
 driver can be configured at runtime with
 .Xr ifconfig 8 .
 .Sh FILES
-The driver needs at least version 1.0 of the following firmware files,
-which are loaded when an interface is brought up:
+.Bl -tag -width ".Pa /usr/share/doc/legal/realtek.LICENSE" -compact
+.It Pa /usr/share/doc/legal/realtek.LICENSE
+.Nm
+firmware license
+.El
 .Pp
+The driver (if not compiled with
+.Cd options RTWN_WITHOUT_UCODE
+) may use following firmware files, which are loaded
+when an interface is brought up:
 .Bl -tag -width Ds -offset indent -compact
+.It Pa /boot/kernel/rtwn-rtl8188eufw.ko
+.It Pa /boot/kernel/rtwn-rtl8192cfwE_B.ko
+.It Pa /boot/kernel/rtwn-rtl8192cfwE.ko
+.It Pa /boot/kernel/rtwn-rtl8192cfwT.ko
 .It Pa /boot/kernel/rtwn-rtl8192cfwU.ko
-.It Pa /boot/kernel/rtwn-rtl8192cfwU_B.ko
+.It Pa /boot/kernel/rtwn-rtl8812aufw.ko
+.It Pa /boot/kernel/rtwn-rtl8821aufw.ko
 .El
 .Sh EXAMPLES
 Join an existing BSS network (i.e., connect to an access point):
@@ -118,48 +118,124 @@ Join a specific BSS network with 64-bit 
 ifconfig wlan create wlandev rtwn0 ssid my_net \e
         wepmode on wepkey 0x1234567890 weptxkey 1 up
 .Ed
+.Pp
+Create an IBSS network with 128-bit WEP encryption on the channel 4:
+.Bd -literal -offset indent
+ifconfig wlan create wlandev rtwn0 wlanmode adhoc ssid my_net \e
+       wepmode on wepkey 0x01020304050607080910111213 weptxkey 1 \e
+       channel 4
+.Ed
+.Pp
+Join/create an 802.11b IBSS network with network name
+.Dq Li my_net :
+.Bd -literal -offset indent
+ifconfig wlan0 create wlandev rtwn0 wlanmode adhoc
+ifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \e
+       mode 11b
+.Ed
+.Pp
+Create a host-based access point:
+.Bd -literal -offset indent
+ifconfig wlan0 create wlandev rtwn0 wlanmode hostap
+ifconfig wlan0 inet 192.168.0.10 netmask 0xffffff00 ssid my_ap
+.Ed
+.Sh LOADER TUNABLES
+Tunables can be set at the
+.Xr loader 8
+prompt before booting the kernel or stored in
+.Xr loader.conf 5 .
+.Bl -tag -width indent
+.It Va dev.rtwn.%d.hwcrypto
+This tunable controls how key slots are assigned:
+.br
+0 - disable h/w crypto support. Features that require access
+to frame contents (e.g., TCP/UDP/IP Rx checksum validation)
+will not work;
+.br
+1 - use h/w crypto support for pairwise keys only;
+.br
+2 - use h/w crypto support for all keys; may not work for
+multi-vap configurations.
+.br
+By default it is set to 1.
+.It Va dev.rtwn.%d.ratectl
+This tunable switches between rate control implementations:
+.br
+0 - no rate control;
+.br
+1 - driver sends 'tx complete' reports to net80211; algorithm
+is controlled via net80211;
+.br
+2 - firmware-based rate control.
+.br
+By default it is set to 1; however driver may choose another
+algorithm in case if it is not implemented
+.br
+Currently selected algorithm is reported via
+.Em Va dev.rtwn.%d.ratectl_selected
+read-only OID.
+.El
 .Sh DIAGNOSTICS
 .Bl -diag
-.It "could not read firmware %s"
+.It "rtwn%d: could not read efuse byte at address 0x%x"
+.It "rtwn%d: %s: cannot read rom, error %d"
+There was an error while reading ROM; device attach will be aborted.
+This should not happen.
+.It "rtwn%d: failed loadfirmware of file %s"
 For some reason, the driver was unable to read the microcode file from the
 filesystem.
 The file might be missing or corrupted.
-.It "device timeout"
+The driver will disable firmware-dependent features.
+.It "rtwn%d: wrong firmware size (%zu)"
+.It "rtwn%d: %s: failed to upload firmware %s (error %d)"
+.It "rtwn%d: timeout waiting for firmware readiness"
+Firmware upload failed; the file might be corrupted.
+The driver will disable firmware-dependent features.
+This should not happen.
+.It "rtwn%d: device timeout"
 A frame dispatched to the hardware for transmission did not complete in time.
 The driver will reset the hardware.
 This should not happen.
 .El
 .Sh SEE ALSO
-.Xr pci 4 ,
+.Xr intro 4 ,
+.Xr netintro 4 ,
+.Xr rtwn_pci 4 ,
+.Xr rtwn_usb 4 ,
 .Xr rtwnfw 4 ,
 .Xr wlan 4 ,
+.Xr wlan_amrr 4 ,
 .Xr wlan_ccmp 4 ,
 .Xr wlan_tkip 4 ,
 .Xr wlan_wep 4 ,
+.Xr wlan_xauth 4 ,
+.Xr hostapd 4 ,
 .Xr ifconfig 8 ,
 .Xr wpa_supplicant 8
 .Sh HISTORY
 The
+.Cm urtwn
+driver first appeared in
+.Ox 4.9
+and
+.Fx 10.0 ;
+the
 .Nm
 driver first appeared in
 .Ox 5.8 .
 .Sh AUTHORS
 The
 .Nm
-driver was written by
+driver was initially written by
 .An -nosplit
 .An Stefan Sperling Aq Mt s...@openbsd.org
 and ported by
 .An Kevin Lo Aq Mt ke...@freebsd.org .
 It was based on the
-.Xr urtwn 4
+.Cm urtwn
 driver written by
 .An Damien Bergamini Aq Mt damien.bergam...@free.fr .
-.Sh CAVEATS
+.Sh BUGS
 The
 .Nm
-driver does not support any of the 802.11n capabilities offered by the
-adapters.
-Additional work is required in
-.Xr ieee80211 9
-before those features can be supported.
+driver currently does not implement firmware-based rate control.

Added: head/share/man/man4/rtwn_pci.4
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man4/rtwn_pci.4      Mon Oct 17 20:38:24 2016        
(r307529)
@@ -0,0 +1,63 @@
+.\"-
+.\" Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
+.\" Copyright (c) 2016 Andriy Voskoboinyk <a...@freebsd.org>
+.\" All rights reserved.
+.\""
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer,
+.\"    without modification.
+.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
+.\"    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
+.\"    redistribution must be conditioned upon including a substantially
+.\"    similar Disclaimer requirement for further binary redistribution.
+.\"
+.\" NO WARRANTY
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
+.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+.\" THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
+.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+.\" THE POSSIBILITY OF SUCH DAMAGES.
+.\"
+.\" $FreeBSD$
+.\"/
+.Dd September 19, 2016
+.Dt RTWN_PCI 4
+.Os
+.Sh NAME
+.Nm rtwn_pci
+.Nd "Realtek PCI device glue"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device rtwn_pci"
+.Cd "device pci"
+.Cd "device wlan"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver supports PCIe wireless network devices based on the Realtek
+RTL8188CE chipset.
+.Pp
+The RTL8188CE is a highly integrated 802.11n adapter that combines a MAC,
+a 1T1R capable baseband and an RF in a single chip.
+It operates in the 2GHz spectrum only.
+.Sh SEE ALSO
+.Xr rtwn 4 ,
+.Xr rtwnfw 4 ,
+.Xr rtwn_usb 4 ,
+.Xr pci 4
+.Sh CAVEATS
+Most 802.11 capabilities were turned off; some more testing
+is required to re-enable them.

Added: head/share/man/man4/rtwn_usb.4
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man4/rtwn_usb.4      Mon Oct 17 20:38:24 2016        
(r307529)
@@ -0,0 +1,111 @@
+.\"-
+.\" Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
+.\" Copyright (c) 2016 Andriy Voskoboinyk <a...@freebsd.org>
+.\" All rights reserved.
+.\""
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer,
+.\"    without modification.
+.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
+.\"    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
+.\"    redistribution must be conditioned upon including a substantially
+.\"    similar Disclaimer requirement for further binary redistribution.
+.\"
+.\" NO WARRANTY
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
+.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+.\" THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
+.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+.\" THE POSSIBILITY OF SUCH DAMAGES.
+.\"
+.\" $FreeBSD$
+.\"/
+.Dd September 19, 2016
+.Dt RTWN_USB 4
+.Os
+.Sh NAME
+.Nm rtwn_usb
+.Nd "Realtek USB device glue"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device xhci"
+.Cd "device ehci"
+.Cd "device uhci"
+.Cd "device ohci"
+.Cd "device usb"
+.Cd "device rtwn_usb"
+.Cd "device wlan"
+.Ed
+.Sh DESCRIPTION
+This module provides the USB bus glue needed for the devices supported
+by the
+.Xr rtwn 4
+driver.
+.Sh HARDWARE
+The
+.Nm
+driver supports Realtek 
RTL8188CU/RTL8188RU/RTL8188EU/RTL8192CU/RTL8812AU/RTL8821AU
+based USB wireless network adapters, including:
+.Pp
+.Bl -column -compact "Belkin F7D1102 Surf Wireless Micro" "Bus"
+.It Em Card Ta Em Bus
+.It "Alfa AWUS036NHR v2" Ta USB 2.0
+.It "ASUS USB-AC56" Ta USB 3.0
+.It "ASUS USB-N10 NANO" Ta USB 2.0
+.It "Belkin F7D1102 Surf Wireless Micro" Ta USB 2.0
+.It "Buffalo WI-U2-433DM" Ta USB 2.0
+.It "Buffalo WI-U3-866D" Ta USB 3.0
+.It "D-Link DWA-123 rev D1" Ta USB 2.0
+.It "D-Link DWA-125 rev D1" Ta USB 2.0
+.It "D-Link DWA-131" Ta USB 2.0
+.It "D-Link DWA-171 rev A1" Ta USB 2.0
+.It "D-Link DWA-172 rev A1" Ta USB 2.0
+.It "D-Link DWA-180 rev A1" Ta USB 2.0
+.It "D-Link DWA-182 rev C1" Ta USB 3.0
+.It "Edimax EW-7811Un" Ta USB 2.0
+.It "Edimax EW-7811UTC" Ta USB 2.0
+.It "Edimax EW-7822UAC" Ta USB 3.0
+.It "Elecom WDC-150SU2M" Ta USB 2.0
+.It "EnGenius EUB1200AC" Ta USB 3.0
+.It "Hawking HD65U" Ta USB 2.0
+.It "Hercules Wireless N USB Pico" Ta USB 2.0
+.It "I-O Data WN-AC867U" Ta USB 3.0
+.It "Linksys WUSB6300" Ta USB 3.0
+.It "NEC AtermWL900U PA-WL900U" Ta USB 3.0
+.It "Netgear A6100" Ta USB 2.0
+.It "Netgear WNA1000M" Ta USB 2.0
+.It "Planex GW-900D" Ta USB 3.0
+.It "Realtek RTL8192CU" Ta USB 2.0
+.It "Realtek RTL8188CUS" Ta USB 2.0
+.It "Sitecom WLA-7100" Ta USB 3.0
+.It "TP-Link Archer T4U" Ta USB 3.0
+.It "TP-LINK TL-WN723N v3" Ta USB 2.0
+.It "TP-LINK TL-WN725N v2" Ta USB 2.0
+.It "TRENDnet TEW-805UB" Ta USB 3.0
+.It "ZyXEL NWD6605" Ta USB 3.0
+.El
+.Sh SEE ALSO
+.Xr rtwn 4 ,
+.Xr rtwnfw 4 ,
+.Xr rtwn_pci 4 ,
+.Xr usb 4
+.Sh BUGS
+The
+.Nm
+driver does not support any of the 802.11ac capabilities offered by the
+adapters.
+Additional work is required in
+.Xr ieee80211 9
+before those features can be supported.

Modified: head/share/man/man4/rtwnfw.4
==============================================================================
--- head/share/man/man4/rtwnfw.4        Mon Oct 17 19:51:00 2016        
(r307528)
+++ head/share/man/man4/rtwnfw.4        Mon Oct 17 20:38:24 2016        
(r307529)
@@ -1,4 +1,5 @@
 .\" Copyright (c) 2015 Kevin Lo
+.\" Copyright (c) 2016 Andriy Voskoboinyk
 .\" All rights reserved.

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to