[bionic,00/10] Add drivers for RTL8821C WiFi and BT
mbox series

Message ID 20180323164707.6027-1-jesse.sung@canonical.com
Headers show
Series
  • Add drivers for RTL8821C WiFi and BT
Related show

Message

Wen-chien Jesse Sung March 23, 2018, 4:46 p.m. UTC
BugLink: https://launchpad.net/bugs/1740231
BugLink: https://launchpad.net/bugs/1742613

These are based on the drivers provided by Realtek for 4.13.

Since btusb will bind to this bluetooth device, it must be blacklisted
in btusb to make sure that the correct driver is used. Also the table in
ubuntu/rtl8821c-bt is modified so that the driver works only for this
device only.

Risk should be low since both drivers have no impact for systems without
these devices.


Wen-chien Jesse Sung (10):
  UBUNTU: SAUCE: Import RTL8821CE driver
  UBUNTU: SAUCE: ubuntu/rtl8821c: Adapt to timer API changes
  UBUNTU: SAUCE: ubuntu/rtl8821c: use kernel_read() instead of
    __vfs_read()
  UBUNTU: SAUCE: Add ubuntu/rtl8821ce into build script
  UBUNTU: SAUCE: Import Bluetooth driver for Realtek 8821C
  UBUNTU: SAUCE: Make rtl8821c-bt work with 0bda:b00a only
  UBUNTU: SAUCE: ubuntu/rtl8821c-bt: append device ID to config filename
  UBUNTU: SAUCE: bluetooth: btusb: Blacklist 0bda:b00a
  UBUNTU: SAUCE: ubuntu/rtl8821c-bt: Adapt to timer API changes
  UBUNTU: SAUCE: build ubuntu/rtl8821c-bt for x86 only

 debian/rules.d/2-binary-arch.mk                    |    18 +
 drivers/bluetooth/btusb.c                          |     3 +
 ubuntu/Makefile                                    |     6 +
 ubuntu/rtl8821c-bt/Makefile                        |    15 +
 ubuntu/rtl8821c-bt/rtk_bt.c                        |  2751 ++
 ubuntu/rtl8821c-bt/rtk_bt.h                        |   204 +
 ubuntu/rtl8821c-bt/rtk_coex.c                      |  2659 ++
 ubuntu/rtl8821c-bt/rtk_coex.h                      |   357 +
 ubuntu/rtl8821c/Kconfig                            |     6 +
 ubuntu/rtl8821c/Makefile                           |  1971 +
 ubuntu/rtl8821c/clean                              |     5 +
 ubuntu/rtl8821c/core/efuse/rtw_efuse.c             |  3005 ++
 ubuntu/rtl8821c/core/rtw_ap.c                      |  4177 +++
 ubuntu/rtl8821c/core/rtw_beamforming.c             |  3152 ++
 ubuntu/rtl8821c/core/rtw_br_ext.c                  |  1585 +
 ubuntu/rtl8821c/core/rtw_bt_mp.c                   |  1580 +
 ubuntu/rtl8821c/core/rtw_btcoex.c                  |  1736 +
 ubuntu/rtl8821c/core/rtw_btcoex_wifionly.c         |    42 +
 ubuntu/rtl8821c/core/rtw_cmd.c                     |  4837 +++
 ubuntu/rtl8821c/core/rtw_debug.c                   |  5527 +++
 ubuntu/rtl8821c/core/rtw_eeprom.c                  |   374 +
 ubuntu/rtl8821c/core/rtw_ieee80211.c               |  2736 ++
 ubuntu/rtl8821c/core/rtw_io.c                      |   701 +
 ubuntu/rtl8821c/core/rtw_ioctl_query.c             |   171 +
 ubuntu/rtl8821c/core/rtw_ioctl_rtl.c               |   904 +
 ubuntu/rtl8821c/core/rtw_ioctl_set.c               |  1247 +
 ubuntu/rtl8821c/core/rtw_iol.c                     |   387 +
 ubuntu/rtl8821c/core/rtw_mem.c                     |   114 +
 ubuntu/rtl8821c/core/rtw_mi.c                      |  1309 +
 ubuntu/rtl8821c/core/rtw_mlme.c                    |  4720 +++
 ubuntu/rtl8821c/core/rtw_mlme_ext.c                | 15910 ++++++++
 ubuntu/rtl8821c/core/rtw_mp.c                      |  3570 ++
 ubuntu/rtl8821c/core/rtw_mp_ioctl.c                |  2534 ++
 ubuntu/rtl8821c/core/rtw_odm.c                     |   446 +
 ubuntu/rtl8821c/core/rtw_p2p.c                     |  5297 +++
 ubuntu/rtl8821c/core/rtw_pwrctrl.c                 |  2572 ++
 ubuntu/rtl8821c/core/rtw_recv.c                    |  4745 +++
 ubuntu/rtl8821c/core/rtw_rf.c                      |  1218 +
 ubuntu/rtl8821c/core/rtw_sdio.c                    |    98 +
 ubuntu/rtl8821c/core/rtw_security.c                |  3178 ++
 ubuntu/rtl8821c/core/rtw_sreset.c                  |   346 +
 ubuntu/rtl8821c/core/rtw_sta_mgt.c                 |  1195 +
 ubuntu/rtl8821c/core/rtw_tdls.c                    |  3333 ++
 ubuntu/rtl8821c/core/rtw_vht.c                     |   803 +
 ubuntu/rtl8821c/core/rtw_wapi.c                    |  1240 +
 ubuntu/rtl8821c/core/rtw_wapi_sms4.c               |   908 +
 ubuntu/rtl8821c/core/rtw_wlan_util.c               |  4656 +++
 ubuntu/rtl8821c/core/rtw_xmit.c                    |  5629 +++
 ubuntu/rtl8821c/hal/HalPwrSeqCmd.c                 |   161 +
 ubuntu/rtl8821c/hal/btc/halbtc8192e1ant.c          |  3417 ++
 ubuntu/rtl8821c/hal/btc/halbtc8192e1ant.h          |   226 +
 ubuntu/rtl8821c/hal/btc/halbtc8192e2ant.c          |  4252 +++
 ubuntu/rtl8821c/hal/btc/halbtc8192e2ant.h          |   216 +
 ubuntu/rtl8821c/hal/btc/halbtc8703b1ant.c          |  4263 +++
 ubuntu/rtl8821c/hal/btc/halbtc8703b1ant.h          |   399 +
 ubuntu/rtl8821c/hal/btc/halbtc8723b1ant.c          |  5113 +++
 ubuntu/rtl8821c/hal/btc/halbtc8723b1ant.h          |   293 +
 ubuntu/rtl8821c/hal/btc/halbtc8723b2ant.c          |  4958 +++
 ubuntu/rtl8821c/hal/btc/halbtc8723b2ant.h          |   217 +
 ubuntu/rtl8821c/hal/btc/halbtc8723bwifionly.c      |    68 +
 ubuntu/rtl8821c/hal/btc/halbtc8723bwifionly.h      |     8 +
 ubuntu/rtl8821c/hal/btc/halbtc8723d1ant.c          |  6293 ++++
 ubuntu/rtl8821c/hal/btc/halbtc8723d1ant.h          |   413 +
 ubuntu/rtl8821c/hal/btc/halbtc8723d2ant.c          |  6838 ++++
 ubuntu/rtl8821c/hal/btc/halbtc8723d2ant.h          |   420 +
 ubuntu/rtl8821c/hal/btc/halbtc8812a1ant.c          |  3461 ++
 ubuntu/rtl8821c/hal/btc/halbtc8812a1ant.h          |   230 +
 ubuntu/rtl8821c/hal/btc/halbtc8812a2ant.c          |  5624 +++
 ubuntu/rtl8821c/hal/btc/halbtc8812a2ant.h          |   227 +
 ubuntu/rtl8821c/hal/btc/halbtc8821a1ant.c          |  3256 ++
 ubuntu/rtl8821c/hal/btc/halbtc8821a1ant.h          |   214 +
 ubuntu/rtl8821c/hal/btc/halbtc8821a2ant.c          |  4584 +++
 ubuntu/rtl8821c/hal/btc/halbtc8821a2ant.h          |   211 +
 ubuntu/rtl8821c/hal/btc/halbtc8821c1ant.c          |  5403 +++
 ubuntu/rtl8821c/hal/btc/halbtc8821c1ant.h          |   492 +
 ubuntu/rtl8821c/hal/btc/halbtc8821c2ant.c          |  6103 +++
 ubuntu/rtl8821c/hal/btc/halbtc8821c2ant.h          |   504 +
 ubuntu/rtl8821c/hal/btc/halbtc8821cwifionly.c      |   186 +
 ubuntu/rtl8821c/hal/btc/halbtc8821cwifionly.h      |    70 +
 ubuntu/rtl8821c/hal/btc/halbtc8822b1ant.c          |  7002 ++++
 ubuntu/rtl8821c/hal/btc/halbtc8822b1ant.h          |   434 +
 ubuntu/rtl8821c/hal/btc/halbtc8822b2ant.c          |  5583 +++
 ubuntu/rtl8821c/hal/btc/halbtc8822b2ant.h          |   493 +
 ubuntu/rtl8821c/hal/btc/halbtc8822bwifionly.c      |    54 +
 ubuntu/rtl8821c/hal/btc/halbtc8822bwifionly.h      |    22 +
 ubuntu/rtl8821c/hal/btc/halbtcoutsrc.h             |  1014 +
 ubuntu/rtl8821c/hal/btc/mp_precomp.h               |    90 +
 ubuntu/rtl8821c/hal/efuse/efuse_mask.h             |   124 +
 .../hal/efuse/rtl8821c/HalEfuseMask8821C_PCIE.c    |   100 +
 .../hal/efuse/rtl8821c/HalEfuseMask8821C_PCIE.h    |    39 +
 .../hal/efuse/rtl8821c/HalEfuseMask8821C_SDIO.c    |   100 +
 .../hal/efuse/rtl8821c/HalEfuseMask8821C_SDIO.h    |    39 +
 .../hal/efuse/rtl8821c/HalEfuseMask8821C_USB.c     |   100 +
 .../hal/efuse/rtl8821c/HalEfuseMask8821C_USB.h     |    39 +
 ubuntu/rtl8821c/hal/hal_btcoex.c                   |  4550 +++
 ubuntu/rtl8821c/hal/hal_btcoex_wifionly.c          |   156 +
 ubuntu/rtl8821c/hal/hal_com.c                      | 11644 ++++++
 ubuntu/rtl8821c/hal/hal_com_c2h.h                  |   119 +
 ubuntu/rtl8821c/hal/hal_com_phycfg.c               |  5452 +++
 ubuntu/rtl8821c/hal/hal_dm.c                       |   398 +
 ubuntu/rtl8821c/hal/hal_dm.h                       |    26 +
 ubuntu/rtl8821c/hal/hal_halmac.c                   |  2854 ++
 ubuntu/rtl8821c/hal/hal_halmac.h                   |   124 +
 ubuntu/rtl8821c/hal/hal_hci/hal_pci.c              |    23 +
 ubuntu/rtl8821c/hal/hal_intf.c                     |  1482 +
 ubuntu/rtl8821c/hal/hal_mcc.c                      |  1877 +
 ubuntu/rtl8821c/hal/hal_mp.c                       |  2226 ++
 ubuntu/rtl8821c/hal/hal_phy.c                      |   260 +
 ubuntu/rtl8821c/hal/halmac/halmac_2_platform.h     |    82 +
 .../halmac_88xx/halmac_8821c/halmac_8821c_cfg.h    |    85 +
 .../halmac_88xx/halmac_8821c/halmac_8821c_phy.c    |    36 +
 .../halmac_8821c/halmac_8821c_pwr_seq.c            |   239 +
 .../halmac_8821c/halmac_8821c_pwr_seq.h            |    16 +
 .../halmac_88xx/halmac_8821c/halmac_api_8821c.c    |   287 +
 .../halmac_88xx/halmac_8821c/halmac_api_8821c.h    |    28 +
 .../halmac_8821c/halmac_api_8821c_pcie.c           |   251 +
 .../halmac_8821c/halmac_api_8821c_pcie.h           |    39 +
 .../halmac_8821c/halmac_api_8821c_sdio.c           |   144 +
 .../halmac_8821c/halmac_api_8821c_sdio.h           |    33 +
 .../halmac_8821c/halmac_api_8821c_usb.c            |   142 +
 .../halmac_8821c/halmac_api_8821c_usb.h            |    27 +
 .../halmac_88xx/halmac_8821c/halmac_func_8821c.c   |   311 +
 .../halmac_88xx/halmac_8821c/halmac_func_8821c.h   |    19 +
 .../hal/halmac/halmac_88xx/halmac_88xx_cfg.h       |   163 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx.c       |  5617 +++
 .../hal/halmac/halmac_88xx/halmac_api_88xx.h       |   607 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx_pcie.c  |   322 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx_pcie.h  |    76 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx_sdio.c  |   975 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx_sdio.h  |   118 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx_usb.c   |   563 +
 .../hal/halmac/halmac_88xx/halmac_api_88xx_usb.h   |    83 +
 .../hal/halmac/halmac_88xx/halmac_func_88xx.c      |  4323 +++
 .../hal/halmac/halmac_88xx/halmac_func_88xx.h      |   522 +
 ubuntu/rtl8821c/hal/halmac/halmac_api.c            |   510 +
 ubuntu/rtl8821c/hal/halmac/halmac_api.h            |    99 +
 ubuntu/rtl8821c/hal/halmac/halmac_bit2.h           | 34880 +++++++++++++++++
 ubuntu/rtl8821c/hal/halmac/halmac_bit_8197f.h      | 13065 +++++++
 ubuntu/rtl8821c/hal/halmac/halmac_bit_8814b.h      | 11710 ++++++
 ubuntu/rtl8821c/hal/halmac/halmac_bit_8821c.h      | 11710 ++++++
 ubuntu/rtl8821c/hal/halmac/halmac_bit_8822b.h      | 11147 ++++++
 ubuntu/rtl8821c/hal/halmac/halmac_fw_info.h        |   101 +
 .../rtl8821c/hal/halmac/halmac_fw_offload_c2h_ap.h |   157 +
 .../hal/halmac/halmac_fw_offload_c2h_nic.h         |   123 +
 .../rtl8821c/hal/halmac/halmac_fw_offload_h2c_ap.h |   420 +
 .../hal/halmac/halmac_fw_offload_h2c_nic.h         |   299 +
 .../rtl8821c/hal/halmac/halmac_h2c_extra_info_ap.h |    69 +
 .../hal/halmac/halmac_h2c_extra_info_nic.h         |    47 +
 ubuntu/rtl8821c/hal/halmac/halmac_hw_cfg.h         |   138 +
 ubuntu/rtl8821c/hal/halmac/halmac_intf_phy_cmd.h   |    30 +
 ubuntu/rtl8821c/hal/halmac/halmac_module.c         |   719 +
 ubuntu/rtl8821c/hal/halmac/halmac_module.h         |   115 +
 .../rtl8821c/hal/halmac/halmac_original_c2h_ap.h   |   336 +
 .../rtl8821c/hal/halmac/halmac_original_c2h_nic.h  |   229 +
 .../rtl8821c/hal/halmac/halmac_original_h2c_ap.h   |   878 +
 .../rtl8821c/hal/halmac/halmac_original_h2c_nic.h  |   609 +
 ubuntu/rtl8821c/hal/halmac/halmac_pcie_reg.h       |     8 +
 ubuntu/rtl8821c/hal/halmac/halmac_pwr_seq_cmd.h    |   106 +
 ubuntu/rtl8821c/hal/halmac/halmac_reg2.h           |  3232 ++
 ubuntu/rtl8821c/hal/halmac/halmac_reg_8197f.h      |   682 +
 ubuntu/rtl8821c/hal/halmac/halmac_reg_8814b.h      |   736 +
 ubuntu/rtl8821c/hal/halmac/halmac_reg_8821c.h      |   736 +
 ubuntu/rtl8821c/hal/halmac/halmac_reg_8822b.h      |   704 +
 ubuntu/rtl8821c/hal/halmac/halmac_rx_bd_ap.h       |    25 +
 ubuntu/rtl8821c/hal/halmac/halmac_rx_bd_chip.h     |   109 +
 ubuntu/rtl8821c/hal/halmac/halmac_rx_bd_nic.h      |    25 +
 ubuntu/rtl8821c/hal/halmac/halmac_rx_desc_ap.h     |   132 +
 ubuntu/rtl8821c/hal/halmac/halmac_rx_desc_chip.h   |   375 +
 ubuntu/rtl8821c/hal/halmac/halmac_rx_desc_nic.h    |   132 +
 ubuntu/rtl8821c/hal/halmac/halmac_sdio_reg.h       |    38 +
 ubuntu/rtl8821c/hal/halmac/halmac_tx_bd_ap.h       |    95 +
 ubuntu/rtl8821c/hal/halmac/halmac_tx_bd_chip.h     |   374 +
 ubuntu/rtl8821c/hal/halmac/halmac_tx_bd_nic.h      |    78 +
 ubuntu/rtl8821c/hal/halmac/halmac_tx_desc_ap.h     |   566 +
 ubuntu/rtl8821c/hal/halmac/halmac_tx_desc_chip.h   |  1247 +
 ubuntu/rtl8821c/hal/halmac/halmac_tx_desc_nic.h    |   451 +
 ubuntu/rtl8821c/hal/halmac/halmac_type.h           |  2134 ++
 ubuntu/rtl8821c/hal/halmac/halmac_usb_reg.h        |     8 +
 ubuntu/rtl8821c/hal/led/hal_pci_led.c              |  2166 ++
 ubuntu/rtl8821c/hal/phydm/halhwimg.h               |   123 +
 ubuntu/rtl8821c/hal/phydm/halphyrf_ap.c            |  2668 ++
 ubuntu/rtl8821c/hal/phydm/halphyrf_ap.h            |   178 +
 ubuntu/rtl8821c/hal/phydm/halphyrf_ce.c            |   837 +
 ubuntu/rtl8821c/hal/phydm/halphyrf_ce.h            |   117 +
 ubuntu/rtl8821c/hal/phydm/halphyrf_win.c           |   821 +
 ubuntu/rtl8821c/hal/phydm/halphyrf_win.h           |   119 +
 ubuntu/rtl8821c/hal/phydm/mp_precomp.h             |    19 +
 ubuntu/rtl8821c/hal/phydm/phydm.c                  |  3514 ++
 ubuntu/rtl8821c/hal/phydm/phydm.h                  |  1363 +
 ubuntu/rtl8821c/hal/phydm/phydm_acs.c              |  1154 +
 ubuntu/rtl8821c/hal/phydm/phydm_acs.h              |   105 +
 ubuntu/rtl8821c/hal/phydm/phydm_adaptivity.c       |  1140 +
 ubuntu/rtl8821c/hal/phydm/phydm_adaptivity.h       |   231 +
 ubuntu/rtl8821c/hal/phydm/phydm_adc_sampling.c     |   761 +
 ubuntu/rtl8821c/hal/phydm/phydm_adc_sampling.h     |   147 +
 ubuntu/rtl8821c/hal/phydm/phydm_antdect.c          |   843 +
 ubuntu/rtl8821c/hal/phydm/phydm_antdect.h          |    95 +
 ubuntu/rtl8821c/hal/phydm/phydm_antdiv.c           |  6123 +++
 ubuntu/rtl8821c/hal/phydm/phydm_antdiv.h           |   710 +
 ubuntu/rtl8821c/hal/phydm/phydm_beamforming.c      |  1879 +
 ubuntu/rtl8821c/hal/phydm/phydm_beamforming.h      |   374 +
 ubuntu/rtl8821c/hal/phydm/phydm_ccx.c              |   392 +
 ubuntu/rtl8821c/hal/phydm/phydm_ccx.h              |   102 +
 ubuntu/rtl8821c/hal/phydm/phydm_cfotracking.c      |   371 +
 ubuntu/rtl8821c/hal/phydm/phydm_cfotracking.h      |    69 +
 ubuntu/rtl8821c/hal/phydm/phydm_debug.c            |  3233 ++
 ubuntu/rtl8821c/hal/phydm/phydm_debug.h            |   387 +
 ubuntu/rtl8821c/hal/phydm/phydm_dfs.c              |   671 +
 ubuntu/rtl8821c/hal/phydm/phydm_dfs.h              |   104 +
 ubuntu/rtl8821c/hal/phydm/phydm_dig.c              |  2265 ++
 ubuntu/rtl8821c/hal/phydm/phydm_dig.h              |   391 +
 ubuntu/rtl8821c/hal/phydm/phydm_dynamic_rx_path.c  |   357 +
 ubuntu/rtl8821c/hal/phydm/phydm_dynamic_rx_path.h  |   137 +
 .../hal/phydm/phydm_dynamicbbpowersaving.c         |   111 +
 .../hal/phydm/phydm_dynamicbbpowersaving.h         |    57 +
 ubuntu/rtl8821c/hal/phydm/phydm_dynamictxpower.c   |   535 +
 ubuntu/rtl8821c/hal/phydm/phydm_dynamictxpower.h   |   110 +
 ubuntu/rtl8821c/hal/phydm/phydm_edcaturbocheck.c   |   698 +
 ubuntu/rtl8821c/hal/phydm/phydm_edcaturbocheck.h   |   102 +
 ubuntu/rtl8821c/hal/phydm/phydm_features.h         |   198 +
 ubuntu/rtl8821c/hal/phydm/phydm_hwconfig.c         |  3800 ++
 ubuntu/rtl8821c/hal/phydm/phydm_hwconfig.h         |   574 +
 ubuntu/rtl8821c/hal/phydm/phydm_interface.c        |  1087 +
 ubuntu/rtl8821c/hal/phydm/phydm_interface.h        |   447 +
 ubuntu/rtl8821c/hal/phydm/phydm_iqk.h              |    65 +
 ubuntu/rtl8821c/hal/phydm/phydm_kfree.c            |   373 +
 ubuntu/rtl8821c/hal/phydm/phydm_kfree.h            |    87 +
 ubuntu/rtl8821c/hal/phydm/phydm_noisemonitor.c     |   292 +
 ubuntu/rtl8821c/hal/phydm/phydm_noisemonitor.h     |    47 +
 ubuntu/rtl8821c/hal/phydm/phydm_pathdiv.c          |   693 +
 ubuntu/rtl8821c/hal/phydm/phydm_pathdiv.h          |   319 +
 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ap.c |  1249 +
 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ap.h |   355 +
 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ce.c |   824 +
 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ce.h |   341 +
 .../rtl8821c/hal/phydm/phydm_powertracking_win.c   |   854 +
 .../rtl8821c/hal/phydm/phydm_powertracking_win.h   |   308 +
 ubuntu/rtl8821c/hal/phydm/phydm_pre_define.h       |   682 +
 ubuntu/rtl8821c/hal/phydm/phydm_precomp.h          |   375 +
 ubuntu/rtl8821c/hal/phydm/phydm_psd.c              |   448 +
 ubuntu/rtl8821c/hal/phydm/phydm_psd.h              |   101 +
 ubuntu/rtl8821c/hal/phydm/phydm_rainfo.c           |  3449 ++
 ubuntu/rtl8821c/hal/phydm/phydm_rainfo.h           |   589 +
 ubuntu/rtl8821c/hal/phydm/phydm_reg.h              |   214 +
 ubuntu/rtl8821c/hal/phydm/phydm_regdefine11ac.h    |    93 +
 ubuntu/rtl8821c/hal/phydm/phydm_regdefine11n.h     |   212 +
 ubuntu/rtl8821c/hal/phydm/phydm_types.h            |   290 +
 ubuntu/rtl8821c/hal/phydm/rtchnlplan.c             |   475 +
 ubuntu/rtl8821c/hal/phydm/rtchnlplan.h             |   682 +
 .../rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_bb.c |  3447 ++
 .../rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_bb.h |    83 +
 .../rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_fw.c | 18444 +++++++++
 .../rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_fw.h |    61 +
 .../hal/phydm/rtl8821c/halhwimg8821c_mac.c         |   332 +
 .../hal/phydm/rtl8821c/halhwimg8821c_mac.h         |    39 +
 .../rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_rf.c |  1838 +
 .../rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_rf.h |    59 +
 .../hal/phydm/rtl8821c/halhwimg8821c_testchip_bb.c |  1925 +
 .../hal/phydm/rtl8821c/halhwimg8821c_testchip_bb.h |    58 +
 .../hal/phydm/rtl8821c/halhwimg8821c_testchip_fw.c | 16138 ++++++++
 .../hal/phydm/rtl8821c/halhwimg8821c_testchip_fw.h |    61 +
 .../phydm/rtl8821c/halhwimg8821c_testchip_mac.c    |   324 +
 .../phydm/rtl8821c/halhwimg8821c_testchip_mac.h    |    38 +
 .../hal/phydm/rtl8821c/halhwimg8821c_testchip_rf.c |  2304 ++
 .../hal/phydm/rtl8821c/halhwimg8821c_testchip_rf.h |    58 +
 .../rtl8821c/hal/phydm/rtl8821c/halphyrf_8821c.c   |   486 +
 .../rtl8821c/hal/phydm/rtl8821c/halphyrf_8821c.h   |    83 +
 .../hal/phydm/rtl8821c/phydm_hal_api8821c.c        |  1249 +
 .../hal/phydm/rtl8821c/phydm_hal_api8821c.h        |   214 +
 .../rtl8821c/hal/phydm/rtl8821c/phydm_iqk_8821c.c  |  2478 ++
 .../rtl8821c/hal/phydm/rtl8821c/phydm_iqk_8821c.h  |    63 +
 .../hal/phydm/rtl8821c/phydm_regconfig8821c.c      |   189 +
 .../hal/phydm/rtl8821c/phydm_regconfig8821c.h      |   102 +
 .../rtl8821c/hal/phydm/rtl8821c/version_rtl8821c.h |     9 +
 ubuntu/rtl8821c/hal/phydm/txbf/halcomtxbf.c        |   538 +
 ubuntu/rtl8821c/hal/phydm/txbf/halcomtxbf.h        |   179 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8192e.c      |   391 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8192e.h      |    60 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8814a.c      |   700 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8814a.h      |    89 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8822b.c      |  1100 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8822b.h      |    79 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfinterface.c  |  1502 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfinterface.h  |   165 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfjaguar.c     |   526 +
 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfjaguar.h     |    74 +
 .../rtl8821c/hal/phydm/txbf/phydm_hal_txbf_api.c   |   179 +
 .../rtl8821c/hal/phydm/txbf/phydm_hal_txbf_api.h   |    69 +
 ubuntu/rtl8821c/hal/rtl8821c/hal8821c_fw.c         | 37174 +++++++++++++++++++
 ubuntu/rtl8821c/hal/rtl8821c/hal8821c_fw.h         |    43 +
 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce.h       |   115 +
 .../rtl8821c/hal/rtl8821c/pci/rtl8821ce_halinit.c  |   378 +
 .../rtl8821c/hal/rtl8821c/pci/rtl8821ce_halmac.c   |   289 +
 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_io.c    |   353 +
 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_led.c   |   164 +
 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_ops.c   |   759 +
 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_recv.c  |   471 +
 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_xmit.c  |  1501 +
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c.h            |   124 +
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_cmd.c        |  1352 +
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_dm.c         |   416 +
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_halinit.c    |   363 +
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_mac.c        |   255 +
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_ops.c        |  3786 ++
 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_phy.c        |  1078 +
 ubuntu/rtl8821c/ifcfg-wlan0                        |     4 +
 ubuntu/rtl8821c/include/Hal8188EPhyCfg.h           |   265 +
 ubuntu/rtl8821c/include/Hal8188EPhyReg.h           |  1105 +
 ubuntu/rtl8821c/include/Hal8188EPwrSeq.h           |   175 +
 ubuntu/rtl8821c/include/Hal8188FPhyCfg.h           |   139 +
 ubuntu/rtl8821c/include/Hal8188FPhyReg.h           |  1170 +
 ubuntu/rtl8821c/include/Hal8188FPwrSeq.h           |   198 +
 ubuntu/rtl8821c/include/Hal8192EPhyCfg.h           |   153 +
 ubuntu/rtl8821c/include/Hal8192EPhyReg.h           |  1132 +
 ubuntu/rtl8821c/include/Hal8192EPwrSeq.h           |   155 +
 ubuntu/rtl8821c/include/Hal8703BPhyCfg.h           |   137 +
 ubuntu/rtl8821c/include/Hal8703BPhyReg.h           |  1138 +
 ubuntu/rtl8821c/include/Hal8703BPwrSeq.h           |   184 +
 ubuntu/rtl8821c/include/Hal8723BPhyCfg.h           |   137 +
 ubuntu/rtl8821c/include/Hal8723BPhyReg.h           |  1136 +
 ubuntu/rtl8821c/include/Hal8723BPwrSeq.h           |   232 +
 ubuntu/rtl8821c/include/Hal8723DPhyCfg.h           |   136 +
 ubuntu/rtl8821c/include/Hal8723DPhyReg.h           |  1139 +
 ubuntu/rtl8821c/include/Hal8723DPwrSeq.h           |   193 +
 ubuntu/rtl8821c/include/Hal8723PwrSeq.h            |   169 +
 ubuntu/rtl8821c/include/Hal8812PhyCfg.h            |   148 +
 ubuntu/rtl8821c/include/Hal8812PhyReg.h            |   738 +
 ubuntu/rtl8821c/include/Hal8812PwrSeq.h            |   209 +
 ubuntu/rtl8821c/include/Hal8814PhyCfg.h            |   269 +
 ubuntu/rtl8821c/include/Hal8814PhyReg.h            |   866 +
 ubuntu/rtl8821c/include/Hal8814PwrSeq.h            |   236 +
 ubuntu/rtl8821c/include/Hal8821APwrSeq.h           |   186 +
 ubuntu/rtl8821c/include/HalPwrSeqCmd.h             |   135 +
 ubuntu/rtl8821c/include/HalVerDef.h                |   203 +
 ubuntu/rtl8821c/include/autoconf.h                 |   316 +
 ubuntu/rtl8821c/include/basic_types.h              |   384 +
 ubuntu/rtl8821c/include/byteorder/big_endian.h     |    87 +
 ubuntu/rtl8821c/include/byteorder/generic.h        |   212 +
 ubuntu/rtl8821c/include/byteorder/little_endian.h  |    89 +
 ubuntu/rtl8821c/include/byteorder/swab.h           |   141 +
 ubuntu/rtl8821c/include/byteorder/swabb.h          |   156 +
 ubuntu/rtl8821c/include/circ_buf.h                 |    28 +
 ubuntu/rtl8821c/include/cmd_osdep.h                |    31 +
 ubuntu/rtl8821c/include/custom_gpio.h              |    32 +
 ubuntu/rtl8821c/include/drv_conf.h                 |   326 +
 ubuntu/rtl8821c/include/drv_types.h                |  1605 +
 ubuntu/rtl8821c/include/drv_types_ce.h             |    91 +
 ubuntu/rtl8821c/include/drv_types_gspi.h           |    54 +
 ubuntu/rtl8821c/include/drv_types_linux.h          |    24 +
 ubuntu/rtl8821c/include/drv_types_pci.h            |   271 +
 ubuntu/rtl8821c/include/drv_types_sdio.h           |    95 +
 ubuntu/rtl8821c/include/drv_types_xp.h             |    93 +
 ubuntu/rtl8821c/include/ethernet.h                 |    41 +
 ubuntu/rtl8821c/include/gspi_hal.h                 |    35 +
 ubuntu/rtl8821c/include/gspi_ops.h                 |   185 +
 ubuntu/rtl8821c/include/gspi_ops_linux.h           |    23 +
 ubuntu/rtl8821c/include/gspi_osintf.h              |    30 +
 ubuntu/rtl8821c/include/h2clbk.h                   |    31 +
 ubuntu/rtl8821c/include/hal_btcoex.h               |    99 +
 ubuntu/rtl8821c/include/hal_btcoex_wifionly.h      |    47 +
 ubuntu/rtl8821c/include/hal_com.h                  |   690 +
 ubuntu/rtl8821c/include/hal_com_h2c.h              |   557 +
 ubuntu/rtl8821c/include/hal_com_led.h              |   396 +
 ubuntu/rtl8821c/include/hal_com_phycfg.h           |   348 +
 ubuntu/rtl8821c/include/hal_com_reg.h              |  1829 +
 ubuntu/rtl8821c/include/hal_data.h                 |  1098 +
 ubuntu/rtl8821c/include/hal_gspi.h                 |    31 +
 ubuntu/rtl8821c/include/hal_ic_cfg.h               |   215 +
 ubuntu/rtl8821c/include/hal_intf.h                 |   795 +
 ubuntu/rtl8821c/include/hal_pg.h                   |   789 +
 ubuntu/rtl8821c/include/hal_phy.h                  |   243 +
 ubuntu/rtl8821c/include/hal_phy_reg.h              |    30 +
 ubuntu/rtl8821c/include/hal_sdio.h                 |    36 +
 ubuntu/rtl8821c/include/ieee80211.h                |  1934 +
 ubuntu/rtl8821c/include/ieee80211_ext.h            |   476 +
 ubuntu/rtl8821c/include/if_ether.h                 |   111 +
 ubuntu/rtl8821c/include/ip.h                       |   140 +
 ubuntu/rtl8821c/include/linux/wireless.h           |    92 +
 ubuntu/rtl8821c/include/mlme_osdep.h               |    35 +
 ubuntu/rtl8821c/include/mp_custom_oid.h            |   353 +
 ubuntu/rtl8821c/include/nic_spec.h                 |    46 +
 ubuntu/rtl8821c/include/osdep_intf.h               |   171 +
 ubuntu/rtl8821c/include/osdep_service.h            |   711 +
 ubuntu/rtl8821c/include/osdep_service_bsd.h        |   762 +
 ubuntu/rtl8821c/include/osdep_service_ce.h         |   205 +
 ubuntu/rtl8821c/include/osdep_service_linux.h      |   446 +
 ubuntu/rtl8821c/include/osdep_service_xp.h         |   215 +
 ubuntu/rtl8821c/include/pci_hal.h                  |    53 +
 ubuntu/rtl8821c/include/pci_ops.h                  |    96 +
 ubuntu/rtl8821c/include/pci_osintf.h               |    52 +
 ubuntu/rtl8821c/include/recv_osdep.h               |    66 +
 ubuntu/rtl8821c/include/rtl8188e_cmd.h             |   179 +
 ubuntu/rtl8821c/include/rtl8188e_dm.h              |    32 +
 ubuntu/rtl8821c/include/rtl8188e_hal.h             |   312 +
 ubuntu/rtl8821c/include/rtl8188e_led.h             |    40 +
 ubuntu/rtl8821c/include/rtl8188e_recv.h            |   170 +
 ubuntu/rtl8821c/include/rtl8188e_rf.h              |    32 +
 ubuntu/rtl8821c/include/rtl8188e_spec.h            |   163 +
 ubuntu/rtl8821c/include/rtl8188e_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8188e_xmit.h            |   300 +
 ubuntu/rtl8821c/include/rtl8188f_cmd.h             |   219 +
 ubuntu/rtl8821c/include/rtl8188f_dm.h              |    47 +
 ubuntu/rtl8821c/include/rtl8188f_hal.h             |   271 +
 ubuntu/rtl8821c/include/rtl8188f_led.h             |    48 +
 ubuntu/rtl8821c/include/rtl8188f_recv.h            |    73 +
 ubuntu/rtl8821c/include/rtl8188f_rf.h              |    30 +
 ubuntu/rtl8821c/include/rtl8188f_spec.h            |   291 +
 ubuntu/rtl8821c/include/rtl8188f_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8188f_xmit.h            |   338 +
 ubuntu/rtl8821c/include/rtl8192e_cmd.h             |   161 +
 ubuntu/rtl8821c/include/rtl8192e_dm.h              |    33 +
 ubuntu/rtl8821c/include/rtl8192e_hal.h             |   332 +
 ubuntu/rtl8821c/include/rtl8192e_led.h             |    40 +
 ubuntu/rtl8821c/include/rtl8192e_recv.h            |   173 +
 ubuntu/rtl8821c/include/rtl8192e_rf.h              |    33 +
 ubuntu/rtl8821c/include/rtl8192e_spec.h            |   317 +
 ubuntu/rtl8821c/include/rtl8192e_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8192e_xmit.h            |   451 +
 ubuntu/rtl8821c/include/rtl8703b_cmd.h             |   218 +
 ubuntu/rtl8821c/include/rtl8703b_dm.h              |    47 +
 ubuntu/rtl8821c/include/rtl8703b_hal.h             |   277 +
 ubuntu/rtl8821c/include/rtl8703b_led.h             |    48 +
 ubuntu/rtl8821c/include/rtl8703b_recv.h            |    91 +
 ubuntu/rtl8821c/include/rtl8703b_rf.h              |    30 +
 ubuntu/rtl8821c/include/rtl8703b_spec.h            |   468 +
 ubuntu/rtl8821c/include/rtl8703b_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8703b_xmit.h            |   338 +
 ubuntu/rtl8821c/include/rtl8723b_cmd.h             |   218 +
 ubuntu/rtl8821c/include/rtl8723b_dm.h              |    47 +
 ubuntu/rtl8821c/include/rtl8723b_hal.h             |   283 +
 ubuntu/rtl8821c/include/rtl8723b_led.h             |    48 +
 ubuntu/rtl8821c/include/rtl8723b_recv.h            |    91 +
 ubuntu/rtl8821c/include/rtl8723b_rf.h              |    30 +
 ubuntu/rtl8821c/include/rtl8723b_spec.h            |   284 +
 ubuntu/rtl8821c/include/rtl8723b_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8723b_xmit.h            |   338 +
 ubuntu/rtl8821c/include/rtl8723d_cmd.h             |   211 +
 ubuntu/rtl8821c/include/rtl8723d_dm.h              |    47 +
 ubuntu/rtl8821c/include/rtl8723d_hal.h             |   316 +
 ubuntu/rtl8821c/include/rtl8723d_led.h             |    48 +
 ubuntu/rtl8821c/include/rtl8723d_lps_poff.h        |    61 +
 ubuntu/rtl8821c/include/rtl8723d_recv.h            |   120 +
 ubuntu/rtl8821c/include/rtl8723d_rf.h              |    26 +
 ubuntu/rtl8821c/include/rtl8723d_spec.h            |   445 +
 ubuntu/rtl8821c/include/rtl8723d_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8723d_xmit.h            |   522 +
 ubuntu/rtl8821c/include/rtl8812a_cmd.h             |   171 +
 ubuntu/rtl8821c/include/rtl8812a_dm.h              |    32 +
 ubuntu/rtl8821c/include/rtl8812a_hal.h             |   364 +
 ubuntu/rtl8821c/include/rtl8812a_led.h             |    41 +
 ubuntu/rtl8821c/include/rtl8812a_recv.h            |   158 +
 ubuntu/rtl8821c/include/rtl8812a_rf.h              |    33 +
 ubuntu/rtl8821c/include/rtl8812a_spec.h            |   267 +
 ubuntu/rtl8821c/include/rtl8812a_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8812a_xmit.h            |   371 +
 ubuntu/rtl8821c/include/rtl8814a_cmd.h             |   170 +
 ubuntu/rtl8821c/include/rtl8814a_dm.h              |    28 +
 ubuntu/rtl8821c/include/rtl8814a_hal.h             |   335 +
 ubuntu/rtl8821c/include/rtl8814a_led.h             |    40 +
 ubuntu/rtl8821c/include/rtl8814a_recv.h            |   191 +
 ubuntu/rtl8821c/include/rtl8814a_rf.h              |    33 +
 ubuntu/rtl8821c/include/rtl8814a_spec.h            |   645 +
 ubuntu/rtl8821c/include/rtl8814a_sreset.h          |    29 +
 ubuntu/rtl8821c/include/rtl8814a_xmit.h            |   313 +
 ubuntu/rtl8821c/include/rtl8821a_spec.h            |    94 +
 ubuntu/rtl8821c/include/rtl8821a_xmit.h            |   178 +
 ubuntu/rtl8821c/include/rtl8821c_dm.h              |    30 +
 ubuntu/rtl8821c/include/rtl8821c_hal.h             |    85 +
 ubuntu/rtl8821c/include/rtl8821c_spec.h            |   196 +
 ubuntu/rtl8821c/include/rtl8821ce_hal.h            |    28 +
 ubuntu/rtl8821c/include/rtl8821cs_hal.h            |    28 +
 ubuntu/rtl8821c/include/rtl8821cu_hal.h            |    29 +
 ubuntu/rtl8821c/include/rtl8822b_hal.h             |   218 +
 ubuntu/rtl8821c/include/rtl8822be_hal.h            |    30 +
 ubuntu/rtl8821c/include/rtl8822bs_hal.h            |    32 +
 ubuntu/rtl8821c/include/rtl8822bu_hal.h            |    63 +
 ubuntu/rtl8821c/include/rtw_android.h              |   115 +
 ubuntu/rtl8821c/include/rtw_ap.h                   |    88 +
 ubuntu/rtl8821c/include/rtw_beamforming.h          |   390 +
 ubuntu/rtl8821c/include/rtw_br_ext.h               |    74 +
 ubuntu/rtl8821c/include/rtw_bt_mp.h                |   293 +
 ubuntu/rtl8821c/include/rtw_btcoex.h               |   451 +
 ubuntu/rtl8821c/include/rtw_btcoex_wifionly.h      |    27 +
 ubuntu/rtl8821c/include/rtw_byteorder.h            |    38 +
 ubuntu/rtl8821c/include/rtw_cmd.h                  |  1293 +
 ubuntu/rtl8821c/include/rtw_debug.h                |   666 +
 ubuntu/rtl8821c/include/rtw_eeprom.h               |   121 +
 ubuntu/rtl8821c/include/rtw_efuse.h                |   245 +
 ubuntu/rtl8821c/include/rtw_event.h                |   135 +
 ubuntu/rtl8821c/include/rtw_ht.h                   |   219 +
 ubuntu/rtl8821c/include/rtw_io.h                   |   576 +
 ubuntu/rtl8821c/include/rtw_ioctl.h                |   324 +
 ubuntu/rtl8821c/include/rtw_ioctl_query.h          |    30 +
 ubuntu/rtl8821c/include/rtw_ioctl_rtl.h            |    80 +
 ubuntu/rtl8821c/include/rtw_ioctl_set.h            |    75 +
 ubuntu/rtl8821c/include/rtw_iol.h                  |   136 +
 ubuntu/rtl8821c/include/rtw_mcc.h                  |   220 +
 ubuntu/rtl8821c/include/rtw_mem.h                  |    41 +
 ubuntu/rtl8821c/include/rtw_mi.h                   |   240 +
 ubuntu/rtl8821c/include/rtw_mlme.h                 |  1191 +
 ubuntu/rtl8821c/include/rtw_mlme_ext.h             |  1320 +
 ubuntu/rtl8821c/include/rtw_mp.h                   |   946 +
 ubuntu/rtl8821c/include/rtw_mp_ioctl.h             |   575 +
 ubuntu/rtl8821c/include/rtw_mp_phy_regdef.h        |  1099 +
 ubuntu/rtl8821c/include/rtw_odm.h                  |    55 +
 ubuntu/rtl8821c/include/rtw_p2p.h                  |   176 +
 ubuntu/rtl8821c/include/rtw_pwrctrl.h              |   568 +
 ubuntu/rtl8821c/include/rtw_qos.h                  |    34 +
 ubuntu/rtl8821c/include/rtw_recv.h                 |   907 +
 ubuntu/rtl8821c/include/rtw_rf.h                   |   255 +
 ubuntu/rtl8821c/include/rtw_sdio.h                 |    30 +
 ubuntu/rtl8821c/include/rtw_security.h             |   491 +
 ubuntu/rtl8821c/include/rtw_sreset.h               |    60 +
 ubuntu/rtl8821c/include/rtw_tdls.h                 |   173 +
 ubuntu/rtl8821c/include/rtw_version.h              |     2 +
 ubuntu/rtl8821c/include/rtw_vht.h                  |   144 +
 ubuntu/rtl8821c/include/rtw_wapi.h                 |   214 +
 ubuntu/rtl8821c/include/rtw_wifi_regd.h            |    25 +
 ubuntu/rtl8821c/include/rtw_xmit.h                 |  1011 +
 ubuntu/rtl8821c/include/sdio_hal.h                 |    54 +
 ubuntu/rtl8821c/include/sdio_ops.h                 |   162 +
 ubuntu/rtl8821c/include/sdio_ops_ce.h              |    54 +
 ubuntu/rtl8821c/include/sdio_ops_linux.h           |    56 +
 ubuntu/rtl8821c/include/sdio_ops_xp.h              |    54 +
 ubuntu/rtl8821c/include/sdio_osintf.h              |    30 +
 ubuntu/rtl8821c/include/sta_info.h                 |   675 +
 ubuntu/rtl8821c/include/usb_hal.h                  |    67 +
 ubuntu/rtl8821c/include/usb_ops.h                  |   133 +
 ubuntu/rtl8821c/include/usb_ops_linux.h            |   103 +
 ubuntu/rtl8821c/include/usb_osintf.h               |    31 +
 ubuntu/rtl8821c/include/usb_vendor_req.h           |    61 +
 ubuntu/rtl8821c/include/wifi.h                     |  1404 +
 ubuntu/rtl8821c/include/wlan_bssdef.h              |   690 +
 ubuntu/rtl8821c/include/xmit_osdep.h               |    99 +
 ubuntu/rtl8821c/os_dep/linux/custom_gpio_linux.c   |   346 +
 ubuntu/rtl8821c/os_dep/linux/ioctl_cfg80211.c      |  7217 ++++
 ubuntu/rtl8821c/os_dep/linux/ioctl_cfg80211.h      |   353 +
 ubuntu/rtl8821c/os_dep/linux/ioctl_linux.c         | 13432 +++++++
 ubuntu/rtl8821c/os_dep/linux/ioctl_mp.c            |  2412 ++
 ubuntu/rtl8821c/os_dep/linux/mlme_linux.c          |   439 +
 ubuntu/rtl8821c/os_dep/linux/os_intfs.c            |  4558 +++
 ubuntu/rtl8821c/os_dep/linux/pci_intf.c            |  1977 +
 ubuntu/rtl8821c/os_dep/linux/pci_ops_linux.c       |    21 +
 ubuntu/rtl8821c/os_dep/linux/recv_linux.c          |   874 +
 ubuntu/rtl8821c/os_dep/linux/rtw_android.c         |  1274 +
 ubuntu/rtl8821c/os_dep/linux/rtw_cfgvendor.c       |  1328 +
 ubuntu/rtl8821c/os_dep/linux/rtw_cfgvendor.h       |   245 +
 ubuntu/rtl8821c/os_dep/linux/rtw_proc.c            |  3383 ++
 ubuntu/rtl8821c/os_dep/linux/rtw_proc.h            |    65 +
 ubuntu/rtl8821c/os_dep/linux/wifi_regd.c           |   544 +
 ubuntu/rtl8821c/os_dep/linux/xmit_linux.c          |   535 +
 ubuntu/rtl8821c/os_dep/osdep_service.c             |  2822 ++
 ubuntu/rtl8821c/platform/custom_country_chplan.h   |    27 +
 .../platform/platform_ARM_SUN50IW1P1_sdio.c        |    91 +
 ubuntu/rtl8821c/platform/platform_ARM_SUNnI_sdio.c |   135 +
 ubuntu/rtl8821c/platform/platform_ARM_SUNxI_sdio.c |    95 +
 ubuntu/rtl8821c/platform/platform_ARM_SUNxI_usb.c  |   141 +
 ubuntu/rtl8821c/platform/platform_ARM_WMT_sdio.c   |    51 +
 ubuntu/rtl8821c/platform/platform_RTK_DMP_usb.c    |    35 +
 ubuntu/rtl8821c/platform/platform_arm_act_sdio.c   |    58 +
 ubuntu/rtl8821c/platform/platform_ops.c            |    37 +
 ubuntu/rtl8821c/platform/platform_ops.h            |    31 +
 ubuntu/rtl8821c/platform/platform_sprd_sdio.c      |    89 +
 ubuntu/rtl8821c/rtl8821c.mk                        |    76 +
 ubuntu/rtl8821c/runwpa                             |    20 +
 ubuntu/rtl8821c/wlan0dhcp                          |    16 +
 566 files changed, 596828 insertions(+)
 create mode 100644 ubuntu/rtl8821c-bt/Makefile
 create mode 100644 ubuntu/rtl8821c-bt/rtk_bt.c
 create mode 100644 ubuntu/rtl8821c-bt/rtk_bt.h
 create mode 100644 ubuntu/rtl8821c-bt/rtk_coex.c
 create mode 100644 ubuntu/rtl8821c-bt/rtk_coex.h
 create mode 100644 ubuntu/rtl8821c/Kconfig
 create mode 100644 ubuntu/rtl8821c/Makefile
 create mode 100644 ubuntu/rtl8821c/clean
 create mode 100644 ubuntu/rtl8821c/core/efuse/rtw_efuse.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_ap.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_beamforming.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_br_ext.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_bt_mp.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_btcoex.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_btcoex_wifionly.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_cmd.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_debug.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_eeprom.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_ieee80211.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_io.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_ioctl_query.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_ioctl_rtl.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_ioctl_set.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_iol.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_mem.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_mi.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_mlme.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_mlme_ext.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_mp.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_mp_ioctl.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_odm.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_p2p.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_pwrctrl.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_recv.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_rf.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_sdio.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_security.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_sreset.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_sta_mgt.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_tdls.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_vht.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_wapi.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_wapi_sms4.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_wlan_util.c
 create mode 100644 ubuntu/rtl8821c/core/rtw_xmit.c
 create mode 100644 ubuntu/rtl8821c/hal/HalPwrSeqCmd.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8192e1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8192e1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8192e2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8192e2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8703b1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8703b1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723b1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723b1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723b2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723b2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723bwifionly.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723bwifionly.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723d1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723d1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723d2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8723d2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8812a1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8812a1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8812a2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8812a2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821a1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821a1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821a2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821a2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821c1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821c1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821c2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821c2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821cwifionly.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8821cwifionly.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8822b1ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8822b1ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8822b2ant.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8822b2ant.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8822bwifionly.c
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtc8822bwifionly.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/halbtcoutsrc.h
 create mode 100644 ubuntu/rtl8821c/hal/btc/mp_precomp.h
 create mode 100644 ubuntu/rtl8821c/hal/efuse/efuse_mask.h
 create mode 100644 ubuntu/rtl8821c/hal/efuse/rtl8821c/HalEfuseMask8821C_PCIE.c
 create mode 100644 ubuntu/rtl8821c/hal/efuse/rtl8821c/HalEfuseMask8821C_PCIE.h
 create mode 100644 ubuntu/rtl8821c/hal/efuse/rtl8821c/HalEfuseMask8821C_SDIO.c
 create mode 100644 ubuntu/rtl8821c/hal/efuse/rtl8821c/HalEfuseMask8821C_SDIO.h
 create mode 100644 ubuntu/rtl8821c/hal/efuse/rtl8821c/HalEfuseMask8821C_USB.c
 create mode 100644 ubuntu/rtl8821c/hal/efuse/rtl8821c/HalEfuseMask8821C_USB.h
 create mode 100644 ubuntu/rtl8821c/hal/hal_btcoex.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_btcoex_wifionly.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_com.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_com_c2h.h
 create mode 100644 ubuntu/rtl8821c/hal/hal_com_phycfg.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_dm.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_dm.h
 create mode 100644 ubuntu/rtl8821c/hal/hal_halmac.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_halmac.h
 create mode 100644 ubuntu/rtl8821c/hal/hal_hci/hal_pci.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_intf.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_mcc.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_mp.c
 create mode 100644 ubuntu/rtl8821c/hal/hal_phy.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_2_platform.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_8821c_cfg.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_8821c_phy.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_8821c_pwr_seq.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_8821c_pwr_seq.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c_pcie.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c_pcie.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c_sdio.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c_sdio.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c_usb.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_api_8821c_usb.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_func_8821c.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_8821c/halmac_func_8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_88xx_cfg.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx_pcie.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx_pcie.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx_sdio.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx_sdio.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx_usb.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_api_88xx_usb.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_func_88xx.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_88xx/halmac_func_88xx.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_api.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_api.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_bit2.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_bit_8197f.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_bit_8814b.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_bit_8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_bit_8822b.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_fw_info.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_fw_offload_c2h_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_fw_offload_c2h_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_fw_offload_h2c_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_fw_offload_h2c_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_h2c_extra_info_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_h2c_extra_info_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_hw_cfg.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_intf_phy_cmd.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_module.c
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_module.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_original_c2h_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_original_c2h_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_original_h2c_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_original_h2c_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_pcie_reg.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_pwr_seq_cmd.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_reg2.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_reg_8197f.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_reg_8814b.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_reg_8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_reg_8822b.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_rx_bd_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_rx_bd_chip.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_rx_bd_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_rx_desc_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_rx_desc_chip.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_rx_desc_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_sdio_reg.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_tx_bd_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_tx_bd_chip.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_tx_bd_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_tx_desc_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_tx_desc_chip.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_tx_desc_nic.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_type.h
 create mode 100644 ubuntu/rtl8821c/hal/halmac/halmac_usb_reg.h
 create mode 100644 ubuntu/rtl8821c/hal/led/hal_pci_led.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halhwimg.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halphyrf_ap.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halphyrf_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halphyrf_ce.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halphyrf_ce.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halphyrf_win.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/halphyrf_win.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/mp_precomp.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_acs.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_acs.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_adaptivity.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_adaptivity.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_adc_sampling.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_adc_sampling.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_antdect.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_antdect.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_antdiv.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_antdiv.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_beamforming.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_beamforming.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_ccx.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_ccx.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_cfotracking.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_cfotracking.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_debug.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_debug.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dfs.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dfs.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dig.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dig.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dynamic_rx_path.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dynamic_rx_path.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dynamicbbpowersaving.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dynamicbbpowersaving.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dynamictxpower.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_dynamictxpower.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_edcaturbocheck.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_edcaturbocheck.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_features.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_hwconfig.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_hwconfig.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_interface.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_interface.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_iqk.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_kfree.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_kfree.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_noisemonitor.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_noisemonitor.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_pathdiv.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_pathdiv.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ap.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ap.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ce.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_ce.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_win.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_powertracking_win.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_pre_define.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_precomp.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_psd.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_psd.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_rainfo.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_rainfo.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_reg.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_regdefine11ac.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_regdefine11n.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/phydm_types.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtchnlplan.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtchnlplan.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_bb.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_bb.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_fw.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_fw.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_mac.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_mac.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_rf.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_rf.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_bb.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_bb.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_fw.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_fw.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_mac.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_mac.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_rf.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halhwimg8821c_testchip_rf.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halphyrf_8821c.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/halphyrf_8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/phydm_hal_api8821c.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/phydm_hal_api8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/phydm_iqk_8821c.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/phydm_iqk_8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/phydm_regconfig8821c.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/phydm_regconfig8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/rtl8821c/version_rtl8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/halcomtxbf.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/halcomtxbf.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8192e.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8192e.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8814a.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8814a.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8822b.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbf8822b.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfinterface.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfinterface.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfjaguar.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/haltxbfjaguar.h
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/phydm_hal_txbf_api.c
 create mode 100644 ubuntu/rtl8821c/hal/phydm/txbf/phydm_hal_txbf_api.h
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/hal8821c_fw.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/hal8821c_fw.h
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce.h
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_halinit.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_halmac.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_io.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_led.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_ops.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_recv.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/pci/rtl8821ce_xmit.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c.h
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_cmd.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_dm.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_halinit.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_mac.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_ops.c
 create mode 100644 ubuntu/rtl8821c/hal/rtl8821c/rtl8821c_phy.c
 create mode 100644 ubuntu/rtl8821c/ifcfg-wlan0
 create mode 100644 ubuntu/rtl8821c/include/Hal8188EPhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8188EPhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8188EPwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8188FPhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8188FPhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8188FPwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8192EPhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8192EPhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8192EPwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8703BPhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8703BPhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8703BPwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723BPhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723BPhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723BPwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723DPhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723DPhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723DPwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8723PwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8812PhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8812PhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8812PwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8814PhyCfg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8814PhyReg.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8814PwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/Hal8821APwrSeq.h
 create mode 100644 ubuntu/rtl8821c/include/HalPwrSeqCmd.h
 create mode 100644 ubuntu/rtl8821c/include/HalVerDef.h
 create mode 100644 ubuntu/rtl8821c/include/autoconf.h
 create mode 100644 ubuntu/rtl8821c/include/basic_types.h
 create mode 100644 ubuntu/rtl8821c/include/byteorder/big_endian.h
 create mode 100644 ubuntu/rtl8821c/include/byteorder/generic.h
 create mode 100644 ubuntu/rtl8821c/include/byteorder/little_endian.h
 create mode 100644 ubuntu/rtl8821c/include/byteorder/swab.h
 create mode 100644 ubuntu/rtl8821c/include/byteorder/swabb.h
 create mode 100644 ubuntu/rtl8821c/include/circ_buf.h
 create mode 100644 ubuntu/rtl8821c/include/cmd_osdep.h
 create mode 100644 ubuntu/rtl8821c/include/custom_gpio.h
 create mode 100644 ubuntu/rtl8821c/include/drv_conf.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types_ce.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types_gspi.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types_linux.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types_pci.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types_sdio.h
 create mode 100644 ubuntu/rtl8821c/include/drv_types_xp.h
 create mode 100644 ubuntu/rtl8821c/include/ethernet.h
 create mode 100644 ubuntu/rtl8821c/include/gspi_hal.h
 create mode 100644 ubuntu/rtl8821c/include/gspi_ops.h
 create mode 100644 ubuntu/rtl8821c/include/gspi_ops_linux.h
 create mode 100644 ubuntu/rtl8821c/include/gspi_osintf.h
 create mode 100644 ubuntu/rtl8821c/include/h2clbk.h
 create mode 100644 ubuntu/rtl8821c/include/hal_btcoex.h
 create mode 100644 ubuntu/rtl8821c/include/hal_btcoex_wifionly.h
 create mode 100644 ubuntu/rtl8821c/include/hal_com.h
 create mode 100644 ubuntu/rtl8821c/include/hal_com_h2c.h
 create mode 100644 ubuntu/rtl8821c/include/hal_com_led.h
 create mode 100644 ubuntu/rtl8821c/include/hal_com_phycfg.h
 create mode 100644 ubuntu/rtl8821c/include/hal_com_reg.h
 create mode 100644 ubuntu/rtl8821c/include/hal_data.h
 create mode 100644 ubuntu/rtl8821c/include/hal_gspi.h
 create mode 100644 ubuntu/rtl8821c/include/hal_ic_cfg.h
 create mode 100644 ubuntu/rtl8821c/include/hal_intf.h
 create mode 100644 ubuntu/rtl8821c/include/hal_pg.h
 create mode 100644 ubuntu/rtl8821c/include/hal_phy.h
 create mode 100644 ubuntu/rtl8821c/include/hal_phy_reg.h
 create mode 100644 ubuntu/rtl8821c/include/hal_sdio.h
 create mode 100644 ubuntu/rtl8821c/include/ieee80211.h
 create mode 100644 ubuntu/rtl8821c/include/ieee80211_ext.h
 create mode 100644 ubuntu/rtl8821c/include/if_ether.h
 create mode 100644 ubuntu/rtl8821c/include/ip.h
 create mode 100644 ubuntu/rtl8821c/include/linux/wireless.h
 create mode 100644 ubuntu/rtl8821c/include/mlme_osdep.h
 create mode 100644 ubuntu/rtl8821c/include/mp_custom_oid.h
 create mode 100644 ubuntu/rtl8821c/include/nic_spec.h
 create mode 100644 ubuntu/rtl8821c/include/osdep_intf.h
 create mode 100644 ubuntu/rtl8821c/include/osdep_service.h
 create mode 100644 ubuntu/rtl8821c/include/osdep_service_bsd.h
 create mode 100644 ubuntu/rtl8821c/include/osdep_service_ce.h
 create mode 100644 ubuntu/rtl8821c/include/osdep_service_linux.h
 create mode 100644 ubuntu/rtl8821c/include/osdep_service_xp.h
 create mode 100644 ubuntu/rtl8821c/include/pci_hal.h
 create mode 100644 ubuntu/rtl8821c/include/pci_ops.h
 create mode 100644 ubuntu/rtl8821c/include/pci_osintf.h
 create mode 100644 ubuntu/rtl8821c/include/recv_osdep.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188e_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8188f_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8192e_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8703b_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723b_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_lps_poff.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8723d_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8812a_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_led.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8814a_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821a_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821a_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821c_dm.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821c_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821c_spec.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821ce_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821cs_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8821cu_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8822b_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8822be_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8822bs_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtl8822bu_hal.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_android.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_ap.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_beamforming.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_br_ext.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_bt_mp.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_btcoex.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_btcoex_wifionly.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_byteorder.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_cmd.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_debug.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_eeprom.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_efuse.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_event.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_ht.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_io.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_ioctl.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_ioctl_query.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_ioctl_rtl.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_ioctl_set.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_iol.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mcc.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mem.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mi.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mlme.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mlme_ext.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mp.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mp_ioctl.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_mp_phy_regdef.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_odm.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_p2p.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_pwrctrl.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_qos.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_recv.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_rf.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_sdio.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_security.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_sreset.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_tdls.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_version.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_vht.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_wapi.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_wifi_regd.h
 create mode 100644 ubuntu/rtl8821c/include/rtw_xmit.h
 create mode 100644 ubuntu/rtl8821c/include/sdio_hal.h
 create mode 100644 ubuntu/rtl8821c/include/sdio_ops.h
 create mode 100644 ubuntu/rtl8821c/include/sdio_ops_ce.h
 create mode 100644 ubuntu/rtl8821c/include/sdio_ops_linux.h
 create mode 100644 ubuntu/rtl8821c/include/sdio_ops_xp.h
 create mode 100644 ubuntu/rtl8821c/include/sdio_osintf.h
 create mode 100644 ubuntu/rtl8821c/include/sta_info.h
 create mode 100644 ubuntu/rtl8821c/include/usb_hal.h
 create mode 100644 ubuntu/rtl8821c/include/usb_ops.h
 create mode 100644 ubuntu/rtl8821c/include/usb_ops_linux.h
 create mode 100644 ubuntu/rtl8821c/include/usb_osintf.h
 create mode 100644 ubuntu/rtl8821c/include/usb_vendor_req.h
 create mode 100644 ubuntu/rtl8821c/include/wifi.h
 create mode 100644 ubuntu/rtl8821c/include/wlan_bssdef.h
 create mode 100644 ubuntu/rtl8821c/include/xmit_osdep.h
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/custom_gpio_linux.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/ioctl_cfg80211.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/ioctl_cfg80211.h
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/ioctl_linux.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/ioctl_mp.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/mlme_linux.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/os_intfs.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/pci_intf.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/pci_ops_linux.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/recv_linux.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/rtw_android.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/rtw_cfgvendor.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/rtw_cfgvendor.h
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/rtw_proc.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/rtw_proc.h
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/wifi_regd.c
 create mode 100644 ubuntu/rtl8821c/os_dep/linux/xmit_linux.c
 create mode 100644 ubuntu/rtl8821c/os_dep/osdep_service.c
 create mode 100644 ubuntu/rtl8821c/platform/custom_country_chplan.h
 create mode 100644 ubuntu/rtl8821c/platform/platform_ARM_SUN50IW1P1_sdio.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_ARM_SUNnI_sdio.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_ARM_SUNxI_sdio.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_ARM_SUNxI_usb.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_ARM_WMT_sdio.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_RTK_DMP_usb.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_arm_act_sdio.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_ops.c
 create mode 100644 ubuntu/rtl8821c/platform/platform_ops.h
 create mode 100644 ubuntu/rtl8821c/platform/platform_sprd_sdio.c
 create mode 100644 ubuntu/rtl8821c/rtl8821c.mk
 create mode 100644 ubuntu/rtl8821c/runwpa
 create mode 100644 ubuntu/rtl8821c/wlan0dhcp

Comments

Seth Forshee March 27, 2018, 2:10 p.m. UTC | #1
On Sat, Mar 24, 2018 at 12:46:57AM +0800, Wen-chien Jesse Sung wrote:
> BugLink: https://launchpad.net/bugs/1740231
> BugLink: https://launchpad.net/bugs/1742613
> 
> These are based on the drivers provided by Realtek for 4.13.
> 
> Since btusb will bind to this bluetooth device, it must be blacklisted
> in btusb to make sure that the correct driver is used. Also the table in
> ubuntu/rtl8821c-bt is modified so that the driver works only for this
> device only.
> 
> Risk should be low since both drivers have no impact for systems without
> these devices.

This is a driver with almost 600,000 lines of code, submitted at the
last minute without any explanation of why we should be adding it to our
kernel. Please explain why this is needed.

Some of my objections/questions from just a quick skim:

 - Being built with our kernel, the driver will be signed and thus
   eligible to be loaded during secure boot. There's no chance that we
   can review it to ensure that it doesn't expose any unsafe interfaces
   to userspace. Have you done such a review?

 - Why does this need to hook into our debian build scripts rather than
   being built like a normal module?

 - You blacklist usb device 0bda:b00a for all architectures but only
   build the replacement driver for x86. Is there any chance someone
   might want to use the device with another architecture? If so you'll
   be breaking them.

 - Presumably we'll have to keep maintaining this huge pile of code for
   years into the future, up to and including the next LTS I expect.

Thanks,
Seth
Wen-chien Jesse Sung March 28, 2018, 8:12 a.m. UTC | #2
Hi Seth,

On Tue, Mar 27, 2018 at 10:10 PM, Seth Forshee
<seth.forshee@canonical.com> wrote:
> On Sat, Mar 24, 2018 at 12:46:57AM +0800, Wen-chien Jesse Sung wrote:
>> BugLink: https://launchpad.net/bugs/1740231
>> BugLink: https://launchpad.net/bugs/1742613
>>
>> These are based on the drivers provided by Realtek for 4.13.
>>
>> Since btusb will bind to this bluetooth device, it must be blacklisted
>> in btusb to make sure that the correct driver is used. Also the table in
>> ubuntu/rtl8821c-bt is modified so that the driver works only for this
>> device only.
>>
>> Risk should be low since both drivers have no impact for systems without
>> these devices.
>
> This is a driver with almost 600,000 lines of code, submitted at the
> last minute without any explanation of why we should be adding it to our
> kernel. Please explain why this is needed.

This device was enabled on some HP laptops. Right now we're supporting
it with linux-oem 4.13 in Xenial. In order to keep this device working after
upcoming linux-oem upgrade/migration, the best way is to integrate this into
bionic kernel.

>
> Some of my objections/questions from just a quick skim:
>
>  - Being built with our kernel, the driver will be signed and thus
>    eligible to be loaded during secure boot. There's no chance that we
>    can review it to ensure that it doesn't expose any unsafe interfaces
>    to userspace. Have you done such a review?

For platforms w/o this device, if one can load a module to expose something,
he can always load anything harmful directly anyway. But for platforms w/ the
device, I'd admit that I have the same doubt as you.

>
>  - Why does this need to hook into our debian build scripts rather than
>    being built like a normal module?

I tried to keep the modification to the driver as minimal as possible, in case
that there's an update (a new tarball) from Realtek. But yes, I can modify
the Makefile to make it look like a normal module if it's preferred.

>
>  - You blacklist usb device 0bda:b00a for all architectures but only
>    build the replacement driver for x86. Is there any chance someone
>    might want to use the device with another architecture? If so you'll
>    be breaking them.

Since the btusb doesn't work with this device, this may not be a problem.

Thanks,
Jesse

>
>  - Presumably we'll have to keep maintaining this huge pile of code for
>    years into the future, up to and including the next LTS I expect.
>
> Thanks,
> Seth
Seth Forshee March 28, 2018, 12:58 p.m. UTC | #3
On Wed, Mar 28, 2018 at 04:12:09PM +0800, Jesse Sung wrote:
> Hi Seth,
> 
> On Tue, Mar 27, 2018 at 10:10 PM, Seth Forshee
> <seth.forshee@canonical.com> wrote:
> > On Sat, Mar 24, 2018 at 12:46:57AM +0800, Wen-chien Jesse Sung wrote:
> >> BugLink: https://launchpad.net/bugs/1740231
> >> BugLink: https://launchpad.net/bugs/1742613
> >>
> >> These are based on the drivers provided by Realtek for 4.13.
> >>
> >> Since btusb will bind to this bluetooth device, it must be blacklisted
> >> in btusb to make sure that the correct driver is used. Also the table in
> >> ubuntu/rtl8821c-bt is modified so that the driver works only for this
> >> device only.
> >>
> >> Risk should be low since both drivers have no impact for systems without
> >> these devices.
> >
> > This is a driver with almost 600,000 lines of code, submitted at the
> > last minute without any explanation of why we should be adding it to our
> > kernel. Please explain why this is needed.
> 
> This device was enabled on some HP laptops. Right now we're supporting
> it with linux-oem 4.13 in Xenial. In order to keep this device working after
> upcoming linux-oem upgrade/migration, the best way is to integrate this into
> bionic kernel.

Okay, I do agree that we want to allow users to upgrade without breaking
their hw support. However this driver is ridiculously large. I have no
idea how anyone could possibly end up with a driver that has nearly
600,000 lines of code. This just doesn't belong in the distro kernel,
imo.

> > Some of my objections/questions from just a quick skim:
> >
> >  - Being built with our kernel, the driver will be signed and thus
> >    eligible to be loaded during secure boot. There's no chance that we
> >    can review it to ensure that it doesn't expose any unsafe interfaces
> >    to userspace. Have you done such a review?
> 
> For platforms w/o this device, if one can load a module to expose something,
> he can always load anything harmful directly anyway. But for platforms w/ the
> device, I'd admit that I have the same doubt as you.

We carry a set of patches for "lockdown" under secure boot. Lockdown
means that only signed modules can be loaded and a variety of
potentially insecure interfaces to userspace are disabled. If a user
wants to load an unsigned module they first have to disable secure boot
validation.

Shipping a signed module with our kernel means that we believe that
either the module doesn't expose any insecure interfaces to userspace or
else those interfaces are restricted when lockdown is enforced. I doubt
this driver has been evaluated with this in mind.

> >  - Why does this need to hook into our debian build scripts rather than
> >    being built like a normal module?
> 
> I tried to keep the modification to the driver as minimal as possible, in case
> that there's an update (a new tarball) from Realtek. But yes, I can modify
> the Makefile to make it look like a normal module if it's preferred.
> 
> >
> >  - You blacklist usb device 0bda:b00a for all architectures but only
> >    build the replacement driver for x86. Is there any chance someone
> >    might want to use the device with another architecture? If so you'll
> >    be breaking them.
> 
> Since the btusb doesn't work with this device, this may not be a problem.
> 
> Thanks,
> Jesse
> 
> >
> >  - Presumably we'll have to keep maintaining this huge pile of code for
> >    years into the future, up to and including the next LTS I expect.
> >
> > Thanks,
> > Seth
Anthony Wong May 28, 2019, 3:26 a.m. UTC | #4
Hi Seth,

Kai-heng took another stab at the 8821CE wifi driver by removing lots
of unnecessary codes to make it more secure (it's still quite big
TBH), in the hope that our projects can use this device directly with
our kernels. He has sent a pull request in another email, would you
mind giving it a review?

Thanks,
Anthony

On Wed, Mar 28, 2018 at 07:58:54AM -0500, Seth Forshee wrote:
> On Wed, Mar 28, 2018 at 04:12:09PM +0800, Jesse Sung wrote:
> > Hi Seth,
> > 
> > On Tue, Mar 27, 2018 at 10:10 PM, Seth Forshee
> > <seth.forshee@canonical.com> wrote:
> > > On Sat, Mar 24, 2018 at 12:46:57AM +0800, Wen-chien Jesse Sung wrote:
> > >> BugLink: https://launchpad.net/bugs/1740231
> > >> BugLink: https://launchpad.net/bugs/1742613
> > >>
> > >> These are based on the drivers provided by Realtek for 4.13.
> > >>
> > >> Since btusb will bind to this bluetooth device, it must be blacklisted
> > >> in btusb to make sure that the correct driver is used. Also the table in
> > >> ubuntu/rtl8821c-bt is modified so that the driver works only for this
> > >> device only.
> > >>
> > >> Risk should be low since both drivers have no impact for systems without
> > >> these devices.
> > >
> > > This is a driver with almost 600,000 lines of code, submitted at the
> > > last minute without any explanation of why we should be adding it to our
> > > kernel. Please explain why this is needed.
> > 
> > This device was enabled on some HP laptops. Right now we're supporting
> > it with linux-oem 4.13 in Xenial. In order to keep this device working after
> > upcoming linux-oem upgrade/migration, the best way is to integrate this into
> > bionic kernel.
> 
> Okay, I do agree that we want to allow users to upgrade without breaking
> their hw support. However this driver is ridiculously large. I have no
> idea how anyone could possibly end up with a driver that has nearly
> 600,000 lines of code. This just doesn't belong in the distro kernel,
> imo.
> 
> > > Some of my objections/questions from just a quick skim:
> > >
> > >  - Being built with our kernel, the driver will be signed and thus
> > >    eligible to be loaded during secure boot. There's no chance that we
> > >    can review it to ensure that it doesn't expose any unsafe interfaces
> > >    to userspace. Have you done such a review?
> > 
> > For platforms w/o this device, if one can load a module to expose something,
> > he can always load anything harmful directly anyway. But for platforms w/ the
> > device, I'd admit that I have the same doubt as you.
> 
> We carry a set of patches for "lockdown" under secure boot. Lockdown
> means that only signed modules can be loaded and a variety of
> potentially insecure interfaces to userspace are disabled. If a user
> wants to load an unsigned module they first have to disable secure boot
> validation.
> 
> Shipping a signed module with our kernel means that we believe that
> either the module doesn't expose any insecure interfaces to userspace or
> else those interfaces are restricted when lockdown is enforced. I doubt
> this driver has been evaluated with this in mind.
> 
> > >  - Why does this need to hook into our debian build scripts rather than
> > >    being built like a normal module?
> > 
> > I tried to keep the modification to the driver as minimal as possible, in case
> > that there's an update (a new tarball) from Realtek. But yes, I can modify
> > the Makefile to make it look like a normal module if it's preferred.
> > 
> > >
> > >  - You blacklist usb device 0bda:b00a for all architectures but only
> > >    build the replacement driver for x86. Is there any chance someone
> > >    might want to use the device with another architecture? If so you'll
> > >    be breaking them.
> > 
> > Since the btusb doesn't work with this device, this may not be a problem.
> > 
> > Thanks,
> > Jesse
> > 
> > >
> > >  - Presumably we'll have to keep maintaining this huge pile of code for
> > >    years into the future, up to and including the next LTS I expect.
> > >
> > > Thanks,
> > > Seth
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team