Copy disabled (too large)
Download .txt
Showing preview only (27,683K chars total). Download the full file to get everything.
Repository: juanro49/rtl88x2ce-dkms
Branch: master
Commit: 477ecdf712e3
Files: 641
Total size: 26.3 MB
Directory structure:
gitextract_ori71sv_/
├── Kconfig
├── Makefile
├── README.md
├── clean
├── core/
│ ├── efuse/
│ │ └── rtw_efuse.c
│ ├── mesh/
│ │ ├── rtw_mesh.c
│ │ ├── rtw_mesh.h
│ │ ├── rtw_mesh_hwmp.c
│ │ ├── rtw_mesh_hwmp.h
│ │ ├── rtw_mesh_pathtbl.c
│ │ └── rtw_mesh_pathtbl.h
│ ├── rtw_ap.c
│ ├── rtw_beamforming.c
│ ├── rtw_br_ext.c
│ ├── rtw_bt_mp.c
│ ├── rtw_btcoex.c
│ ├── rtw_btcoex_wifionly.c
│ ├── rtw_chplan.c
│ ├── rtw_chplan.h
│ ├── rtw_cmd.c
│ ├── rtw_debug.c
│ ├── rtw_eeprom.c
│ ├── rtw_ieee80211.c
│ ├── rtw_io.c
│ ├── rtw_ioctl_query.c
│ ├── rtw_ioctl_set.c
│ ├── rtw_iol.c
│ ├── rtw_mem.c
│ ├── rtw_mi.c
│ ├── rtw_mlme.c
│ ├── rtw_mlme_ext.c
│ ├── rtw_mp.c
│ ├── rtw_odm.c
│ ├── rtw_p2p.c
│ ├── rtw_pwrctrl.c
│ ├── rtw_recv.c
│ ├── rtw_rf.c
│ ├── rtw_rm.c
│ ├── rtw_rm_fsm.c
│ ├── rtw_rson.c
│ ├── rtw_sdio.c
│ ├── rtw_security.c
│ ├── rtw_sreset.c
│ ├── rtw_sta_mgt.c
│ ├── rtw_tdls.c
│ ├── rtw_vht.c
│ ├── rtw_wapi.c
│ ├── rtw_wapi_sms4.c
│ ├── rtw_wlan_util.c
│ └── rtw_xmit.c
├── dkms.conf
├── hal/
│ ├── HalPwrSeqCmd.c
│ ├── btc/
│ │ ├── btc_basic_types.h
│ │ ├── halbtc8822c.c
│ │ ├── halbtc8822c.h
│ │ ├── halbtc8822cwifionly.c
│ │ ├── halbtc8822cwifionly.h
│ │ ├── halbtccommon.c
│ │ ├── halbtccommon.h
│ │ ├── halbtcoutsrc.h
│ │ └── mp_precomp.h
│ ├── efuse/
│ │ ├── efuse_mask.h
│ │ └── rtl8822c/
│ │ ├── HalEfuseMask8822C_PCIE.c
│ │ ├── HalEfuseMask8822C_PCIE.h
│ │ ├── HalEfuseMask8822C_SDIO.c
│ │ ├── HalEfuseMask8822C_SDIO.h
│ │ ├── HalEfuseMask8822C_USB.c
│ │ └── HalEfuseMask8822C_USB.h
│ ├── hal_btcoex.c
│ ├── hal_btcoex_wifionly.c
│ ├── hal_com.c
│ ├── hal_com_c2h.h
│ ├── hal_com_phycfg.c
│ ├── hal_dm.c
│ ├── hal_dm.h
│ ├── hal_dm_acs.c
│ ├── hal_dm_acs.h
│ ├── hal_halmac.c
│ ├── hal_halmac.h
│ ├── hal_hci/
│ │ └── hal_pci.c
│ ├── hal_intf.c
│ ├── hal_mcc.c
│ ├── hal_mp.c
│ ├── hal_phy.c
│ ├── halmac/
│ │ ├── halmac_2_platform.h
│ │ ├── halmac_88xx/
│ │ │ ├── halmac_8822c/
│ │ │ │ ├── halmac_8822c_cfg.h
│ │ │ │ ├── halmac_cfg_wmac_8822c.c
│ │ │ │ ├── halmac_cfg_wmac_8822c.h
│ │ │ │ ├── halmac_common_8822c.c
│ │ │ │ ├── halmac_common_8822c.h
│ │ │ │ ├── halmac_gpio_8822c.c
│ │ │ │ ├── halmac_gpio_8822c.h
│ │ │ │ ├── halmac_init_8822c.c
│ │ │ │ ├── halmac_init_8822c.h
│ │ │ │ ├── halmac_pcie_8822c.c
│ │ │ │ ├── halmac_pcie_8822c.h
│ │ │ │ ├── halmac_phy_8822c.c
│ │ │ │ ├── halmac_pwr_seq_8822c.c
│ │ │ │ └── halmac_pwr_seq_8822c.h
│ │ │ ├── halmac_88xx_cfg.h
│ │ │ ├── halmac_bb_rf_88xx.c
│ │ │ ├── halmac_bb_rf_88xx.h
│ │ │ ├── halmac_cfg_wmac_88xx.c
│ │ │ ├── halmac_cfg_wmac_88xx.h
│ │ │ ├── halmac_common_88xx.c
│ │ │ ├── halmac_common_88xx.h
│ │ │ ├── halmac_efuse_88xx.c
│ │ │ ├── halmac_efuse_88xx.h
│ │ │ ├── halmac_flash_88xx.c
│ │ │ ├── halmac_flash_88xx.h
│ │ │ ├── halmac_fw_88xx.c
│ │ │ ├── halmac_fw_88xx.h
│ │ │ ├── halmac_gpio_88xx.c
│ │ │ ├── halmac_gpio_88xx.h
│ │ │ ├── halmac_init_88xx.c
│ │ │ ├── halmac_init_88xx.h
│ │ │ ├── halmac_mimo_88xx.c
│ │ │ ├── halmac_mimo_88xx.h
│ │ │ ├── halmac_pcie_88xx.c
│ │ │ └── halmac_pcie_88xx.h
│ │ ├── halmac_api.c
│ │ ├── halmac_api.h
│ │ ├── halmac_bit2.h
│ │ ├── halmac_bit_8197f.h
│ │ ├── halmac_bit_8814b.h
│ │ ├── halmac_bit_8821c.h
│ │ ├── halmac_bit_8822b.h
│ │ ├── halmac_bit_8822c.h
│ │ ├── halmac_fw_info.h
│ │ ├── halmac_fw_offload_c2h_ap.h
│ │ ├── halmac_fw_offload_c2h_nic.h
│ │ ├── halmac_fw_offload_h2c_ap.h
│ │ ├── halmac_fw_offload_h2c_nic.h
│ │ ├── halmac_gpio_cmd.h
│ │ ├── halmac_h2c_extra_info_ap.h
│ │ ├── halmac_h2c_extra_info_nic.h
│ │ ├── halmac_hw_cfg.h
│ │ ├── halmac_intf_phy_cmd.h
│ │ ├── halmac_original_c2h_ap.h
│ │ ├── halmac_original_c2h_nic.h
│ │ ├── halmac_original_h2c_ap.h
│ │ ├── halmac_original_h2c_nic.h
│ │ ├── halmac_pcie_reg.h
│ │ ├── halmac_pwr_seq_cmd.h
│ │ ├── halmac_reg2.h
│ │ ├── halmac_reg_8197f.h
│ │ ├── halmac_reg_8814b.h
│ │ ├── halmac_reg_8821c.h
│ │ ├── halmac_reg_8822b.h
│ │ ├── halmac_reg_8822c.h
│ │ ├── halmac_rx_bd_nic.h
│ │ ├── halmac_rx_desc_ap.h
│ │ ├── halmac_rx_desc_chip.h
│ │ ├── halmac_rx_desc_nic.h
│ │ ├── halmac_sdio_reg.h
│ │ ├── halmac_state_machine.h
│ │ ├── halmac_tx_bd_nic.h
│ │ ├── halmac_tx_desc_ap.h
│ │ ├── halmac_tx_desc_buffer_ap.h
│ │ ├── halmac_tx_desc_buffer_chip.h
│ │ ├── halmac_tx_desc_buffer_nic.h
│ │ ├── halmac_tx_desc_chip.h
│ │ ├── halmac_tx_desc_ie_ap.h
│ │ ├── halmac_tx_desc_ie_chip.h
│ │ ├── halmac_tx_desc_ie_nic.h
│ │ ├── halmac_tx_desc_nic.h
│ │ ├── halmac_type.h
│ │ └── halmac_usb_reg.h
│ ├── led/
│ │ ├── hal_led.c
│ │ └── hal_pci_led.c
│ ├── phydm/
│ │ ├── ap_makefile.mk
│ │ ├── halhwimg.h
│ │ ├── halrf/
│ │ │ ├── halphyrf_ap.c
│ │ │ ├── halphyrf_ap.h
│ │ │ ├── halphyrf_ce.c
│ │ │ ├── halphyrf_ce.h
│ │ │ ├── halphyrf_iot.c
│ │ │ ├── halphyrf_iot.h
│ │ │ ├── halphyrf_win.c
│ │ │ ├── halphyrf_win.h
│ │ │ ├── halrf.c
│ │ │ ├── halrf.h
│ │ │ ├── halrf_debug.c
│ │ │ ├── halrf_debug.h
│ │ │ ├── halrf_dpk.h
│ │ │ ├── halrf_features.h
│ │ │ ├── halrf_iqk.h
│ │ │ ├── halrf_kfree.c
│ │ │ ├── halrf_kfree.h
│ │ │ ├── halrf_powertracking.c
│ │ │ ├── halrf_powertracking.h
│ │ │ ├── halrf_powertracking_ap.c
│ │ │ ├── halrf_powertracking_ap.h
│ │ │ ├── halrf_powertracking_ce.c
│ │ │ ├── halrf_powertracking_ce.h
│ │ │ ├── halrf_powertracking_iot.c
│ │ │ ├── halrf_powertracking_iot.h
│ │ │ ├── halrf_powertracking_win.c
│ │ │ ├── halrf_powertracking_win.h
│ │ │ ├── halrf_psd.c
│ │ │ ├── halrf_psd.h
│ │ │ ├── halrf_txgapcal.c
│ │ │ ├── halrf_txgapcal.h
│ │ │ └── rtl8822c/
│ │ │ ├── halhwimg8822c_rf.c
│ │ │ ├── halhwimg8822c_rf.h
│ │ │ ├── halrf_8822c.c
│ │ │ ├── halrf_8822c.h
│ │ │ ├── halrf_dpk_8822c.c
│ │ │ ├── halrf_dpk_8822c.h
│ │ │ ├── halrf_iqk_8822c.c
│ │ │ ├── halrf_iqk_8822c.h
│ │ │ ├── halrf_rfk_init_8822c.c
│ │ │ ├── halrf_rfk_init_8822c.h
│ │ │ ├── halrf_tssi_8822c.c
│ │ │ ├── halrf_tssi_8822c.h
│ │ │ └── version_rtl8822c_rf.h
│ │ ├── mp_precomp.h
│ │ ├── phydm.c
│ │ ├── phydm.h
│ │ ├── phydm.mk
│ │ ├── phydm_adaptivity.c
│ │ ├── phydm_adaptivity.h
│ │ ├── phydm_adc_sampling.c
│ │ ├── phydm_adc_sampling.h
│ │ ├── phydm_antdect.c
│ │ ├── phydm_antdect.h
│ │ ├── phydm_antdiv.c
│ │ ├── phydm_antdiv.h
│ │ ├── phydm_api.c
│ │ ├── phydm_api.h
│ │ ├── phydm_auto_dbg.c
│ │ ├── phydm_auto_dbg.h
│ │ ├── phydm_beamforming.c
│ │ ├── phydm_beamforming.h
│ │ ├── phydm_cck_pd.c
│ │ ├── phydm_cck_pd.h
│ │ ├── phydm_ccx.c
│ │ ├── phydm_ccx.h
│ │ ├── phydm_cfotracking.c
│ │ ├── phydm_cfotracking.h
│ │ ├── phydm_debug.c
│ │ ├── phydm_debug.h
│ │ ├── phydm_dfs.c
│ │ ├── phydm_dfs.h
│ │ ├── phydm_dig.c
│ │ ├── phydm_dig.h
│ │ ├── phydm_direct_bf.c
│ │ ├── phydm_direct_bf.h
│ │ ├── phydm_dynamictxpower.c
│ │ ├── phydm_dynamictxpower.h
│ │ ├── phydm_features.h
│ │ ├── phydm_features_ap.h
│ │ ├── phydm_features_ce.h
│ │ ├── phydm_features_ce2_kernel.h
│ │ ├── phydm_features_iot.h
│ │ ├── phydm_features_win.h
│ │ ├── phydm_hwconfig.c
│ │ ├── phydm_hwconfig.h
│ │ ├── phydm_interface.c
│ │ ├── phydm_interface.h
│ │ ├── phydm_lna_sat.c
│ │ ├── phydm_lna_sat.h
│ │ ├── phydm_math_lib.c
│ │ ├── phydm_math_lib.h
│ │ ├── phydm_mp.c
│ │ ├── phydm_mp.h
│ │ ├── phydm_noisemonitor.c
│ │ ├── phydm_noisemonitor.h
│ │ ├── phydm_pathdiv.c
│ │ ├── phydm_pathdiv.h
│ │ ├── phydm_phystatus.c
│ │ ├── phydm_phystatus.h
│ │ ├── phydm_pmac_tx_setting.c
│ │ ├── phydm_pmac_tx_setting.h
│ │ ├── phydm_pow_train.c
│ │ ├── phydm_pow_train.h
│ │ ├── phydm_pre_define.h
│ │ ├── phydm_precomp.h
│ │ ├── phydm_primary_cca.c
│ │ ├── phydm_primary_cca.h
│ │ ├── phydm_psd.c
│ │ ├── phydm_psd.h
│ │ ├── phydm_rainfo.c
│ │ ├── phydm_rainfo.h
│ │ ├── phydm_reg.h
│ │ ├── phydm_regdefine11ac.h
│ │ ├── phydm_regdefine11n.h
│ │ ├── phydm_regtable.h
│ │ ├── phydm_rssi_monitor.c
│ │ ├── phydm_rssi_monitor.h
│ │ ├── phydm_smt_ant.c
│ │ ├── phydm_smt_ant.h
│ │ ├── phydm_soml.c
│ │ ├── phydm_soml.h
│ │ ├── phydm_types.h
│ │ ├── rtl8822c/
│ │ │ ├── halhwimg8822c_bb.c
│ │ │ ├── halhwimg8822c_bb.h
│ │ │ ├── mp_precomp.h
│ │ │ ├── phydm_hal_api8822c.c
│ │ │ ├── phydm_hal_api8822c.h
│ │ │ ├── phydm_regconfig8822c.c
│ │ │ ├── phydm_regconfig8822c.h
│ │ │ ├── phydm_rtl8822c.c
│ │ │ ├── phydm_rtl8822c.h
│ │ │ └── version_rtl8822c.h
│ │ ├── sd4_phydm_2_kernel.mk
│ │ └── txbf/
│ │ ├── halcomtxbf.c
│ │ ├── halcomtxbf.h
│ │ ├── haltxbf8192e.c
│ │ ├── haltxbf8192e.h
│ │ ├── haltxbf8814a.c
│ │ ├── haltxbf8814a.h
│ │ ├── haltxbf8822b.c
│ │ ├── haltxbf8822b.h
│ │ ├── haltxbfinterface.c
│ │ ├── haltxbfinterface.h
│ │ ├── haltxbfjaguar.c
│ │ ├── haltxbfjaguar.h
│ │ ├── phydm_hal_txbf_api.c
│ │ └── phydm_hal_txbf_api.h
│ └── rtl8822c/
│ ├── hal8822c_fw.c
│ ├── hal8822c_fw.h
│ ├── pci/
│ │ ├── rtl8822ce.h
│ │ ├── rtl8822ce_halinit.c
│ │ ├── rtl8822ce_halmac.c
│ │ ├── rtl8822ce_io.c
│ │ ├── rtl8822ce_led.c
│ │ ├── rtl8822ce_ops.c
│ │ ├── rtl8822ce_recv.c
│ │ └── rtl8822ce_xmit.c
│ ├── rtl8822c.h
│ ├── rtl8822c_cmd.c
│ ├── rtl8822c_halinit.c
│ ├── rtl8822c_mac.c
│ ├── rtl8822c_ops.c
│ └── rtl8822c_phy.c
├── halmac.mk
├── ifcfg-wlan0
├── include/
│ ├── Hal8188EPhyCfg.h
│ ├── Hal8188EPhyReg.h
│ ├── Hal8188EPwrSeq.h
│ ├── Hal8188FPhyCfg.h
│ ├── Hal8188FPhyReg.h
│ ├── Hal8188FPwrSeq.h
│ ├── Hal8192EPhyCfg.h
│ ├── Hal8192EPhyReg.h
│ ├── Hal8192EPwrSeq.h
│ ├── Hal8192FPhyCfg.h
│ ├── Hal8192FPhyReg.h
│ ├── Hal8192FPwrSeq.h
│ ├── Hal8703BPhyCfg.h
│ ├── Hal8703BPhyReg.h
│ ├── Hal8703BPwrSeq.h
│ ├── Hal8710BPhyCfg.h
│ ├── Hal8710BPhyReg.h
│ ├── Hal8710BPwrSeq.h
│ ├── Hal8723BPhyCfg.h
│ ├── Hal8723BPhyReg.h
│ ├── Hal8723BPwrSeq.h
│ ├── Hal8723DPhyCfg.h
│ ├── Hal8723DPhyReg.h
│ ├── Hal8723DPwrSeq.h
│ ├── Hal8723PwrSeq.h
│ ├── Hal8812PhyCfg.h
│ ├── Hal8812PhyReg.h
│ ├── Hal8812PwrSeq.h
│ ├── Hal8814PhyCfg.h
│ ├── Hal8814PhyReg.h
│ ├── Hal8814PwrSeq.h
│ ├── Hal8821APwrSeq.h
│ ├── HalPwrSeqCmd.h
│ ├── HalVerDef.h
│ ├── autoconf.h
│ ├── basic_types.h
│ ├── byteorder/
│ │ ├── big_endian.h
│ │ ├── generic.h
│ │ ├── little_endian.h
│ │ ├── swab.h
│ │ └── swabb.h
│ ├── circ_buf.h
│ ├── cmd_osdep.h
│ ├── cmn_info/
│ │ └── rtw_sta_info.h
│ ├── custom_gpio.h
│ ├── drv_conf.h
│ ├── drv_types.h
│ ├── drv_types_ce.h
│ ├── drv_types_gspi.h
│ ├── drv_types_linux.h
│ ├── drv_types_pci.h
│ ├── drv_types_sdio.h
│ ├── drv_types_xp.h
│ ├── ethernet.h
│ ├── gspi_hal.h
│ ├── gspi_ops.h
│ ├── gspi_ops_linux.h
│ ├── gspi_osintf.h
│ ├── h2clbk.h
│ ├── hal_btcoex.h
│ ├── hal_btcoex_wifionly.h
│ ├── hal_com.h
│ ├── hal_com_h2c.h
│ ├── hal_com_led.h
│ ├── hal_com_phycfg.h
│ ├── hal_com_reg.h
│ ├── hal_data.h
│ ├── hal_gspi.h
│ ├── hal_ic_cfg.h
│ ├── hal_intf.h
│ ├── hal_pg.h
│ ├── hal_phy.h
│ ├── hal_phy_reg.h
│ ├── hal_sdio.h
│ ├── hal_sdio_coex.h
│ ├── ieee80211.h
│ ├── ieee80211_ext.h
│ ├── if_ether.h
│ ├── ip.h
│ ├── linux/
│ │ └── wireless.h
│ ├── mlme_osdep.h
│ ├── nic_spec.h
│ ├── osdep_intf.h
│ ├── osdep_service.h
│ ├── osdep_service_bsd.h
│ ├── osdep_service_ce.h
│ ├── osdep_service_linux.h
│ ├── osdep_service_xp.h
│ ├── pci_hal.h
│ ├── pci_ops.h
│ ├── pci_osintf.h
│ ├── recv_osdep.h
│ ├── rtl8188e_cmd.h
│ ├── rtl8188e_dm.h
│ ├── rtl8188e_hal.h
│ ├── rtl8188e_led.h
│ ├── rtl8188e_recv.h
│ ├── rtl8188e_rf.h
│ ├── rtl8188e_spec.h
│ ├── rtl8188e_sreset.h
│ ├── rtl8188e_xmit.h
│ ├── rtl8188f_cmd.h
│ ├── rtl8188f_dm.h
│ ├── rtl8188f_hal.h
│ ├── rtl8188f_led.h
│ ├── rtl8188f_recv.h
│ ├── rtl8188f_rf.h
│ ├── rtl8188f_spec.h
│ ├── rtl8188f_sreset.h
│ ├── rtl8188f_xmit.h
│ ├── rtl8192e_cmd.h
│ ├── rtl8192e_dm.h
│ ├── rtl8192e_hal.h
│ ├── rtl8192e_led.h
│ ├── rtl8192e_recv.h
│ ├── rtl8192e_rf.h
│ ├── rtl8192e_spec.h
│ ├── rtl8192e_sreset.h
│ ├── rtl8192e_xmit.h
│ ├── rtl8192f_cmd.h
│ ├── rtl8192f_dm.h
│ ├── rtl8192f_hal.h
│ ├── rtl8192f_led.h
│ ├── rtl8192f_recv.h
│ ├── rtl8192f_rf.h
│ ├── rtl8192f_spec.h
│ ├── rtl8192f_sreset.h
│ ├── rtl8192f_xmit.h
│ ├── rtl8703b_cmd.h
│ ├── rtl8703b_dm.h
│ ├── rtl8703b_hal.h
│ ├── rtl8703b_led.h
│ ├── rtl8703b_recv.h
│ ├── rtl8703b_rf.h
│ ├── rtl8703b_spec.h
│ ├── rtl8703b_sreset.h
│ ├── rtl8703b_xmit.h
│ ├── rtl8710b_cmd.h
│ ├── rtl8710b_dm.h
│ ├── rtl8710b_hal.h
│ ├── rtl8710b_led.h
│ ├── rtl8710b_lps_poff.h
│ ├── rtl8710b_recv.h
│ ├── rtl8710b_rf.h
│ ├── rtl8710b_spec.h
│ ├── rtl8710b_sreset.h
│ ├── rtl8710b_xmit.h
│ ├── rtl8723b_cmd.h
│ ├── rtl8723b_dm.h
│ ├── rtl8723b_hal.h
│ ├── rtl8723b_led.h
│ ├── rtl8723b_recv.h
│ ├── rtl8723b_rf.h
│ ├── rtl8723b_spec.h
│ ├── rtl8723b_sreset.h
│ ├── rtl8723b_xmit.h
│ ├── rtl8723d_cmd.h
│ ├── rtl8723d_dm.h
│ ├── rtl8723d_hal.h
│ ├── rtl8723d_led.h
│ ├── rtl8723d_lps_poff.h
│ ├── rtl8723d_recv.h
│ ├── rtl8723d_rf.h
│ ├── rtl8723d_spec.h
│ ├── rtl8723d_sreset.h
│ ├── rtl8723d_xmit.h
│ ├── rtl8812a_cmd.h
│ ├── rtl8812a_dm.h
│ ├── rtl8812a_hal.h
│ ├── rtl8812a_led.h
│ ├── rtl8812a_recv.h
│ ├── rtl8812a_rf.h
│ ├── rtl8812a_spec.h
│ ├── rtl8812a_sreset.h
│ ├── rtl8812a_xmit.h
│ ├── rtl8814a_cmd.h
│ ├── rtl8814a_dm.h
│ ├── rtl8814a_hal.h
│ ├── rtl8814a_led.h
│ ├── rtl8814a_recv.h
│ ├── rtl8814a_rf.h
│ ├── rtl8814a_spec.h
│ ├── rtl8814a_sreset.h
│ ├── rtl8814a_xmit.h
│ ├── rtl8821a_spec.h
│ ├── rtl8821a_xmit.h
│ ├── rtl8821c_dm.h
│ ├── rtl8821c_hal.h
│ ├── rtl8821c_spec.h
│ ├── rtl8821ce_hal.h
│ ├── rtl8821cs_hal.h
│ ├── rtl8821cu_hal.h
│ ├── rtl8822b_hal.h
│ ├── rtl8822be_hal.h
│ ├── rtl8822bs_hal.h
│ ├── rtl8822bu_hal.h
│ ├── rtl8822c_hal.h
│ ├── rtl8822ce_hal.h
│ ├── rtl8822cs_hal.h
│ ├── rtl8822cu_hal.h
│ ├── rtw_android.h
│ ├── rtw_ap.h
│ ├── rtw_beamforming.h
│ ├── rtw_br_ext.h
│ ├── rtw_bt_mp.h
│ ├── rtw_btcoex.h
│ ├── rtw_btcoex_wifionly.h
│ ├── rtw_byteorder.h
│ ├── rtw_cmd.h
│ ├── rtw_debug.h
│ ├── rtw_eeprom.h
│ ├── rtw_efuse.h
│ ├── rtw_event.h
│ ├── rtw_ht.h
│ ├── rtw_io.h
│ ├── rtw_ioctl.h
│ ├── rtw_ioctl_query.h
│ ├── rtw_ioctl_set.h
│ ├── rtw_iol.h
│ ├── rtw_mcc.h
│ ├── rtw_mem.h
│ ├── rtw_mi.h
│ ├── rtw_mlme.h
│ ├── rtw_mlme_ext.h
│ ├── rtw_mp.h
│ ├── rtw_mp_phy_regdef.h
│ ├── rtw_odm.h
│ ├── rtw_p2p.h
│ ├── rtw_pwrctrl.h
│ ├── rtw_qos.h
│ ├── rtw_recv.h
│ ├── rtw_rf.h
│ ├── rtw_rm.h
│ ├── rtw_rm_fsm.h
│ ├── rtw_rson.h
│ ├── rtw_sdio.h
│ ├── rtw_security.h
│ ├── rtw_sreset.h
│ ├── rtw_tdls.h
│ ├── rtw_version.h
│ ├── rtw_vht.h
│ ├── rtw_wapi.h
│ ├── rtw_wifi_regd.h
│ ├── rtw_xmit.h
│ ├── sdio_hal.h
│ ├── sdio_ops.h
│ ├── sdio_ops_ce.h
│ ├── sdio_ops_linux.h
│ ├── sdio_ops_xp.h
│ ├── sdio_osintf.h
│ ├── sta_info.h
│ ├── usb_hal.h
│ ├── usb_ops.h
│ ├── usb_ops_linux.h
│ ├── usb_osintf.h
│ ├── usb_vendor_req.h
│ ├── wifi.h
│ ├── wlan_bssdef.h
│ └── xmit_osdep.h
├── os_dep/
│ ├── linux/
│ │ ├── .rtw_proc.o.d
│ │ ├── custom_gpio_linux.c
│ │ ├── ioctl_cfg80211.c
│ │ ├── ioctl_cfg80211.h
│ │ ├── ioctl_linux.c
│ │ ├── ioctl_mp.c
│ │ ├── mlme_linux.c
│ │ ├── os_intfs.c
│ │ ├── pci_intf.c
│ │ ├── pci_ops_linux.c
│ │ ├── recv_linux.c
│ │ ├── rhashtable.c
│ │ ├── rhashtable.h
│ │ ├── rtw_android.c
│ │ ├── rtw_cfgvendor.c
│ │ ├── rtw_cfgvendor.h
│ │ ├── rtw_proc.c
│ │ ├── rtw_proc.h
│ │ ├── rtw_rhashtable.c
│ │ ├── rtw_rhashtable.h
│ │ ├── wifi_regd.c
│ │ └── xmit_linux.c
│ └── osdep_service.c
├── platform/
│ ├── custom_country_chplan.h
│ ├── platform_ARM_SUN50IW1P1_sdio.c
│ ├── platform_ARM_SUNnI_sdio.c
│ ├── platform_ARM_SUNxI_sdio.c
│ ├── platform_ARM_SUNxI_usb.c
│ ├── platform_ARM_WMT_sdio.c
│ ├── platform_RTK_DMP_usb.c
│ ├── platform_aml_s905_sdio.c
│ ├── platform_aml_s905_sdio.h
│ ├── platform_arm_act_sdio.c
│ ├── platform_hisilicon_hi3798_sdio.c
│ ├── platform_hisilicon_hi3798_sdio.h
│ ├── platform_ops.c
│ ├── platform_ops.h
│ ├── platform_sprd_sdio.c
│ ├── platform_zte_zx296716_sdio.c
│ └── platform_zte_zx296716_sdio.h
├── rtl8822c.mk
├── rtw88_blacklist.conf
├── runwpa
└── wlan0dhcp
================================================
FILE CONTENTS
================================================
================================================
FILE: Kconfig
================================================
config RTL8822CE
tristate "Realtek 8822C PCIE WiFi"
depends on PCI
---help---
Help message of RTL8822CE
================================================
FILE: Makefile
================================================
EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS)
EXTRA_CFLAGS += -O1
#EXTRA_CFLAGS += -O3
#EXTRA_CFLAGS += -Wall
#EXTRA_CFLAGS += -Wextra
#EXTRA_CFLAGS += -Werror
#EXTRA_CFLAGS += -pedantic
#EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
EXTRA_CFLAGS += -Wno-unused-variable
#EXTRA_CFLAGS += -Wno-unused-value
#EXTRA_CFLAGS += -Wno-unused-label
#EXTRA_CFLAGS += -Wno-unused-parameter
EXTRA_CFLAGS += -Wno-unused-function
EXTRA_CFLAGS += -Wno-unused
#EXTRA_CFLAGS += -Wno-uninitialized
GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc )
ifeq ($(GCC_VER_49),1)
EXTRA_CFLAGS += -Wno-date-time # Fix compile error && warning on gcc 4.9 and later
endif
EXTRA_CFLAGS += -I$(src)/include
EXTRA_LDFLAGS += --strip-debug
CONFIG_AUTOCFG_CP = n
########################## WIFI IC ############################
CONFIG_MULTIDRV = n
CONFIG_RTL8188E = n
CONFIG_RTL8812A = n
CONFIG_RTL8821A = n
CONFIG_RTL8192E = n
CONFIG_RTL8723B = n
CONFIG_RTL8814A = n
CONFIG_RTL8723C = n
CONFIG_RTL8188F = n
CONFIG_RTL8188GTV = n
CONFIG_RTL8822B = n
CONFIG_RTL8723D = n
CONFIG_RTL8821C = n
CONFIG_RTL8710B = n
CONFIG_RTL8192F = n
CONFIG_RTL8822C = y
######################### Interface ###########################
CONFIG_USB_HCI = n
CONFIG_PCI_HCI = y
CONFIG_SDIO_HCI = n
CONFIG_GSPI_HCI = n
########################## Features ###########################
CONFIG_MP_INCLUDED = y
CONFIG_POWER_SAVING = y
CONFIG_IPS_MODE = default
CONFIG_LPS_MODE = default
CONFIG_USB_AUTOSUSPEND = n
CONFIG_HW_PWRP_DETECTION = n
CONFIG_BT_COEXIST = y
CONFIG_WAPI_SUPPORT = n
CONFIG_EFUSE_CONFIG_FILE = y
CONFIG_EXT_CLK = n
CONFIG_TRAFFIC_PROTECT = n
CONFIG_LOAD_PHY_PARA_FROM_FILE = y
CONFIG_TXPWR_BY_RATE = y
CONFIG_TXPWR_BY_RATE_EN = auto
CONFIG_TXPWR_LIMIT = y
CONFIG_TXPWR_LIMIT_EN = n
CONFIG_RTW_CHPLAN = 0xFF
CONFIG_RTW_ADAPTIVITY_EN = enable
CONFIG_RTW_ADAPTIVITY_MODE = normal
CONFIG_SIGNAL_SCALE_MAPPING = n
CONFIG_80211W = y
CONFIG_REDUCE_TX_CPU_LOADING = n
CONFIG_BR_EXT = y
CONFIG_TDLS = n
CONFIG_WIFI_MONITOR = n
CONFIG_MCC_MODE = n
CONFIG_APPEND_VENDOR_IE_ENABLE = n
CONFIG_RTW_NAPI = y
CONFIG_RTW_GRO = y
CONFIG_RTW_NETIF_SG = y
CONFIG_RTW_IPCAM_APPLICATION = n
CONFIG_RTW_REPEATER_SON = n
CONFIG_RTW_WIFI_HAL = n
CONFIG_ICMP_VOQ = n
CONFIG_IP_R_MONITOR = n #arp VOQ and high rate
CONFIG_RTW_DISABLE_HW_PDN = n
CONFIG_RTW_IOT_CCK_PD_INIT = n
########################## Debug ###########################
CONFIG_RTW_DEBUG = y
# default log level is _DRV_INFO_ = 4,
# please refer to "How_to_set_driver_debug_log_level.doc" to set the available level.
CONFIG_RTW_LOG_LEVEL = 4
######################## Wake On Lan ##########################
CONFIG_WOWLAN = n
#bit2: deauth, bit1: unicast, bit0: magic pkt.
CONFIG_WAKEUP_TYPE = 0x7
CONFIG_WOW_LPS_MODE = default
#bit0: disBBRF off, #bit1: Wireless remote controller (WRC)
CONFIG_SUSPEND_TYPE = 0
CONFIG_WOW_STA_MIX = n
CONFIG_GPIO_WAKEUP = n
CONFIG_WAKEUP_GPIO_IDX = default
CONFIG_HIGH_ACTIVE_DEV2HST = n
######### only for USB #########
CONFIG_ONE_PIN_GPIO = n
CONFIG_HIGH_ACTIVE_HST2DEV = n
CONFIG_PNO_SUPPORT = n
CONFIG_PNO_SET_DEBUG = n
CONFIG_AP_WOWLAN = n
######### Notify SDIO Host Keep Power During Syspend ##########
CONFIG_RTW_SDIO_PM_KEEP_POWER = y
###################### MP HW TX MODE FOR VHT #######################
CONFIG_MP_VHT_HW_TX_MODE = n
###################### Platform Related #######################
CONFIG_PLATFORM_I386_PC = y
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID_INTEL_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n
CONFIG_PLATFORM_MIPS_AR9132 = n
CONFIG_PLATFORM_RTK_DMP = n
CONFIG_PLATFORM_MIPS_PLM = n
CONFIG_PLATFORM_MSTAR389 = n
CONFIG_PLATFORM_MT53XX = n
CONFIG_PLATFORM_ARM_MX51_241H = n
CONFIG_PLATFORM_FS_MX61 = n
CONFIG_PLATFORM_ACTIONS_ATJ227X = n
CONFIG_PLATFORM_TEGRA3_CARDHU = n
CONFIG_PLATFORM_TEGRA4_DALMORE = n
CONFIG_PLATFORM_ARM_TCC8900 = n
CONFIG_PLATFORM_ARM_TCC8920 = n
CONFIG_PLATFORM_ARM_TCC8920_JB42 = n
CONFIG_PLATFORM_ARM_TCC8930_JB42 = n
CONFIG_PLATFORM_ARM_RK2818 = n
CONFIG_PLATFORM_ARM_RK3066 = n
CONFIG_PLATFORM_ARM_RK3188 = n
CONFIG_PLATFORM_ARM_URBETTER = n
CONFIG_PLATFORM_ARM_TI_PANDA = n
CONFIG_PLATFORM_MIPS_JZ4760 = n
CONFIG_PLATFORM_DMP_PHILIPS = n
CONFIG_PLATFORM_MSTAR_TITANIA12 = n
CONFIG_PLATFORM_MSTAR = n
CONFIG_PLATFORM_SZEBOOK = n
CONFIG_PLATFORM_ARM_SUNxI = n
CONFIG_PLATFORM_ARM_SUN6I = n
CONFIG_PLATFORM_ARM_SUN7I = n
CONFIG_PLATFORM_ARM_SUN8I_W3P1 = n
CONFIG_PLATFORM_ARM_SUN8I_W5P1 = n
CONFIG_PLATFORM_ACTIONS_ATM702X = n
CONFIG_PLATFORM_ACTIONS_ATV5201 = n
CONFIG_PLATFORM_ACTIONS_ATM705X = n
CONFIG_PLATFORM_ARM_SUN50IW1P1 = n
CONFIG_PLATFORM_ARM_RTD299X = n
CONFIG_PLATFORM_ARM_LGE = n
CONFIG_PLATFORM_ARM_SPREADTRUM_6820 = n
CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n
CONFIG_PLATFORM_ARM_WMT = n
CONFIG_PLATFORM_TI_DM365 = n
CONFIG_PLATFORM_MOZART = n
CONFIG_PLATFORM_RTK119X = n
CONFIG_PLATFORM_RTK119X_AM = n
CONFIG_PLATFORM_RTK129X = n
CONFIG_PLATFORM_RTK390X = n
CONFIG_PLATFORM_NOVATEK_NT72668 = n
CONFIG_PLATFORM_HISILICON = n
CONFIG_PLATFORM_HISILICON_HI3798 = n
CONFIG_PLATFORM_NV_TK1 = n
CONFIG_PLATFORM_NV_TK1_UBUNTU = n
CONFIG_PLATFORM_RTL8197D = n
CONFIG_PLATFORM_AML_S905 = n
CONFIG_PLATFORM_ZTE_ZX296716 = n
########### CUSTOMER ################################
CONFIG_CUSTOMER_HUAWEI_GENERAL = n
CONFIG_DRVEXT_MODULE = n
export TopDIR ?= $(shell pwd)
########### COMMON #################################
ifeq ($(CONFIG_GSPI_HCI), y)
HCI_NAME = gspi
endif
ifeq ($(CONFIG_SDIO_HCI), y)
HCI_NAME = sdio
endif
ifeq ($(CONFIG_USB_HCI), y)
HCI_NAME = usb
endif
ifeq ($(CONFIG_PCI_HCI), y)
HCI_NAME = pci
endif
_OS_INTFS_FILES := os_dep/osdep_service.o \
os_dep/linux/os_intfs.o \
os_dep/linux/$(HCI_NAME)_intf.o \
os_dep/linux/$(HCI_NAME)_ops_linux.o \
os_dep/linux/ioctl_linux.o \
os_dep/linux/xmit_linux.o \
os_dep/linux/mlme_linux.o \
os_dep/linux/recv_linux.o \
os_dep/linux/ioctl_cfg80211.o \
os_dep/linux/rtw_cfgvendor.o \
os_dep/linux/wifi_regd.o \
os_dep/linux/rtw_android.o \
os_dep/linux/rtw_proc.o \
os_dep/linux/rtw_rhashtable.o
ifeq ($(CONFIG_MP_INCLUDED), y)
_OS_INTFS_FILES += os_dep/linux/ioctl_mp.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o
_OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o
endif
ifeq ($(CONFIG_GSPI_HCI), y)
_OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o
_OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o
endif
_HAL_INTFS_FILES := hal/hal_intf.o \
hal/hal_com.o \
hal/hal_com_phycfg.o \
hal/hal_phy.o \
hal/hal_dm.o \
hal/hal_dm_acs.o \
hal/hal_btcoex_wifionly.o \
hal/hal_btcoex.o \
hal/hal_mp.o \
hal/hal_mcc.o \
hal/hal_hci/hal_$(HCI_NAME).o \
hal/led/hal_led.o \
hal/led/hal_$(HCI_NAME)_led.o
EXTRA_CFLAGS += -I$(src)/platform
_PLATFORM_FILES := platform/platform_ops.o
EXTRA_CFLAGS += -I$(src)/hal/btc
########### HAL_RTL8188E #################################
ifeq ($(CONFIG_RTL8188E), y)
RTL871X = rtl8188e
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8189es
endif
ifeq ($(CONFIG_GSPI_HCI), y)
MODULE_NAME = 8189es
endif
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8188eu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8188ee
endif
EXTRA_CFLAGS += -DCONFIG_RTL8188E
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8188EPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_xmit.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8188e_s_fw.o \
hal/$(RTL871X)/hal8188e_t_fw.o \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
ifeq ($(CONFIG_GSPI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
endif
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188E_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188E_PCIE.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188E_SDIO.o
endif
endif
########### HAL_RTL8192E #################################
ifeq ($(CONFIG_RTL8192E), y)
RTL871X = rtl8192e
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8192es
endif
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8192eu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8192ee
endif
EXTRA_CFLAGS += -DCONFIG_RTL8192E
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8192EPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_xmit.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8192e_fw.o \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
ifeq ($(CONFIG_GSPI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
endif
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8192E_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8192E_PCIE.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8192E_SDIO.o
endif
ifeq ($(CONFIG_BT_COEXIST), y)
_BTC_FILES += hal/btc/halbtc8192e1ant.o \
hal/btc/halbtc8192e2ant.o
endif
endif
########### HAL_RTL8812A_RTL8821A #################################
ifneq ($(CONFIG_RTL8812A)_$(CONFIG_RTL8821A), n_n)
RTL871X = rtl8812a
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8812au
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8812ae
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8812as
endif
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8812PwrSeq.o \
hal/$(RTL871X)/Hal8821APwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_xmit.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
ifeq ($(CONFIG_GSPI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
endif
endif
ifeq ($(CONFIG_RTL8812A), y)
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8812A_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8812A_PCIE.o
endif
endif
ifeq ($(CONFIG_RTL8821A), y)
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8821A_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8821A_PCIE.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8821A_SDIO.o
endif
endif
ifeq ($(CONFIG_RTL8812A), y)
EXTRA_CFLAGS += -DCONFIG_RTL8812A
_HAL_INTFS_FILES += hal/rtl8812a/hal8812a_fw.o
endif
ifeq ($(CONFIG_RTL8821A), y)
ifeq ($(CONFIG_RTL8812A), n)
RTL871X = rtl8821a
ifeq ($(CONFIG_USB_HCI), y)
ifeq ($(CONFIG_BT_COEXIST), y)
MODULE_NAME := 8821au
else
MODULE_NAME := 8811au
endif
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME := 8821ae
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME := 8821as
endif
endif
EXTRA_CFLAGS += -DCONFIG_RTL8821A
_HAL_INTFS_FILES += hal/rtl8812a/hal8821a_fw.o
endif
ifeq ($(CONFIG_BT_COEXIST), y)
ifeq ($(CONFIG_RTL8812A), y)
_BTC_FILES += hal/btc/halbtc8812a1ant.o \
hal/btc/halbtc8812a2ant.o
endif
ifeq ($(CONFIG_RTL8821A), y)
_BTC_FILES += hal/btc/halbtc8821a1ant.o \
hal/btc/halbtc8821a2ant.o
endif
endif
endif
########### HAL_RTL8723B #################################
ifeq ($(CONFIG_RTL8723B), y)
RTL871X = rtl8723b
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8723bu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8723be
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8723bs
endif
EXTRA_CFLAGS += -DCONFIG_RTL8723B
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8723BPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8723b_fw.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723B_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723B_PCIE.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723B_SDIO.o
endif
_BTC_FILES += hal/btc/halbtc8723bwifionly.o
ifeq ($(CONFIG_BT_COEXIST), y)
_BTC_FILES += hal/btc/halbtc8723b1ant.o \
hal/btc/halbtc8723b2ant.o
endif
endif
########### HAL_RTL8814A #################################
ifeq ($(CONFIG_RTL8814A), y)
## ADD NEW VHT MP HW TX MODE ##
#EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE
#CONFIG_MP_VHT_HW_TX_MODE = y
##########################################
RTL871X = rtl8814a
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8814au
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8814ae
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8814as
endif
EXTRA_CFLAGS += -DCONFIG_RTL8814A
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8814PwrSeq.o \
hal/$(RTL871X)/$(RTL871X)_xmit.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8814a_fw.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
ifeq ($(CONFIG_GSPI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
endif
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8814A_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8814A_PCIE.o
endif
ifeq ($(CONFIG_BT_COEXIST), y)
_BTC_FILES += hal/btc/halbtc8814a2ant.o
endif
endif
########### HAL_RTL8723C #################################
ifeq ($(CONFIG_RTL8723C), y)
RTL871X = rtl8703b
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8723cu
MODULE_SUB_NAME = 8703bu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8723ce
MODULE_SUB_NAME = 8703be
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8723cs
MODULE_SUB_NAME = 8703bs
endif
EXTRA_CFLAGS += -DCONFIG_RTL8703B
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8703BPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8703b_fw.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8703B_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8703B_PCIE.o
endif
ifeq ($(CONFIG_BT_COEXIST), y)
_BTC_FILES += hal/btc/halbtc8703b1ant.o
endif
endif
########### HAL_RTL8723D #################################
ifeq ($(CONFIG_RTL8723D), y)
RTL871X = rtl8723d
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8723du
MODULE_SUB_NAME = 8723du
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8723de
MODULE_SUB_NAME = 8723de
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8723ds
MODULE_SUB_NAME = 8723ds
endif
EXTRA_CFLAGS += -DCONFIG_RTL8723D
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8723DPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8723d_fw.o \
hal/$(RTL871X)/$(RTL871X)_lps_poff.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723D_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723D_PCIE.o
endif
ifeq ($(CONFIG_BT_COEXIST), y)
_BTC_FILES += hal/btc/halbtc8723d1ant.o \
hal/btc/halbtc8723d2ant.o
endif
endif
########### HAL_RTL8188F #################################
ifeq ($(CONFIG_RTL8188F), y)
RTL871X = rtl8188f
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8188fu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8188fe
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8189fs
endif
EXTRA_CFLAGS += -DCONFIG_RTL8188F
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8188FPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8188f_fw.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188F_USB.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188F_SDIO.o
endif
endif
########### HAL_RTL8188GTV #################################
ifeq ($(CONFIG_RTL8188GTV), y)
RTL871X = rtl8188gtv
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8188gtvu
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8189gtvs
endif
EXTRA_CFLAGS += -DCONFIG_RTL8188GTV
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8188GTVPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8188gtv_fw.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188GTV_USB.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188GTV_SDIO.o
endif
endif
########### HAL_RTL8822B #################################
ifeq ($(CONFIG_RTL8822B), y)
RTL871X := rtl8822b
ifeq ($(CONFIG_USB_HCI), y)
ifeq ($(CONFIG_BT_COEXIST), n)
MODULE_NAME = 8812bu
else
MODULE_NAME = 88x2bu
endif
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 88x2be
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 88x2bs
endif
endif
########### HAL_RTL8821C #################################
ifeq ($(CONFIG_RTL8821C), y)
RTL871X := rtl8821c
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8821cu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8821ce
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8821cs
endif
endif
########### HAL_RTL8710B #################################
ifeq ($(CONFIG_RTL8710B), y)
RTL871X = rtl8710b
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8710bu
MODULE_SUB_NAME = 8710bu
endif
EXTRA_CFLAGS += -DCONFIG_RTL8710B
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8710BPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8710b_fw.o \
hal/$(RTL871X)/$(RTL871X)_lps_poff.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8710B_USB.o
endif
endif
########### HAL_RTL8192F #################################
ifeq ($(CONFIG_RTL8192F), y)
RTL871X = rtl8192f
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME = 8192fu
MODULE_SUB_NAME = 8192fu
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = 8192fe
MODULE_SUB_NAME = 8192fe
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 8192fs
MODULE_SUB_NAME = 8192fs
endif
EXTRA_CFLAGS += -DCONFIG_RTL8192F
_HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
hal/$(RTL871X)/Hal8192FPwrSeq.o\
hal/$(RTL871X)/$(RTL871X)_sreset.o
_HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
hal/$(RTL871X)/$(RTL871X)_phycfg.o \
hal/$(RTL871X)/$(RTL871X)_rf6052.o \
hal/$(RTL871X)/$(RTL871X)_dm.o \
hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
hal/$(RTL871X)/$(RTL871X)_cmd.o \
hal/$(RTL871X)/hal8192f_fw.o \
hal/$(RTL871X)/$(RTL871X)_lps_poff.o
_HAL_INTFS_FILES += \
hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \
hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
else
_HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_HAL_INTFS_FILES += hal/efuse/$(RTL871X)/HalEfuseMask8192F_SDIO.o
endif
ifeq ($(CONFIG_USB_HCI), y)
_HAL_INTFS_FILES += hal/efuse/$(RTL871X)/HalEfuseMask8192F_USB.o
endif
ifeq ($(CONFIG_PCI_HCI), y)
_HAL_INTFS_FILES += hal/efuse/$(RTL871X)/HalEfuseMask8192F_PCIE.o
endif
endif
########### HAL_RTL8822C #################################
ifeq ($(CONFIG_RTL8822C), y)
RTL871X := rtl8822c
ifeq ($(CONFIG_USB_HCI), y)
ifeq ($(CONFIG_BT_COEXIST), n)
MODULE_NAME = 8812cu
else
MODULE_NAME = 88x2cu
endif
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME = rtl88x2ce
endif
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME = 88x2cs
endif
endif
########### AUTO_CFG #################################
ifeq ($(CONFIG_AUTOCFG_CP), y)
ifeq ($(CONFIG_MULTIDRV), y)
$(shell cp $(TopDIR)/autoconf_multidrv_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
else
ifeq ($(CONFIG_RTL8188E)$(CONFIG_SDIO_HCI),yy)
$(shell cp $(TopDIR)/autoconf_rtl8189e_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
else ifeq ($(CONFIG_RTL8188F)$(CONFIG_SDIO_HCI),yy)
$(shell cp $(TopDIR)/autoconf_rtl8189f_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
else ifeq ($(CONFIG_RTL8723C),y)
$(shell cp $(TopDIR)/autoconf_rtl8723c_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
else
$(shell cp $(TopDIR)/autoconf_$(RTL871X)_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
endif
endif
endif
########### END OF PATH #################################
ifeq ($(CONFIG_USB_HCI), y)
ifeq ($(CONFIG_USB_AUTOSUSPEND), y)
EXTRA_CFLAGS += -DCONFIG_USB_AUTOSUSPEND
endif
endif
ifeq ($(CONFIG_MP_INCLUDED), y)
#MODULE_NAME := $(MODULE_NAME)_mp
EXTRA_CFLAGS += -DCONFIG_MP_INCLUDED
endif
ifeq ($(CONFIG_POWER_SAVING), y)
ifneq ($(CONFIG_IPS_MODE), default)
EXTRA_CFLAGS += -DRTW_IPS_MODE=$(CONFIG_IPS_MODE)
endif
ifneq ($(CONFIG_LPS_MODE), default)
EXTRA_CFLAGS += -DRTW_LPS_MODE=$(CONFIG_LPS_MODE)
endif
ifneq ($(CONFIG_WOW_LPS_MODE), default)
EXTRA_CFLAGS += -DRTW_WOW_LPS_MODE=$(CONFIG_WOW_LPS_MODE)
endif
EXTRA_CFLAGS += -DCONFIG_POWER_SAVING
endif
ifeq ($(CONFIG_HW_PWRP_DETECTION), y)
EXTRA_CFLAGS += -DCONFIG_HW_PWRP_DETECTION
endif
ifeq ($(CONFIG_BT_COEXIST), y)
EXTRA_CFLAGS += -DCONFIG_BT_COEXIST
endif
ifeq ($(CONFIG_WAPI_SUPPORT), y)
EXTRA_CFLAGS += -DCONFIG_WAPI_SUPPORT
endif
ifeq ($(CONFIG_EFUSE_CONFIG_FILE), y)
EXTRA_CFLAGS += -DCONFIG_EFUSE_CONFIG_FILE
#EFUSE_MAP_PATH
USER_EFUSE_MAP_PATH ?=
ifneq ($(USER_EFUSE_MAP_PATH),)
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"$(USER_EFUSE_MAP_PATH)\"
else ifeq ($(MODULE_NAME), 8189es)
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8189e.map\"
else ifeq ($(MODULE_NAME), 8723bs)
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8723bs.map\"
else
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_$(MODULE_NAME).map\"
endif
#WIFIMAC_PATH
USER_WIFIMAC_PATH ?=
ifneq ($(USER_WIFIMAC_PATH),)
EXTRA_CFLAGS += -DWIFIMAC_PATH=\"$(USER_WIFIMAC_PATH)\"
else
EXTRA_CFLAGS += -DWIFIMAC_PATH=\"/data/wifimac.txt\"
endif
endif
ifeq ($(CONFIG_EXT_CLK), y)
EXTRA_CFLAGS += -DCONFIG_EXT_CLK
endif
ifeq ($(CONFIG_TRAFFIC_PROTECT), y)
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
endif
ifeq ($(CONFIG_LOAD_PHY_PARA_FROM_FILE), y)
EXTRA_CFLAGS += -DCONFIG_LOAD_PHY_PARA_FROM_FILE
#EXTRA_CFLAGS += -DREALTEK_CONFIG_PATH_WITH_IC_NAME_FOLDER
EXTRA_CFLAGS += -DREALTEK_CONFIG_PATH=\"/lib/firmware/\"
endif
ifeq ($(CONFIG_TXPWR_BY_RATE), n)
EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE=0
else ifeq ($(CONFIG_TXPWR_BY_RATE), y)
EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE=1
endif
ifeq ($(CONFIG_TXPWR_BY_RATE_EN), n)
EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=0
else ifeq ($(CONFIG_TXPWR_BY_RATE_EN), y)
EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=1
else ifeq ($(CONFIG_TXPWR_BY_RATE_EN), auto)
EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=2
endif
ifeq ($(CONFIG_TXPWR_LIMIT), n)
EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT=0
else ifeq ($(CONFIG_TXPWR_LIMIT), y)
EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT=1
endif
ifeq ($(CONFIG_TXPWR_LIMIT_EN), n)
EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=0
else ifeq ($(CONFIG_TXPWR_LIMIT_EN), y)
EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=1
else ifeq ($(CONFIG_TXPWR_LIMIT_EN), auto)
EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=2
endif
ifneq ($(CONFIG_RTW_CHPLAN), 0xFF)
EXTRA_CFLAGS += -DCONFIG_RTW_CHPLAN=$(CONFIG_RTW_CHPLAN)
endif
ifeq ($(CONFIG_CALIBRATE_TX_POWER_BY_REGULATORY), y)
EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_BY_REGULATORY
endif
ifeq ($(CONFIG_CALIBRATE_TX_POWER_TO_MAX), y)
EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_TO_MAX
endif
ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), disable)
EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=0
else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), enable)
EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=1
endif
ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), normal)
EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=0
else ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), carrier_sense)
EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=1
endif
ifeq ($(CONFIG_SIGNAL_SCALE_MAPPING), y)
EXTRA_CFLAGS += -DCONFIG_SIGNAL_SCALE_MAPPING
endif
ifeq ($(CONFIG_80211W), y)
EXTRA_CFLAGS += -DCONFIG_IEEE80211W
endif
ifeq ($(CONFIG_WOWLAN), y)
EXTRA_CFLAGS += -DCONFIG_WOWLAN -DRTW_WAKEUP_EVENT=$(CONFIG_WAKEUP_TYPE)
EXTRA_CFLAGS += -DRTW_SUSPEND_TYPE=$(CONFIG_SUSPEND_TYPE)
ifeq ($(CONFIG_WOW_STA_MIX), y)
EXTRA_CFLAGS += -DRTW_WOW_STA_MIX
endif
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER
endif
endif
ifeq ($(CONFIG_AP_WOWLAN), y)
EXTRA_CFLAGS += -DCONFIG_AP_WOWLAN
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER
endif
endif
ifeq ($(CONFIG_PNO_SUPPORT), y)
EXTRA_CFLAGS += -DCONFIG_PNO_SUPPORT
ifeq ($(CONFIG_PNO_SET_DEBUG), y)
EXTRA_CFLAGS += -DCONFIG_PNO_SET_DEBUG
endif
endif
ifeq ($(CONFIG_GPIO_WAKEUP), y)
EXTRA_CFLAGS += -DCONFIG_GPIO_WAKEUP
ifeq ($(CONFIG_ONE_PIN_GPIO), y)
EXTRA_CFLAGS += -DCONFIG_RTW_ONE_PIN_GPIO
endif
ifeq ($(CONFIG_HIGH_ACTIVE_DEV2HST), y)
EXTRA_CFLAGS += -DHIGH_ACTIVE_DEV2HST=1
else
EXTRA_CFLAGS += -DHIGH_ACTIVE_DEV2HST=0
endif
endif
ifeq ($(CONFIG_HIGH_ACTIVE_HST2DEV), y)
EXTRA_CFLAGS += -DHIGH_ACTIVE_HST2DEV=1
else
EXTRA_CFLAGS += -DHIGH_ACTIVE_HST2DEV=0
endif
ifneq ($(CONFIG_WAKEUP_GPIO_IDX), default)
EXTRA_CFLAGS += -DWAKEUP_GPIO_IDX=$(CONFIG_WAKEUP_GPIO_IDX)
endif
ifeq ($(CONFIG_RTW_SDIO_PM_KEEP_POWER), y)
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER
endif
endif
ifeq ($(CONFIG_REDUCE_TX_CPU_LOADING), y)
EXTRA_CFLAGS += -DCONFIG_REDUCE_TX_CPU_LOADING
endif
ifeq ($(CONFIG_BR_EXT), y)
BR_NAME = br0
EXTRA_CFLAGS += -DCONFIG_BR_EXT
EXTRA_CFLAGS += '-DCONFIG_BR_EXT_BRNAME="'$(BR_NAME)'"'
endif
ifeq ($(CONFIG_TDLS), y)
EXTRA_CFLAGS += -DCONFIG_TDLS
endif
ifeq ($(CONFIG_WIFI_MONITOR), y)
EXTRA_CFLAGS += -DCONFIG_WIFI_MONITOR
endif
ifeq ($(CONFIG_MCC_MODE), y)
EXTRA_CFLAGS += -DCONFIG_MCC_MODE
endif
ifeq ($(CONFIG_RTW_NAPI), y)
EXTRA_CFLAGS += -DCONFIG_RTW_NAPI
endif
ifeq ($(CONFIG_RTW_GRO), y)
EXTRA_CFLAGS += -DCONFIG_RTW_GRO
endif
ifeq ($(CONFIG_RTW_REPEATER_SON), y)
EXTRA_CFLAGS += -DCONFIG_RTW_REPEATER_SON
endif
ifeq ($(CONFIG_RTW_IPCAM_APPLICATION), y)
EXTRA_CFLAGS += -DCONFIG_RTW_IPCAM_APPLICATION
ifeq ($(CONFIG_WIFI_MONITOR), n)
EXTRA_CFLAGS += -DCONFIG_WIFI_MONITOR
endif
endif
ifeq ($(CONFIG_RTW_NETIF_SG), y)
EXTRA_CFLAGS += -DCONFIG_RTW_NETIF_SG
endif
ifeq ($(CONFIG_ICMP_VOQ), y)
EXTRA_CFLAGS += -DCONFIG_ICMP_VOQ
endif
ifeq ($(CONFIG_IP_R_MONITOR), y)
EXTRA_CFLAGS += -DCONFIG_IP_R_MONITOR
endif
ifeq ($(CONFIG_RTW_DISABLE_HW_PDN), y)
EXTRA_CFLAGS += -DCONFIG_RTW_DISABLE_HW_PDN
endif
ifeq ($(CONFIG_RTW_IOT_CCK_PD_INIT), y)
EXTRA_CFLAGS += -DCONFIG_RTW_IOT_CCK_PD_INIT
endif
ifeq ($(CONFIG_RTW_WIFI_HAL), y)
#EXTRA_CFLAGS += -DCONFIG_RTW_WIFI_HAL_DEBUG
EXTRA_CFLAGS += -DCONFIG_RTW_WIFI_HAL
EXTRA_CFLAGS += -DCONFIG_RTW_CFGVEDNOR_LLSTATS
EXTRA_CFLAGS += -DCONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI
EXTRA_CFLAGS += -DCONFIG_RTW_CFGVEDNOR_RSSIMONITOR
EXTRA_CFLAGS += -DCONFIG_RTW_CFGVENDOR_WIFI_LOGGER
endif
ifeq ($(CONFIG_MP_VHT_HW_TX_MODE), y)
EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
## For I386 X86 ToolChain use Hardware FLOATING
EXTRA_CFLAGS += -mhard-float
else
## For ARM ToolChain use Hardware FLOATING
EXTRA_CFLAGS += -mfloat-abi=hard
endif
endif
ifeq ($(CONFIG_APPEND_VENDOR_IE_ENABLE), y)
EXTRA_CFLAGS += -DCONFIG_APPEND_VENDOR_IE_ENABLE
endif
ifeq ($(CONFIG_RTW_DEBUG), y)
EXTRA_CFLAGS += -DCONFIG_RTW_DEBUG
EXTRA_CFLAGS += -DRTW_LOG_LEVEL=$(CONFIG_RTW_LOG_LEVEL)
endif
EXTRA_CFLAGS += -DDM_ODM_SUPPORT_TYPE=0x04
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
KVER := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
STAGINGMODDIR := /lib/modules/$(KVER)/kernel/drivers/staging
endif
ifeq ($(CONFIG_PLATFORM_NV_TK1), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_NV_TK1
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_PLATFORM_ANDROID
# Enable this for Android 5.0
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
EXTRA_CFLAGS += -DRTW_VENDOR_EXT_SUPPORT
EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
ARCH ?= arm
CROSS_COMPILE := /mnt/newdisk/android_sdk/nvidia_tk1/android_L/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-
KSRC :=/mnt/newdisk/android_sdk/nvidia_tk1/android_L/out/target/product/shieldtablet/obj/KERNEL/
MODULE_NAME = wlan
endif
ifeq ($(CONFIG_PLATFORM_NV_TK1_UBUNTU), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_NV_TK1
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH ?= arm
CROSS_COMPILE ?=
KVER := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATM702X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ACTIONS_ATM702X
#ARCH := arm
ARCH := $(R_ARCH)
#CROSS_COMPILE := arm-none-linux-gnueabi-
CROSS_COMPILE := $(R_CROSS_COMPILE)
KVER:= 3.4.0
#KSRC := ../../../../build/out/kernel
KSRC := $(KERNEL_BUILD_PATH)
MODULE_NAME :=wlan
endif
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATM705X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
#EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ACTIONS_ATM705X
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
# Enable this for Android 5.0
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
_PLATFORM_FILES += platform/platform_arm_act_sdio.o
endif
ARCH := arm
CROSS_COMPILE := /opt/arm-2011.09/bin/arm-none-linux-gnueabi-
KSRC := /home/android_sdk/Action-semi/705a_android_L/android/kernel
endif
ifeq ($(CONFIG_PLATFORM_ARM_SUN50IW1P1), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN50IW1P1
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_RESUME_IN_WORKQUEUE
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
# Enable this for Android 5.0
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_PLATFORM_FILES += platform/platform_ARM_SUN50IW1P1_sdio.o
endif
ARCH := arm64
# ===Cross compile setting for Android 5.1(64) SDK ===
CROSS_COMPILE := /home/android_sdk/Allwinner/a64/android-51/lichee/out/sun50iw1p1/android/common/buildroot/external-toolchain/bin/aarch64-linux-gnu-
KSRC :=/home/android_sdk/Allwinner/a64/android-51/lichee/linux-3.10/
endif
ifeq ($(CONFIG_PLATFORM_TI_AM3517), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_SHUTTLE
CROSS_COMPILE := arm-eabi-
KSRC := $(shell pwd)/../../../Android/kernel
ARCH := arm
endif
ifeq ($(CONFIG_PLATFORM_MSTAR_TITANIA12), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR -DCONFIG_PLATFORM_MSTAR_TITANIA12
ARCH:=mips
CROSS_COMPILE:= /usr/src/Mstar_kernel/mips-4.3/bin/mips-linux-gnu-
KVER:= 2.6.28.9
KSRC:= /usr/src/Mstar_kernel/2.6.28.9/
endif
ifeq ($(CONFIG_PLATFORM_MSTAR), y)
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_MSTAR
EXTRA_CFLAGS += -DCONFIG_PLATFORM_MSTAR_HIGH
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX -DCONFIG_FIX_NR_BULKIN_BUFFER
endif
ARCH:=arm
CROSS_COMPILE:= /usr/src/bin/arm-none-linux-gnueabi-
KVER:= 3.1.10
KSRC:= /usr/src/Mstar_kernel/3.1.10/
endif
ifeq ($(CONFIG_PLATFORM_ANDROID_X86), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH := $(SUBARCH)
CROSS_COMPILE := /media/DATA-2/android-x86/ics-x86_20120130/prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu-
KSRC := /media/DATA-2/android-x86/ics-x86_20120130/out/target/product/generic_x86/obj/kernel
MODULE_NAME :=wlan
endif
ifeq ($(CONFIG_PLATFORM_ANDROID_INTEL_X86), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ANDROID_INTEL_X86
EXTRA_CFLAGS += -DCONFIG_PLATFORM_INTEL_BYT
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_SKIP_SIGNAL_SCALE_MAPPING
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_RESUME_IN_WORKQUEUE
endif
endif
ifeq ($(CONFIG_PLATFORM_JB_X86), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH := $(SUBARCH)
CROSS_COMPILE := /home/android_sdk/android-x86_JB/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7/bin/i686-linux-android-
KSRC := /home/android_sdk/android-x86_JB/out/target/product/x86/obj/kernel/
MODULE_NAME :=wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_PXA2XX), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-none-linux-gnueabi-
KVER := 2.6.34.1
KSRC ?= /usr/src/linux-2.6.34.1
endif
ifeq ($(CONFIG_PLATFORM_ARM_S3C2K4), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-linux-
KVER := 2.6.24.7_$(ARCH)
KSRC := /usr/src/kernels/linux-$(KVER)
endif
ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-none-linux-gnueabi-
KVER := 2.6.34.1
KSRC ?= /usr/src/linux-2.6.34.1
endif
ifeq ($(CONFIG_PLATFORM_RTD2880B), y)
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN -DCONFIG_PLATFORM_RTD2880B
ARCH:=
CROSS_COMPILE:=
KVER:=
KSRC:=
endif
ifeq ($(CONFIG_PLATFORM_MIPS_RMI), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH:=mips
CROSS_COMPILE:=mipsisa32r2-uclibc-
KVER:=
KSRC:= /root/work/kernel_realtek
endif
ifeq ($(CONFIG_PLATFORM_MIPS_PLM), y)
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
ARCH:=mips
CROSS_COMPILE:=mipsisa32r2-uclibc-
KVER:=
KSRC:= /root/work/kernel_realtek
endif
ifeq ($(CONFIG_PLATFORM_MSTAR389), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR389
ARCH:=mips
CROSS_COMPILE:= mips-linux-gnu-
KVER:= 2.6.28.10
KSRC:= /home/mstar/mstar_linux/2.6.28.9/
endif
ifeq ($(CONFIG_PLATFORM_MIPS_AR9132), y)
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
ARCH := mips
CROSS_COMPILE := mips-openwrt-linux-
KSRC := /home/alex/test_openwrt/tmp/linux-2.6.30.9
endif
ifeq ($(CONFIG_PLATFORM_DMP_PHILIPS), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM
ARCH := mips
#CROSS_COMPILE:=/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/bin/mipsel-linux-
CROSS_COMPILE:=/usr/local/toolchain_mipsel/bin/mipsel-linux-
KSRC ?=/usr/local/Jupiter/linux-2.6.12
endif
ifeq ($(CONFIG_PLATFORM_RTK_DMP), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM -DCONFIG_WIRELESS_EXT
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
_PLATFORM_FILES += platform/platform_RTK_DMP_usb.o
endif
ARCH:=mips
CROSS_COMPILE:=mipsel-linux-
KVER:=
KSRC ?= /usr/src/DMP_Kernel/jupiter/linux-2.6.12
endif
ifeq ($(CONFIG_PLATFORM_MT53XX), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MT53XX
ARCH:= arm
CROSS_COMPILE:= arm11_mtk_le-
KVER:= 2.6.27
KSRC?= /proj/mtk00802/BD_Compare/BDP/Dev/BDP_V301/BDP_Linux/linux-2.6.27
endif
ifeq ($(CONFIG_PLATFORM_ARM_MX51_241H), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_WISTRON_PLATFORM
ARCH := arm
CROSS_COMPILE := /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
KVER := 2.6.31
KSRC ?= /lib/modules/2.6.31-770-g0e46b52/source
endif
ifeq ($(CONFIG_PLATFORM_FS_MX61), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /home/share/CusEnv/FreeScale/arm-eabi-4.4.3/bin/arm-eabi-
KSRC ?= /home/share/CusEnv/FreeScale/FS_kernel_env
endif
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATJ227X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATJ227X
ARCH := mips
CROSS_COMPILE := /home/cnsd4/project/actions/tools-2.6.27/bin/mipsel-linux-gnu-
KVER := 2.6.27
KSRC := /home/cnsd4/project/actions/linux-2.6.27.28
endif
ifeq ($(CONFIG_PLATFORM_TI_DM365), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_TI_DM365
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_RX
EXTRA_CFLAGS += -DCONFIG_SINGLE_XMIT_BUF -DCONFIG_SINGLE_RECV_BUF
ARCH := arm
#CROSS_COMPILE := /home/cnsd4/Appro/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-
#KSRC := /home/cnsd4/Appro/mv_pro_5.0/montavista/pro/devkit/lsp/ti-davinci/linux-dm365
CROSS_COMPILE := /opt/montavista/pro5.0/devkit/arm/v5t_le/bin/arm-linux-
KSRC:= /home/vivotek/lsp/DM365/kernel_platform/kernel/linux-2.6.18
KERNELOUTPUT := ${PRODUCTDIR}/tmp
KVER := 2.6.18
endif
ifeq ($(CONFIG_PLATFORM_MOZART), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MOZART
ARCH := arm
CROSS_COMPILE := /home/vivotek/lsp/mozart3v2/Mozart3e_Toolchain/build_arm_nofpu/usr/bin/arm-linux-
KVER := $(shell uname -r)
KSRC:= /opt/Vivotek/lsp/mozart3v2/kernel_platform/kernel/mozart_kernel-1.17
KERNELOUTPUT := /home/pink/sample/ODM/IP8136W-VINT/tmp/kernel
endif
ifeq ($(CONFIG_PLATFORM_TEGRA3_CARDHU), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm
CROSS_COMPILE := /home/android_sdk/nvidia/tegra-16r3-partner-android-4.1_20120723/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
KSRC := /home/android_sdk/nvidia/tegra-16r3-partner-android-4.1_20120723/out/target/product/cardhu/obj/KERNEL
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_TEGRA4_DALMORE), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm
CROSS_COMPILE := /home/android_sdk/nvidia/tegra-17r9-partner-android-4.2-dalmore_20130131/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/nvidia/tegra-17r9-partner-android-4.2-dalmore_20130131/out/target/product/dalmore/obj/KERNEL
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_TCC8900), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Telechips/SDK_2304_20110613/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
KSRC := /home/android_sdk/Telechips/SDK_2304_20110613/kernel
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_TCC8920), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Telechips/v12.06_r1-tcc-android-4.0.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
KSRC := /home/android_sdk/Telechips/v12.06_r1-tcc-android-4.0.4/kernel
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_TCC8920_JB42), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Telechips/v13.03_r1-tcc-android-4.2.2_ds_patched/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/Telechips/v13.03_r1-tcc-android-4.2.2_ds_patched/kernel
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_RK2818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS
ARCH := arm
CROSS_COMPILE := /usr/src/release_fae_version/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
KSRC := /usr/src/release_fae_version/kernel25_A7_281x
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_RK3188), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
# default setting for Power control
EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
# default setting for Special function
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/Rockchip/Rk3188/kernel
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_RK3066), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_RK3066
EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
endif
EXTRA_CFLAGS += -fno-pic
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Rockchip/rk3066_20130607/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
#CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3066sdk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
KSRC := /home/android_sdk/Rockchip/Rk3066sdk/kernel
MODULE_NAME :=wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_URBETTER), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE
ARCH := arm
CROSS_COMPILE := /media/DATA-1/urbetter/arm-2009q3/bin/arm-none-linux-gnueabi-
KSRC := /media/DATA-1/urbetter/ics-urbetter/kernel
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_ARM_TI_PANDA), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE
ARCH := arm
#CROSS_COMPILE := /media/DATA-1/aosp/ics-aosp_20111227/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
#KSRC := /media/DATA-1/aosp/android-omap-panda-3.0_20120104
CROSS_COMPILE := /media/DATA-1/android-4.0/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
KSRC := /media/DATA-1/android-4.0/panda_kernel/omap
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_MIPS_JZ4760), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_MINIMAL_MEMORY_USAGE
ARCH ?= mips
CROSS_COMPILE ?= /mnt/sdb5/Ingenic/Umido/mips-4.3/bin/mips-linux-gnu-
KSRC ?= /mnt/sdb5/Ingenic/Umido/kernel
endif
ifeq ($(CONFIG_PLATFORM_SZEBOOK), y)
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
ARCH:=arm
CROSS_COMPILE:=/opt/crosstool2/bin/armeb-unknown-linux-gnueabi-
KVER:= 2.6.31.6
KSRC:= ../code/linux-2.6.31.6-2020/
endif
ifeq ($(CONFIG_PLATFORM_ARM_SUNxI), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUNxI
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
# default setting for A10-EVB mmc0
#EXTRA_CFLAGS += -DCONFIG_WITS_EVB_V13
_PLATFORM_FILES += platform/platform_ARM_SUNxI_sdio.o
endif
ARCH := arm
#CROSS_COMPILE := arm-none-linux-gnueabi-
CROSS_COMPILE=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/buildroot/output/external-toolchain/bin/arm-none-linux-gnueabi-
KVER := 3.0.8
#KSRC:= ../lichee/linux-3.0/
KSRC=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/linux-3.0
endif
ifeq ($(CONFIG_PLATFORM_ARM_SUN6I), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN6I
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
# default setting for A31-EVB mmc0
EXTRA_CFLAGS += -DCONFIG_A31_EVB
_PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
endif
ARCH := arm
#Android-JB42
#CROSS_COMPILE := /home/android_sdk/Allwinner/a31/android-jb42/lichee/buildroot/output/external-toolchain/bin/arm-linux-gnueabi-
#KSRC :=/home/android_sdk/Allwinner/a31/android-jb42/lichee/linux-3.3
#ifeq ($(CONFIG_USB_HCI), y)
#MODULE_NAME := 8188eu_sw
#endif
# ==== Cross compile setting for kitkat-a3x_v4.5 =====
CROSS_COMPILE := /home/android_sdk/Allwinner/a31/kitkat-a3x_v4.5/lichee/buildroot/output/external-toolchain/bin/arm-linux-gnueabi-
KSRC :=/home/android_sdk/Allwinner/a31/kitkat-a3x_v4.5/lichee/linux-3.3
endif
ifeq ($(CONFIG_PLATFORM_ARM_SUN7I), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN7I
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
endif
ARCH := arm
# ===Cross compile setting for Android 4.2 SDK ===
#CROSS_COMPILE := /home/android_sdk/Allwinner/a20_evb/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
#KSRC := /home/android_sdk/Allwinner/a20_evb/lichee/linux-3.3
# ==== Cross compile setting for Android 4.3 SDK =====
#CROSS_COMPILE := /home/android_sdk/Allwinner/a20/android-jb43/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
#KSRC := /home/android_sdk/Allwinner/a20/android-jb43/lichee/linux-3.4
# ==== Cross compile setting for kitkat-a20_v4.4 =====
CROSS_COMPILE := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
KSRC := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/linux-3.4
endif
ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W3P1), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I_W3P1
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
endif
ARCH := arm
# ===Cross compile setting for Android 4.2 SDK ===
#CROSS_COMPILE := /home/android_sdk/Allwinner/a23/android-jb42/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
#KSRC :=/home/android_sdk/Allwinner/a23/android-jb42/lichee/linux-3.4
# ===Cross compile setting for Android 4.4 SDK ===
CROSS_COMPILE := /home/android_sdk/Allwinner/a23/android-kk44/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
KSRC :=/home/android_sdk/Allwinner/a23/android-kk44/lichee/linux-3.4
endif
ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W5P1), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I_W5P1
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
# Enable this for Android 5.0
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
endif
ARCH := arm
# ===Cross compile setting for Android L SDK ===
CROSS_COMPILE := /home/android_sdk/Allwinner/a33/android-L/lichee/out/sun8iw5p1/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
KSRC :=/home/android_sdk/Allwinner/a33/android-L/lichee/linux-3.4
endif
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATV5201), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATV5201
EXTRA_CFLAGS += -DCONFIG_SDIO_DISABLE_RXFIFO_POLLING_LOOP
ARCH := mips
CROSS_COMPILE := mipsel-linux-gnu-
KVER := $(KERNEL_VER)
KSRC:= $(CFGDIR)/../../kernel/linux-$(KERNEL_VER)
endif
ifeq ($(CONFIG_PLATFORM_ARM_RTD299X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ifeq ($(CONFIG_ANDROID), y)
# Enable this for Android 5.0
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
endif
#ARCH, CROSS_COMPILE, KSRC,and MODDESTDIR are provided by external makefile
INSTALL_PREFIX :=
endif
ifeq ($(CONFIG_PLATFORM_ARM_RTD299X_LG), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DRTW_P2P_GROUP_INTERFACE=1
EXTRA_CFLAGS += -DCONFIG_IFACE_NUMBER=3
#EXTRA_CFLAGS += -DCONFIG_FIX_HWPORT
EXTRA_CFLAGS += -DLGE_PRIVATE
EXTRA_CFLAGS += -DPURE_SUPPLICANT
EXTRA_CFLAGS += -DCONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP -DCONFIG_RTW_IOCTL_SET_COUNTRY
EXTRA_CFLAGS += -DDBG_RX_DFRAME_RAW_DATA
EXTRA_CFLAGS += -DRTW_REDUCE_SCAN_SWITCH_CH_TIME
ARCH ?= arm
KVER ?=
ifneq ($(PLATFORM), WEBOS)
$(info PLATFORM is empty)
CROSS_COMPILE ?= /mnt/newdisk/LGE/arm-lg115x-linux-gnueabi-4.8-2016.03-x86_64/bin/arm-lg115x-linux-gnueabi-
KSRC ?= /mnt/newdisk/LGE/linux-rockhopper_k3lp_drd4tv_423
endif
CROSS_COMPILE ?=
KSRC ?= $(LINUX_SRC)
INSTALL_PREFIX ?=
endif
ifeq ($(CONFIG_PLATFORM_HISILICON), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_HISILICON
ifeq ($(SUPPORT_CONCURRENT),y)
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
endif
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm
ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE = arm-hisiv200-linux-
endif
MODULE_NAME := rtl8192eu
ifeq ($(KSRC),)
KSRC := ../../../../../../kernel/linux-3.4.y
endif
endif
ifeq ($(CONFIG_PLATFORM_HISILICON_HI3798), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_HISILICON
EXTRA_CFLAGS += -DCONFIG_PLATFORM_HISILICON_HI3798
#EXTRA_CFLAGS += -DCONFIG_PLATFORM_HISILICON_HI3798_MV200_HDMI_DONGLE
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211
EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT
# default setting for Android 5.x and later
#EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
# If system could power on and recognize Wi-Fi SDIO automatically,
# platfrom operations are not necessary.
#ifeq ($(CONFIG_SDIO_HCI), y)
#EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
#_PLATFORM_FILES += platform/platform_hisilicon_hi3798_sdio.o
#EXTRA_CFLAGS += -DCONFIG_HISI_SDIO_ID=1
#endif
ARCH ?= arm
CROSS_COMPILE ?= /HiSTBAndroidV600R003C00SPC021_git_0512/device/hisilicon/bigfish/sdk/tools/linux/toolchains/arm-histbv310-linux/bin/arm-histbv310-linux-
ifndef KSRC
KSRC := /HiSTBAndroidV600R003C00SPC021_git_0512/device/hisilicon/bigfish/sdk/source/kernel/linux-3.18.y
KSRC += O=/HiSTBAndroidV600R003C00SPC021_git_0512/out/target/product/Hi3798MV200/obj/KERNEL_OBJ
endif
ifeq ($(CONFIG_RTL8822B), y)
ifeq ($(CONFIG_SDIO_HCI), y)
CONFIG_RTL8822BS ?= m
USER_MODULE_NAME := rtl8822bs
endif
endif
endif
# Platform setting
ifeq ($(CONFIG_PLATFORM_ARM_SPREADTRUM_6820), y)
ifeq ($(CONFIG_ANDROID_2X), y)
EXTRA_CFLAGS += -DANDROID_2X
endif
EXTRA_CFLAGS += -DCONFIG_PLATFORM_SPRD
EXTRA_CFLAGS += -DPLATFORM_SPREADTRUM_6820
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ifeq ($(RTL871X), rtl8188e)
EXTRA_CFLAGS += -DSOFTAP_PS_DURATION=50
endif
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
_PLATFORM_FILES += platform/platform_sprd_sdio.o
endif
endif
ifeq ($(CONFIG_PLATFORM_ARM_SPREADTRUM_8810), y)
ifeq ($(CONFIG_ANDROID_2X), y)
EXTRA_CFLAGS += -DANDROID_2X
endif
EXTRA_CFLAGS += -DCONFIG_PLATFORM_SPRD
EXTRA_CFLAGS += -DPLATFORM_SPREADTRUM_8810
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ifeq ($(RTL871X), rtl8188e)
EXTRA_CFLAGS += -DSOFTAP_PS_DURATION=50
endif
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
_PLATFORM_FILES += platform/platform_sprd_sdio.o
endif
endif
ifeq ($(CONFIG_PLATFORM_ARM_WMT), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_SDIO_HCI), y)
_PLATFORM_FILES += platform/platform_ARM_WMT_sdio.o
endif
ARCH := arm
CROSS_COMPILE := /home/android_sdk/WonderMedia/wm8880-android4.4/toolchain/arm_201103_gcc4.5.2/mybin/arm_1103_le-
KSRC := /home/android_sdk/WonderMedia/wm8880-android4.4/kernel4.4/
MODULE_NAME :=8189es_kk
endif
ifeq ($(CONFIG_PLATFORM_RTK119X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
#EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN7I
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
#EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION
EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION
#EXTRA_CFLAGS += -DCONFIG_#PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
#_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
_PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
endif
ARCH := arm
# ==== Cross compile setting for Android 4.4 SDK =====
#CROSS_COMPILE := arm-linux-gnueabihf-
KVER := 3.10.24
#KSRC :=/home/android_sdk/Allwinner/a20/android-kitkat44/lichee/linux-3.4
CROSS_COMPILE := /home/realtek/software_phoenix/phoenix/toolchain/usr/local/arm-2013.11/bin/arm-linux-gnueabihf-
KSRC := /home/realtek/software_phoenix/linux-kernel
MODULE_NAME := 8192eu
endif
ifeq ($(CONFIG_PLATFORM_RTK119X_AM), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK119X_AM
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE -DCONFIG_FULL_CH_IN_P2P_HANDSHAKE
EXTRA_CFLAGS += -DCONFIG_IFACE_NUMBER=3
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
endif
ARCH := arm
#CROSS_COMPILE := arm-linux-gnueabihf-
KVER := 3.10.24
#KSRC :=
CROSS_COMPILE :=
endif
ifeq ($(CONFIG_PLATFORM_RTK129X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DRTK_129X_PLATFORM
EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
#EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_QOS_OPTIMIZATION
EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION
# Enable this for Android 5.0
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
ifeq ($(CONFIG_RTL8821C)$(CONFIG_SDIO_HCI),yy)
EXTRA_CFLAGS += -DCONFIG_WAKEUP_GPIO_INPUT_MODE
EXTRA_CFLAGS += -DCONFIG_BT_WAKE_HST_OPEN_DRAIN
endif
EXTRA_CFLAGS += -Wno-error=date-time
# default setting for Android 7.0
ifeq ($(RTK_ANDROID_VERSION), nougat)
EXTRA_CFLAGS += -DRTW_P2P_GROUP_INTERFACE=1
endif
#EXTRA_CFLAGS += -DCONFIG_#PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
endif
ARCH := arm64
# ==== Cross compile setting for Android 4.4 SDK =====
#CROSS_COMPILE := arm-linux-gnueabihf-
#KVER := 4.1.10
#CROSS_COMPILE := $(CROSS)
#KSRC := $(LINUX_KERNEL_PATH)
CROSS_COMPILE := /home/android_sdk/DHC/trunk-6.0.0_r1-QA160627/phoenix/toolchain/asdk64-4.9.4-a53-EL-3.10-g2.19-a64nt-160307/bin/asdk64-linux-
KSRC := /home/android_sdk/DHC/trunk-6.0.0_r1-QA160627/linux-kernel
endif
ifeq ($(CONFIG_PLATFORM_RTK390X), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK390X
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_RTW_NETIF_SG
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
endif
ARCH:=rlx
CROSS_COMPILE:=mips-linux-
KSRC:= /home/realtek/share/Develop/IPCAM_SDK/RealSil/rts3901_sdk_v1.2_vanilla/linux-3.10
endif
ifeq ($(CONFIG_PLATFORM_NOVATEK_NT72668), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_NOVATEK_NT72668
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_RX
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
ARCH ?= arm
CROSS_COMPILE := arm-linux-gnueabihf-
KVER := 3.8.0
KSRC := /Custom/Novatek/TCL/linux-3.8_header
#KSRC := $(KERNELDIR)
endif
ifeq ($(CONFIG_PLATFORM_ARM_TCC8930_JB42), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Telechips/v13.05_r1-tcc-android-4.2.2_tcc893x-evm_build/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/Telechips/v13.05_r1-tcc-android-4.2.2_tcc893x-evm_build/kernel
MODULE_NAME := wlan
endif
ifeq ($(CONFIG_PLATFORM_RTL8197D), y)
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN -DCONFIG_PLATFORM_RTL8197D
export DIR_LINUX=$(shell pwd)/../SDK/rlxlinux-sdk321-v50/linux-2.6.30
ARCH ?= rlx
CROSS_COMPILE:= $(DIR_LINUX)/../toolchain/rsdk-1.5.5-5281-EB-2.6.30-0.9.30.3-110714/bin/rsdk-linux-
KSRC := $(DIR_LINUX)
endif
ifeq ($(CONFIG_PLATFORM_AML_S905), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_AML_S905
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -fno-pic
# default setting for Android
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211
EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT
# default setting for Android 5.x and later
EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
_PLATFORM_FILES += platform/platform_aml_s905_sdio.o
endif
ARCH ?= arm64
CROSS_COMPILE ?= /4.4_S905L_8822bs_compile/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/aarch64-linux-gnu-
ifndef KSRC
KSRC := /4.4_S905L_8822bs_compile/common
# To locate output files in a separate directory.
KSRC += O=/4.4_S905L_8822bs_compile/KERNEL_OBJ
endif
ifeq ($(CONFIG_RTL8822B), y)
ifeq ($(CONFIG_SDIO_HCI), y)
CONFIG_RTL8822BS ?= m
USER_MODULE_NAME := 8822bs
endif
endif
endif
ifeq ($(CONFIG_PLATFORM_ZTE_ZX296716), y)
EXTRA_CFLAGS += -Wno-error=date-time
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ZTE_ZX296716
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# default setting for Android
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211
EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT
# default setting for Android 5.x and later
#EXTRA_CFLAGS += -DCONFIG_RADIO_WORK
ifeq ($(CONFIG_SDIO_HCI), y)
# mark this temporarily
#EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
#_PLATFORM_FILES += platform/platform_zte_zx296716_sdio.o
endif
ARCH ?= arm64
CROSS_COMPILE ?=
KSRC ?=
ifeq ($(CONFIG_RTL8822B), y)
ifeq ($(CONFIG_SDIO_HCI), y)
CONFIG_RTL8822BS ?= m
USER_MODULE_NAME := 8822bs
endif
endif
endif
########### CUSTOMER ################################
ifeq ($(CONFIG_CUSTOMER_HUAWEI_GENERAL), y)
CONFIG_CUSTOMER_HUAWEI = y
endif
ifeq ($(CONFIG_CUSTOMER_HUAWEI), y)
EXTRA_CFLAGS += -DCONFIG_HUAWEI_PROC
endif
ifeq ($(CONFIG_MULTIDRV), y)
ifeq ($(CONFIG_SDIO_HCI), y)
MODULE_NAME := rtw_sdio
endif
ifeq ($(CONFIG_USB_HCI), y)
MODULE_NAME := rtw_usb
endif
ifeq ($(CONFIG_PCI_HCI), y)
MODULE_NAME := rtw_pci
endif
endif
USER_MODULE_NAME ?=
ifneq ($(USER_MODULE_NAME),)
MODULE_NAME := $(USER_MODULE_NAME)
endif
ifneq ($(KERNELRELEASE),)
########### this part for *.mk ############################
include $(src)/hal/phydm/phydm.mk
########### HAL_RTL8822B #################################
ifeq ($(CONFIG_RTL8822B), y)
include $(src)/rtl8822b.mk
endif
########### HAL_RTL8821C #################################
ifeq ($(CONFIG_RTL8821C), y)
include $(src)/rtl8821c.mk
endif
########### HAL_RTL8822C #################################
ifeq ($(CONFIG_RTL8822C), y)
include $(src)/rtl8822c.mk
endif
rtk_core := core/rtw_cmd.o \
core/rtw_security.o \
core/rtw_debug.o \
core/rtw_io.o \
core/rtw_ioctl_query.o \
core/rtw_ioctl_set.o \
core/rtw_ieee80211.o \
core/rtw_mlme.o \
core/rtw_mlme_ext.o \
core/rtw_mi.o \
core/rtw_wlan_util.o \
core/rtw_vht.o \
core/rtw_pwrctrl.o \
core/rtw_rf.o \
core/rtw_chplan.o \
core/rtw_recv.o \
core/rtw_sta_mgt.o \
core/rtw_ap.o \
core/mesh/rtw_mesh.o \
core/mesh/rtw_mesh_pathtbl.o \
core/mesh/rtw_mesh_hwmp.o \
core/rtw_xmit.o \
core/rtw_p2p.o \
core/rtw_rson.o \
core/rtw_tdls.o \
core/rtw_br_ext.o \
core/rtw_iol.o \
core/rtw_sreset.o \
core/rtw_btcoex_wifionly.o \
core/rtw_btcoex.o \
core/rtw_beamforming.o \
core/rtw_odm.o \
core/rtw_rm.o \
core/rtw_rm_fsm.o \
core/efuse/rtw_efuse.o
ifeq ($(CONFIG_SDIO_HCI), y)
rtk_core += core/rtw_sdio.o
endif
$(MODULE_NAME)-y += $(rtk_core)
$(MODULE_NAME)-$(CONFIG_WAPI_SUPPORT) += core/rtw_wapi.o \
core/rtw_wapi_sms4.o
$(MODULE_NAME)-y += $(_OS_INTFS_FILES)
$(MODULE_NAME)-y += $(_HAL_INTFS_FILES)
$(MODULE_NAME)-y += $(_PHYDM_FILES)
$(MODULE_NAME)-y += $(_BTC_FILES)
$(MODULE_NAME)-y += $(_PLATFORM_FILES)
$(MODULE_NAME)-$(CONFIG_MP_INCLUDED) += core/rtw_mp.o
ifeq ($(CONFIG_RTL8723B), y)
$(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o
endif
obj-$(CONFIG_RTL8822CE) := $(MODULE_NAME).o
else
export CONFIG_RTL8822CE = m
all: modules
modules:
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules
strip:
$(CROSS_COMPILE)strip $(MODULE_NAME).ko --strip-unneeded
install:
install -p -m 644 $(MODULE_NAME).ko $(MODDESTDIR)
/sbin/depmod -a ${KVER}
uninstall:
rm -f $(MODDESTDIR)/$(MODULE_NAME).ko
/sbin/depmod -a ${KVER}
backup_rtlwifi:
@echo "Making backup rtlwifi drivers"
ifneq (,$(wildcard $(STAGINGMODDIR)/rtl*))
@tar cPf $(wildcard $(STAGINGMODDIR))/backup_rtlwifi_driver.tar $(wildcard $(STAGINGMODDIR)/rtl*)
@rm -rf $(wildcard $(STAGINGMODDIR)/rtl*)
endif
ifneq (,$(wildcard $(MODDESTDIR)realtek))
@tar cPf $(MODDESTDIR)backup_rtlwifi_driver.tar $(MODDESTDIR)realtek
@rm -fr $(MODDESTDIR)realtek
endif
ifneq (,$(wildcard $(MODDESTDIR)rtl*))
@tar cPf $(MODDESTDIR)../backup_rtlwifi_driver.tar $(wildcard $(MODDESTDIR)rtl*)
@rm -fr $(wildcard $(MODDESTDIR)rtl*)
endif
@/sbin/depmod -a ${KVER}
@echo "Please reboot your system"
restore_rtlwifi:
@echo "Restoring backups"
ifneq (,$(wildcard $(STAGINGMODDIR)/backup_rtlwifi_driver.tar))
@tar xPf $(STAGINGMODDIR)/backup_rtlwifi_driver.tar
@rm $(STAGINGMODDIR)/backup_rtlwifi_driver.tar
endif
ifneq (,$(wildcard $(MODDESTDIR)backup_rtlwifi_driver.tar))
@tar xPf $(MODDESTDIR)backup_rtlwifi_driver.tar
@rm $(MODDESTDIR)backup_rtlwifi_driver.tar
endif
ifneq (,$(wildcard $(MODDESTDIR)../backup_rtlwifi_driver.tar))
@tar xPf $(MODDESTDIR)../backup_rtlwifi_driver.tar
@rm $(MODDESTDIR)../backup_rtlwifi_driver.tar
endif
@/sbin/depmod -a ${KVER}
@echo "Please reboot your system"
config_r:
@echo "make config"
/bin/bash script/Configure script/config.in
.PHONY: modules clean
clean:
#$(MAKE) -C $(KSRC) M=$(shell pwd) clean
cd hal ; rm -fr */*/*/*.mod.c */*/*/*.mod */*/*/*.o */*/*/.*.cmd */*/*/*.ko
cd hal ; rm -fr */*/*.mod.c */*/*.mod */*/*.o */*/.*.cmd */*/*.ko
cd hal ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
cd hal ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd core ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
cd core ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd os_dep/linux ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd platform ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order
rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
rm -fr .tmp_versions
endif
================================================
FILE: README.md
================================================
[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/0)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/1)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/2)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/3)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/4)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/5)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/6)[](https://sourcerer.io/fame/juanro49/juanro49/rtl88x2ce-dkms/links/7)
# RTL88x2CE dkms module driver
Download complete driver package with guides [from this repo](https://github.com/XAIOThaifeng/realtek-linux/tree/master/RTL8822CE).
## Instalación
### [PatoJAD Repo](https://patojad.com.ar/repositorio/) (desactualizado)
```
echo 'deb https://gitlab.com/patojad/repository/raw/patojad/debs/ patojad main
' | sudo tee /etc/apt/sources.list.d/patojad.list
wget -qO - https://gitlab.com/LynxOS/repository/raw/lynxos/LynxPub.gpg | apt-key add -
sudo apt update
sudo apt install rtl88x2ce-dkms
```
### Paquete deb
```
wget https://github.com/juanro49/rtl88x2ce-dkms/releases/download/5.7.3_35403_20210523/rtl88x2ce-dkms_35403_amd64.deb
sudo dpkg -i rtl88x2ce-dkms_35403_amd64.deb
```
### Desde código fuente
```
git clone https://github.com/juanro49/rtl88x2ce-dkms.git
sudo cp rtl88x2ce-dkms/rtw88_blacklist.conf /etc/modprobe.d/rtw88_blacklist.conf
sudo mkdir /usr/src/rtl88x2ce-35403
sudo cp -Rv rtl88x2ce-dkms/* /usr/src/rtl88x2ce-35403/
sudo dkms add -m rtl88x2ce -v 35403
sudo dkms build -m rtl88x2ce -v 35403
sudo dkms install -m rtl88x2ce -v 35403
```
## Iniciar módulo
`sudo modprobe rtl88x2ce`
Driver testeado en:
[MSI Alpha 15](https://plume.nogafam.es/~/ElBlogDeJuanro/Review%20portatil%20MSI%20Alpha%2015%20A3DDK) con [SparkyLinux Rolling](https://sparkylinux.org/)
Network controller: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter
## Donaciones
[<img src="https://coindrop.to/embed-button.png" border-radius="10px" height="57" width="200px" alt="Coindrop.to me">](https://coindrop.to/juanro49) [<img alt="Donate using Liberapay" border-radius="10px" height="57" width="200px" src="https://liberapay.com/assets/widgets/donate.svg">](https://liberapay.com/juanro49/donate) [<img src="https://cesium.duniter.io/img/duniter_button.svg" border-radius="10px" height="57" width="200px" alt="moneda libre G1">](https://cesium.duniter.io/api/#/v1/payment/5eETo8btrVGYTTyC5nAvqCPmLBok4aRLhxiGP7dy3Wqw?comment=Donaci%C3%B3n%20github)
================================================
FILE: clean
================================================
#!/bin/bash
rmmod 8192cu
rmmod 8192ce
rmmod 8192du
rmmod 8192de
================================================
FILE: core/efuse/rtw_efuse.c
================================================
/******************************************************************************
*
* Copyright(c) 2007 - 2017 Realtek Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*****************************************************************************/
#define _RTW_EFUSE_C_
#include <drv_types.h>
#include <hal_data.h>
#include "../hal/efuse/efuse_mask.h"
/*------------------------Define local variable------------------------------*/
u8 fakeEfuseBank = {0};
u32 fakeEfuseUsedBytes = {0};
u8 fakeEfuseContent[EFUSE_MAX_HW_SIZE] = {0};
u8 fakeEfuseInitMap[EFUSE_MAX_MAP_LEN] = {0};
u8 fakeEfuseModifiedMap[EFUSE_MAX_MAP_LEN] = {0};
u32 BTEfuseUsedBytes = {0};
u8 BTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
u8 BTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN] = {0};
u8 BTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN] = {0};
u32 fakeBTEfuseUsedBytes = {0};
u8 fakeBTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
u8 fakeBTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN] = {0};
u8 fakeBTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN] = {0};
u8 maskfileBuffer[64];
u8 btmaskfileBuffer[64];
/*------------------------Define local variable------------------------------*/
BOOLEAN rtw_file_efuse_IsMasked(PADAPTER pAdapter, u16 Offset, u8 *maskbuf)
{
int r = Offset / 16;
int c = (Offset % 16) / 2;
int result = 0;
if (pAdapter->registrypriv.boffefusemask)
return FALSE;
if (c < 4) /* Upper double word */
result = (maskbuf[r] & (0x10 << c));
else
result = (maskbuf[r] & (0x01 << (c - 4)));
return (result > 0) ? 0 : 1;
}
BOOLEAN efuse_IsBT_Masked(PADAPTER pAdapter, u16 Offset)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
if (pAdapter->registrypriv.boffefusemask)
return FALSE;
#ifdef CONFIG_USB_HCI
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return (IS_BT_MASKED(8822C, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#ifdef CONFIG_PCI_HCI
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return (IS_BT_MASKED(8822C, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#ifdef CONFIG_SDIO_HCI
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return (IS_BT_MASKED(8822C, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
return FALSE;
}
void rtw_bt_efuse_mask_array(PADAPTER pAdapter, u8 *pArray)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
#ifdef CONFIG_USB_HCI
if (IS_HARDWARE_TYPE_8822CU(pAdapter))
GET_MASK_ARRAY(8822C, _MUSB, pArray);
#endif
#ifdef CONFIG_PCI_HCI
if (IS_HARDWARE_TYPE_8822CE(pAdapter))
GET_MASK_ARRAY(8822C, _MPCIE, pArray);
#endif
#ifdef CONFIG_SDIO_HCI
if (IS_HARDWARE_TYPE_8822CS(pAdapter))
GET_MASK_ARRAY(8822C, _MSDIO, pArray);
#endif
}
u16 rtw_get_bt_efuse_mask_arraylen(PADAPTER pAdapter)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
#ifdef CONFIG_USB_HCI
if (IS_HARDWARE_TYPE_8822CU(pAdapter))
return GET_BT_MASK_ARRAY_LEN(8822C, _MUSB);
#endif
#ifdef CONFIG_PCI_HCI
if (IS_HARDWARE_TYPE_8822CE(pAdapter))
return GET_BT_MASK_ARRAY_LEN(8822C, _MPCIE);
#endif
#ifdef CONFIG_SDIO_HCI
if (IS_HARDWARE_TYPE_8822CS(pAdapter))
return GET_BT_MASK_ARRAY_LEN(8822C, _MSDIO);
#endif
return 0;
}
BOOLEAN efuse_IsMasked(PADAPTER pAdapter, u16 Offset)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
if (pAdapter->registrypriv.boffefusemask)
return FALSE;
#ifdef CONFIG_USB_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
return (IS_MASKED(8188E, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8812A)
if (IS_HARDWARE_TYPE_8812(pAdapter))
return (IS_MASKED(8812A, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8821A)
#if 0
if (IS_HARDWARE_TYPE_8811AU(pAdapter))
return (IS_MASKED(8811A, _MUSB, Offset)) ? TRUE : FALSE;
#endif
if (IS_HARDWARE_TYPE_8821(pAdapter))
return (IS_MASKED(8821A, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192E(pAdapter))
return (IS_MASKED(8192E, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723B(pAdapter))
return (IS_MASKED(8723B, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8703B)
if (IS_HARDWARE_TYPE_8703B(pAdapter))
return (IS_MASKED(8703B, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8814A)
if (IS_HARDWARE_TYPE_8814A(pAdapter))
return (IS_MASKED(8814A, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8188F)
if (IS_HARDWARE_TYPE_8188F(pAdapter))
return (IS_MASKED(8188F, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8188GTV)
if (IS_HARDWARE_TYPE_8188GTV(pAdapter))
return (IS_MASKED(8188GTV, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
return (IS_MASKED(8822B, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8723D)
if (IS_HARDWARE_TYPE_8723D(pAdapter))
return (IS_MASKED(8723D, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8710B)
if (IS_HARDWARE_TYPE_8710B(pAdapter))
return (IS_MASKED(8710B, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CU(pAdapter))
return (IS_MASKED(8821C, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FU(pAdapter))
return (IS_MASKED(8192F, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return (IS_MASKED(8822C, _MUSB, Offset)) ? TRUE : FALSE;
#endif
#endif /*CONFIG_USB_HCI*/
#ifdef CONFIG_PCI_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
return (IS_MASKED(8188E, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192E(pAdapter))
return (IS_MASKED(8192E, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8812A)
if (IS_HARDWARE_TYPE_8812(pAdapter))
return (IS_MASKED(8812A, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821(pAdapter))
return (IS_MASKED(8821A, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723B(pAdapter))
return (IS_MASKED(8723B, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8814A)
if (IS_HARDWARE_TYPE_8814A(pAdapter))
return (IS_MASKED(8814A, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
return (IS_MASKED(8822B, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CE(pAdapter))
return (IS_MASKED(8821C, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FE(pAdapter))
return (IS_MASKED(8192F, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return (IS_MASKED(8822C, _MPCIE, Offset)) ? TRUE : FALSE;
#endif
#endif /*CONFIG_PCI_HCI*/
#ifdef CONFIG_SDIO_HCI
#ifdef CONFIG_RTL8188E_SDIO
if (IS_HARDWARE_TYPE_8188E(pAdapter))
return (IS_MASKED(8188E, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#ifdef CONFIG_RTL8723B
if (IS_HARDWARE_TYPE_8723BS(pAdapter))
return (IS_MASKED(8723B, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#ifdef CONFIG_RTL8188F
if (IS_HARDWARE_TYPE_8188F(pAdapter))
return (IS_MASKED(8188F, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#ifdef CONFIG_RTL8188GTV
if (IS_HARDWARE_TYPE_8188GTV(pAdapter))
return (IS_MASKED(8188GTV, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#ifdef CONFIG_RTL8192E
if (IS_HARDWARE_TYPE_8192ES(pAdapter))
return (IS_MASKED(8192E, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821S(pAdapter))
return (IS_MASKED(8821A, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CS(pAdapter))
return (IS_MASKED(8821C, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
return (IS_MASKED(8822B, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FS(pAdapter))
return (IS_MASKED(8192F, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return (IS_MASKED(8822C, _MSDIO, Offset)) ? TRUE : FALSE;
#endif
#endif /*CONFIG_SDIO_HCI*/
return FALSE;
}
void rtw_efuse_mask_array(PADAPTER pAdapter, u8 *pArray)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
#ifdef CONFIG_USB_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
GET_MASK_ARRAY(8188E, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8812A)
if (IS_HARDWARE_TYPE_8812(pAdapter))
GET_MASK_ARRAY(8812A, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821(pAdapter))
GET_MASK_ARRAY(8821A, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192E(pAdapter))
GET_MASK_ARRAY(8192E, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723B(pAdapter))
GET_MASK_ARRAY(8723B, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8703B)
if (IS_HARDWARE_TYPE_8703B(pAdapter))
GET_MASK_ARRAY(8703B, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8188F)
if (IS_HARDWARE_TYPE_8188F(pAdapter))
GET_MASK_ARRAY(8188F, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8188GTV)
if (IS_HARDWARE_TYPE_8188GTV(pAdapter))
GET_MASK_ARRAY(8188GTV, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8814A)
if (IS_HARDWARE_TYPE_8814A(pAdapter))
GET_MASK_ARRAY(8814A, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
GET_MASK_ARRAY(8822B, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CU(pAdapter))
GET_MASK_ARRAY(8821C, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FU(pAdapter))
GET_MASK_ARRAY(8192F, _MUSB, pArray);
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
GET_MASK_ARRAY(8822C, _MUSB, pArray);
#endif
#endif /*CONFIG_USB_HCI*/
#ifdef CONFIG_PCI_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
GET_MASK_ARRAY(8188E, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192E(pAdapter))
GET_MASK_ARRAY(8192E, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8812A)
if (IS_HARDWARE_TYPE_8812(pAdapter))
GET_MASK_ARRAY(8812A, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821(pAdapter))
GET_MASK_ARRAY(8821A, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723B(pAdapter))
GET_MASK_ARRAY(8723B, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8814A)
if (IS_HARDWARE_TYPE_8814A(pAdapter))
GET_MASK_ARRAY(8814A, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
GET_MASK_ARRAY(8822B, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CE(pAdapter))
GET_MASK_ARRAY(8821C, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FE(pAdapter))
GET_MASK_ARRAY(8192F, _MPCIE, pArray);
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
GET_MASK_ARRAY(8822C, _MPCIE, pArray);
#endif
#endif /*CONFIG_PCI_HCI*/
#ifdef CONFIG_SDIO_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
GET_MASK_ARRAY(8188E, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723BS(pAdapter))
GET_MASK_ARRAY(8723B, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8188F)
if (IS_HARDWARE_TYPE_8188F(pAdapter))
GET_MASK_ARRAY(8188F, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8188GTV)
if (IS_HARDWARE_TYPE_8188GTV(pAdapter))
GET_MASK_ARRAY(8188GTV, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192ES(pAdapter))
GET_MASK_ARRAY(8192E, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821S(pAdapter))
GET_MASK_ARRAY(8821A, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CS(pAdapter))
GET_MASK_ARRAY(8821C , _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
GET_MASK_ARRAY(8822B , _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FS(pAdapter))
GET_MASK_ARRAY(8192F, _MSDIO, pArray);
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
GET_MASK_ARRAY(8822C , _MSDIO, pArray);
#endif
#endif /*CONFIG_SDIO_HCI*/
}
u16 rtw_get_efuse_mask_arraylen(PADAPTER pAdapter)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
#ifdef CONFIG_USB_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
return GET_MASK_ARRAY_LEN(8188E, _MUSB);
#endif
#if defined(CONFIG_RTL8812A)
if (IS_HARDWARE_TYPE_8812(pAdapter))
return GET_MASK_ARRAY_LEN(8812A, _MUSB);
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821(pAdapter))
return GET_MASK_ARRAY_LEN(8821A, _MUSB);
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192E(pAdapter))
return GET_MASK_ARRAY_LEN(8192E, _MUSB);
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723B(pAdapter))
return GET_MASK_ARRAY_LEN(8723B, _MUSB);
#endif
#if defined(CONFIG_RTL8703B)
if (IS_HARDWARE_TYPE_8703B(pAdapter))
return GET_MASK_ARRAY_LEN(8703B, _MUSB);
#endif
#if defined(CONFIG_RTL8188F)
if (IS_HARDWARE_TYPE_8188F(pAdapter))
return GET_MASK_ARRAY_LEN(8188F, _MUSB);
#endif
#if defined(CONFIG_RTL8188GTV)
if (IS_HARDWARE_TYPE_8188GTV(pAdapter))
return GET_MASK_ARRAY_LEN(8188GTV, _MUSB);
#endif
#if defined(CONFIG_RTL8814A)
if (IS_HARDWARE_TYPE_8814A(pAdapter))
return GET_MASK_ARRAY_LEN(8814A, _MUSB);
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
return GET_MASK_ARRAY_LEN(8822B, _MUSB);
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CU(pAdapter))
return GET_MASK_ARRAY_LEN(8821C, _MUSB);
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FU(pAdapter))
return GET_MASK_ARRAY_LEN(8192F, _MUSB);
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return GET_MASK_ARRAY_LEN(8822C, _MUSB);
#endif
#endif /*CONFIG_USB_HCI*/
#ifdef CONFIG_PCI_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
return GET_MASK_ARRAY_LEN(8188E, _MPCIE);
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192E(pAdapter))
return GET_MASK_ARRAY_LEN(8192E, _MPCIE);
#endif
#if defined(CONFIG_RTL8812A)
if (IS_HARDWARE_TYPE_8812(pAdapter))
return GET_MASK_ARRAY_LEN(8812A, _MPCIE);
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821(pAdapter))
return GET_MASK_ARRAY_LEN(8821A, _MPCIE);
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723B(pAdapter))
return GET_MASK_ARRAY_LEN(8723B, _MPCIE);
#endif
#if defined(CONFIG_RTL8814A)
if (IS_HARDWARE_TYPE_8814A(pAdapter))
return GET_MASK_ARRAY_LEN(8814A, _MPCIE);
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
return GET_MASK_ARRAY_LEN(8822B, _MPCIE);
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CE(pAdapter))
return GET_MASK_ARRAY_LEN(8821C, _MPCIE);
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FE(pAdapter))
return GET_MASK_ARRAY_LEN(8192F, _MPCIE);
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return GET_MASK_ARRAY_LEN(8822C, _MPCIE);
#endif
#endif /*CONFIG_PCI_HCI*/
#ifdef CONFIG_SDIO_HCI
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(pAdapter))
return GET_MASK_ARRAY_LEN(8188E, _MSDIO);
#endif
#if defined(CONFIG_RTL8723B)
if (IS_HARDWARE_TYPE_8723BS(pAdapter))
return GET_MASK_ARRAY_LEN(8723B, _MSDIO);
#endif
#if defined(CONFIG_RTL8188F)
if (IS_HARDWARE_TYPE_8188F(pAdapter))
return GET_MASK_ARRAY_LEN(8188F, _MSDIO);
#endif
#if defined(CONFIG_RTL8188GTV)
if (IS_HARDWARE_TYPE_8188GTV(pAdapter))
return GET_MASK_ARRAY_LEN(8188GTV, _MSDIO);
#endif
#if defined(CONFIG_RTL8192E)
if (IS_HARDWARE_TYPE_8192ES(pAdapter))
return GET_MASK_ARRAY_LEN(8192E, _MSDIO);
#endif
#if defined(CONFIG_RTL8821A)
if (IS_HARDWARE_TYPE_8821S(pAdapter))
return GET_MASK_ARRAY_LEN(8821A, _MSDIO);
#endif
#if defined(CONFIG_RTL8821C)
if (IS_HARDWARE_TYPE_8821CS(pAdapter))
return GET_MASK_ARRAY_LEN(8821C, _MSDIO);
#endif
#if defined(CONFIG_RTL8822B)
if (IS_HARDWARE_TYPE_8822B(pAdapter))
return GET_MASK_ARRAY_LEN(8822B, _MSDIO);
#endif
#if defined(CONFIG_RTL8192F)
if (IS_HARDWARE_TYPE_8192FS(pAdapter))
return GET_MASK_ARRAY_LEN(8192F, _MSDIO);
#endif
#if defined(CONFIG_RTL8822C)
if (IS_HARDWARE_TYPE_8822C(pAdapter))
return GET_MASK_ARRAY_LEN(8822C, _MSDIO);
#endif
#endif/*CONFIG_SDIO_HCI*/
return 0;
}
static void rtw_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
u16 i = 0;
if (padapter->registrypriv.boffefusemask == 0) {
for (i = 0; i < cnts; i++) {
if (padapter->registrypriv.bFileMaskEfuse == _TRUE) {
if (rtw_file_efuse_IsMasked(padapter, addr + i, maskfileBuffer)) /*use file efuse mask.*/
data[i] = 0xff;
else
RTW_DBG("data[%x] = %x\n", i, data[i]);
} else {
if (efuse_IsMasked(padapter, addr + i))
data[i] = 0xff;
else
RTW_DBG("data[%x] = %x\n", i, data[i]);
}
}
}
}
static void rtw_bt_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
u16 i = 0;
if (padapter->registrypriv.boffefusemask == 0) {
for (i = 0; i < cnts; i++) {
if (padapter->registrypriv.bBTFileMaskEfuse == _TRUE) {
if (rtw_file_efuse_IsMasked(padapter, addr + i, btmaskfileBuffer)) /*use BT file efuse mask.*/
data[i] = 0xff;
else
RTW_DBG("data[%x] = %x\n", i, data[i]);
} else {
if (efuse_IsBT_Masked(padapter, addr + i)) /*use drv internal efuse mask.*/
data[i] = 0xff;
else
RTW_DBG("data[%x] = %x\n", i, data[i]);
}
}
}
}
u8 rtw_efuse_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
u8 ret = _SUCCESS;
u16 mapLen = 0;
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, _FALSE);
ret = rtw_efuse_map_read(padapter, addr, cnts , data);
rtw_mask_map_read(padapter, addr, cnts , data);
return ret;
}
/* ***********************************************************
* Efuse related code
* *********************************************************** */
static u8 hal_EfuseSwitchToBank(
PADAPTER padapter,
u8 bank,
u8 bPseudoTest)
{
u8 bRet = _FALSE;
u32 value32 = 0;
#ifdef HAL_EFUSE_MEMORY
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal;
#endif
RTW_INFO("%s: Efuse switch bank to %d\n", __FUNCTION__, bank);
if (bPseudoTest) {
#ifdef HAL_EFUSE_MEMORY
pEfuseHal->fakeEfuseBank = bank;
#else
fakeEfuseBank = bank;
#endif
bRet = _TRUE;
} else {
value32 = rtw_read32(padapter, 0x34);
bRet = _TRUE;
switch (bank) {
case 0:
value32 = (value32 & ~EFUSE_SEL_MASK) | EFUSE_SEL(EFUSE_WIFI_SEL_0);
break;
case 1:
value32 = (value32 & ~EFUSE_SEL_MASK) | EFUSE_SEL(EFUSE_BT_SEL_0);
break;
case 2:
value32 = (value32 & ~EFUSE_SEL_MASK) | EFUSE_SEL(EFUSE_BT_SEL_1);
break;
case 3:
value32 = (value32 & ~EFUSE_SEL_MASK) | EFUSE_SEL(EFUSE_BT_SEL_2);
break;
default:
value32 = (value32 & ~EFUSE_SEL_MASK) | EFUSE_SEL(EFUSE_WIFI_SEL_0);
bRet = _FALSE;
break;
}
rtw_write32(padapter, 0x34, value32);
}
return bRet;
}
void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
PEFUSE_HAL pEfuseHal = &(pHalData->EfuseHal);
u16 eFuse_Addr = 0;
u8 offset, wden;
u16 i, j;
u8 u1temp = 0;
u8 efuseHeader = 0, efuseExtHdr = 0, efuseData[EFUSE_MAX_WORD_UNIT*2] = {0}, dataCnt = 0;
u16 efuseHeader2Byte = 0;
u8 *eFuseWord = NULL;// [EFUSE_MAX_SECTION_NUM][EFUSE_MAX_WORD_UNIT];
u8 offset_2_0 = 0;
u8 pgSectionCnt = 0;
u8 wd_cnt = 0;
u8 max_section = 64;
u16 mapLen = 0, maprawlen = 0;
boolean bExtHeader = _FALSE;
u8 efuseType = EFUSE_WIFI;
boolean bPseudoTest = _FALSE;
u8 bank = 0, startBank = 0, endBank = 1-1;
boolean bCheckNextBank = FALSE;
u8 protectBytesBank = 0;
u16 efuse_max = 0;
u8 ParseEfuseExtHdr, ParseEfuseHeader, ParseOffset, ParseWDEN, ParseOffset2_0;
eFuseWord = rtw_zmalloc(EFUSE_MAX_SECTION_NUM * (EFUSE_MAX_WORD_UNIT * 2));
RTW_INFO("\n");
if (Type == 0) {
if (Fake == 0) {
RTW_INFO("\n\tEFUSE_Analyze Wifi Content\n");
efuseType = EFUSE_WIFI;
bPseudoTest = FALSE;
startBank = 0;
endBank = 0;
} else {
RTW_INFO("\n\tEFUSE_Analyze Wifi Pseudo Content\n");
efuseType = EFUSE_WIFI;
bPseudoTest = TRUE;
startBank = 0;
endBank = 0;
}
} else {
if (Fake == 0) {
RTW_INFO("\n\tEFUSE_Analyze BT Content\n");
efuseType = EFUSE_BT;
bPseudoTest = FALSE;
startBank = 1;
endBank = EFUSE_MAX_BANK - 1;
} else {
RTW_INFO("\n\tEFUSE_Analyze BT Pseudo Content\n");
efuseType = EFUSE_BT;
bPseudoTest = TRUE;
startBank = 1;
endBank = EFUSE_MAX_BANK - 1;
if (IS_HARDWARE_TYPE_8821(padapter))
endBank = 3 - 1;/*EFUSE_MAX_BANK_8821A - 1;*/
}
}
RTW_INFO("\n\r 1Byte header, [7:4]=offset, [3:0]=word enable\n");
RTW_INFO("\n\r 2Byte header, header[7:5]=offset[2:0], header[4:0]=0x0F\n");
RTW_INFO("\n\r 2Byte header, extHeader[7:4]=offset[6:3], extHeader[3:0]=word enable\n");
EFUSE_GetEfuseDefinition(padapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
EFUSE_GetEfuseDefinition(padapter, efuseType, TYPE_EFUSE_MAX_SECTION, (void *)&max_section, bPseudoTest);
EFUSE_GetEfuseDefinition(padapter, efuseType, TYPE_EFUSE_PROTECT_BYTES_BANK, (void *)&protectBytesBank, bPseudoTest);
EFUSE_GetEfuseDefinition(padapter, efuseType, TYPE_EFUSE_CONTENT_LEN_BANK, (void *)&efuse_max, bPseudoTest);
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&maprawlen, _FALSE);
_rtw_memset(eFuseWord, 0xff, EFUSE_MAX_SECTION_NUM * (EFUSE_MAX_WORD_UNIT * 2));
_rtw_memset(pEfuseHal->fakeEfuseInitMap, 0xff, EFUSE_MAX_MAP_LEN);
if (IS_HARDWARE_TYPE_8821(padapter))
endBank = 3 - 1;/*EFUSE_MAX_BANK_8821A - 1;*/
for (bank = startBank; bank <= endBank; bank++) {
if (!hal_EfuseSwitchToBank(padapter, bank, bPseudoTest)) {
RTW_INFO("EFUSE_SwitchToBank() Fail!!\n");
goto out_free_buffer;
}
eFuse_Addr = bank * EFUSE_MAX_BANK_SIZE;
efuse_OneByteRead(padapter, eFuse_Addr++, &efuseHeader, bPseudoTest);
if (efuseHeader == 0xFF && bank == startBank && Fake != TRUE) {
RTW_INFO("Non-PGed Efuse\n");
goto out_free_buffer;
}
RTW_INFO("EFUSE_REAL_CONTENT_LEN = %d\n", maprawlen);
while ((efuseHeader != 0xFF) && ((efuseType == EFUSE_WIFI && (eFuse_Addr < maprawlen)) || (efuseType == EFUSE_BT && (eFuse_Addr < (endBank + 1) * EFUSE_MAX_BANK_SIZE)))) {
RTW_INFO("Analyzing: Offset: 0x%X\n", eFuse_Addr);
/* Check PG header for section num.*/
if (EXT_HEADER(efuseHeader)) {
bExtHeader = TRUE;
offset_2_0 = GET_HDR_OFFSET_2_0(efuseHeader);
efuse_OneByteRead(padapter, eFuse_Addr++, &efuseExtHdr, bPseudoTest);
if (efuseExtHdr != 0xff) {
if (ALL_WORDS_DISABLED(efuseExtHdr)) {
/* Read next pg header*/
efuse_OneByteRead(padapter, eFuse_Addr++, &efuseHeader, bPseudoTest);
continue;
} else {
offset = ((efuseExtHdr & 0xF0) >> 1) | offset_2_0;
wden = (efuseExtHdr & 0x0F);
efuseHeader2Byte = (efuseExtHdr<<8)|efuseHeader;
RTW_INFO("Find efuseHeader2Byte = 0x%04X, offset=%d, wden=0x%x\n",
efuseHeader2Byte, offset, wden);
}
} else {
RTW_INFO("Error, efuse[%d]=0xff, efuseExtHdr=0xff\n", eFuse_Addr-1);
break;
}
} else {
offset = ((efuseHeader >> 4) & 0x0f);
wden = (efuseHeader & 0x0f);
}
_rtw_memset(efuseData, '\0', EFUSE_MAX_WORD_UNIT * 2);
dataCnt = 0;
if (offset < max_section) {
for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
/* Check word enable condition in the section */
if (!(wden & (0x01<<i))) {
if (!((efuseType == EFUSE_WIFI && (eFuse_Addr + 2 < maprawlen)) ||
(efuseType == EFUSE_BT && (eFuse_Addr + 2 < (endBank + 1) * EFUSE_MAX_BANK_SIZE)))) {
RTW_INFO("eFuse_Addr exceeds, break\n");
break;
}
efuse_OneByteRead(padapter, eFuse_Addr++, &efuseData[dataCnt++], bPseudoTest);
eFuseWord[(offset * 8) + (i * 2)] = (efuseData[dataCnt - 1]);
efuse_OneByteRead(padapter, eFuse_Addr++, &efuseData[dataCnt++], bPseudoTest);
eFuseWord[(offset * 8) + (i * 2 + 1)] = (efuseData[dataCnt - 1]);
}
}
}
if (bExtHeader) {
RTW_INFO("Efuse PG Section (%d) = ", pgSectionCnt);
RTW_INFO("[ %04X ], [", efuseHeader2Byte);
} else {
RTW_INFO("Efuse PG Section (%d) = ", pgSectionCnt);
RTW_INFO("[ %02X ], [", efuseHeader);
}
for (j = 0; j < dataCnt; j++)
RTW_INFO(" %02X ", efuseData[j]);
RTW_INFO("]\n");
if (bExtHeader) {
ParseEfuseExtHdr = (efuseHeader2Byte & 0xff00) >> 8;
ParseEfuseHeader = (efuseHeader2Byte & 0xff);
ParseOffset2_0 = GET_HDR_OFFSET_2_0(ParseEfuseHeader);
ParseOffset = ((ParseEfuseExtHdr & 0xF0) >> 1) | ParseOffset2_0;
ParseWDEN = (ParseEfuseExtHdr & 0x0F);
RTW_INFO("Header=0x%x, ExtHeader=0x%x, ", ParseEfuseHeader, ParseEfuseExtHdr);
} else {
ParseEfuseHeader = efuseHeader;
ParseOffset = ((ParseEfuseHeader >> 4) & 0x0f);
ParseWDEN = (ParseEfuseHeader & 0x0f);
RTW_INFO("Header=0x%x, ", ParseEfuseHeader);
}
RTW_INFO("offset=0x%x(%d), word enable=0x%x\n", ParseOffset, ParseOffset, ParseWDEN);
wd_cnt = 0;
for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
if (!(wden & (0x01 << i))) {
RTW_INFO("Map[ %02X ] = %02X %02X\n", ((offset * EFUSE_MAX_WORD_UNIT * 2) + (i * 2)), efuseData[wd_cnt * 2 + 0], efuseData[wd_cnt * 2 + 1]);
wd_cnt++;
}
}
pgSectionCnt++;
bExtHeader = FALSE;
efuse_OneByteRead(padapter, eFuse_Addr++, &efuseHeader, bPseudoTest);
if (efuseHeader == 0xFF) {
if ((eFuse_Addr + protectBytesBank) >= efuse_max)
bCheckNextBank = TRUE;
else
bCheckNextBank = FALSE;
}
}
if (!bCheckNextBank) {
RTW_INFO("Not need to check next bank, eFuse_Addr=%d, protectBytesBank=%d, efuse_max=%d\n",
eFuse_Addr, protectBytesBank, efuse_max);
break;
}
}
/* switch bank back to 0 for BT/wifi later use*/
hal_EfuseSwitchToBank(padapter, 0, bPseudoTest);
/* 3. Collect 16 sections and 4 word unit into Efuse map.*/
for (i = 0; i < max_section; i++) {
for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++) {
pEfuseHal->fakeEfuseInitMap[(i*8)+(j*2)] = (eFuseWord[(i*8)+(j*2)]);
pEfuseHal->fakeEfuseInitMap[(i*8)+((j*2)+1)] = (eFuseWord[(i*8)+((j*2)+1)]);
}
}
RTW_INFO("\n\tEFUSE Analyze Map\n");
i = 0;
j = 0;
for (i = 0; i < mapLen; i++) {
if (i % 16 == 0)
RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i);
_RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s"
, pEfuseHal->fakeEfuseInitMap[i]
, ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ")
);
}
_RTW_PRINT_SEL(RTW_DBGDUMP, "\n");
out_free_buffer:
if (eFuseWord)
rtw_mfree((u8 *)eFuseWord, EFUSE_MAX_SECTION_NUM * (EFUSE_MAX_WORD_UNIT * 2));
}
void efuse_PreUpdateAction(
PADAPTER pAdapter,
u32 *BackupRegs)
{
if (IS_HARDWARE_TYPE_8812AU(pAdapter) || IS_HARDWARE_TYPE_8822BU(pAdapter)) {
/* <20131115, Kordan> Turn off Rx to prevent from being busy when writing the EFUSE. (Asked by Chunchu.)*/
BackupRegs[0] = phy_query_mac_reg(pAdapter, REG_RCR, bMaskDWord);
BackupRegs[1] = phy_query_mac_reg(pAdapter, REG_RXFLTMAP0, bMaskDWord);
BackupRegs[2] = phy_query_mac_reg(pAdapter, REG_RXFLTMAP0+4, bMaskDWord);
#ifdef CONFIG_RTL8812A
BackupRegs[3] = phy_query_mac_reg(pAdapter, REG_AFE_MISC, bMaskDWord);
#endif
PlatformEFIOWrite4Byte(pAdapter, REG_RCR, 0x1);
PlatformEFIOWrite1Byte(pAdapter, REG_RXFLTMAP0, 0);
PlatformEFIOWrite1Byte(pAdapter, REG_RXFLTMAP0+1, 0);
PlatformEFIOWrite1Byte(pAdapter, REG_RXFLTMAP0+2, 0);
PlatformEFIOWrite1Byte(pAdapter, REG_RXFLTMAP0+3, 0);
PlatformEFIOWrite1Byte(pAdapter, REG_RXFLTMAP0+4, 0);
PlatformEFIOWrite1Byte(pAdapter, REG_RXFLTMAP0+5, 0);
#ifdef CONFIG_RTL8812A
/* <20140410, Kordan> 0x11 = 0x4E, lower down LX_SPS0 voltage. (Asked by Chunchu)*/
phy_set_mac_reg(pAdapter, REG_AFE_MISC, bMaskByte1, 0x4E);
#endif
RTW_INFO(" %s , done\n", __func__);
}
}
void efuse_PostUpdateAction(
PADAPTER pAdapter,
u32 *BackupRegs)
{
if (IS_HARDWARE_TYPE_8812AU(pAdapter) || IS_HARDWARE_TYPE_8822BU(pAdapter)) {
/* <20131115, Kordan> Turn on Rx and restore the registers. (Asked by Chunchu.)*/
phy_set_mac_reg(pAdapter, REG_RCR, bMaskDWord, BackupRegs[0]);
phy_set_mac_reg(pAdapter, REG_RXFLTMAP0, bMaskDWord, BackupRegs[1]);
phy_set_mac_reg(pAdapter, REG_RXFLTMAP0+4, bMaskDWord, BackupRegs[2]);
#ifdef CONFIG_RTL8812A
phy_set_mac_reg(pAdapter, REG_AFE_MISC, bMaskDWord, BackupRegs[3]);
#endif
RTW_INFO(" %s , done\n", __func__);
}
}
#ifdef RTW_HALMAC
#include "../../hal/hal_halmac.h"
void Efuse_PowerSwitch(PADAPTER adapter, u8 write, u8 pwrstate)
{
}
void BTEfuse_PowerSwitch(PADAPTER adapter, u8 write, u8 pwrstate)
{
}
u8 efuse_GetCurrentSize(PADAPTER adapter, u16 *size)
{
*size = 0;
return _FAIL;
}
u16 efuse_GetMaxSize(PADAPTER adapter)
{
struct dvobj_priv *d;
u32 size = 0;
int err;
d = adapter_to_dvobj(adapter);
err = rtw_halmac_get_physical_efuse_size(d, &size);
if (err)
return 0;
return size;
}
u16 efuse_GetavailableSize(PADAPTER adapter)
{
struct dvobj_priv *d;
u32 size = 0;
int err;
d = adapter_to_dvobj(adapter);
err = rtw_halmac_get_available_efuse_size(d, &size);
if (err)
return 0;
return size;
}
u8 efuse_bt_GetCurrentSize(PADAPTER adapter, u16 *usesize)
{
u8 *efuse_map;
*usesize = 0;
efuse_map = rtw_malloc(EFUSE_BT_MAP_LEN);
if (efuse_map == NULL) {
RTW_DBG("%s: malloc FAIL\n", __FUNCTION__);
return _FAIL;
}
/* for get bt phy efuse last use byte */
hal_ReadEFuse_BT_logic_map(adapter, 0x00, EFUSE_BT_MAP_LEN, efuse_map);
*usesize = fakeBTEfuseUsedBytes;
if (efuse_map)
rtw_mfree(efuse_map, EFUSE_BT_MAP_LEN);
return _SUCCESS;
}
u16 efuse_bt_GetMaxSize(PADAPTER adapter)
{
return EFUSE_BT_REAL_CONTENT_LEN - EFUSE_PROTECT_BYTES_BANK;
}
void EFUSE_GetEfuseDefinition(PADAPTER adapter, u8 efusetype, u8 type, void *out, BOOLEAN test)
{
struct dvobj_priv *d;
u32 v32 = 0;
d = adapter_to_dvobj(adapter);
if (adapter->hal_func.EFUSEGetEfuseDefinition) {
adapter->hal_func.EFUSEGetEfuseDefinition(adapter, efusetype, type, out, test);
return;
}
if (EFUSE_WIFI == efusetype) {
switch (type) {
case TYPE_EFUSE_MAP_LEN:
rtw_halmac_get_logical_efuse_size(d, &v32);
*(u16 *)out = (u16)v32;
return;
case TYPE_EFUSE_REAL_CONTENT_LEN:
rtw_halmac_get_physical_efuse_size(d, &v32);
*(u16 *)out = (u16)v32;
return;
}
} else if (EFUSE_BT == efusetype) {
switch (type) {
case TYPE_EFUSE_MAP_LEN:
*(u16 *)out = EFUSE_BT_MAP_LEN;
return;
case TYPE_EFUSE_REAL_CONTENT_LEN:
*(u16 *)out = EFUSE_BT_REAL_CONTENT_LEN;
return;
}
}
}
/*
* read/write raw efuse data
*/
u8 rtw_efuse_access(PADAPTER adapter, u8 write, u16 addr, u16 cnts, u8 *data)
{
struct dvobj_priv *d;
u8 *efuse = NULL;
u32 size, i;
int err;
d = adapter_to_dvobj(adapter);
err = rtw_halmac_get_physical_efuse_size(d, &size);
if (err){
size = EFUSE_MAX_SIZE;
RTW_INFO(" physical_efuse_size err size %d\n", size);
}
if ((addr + cnts) > size)
return _FAIL;
if (_TRUE == write) {
err = rtw_halmac_write_physical_efuse(d, addr, cnts, data);
if (err)
return _FAIL;
} else {
if (cnts > 16)
efuse = rtw_zmalloc(size);
if (efuse) {
err = rtw_halmac_read_physical_efuse_map(d, efuse, size);
if (err) {
rtw_mfree(efuse, size);
return _FAIL;
}
_rtw_memcpy(data, efuse + addr, cnts);
rtw_mfree(efuse, size);
} else {
err = rtw_halmac_read_physical_efuse(d, addr, cnts, data);
if (err)
return _FAIL;
}
}
return _SUCCESS;
}
static inline void dump_buf(u8 *buf, u32 len)
{
u32 i;
RTW_INFO("-----------------Len %d----------------\n", len);
for (i = 0; i < len; i++)
printk("%2.2x-", *(buf + i));
printk("\n");
}
/*
* read/write raw efuse data
*/
u8 rtw_efuse_bt_access(PADAPTER adapter, u8 write, u16 addr, u16 cnts, u8 *data)
{
struct dvobj_priv *d;
u8 *efuse = NULL;
u32 size, i;
int err = _FAIL;
d = adapter_to_dvobj(adapter);
size = EFUSE_BT_REAL_CONTENT_LEN;
if ((addr + cnts) > size)
return _FAIL;
if (_TRUE == write) {
err = rtw_halmac_write_bt_physical_efuse(d, addr, cnts, data);
if (err == -1) {
RTW_ERR("%s: rtw_halmac_write_bt_physical_efuse fail!\n", __FUNCTION__);
return _FAIL;
}
RTW_INFO("%s: rtw_halmac_write_bt_physical_efuse OK! data 0x%x\n", __FUNCTION__, *data);
} else {
efuse = rtw_zmalloc(size);
if (efuse) {
err = rtw_halmac_read_bt_physical_efuse_map(d, efuse, size);
if (err == -1) {
RTW_ERR("%s: rtw_halmac_read_bt_physical_efuse_map fail!\n", __FUNCTION__);
rtw_mfree(efuse, size);
return _FAIL;
}
dump_buf(efuse + addr, cnts);
_rtw_memcpy(data, efuse + addr, cnts);
RTW_INFO("%s: rtw_halmac_read_bt_physical_efuse_map ok! data 0x%x\n", __FUNCTION__, *data);
rtw_mfree(efuse, size);
}
}
return _SUCCESS;
}
u8 rtw_efuse_map_read(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
{
struct dvobj_priv *d;
u8 *efuse = NULL;
u32 size, i;
int err;
u32 backupRegs[4] = {0};
u8 status = _SUCCESS;
efuse_PreUpdateAction(adapter, backupRegs);
d = adapter_to_dvobj(adapter);
err = rtw_halmac_get_logical_efuse_size(d, &size);
if (err) {
status = _FAIL;
RTW_DBG("halmac_get_logical_efuse_size fail\n");
goto exit;
}
/* size error handle */
if ((addr + cnts) > size) {
if (addr < size)
cnts = size - addr;
else {
status = _FAIL;
RTW_DBG(" %s() ,addr + cnts) > size fail\n", __func__);
goto exit;
}
}
if (cnts > 16)
efuse = rtw_zmalloc(size);
if (efuse) {
err = rtw_halmac_read_logical_efuse_map(d, efuse, size, NULL, 0);
if (err) {
rtw_mfree(efuse, size);
status = _FAIL;
RTW_DBG(" %s() ,halmac_read_logical_efus map fail\n", __func__);
goto exit;
}
_rtw_memcpy(data, efuse + addr, cnts);
rtw_mfree(efuse, size);
} else {
err = rtw_halmac_read_logical_efuse(d, addr, cnts, data);
if (err) {
status = _FAIL;
RTW_DBG(" %s() ,halmac_read_logical_efus data fail\n", __func__);
goto exit;
}
}
status = _SUCCESS;
exit:
efuse_PostUpdateAction(adapter, backupRegs);
return status;
}
u8 rtw_efuse_map_write(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
{
struct dvobj_priv *d;
u8 *efuse = NULL;
u32 size, i;
int err;
u8 mask_buf[64] = "";
u16 mask_len = sizeof(u8) * rtw_get_efuse_mask_arraylen(adapter);
u32 backupRegs[4] = {0};
u8 status = _SUCCESS;;
efuse_PreUpdateAction(adapter, backupRegs);
d = adapter_to_dvobj(adapter);
err = rtw_halmac_get_logical_efuse_size(d, &size);
if (err) {
status = _FAIL;
goto exit;
}
if ((addr + cnts) > size) {
status = _FAIL;
goto exit;
}
efuse = rtw_zmalloc(size);
if (!efuse) {
status = _FAIL;
goto exit;
}
err = rtw_halmac_read_logical_efuse_map(d, efuse, size, NULL, 0);
if (err) {
rtw_mfree(efuse, size);
status = _FAIL;
goto exit;
}
_rtw_memcpy(efuse + addr, data, cnts);
if (adapter->registrypriv.boffefusemask == 0) {
RTW_INFO("Use mask Array Len: %d\n", mask_len);
if (mask_len != 0) {
if (adapter->registrypriv.bFileMaskEfuse == _TRUE)
_rtw_memcpy(mask_buf, maskfileBuffer, mask_len);
else
rtw_efuse_mask_array(adapter, mask_buf);
err = rtw_halmac_write_logical_efuse_map(d, efuse, size, mask_buf, mask_len);
} else
err = rtw_halmac_write_logical_efuse_map(d, efuse, size, NULL, 0);
} else {
_rtw_memset(mask_buf, 0xFF, sizeof(mask_buf));
RTW_INFO("Efuse mask off\n");
err = rtw_halmac_write_logical_efuse_map(d, efuse, size, mask_buf, size/16);
}
if (err) {
rtw_mfree(efuse, size);
status = _FAIL;
goto exit;
}
rtw_mfree(efuse, size);
status = _SUCCESS;
exit :
efuse_PostUpdateAction(adapter, backupRegs);
return status;
}
int Efuse_PgPacketRead(PADAPTER adapter, u8 offset, u8 *data, BOOLEAN test)
{
return _FALSE;
}
int Efuse_PgPacketWrite(PADAPTER adapter, u8 offset, u8 word_en, u8 *data, BOOLEAN test)
{
return _FALSE;
}
u8 rtw_BT_efuse_map_read(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
{
hal_ReadEFuse_BT_logic_map(adapter, addr, cnts, data);
rtw_bt_mask_map_read(adapter, addr, cnts, data);
return _SUCCESS;
}
static u16
hal_EfuseGetCurrentSize_BT(
PADAPTER padapter,
u8 bPseudoTest)
{
#ifdef HAL_EFUSE_MEMORY
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal;
#endif
u16 btusedbytes;
u16 efuse_addr;
u8 bank, startBank;
u8 hoffset = 0, hworden = 0;
u8 efuse_data, word_cnts = 0;
u16 retU2 = 0;
u8 bContinual = _TRUE;
btusedbytes = fakeBTEfuseUsedBytes;
efuse_addr = (u16)((btusedbytes % EFUSE_BT_REAL_BANK_CONTENT_LEN));
startBank = (u8)(1 + (btusedbytes / EFUSE_BT_REAL_BANK_CONTENT_LEN));
RTW_INFO("%s: start from bank=%d addr=0x%X\n", __FUNCTION__, startBank, efuse_addr);
retU2 = EFUSE_BT_REAL_CONTENT_LEN - EFUSE_PROTECT_BYTES_BANK;
for (bank = startBank; bank < 3; bank++) {
if (hal_EfuseSwitchToBank(padapter, bank, bPseudoTest) == _FALSE) {
RTW_ERR("%s: switch bank(%d) Fail!!\n", __FUNCTION__, bank);
/* bank = EFUSE_MAX_BANK; */
break;
}
/* only when bank is switched we have to reset the efuse_addr. */
if (bank != startBank)
efuse_addr = 0;
while (AVAILABLE_EFUSE_ADDR(efuse_addr)) {
if (rtw_efuse_bt_access(padapter, _FALSE, efuse_addr, 1, &efuse_data) == _FALSE) {
RTW_ERR("%s: efuse_OneByteRead Fail! addr=0x%X !!\n", __FUNCTION__, efuse_addr);
/* bank = EFUSE_MAX_BANK; */
break;
}
RTW_INFO("%s: efuse_OneByteRead ! addr=0x%X !efuse_data=0x%X! bank =%d\n", __FUNCTION__, efuse_addr, efuse_data, bank);
if (efuse_data == 0xFF)
break;
if (EXT_HEADER(efuse_data)) {
hoffset = GET_HDR_OFFSET_2_0(efuse_data);
efuse_addr++;
rtw_efuse_bt_access(padapter, _FALSE, efuse_addr, 1, &efuse_data);
RTW_INFO("%s: efuse_OneByteRead EXT_HEADER ! addr=0x%X !efuse_data=0x%X! bank =%d\n", __FUNCTION__, efuse_addr, efuse_data, bank);
if (ALL_WORDS_DISABLED(efuse_data)) {
efuse_addr++;
continue;
}
/* hoffset = ((hoffset & 0xE0) >> 5) | ((efuse_data & 0xF0) >> 1); */
hoffset |= ((efuse_data & 0xF0) >> 1);
hworden = efuse_data & 0x0F;
} else {
hoffset = (efuse_data >> 4) & 0x0F;
hworden = efuse_data & 0x0F;
}
RTW_INFO(FUNC_ADPT_FMT": Offset=%d Worden=%#X\n",
FUNC_ADPT_ARG(padapter), hoffset, hworden);
word_cnts = Efuse_CalculateWordCnts(hworden);
/* read next header */
efuse_addr += (word_cnts * 2) + 1;
}
/* Check if we need to check next bank efuse */
if (efuse_addr < retU2)
break;/* don't need to check next bank. */
}
retU2 = ((bank - 1) * EFUSE_BT_REAL_BANK_CONTENT_LEN) + efuse_addr;
fakeBTEfuseUsedBytes = retU2;
RTW_INFO("%s: CurrentSize=%d\n", __FUNCTION__, retU2);
return retU2;
}
u8 rtw_BT_efuse_map_write(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
{
#define RT_ASSERT_RET(expr) \
if (!(expr)) { \
printk("Assertion failed! %s at ......\n", #expr); \
printk(" ......%s,%s, line=%d\n",__FILE__, __FUNCTION__, __LINE__); \
return _FAIL; \
}
u8 offset, word_en;
u8 *efuse = NULL;
u8 *map;
u8 newdata[PGPKT_DATA_SIZE];
s32 i = 0, j = 0, idx = 0, chk_total_byte = 0;
u8 ret = _SUCCESS;
u16 mapLen = 1024;
u16 startAddr = 0;
if ((addr + cnts) > mapLen)
return _FAIL;
RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); /* have to be 8 byte alignment */
RT_ASSERT_RET((mapLen & 0x7) == 0); /* have to be PGPKT_DATA_SIZE alignment for memcpy */
efuse = rtw_zmalloc(mapLen);
if (!efuse)
return _FAIL;
map = rtw_zmalloc(mapLen);
if (map == NULL) {
rtw_mfree(efuse, mapLen);
return _FAIL;
}
_rtw_memset(map, 0xFF, mapLen);
ret = rtw_BT_efuse_map_read(adapter, 0, mapLen, map);
if (ret == _FAIL)
goto exit;
_rtw_memcpy(efuse , map, mapLen);
_rtw_memcpy(efuse + addr, data, cnts);
if (adapter->registrypriv.boffefusemask == 0) {
for (i = 0; i < cnts; i++) {
if (adapter->registrypriv.bFileMaskEfuse == _TRUE) {
if (rtw_file_efuse_IsMasked(adapter, addr + i, btmaskfileBuffer)) /*use file efuse mask. */
efuse[addr + i] = map[addr + i];
} else {
if (efuse_IsBT_Masked(adapter, addr + i))
efuse[addr + i] = map[addr + i];
}
RTW_INFO("%s , efuse[%x] = %x, map = %x\n", __func__, addr + i, efuse[ addr + i], map[addr + i]);
}
}
/* precheck pg efuse data byte*/
chk_total_byte = 0;
idx = 0;
offset = (addr >> 3);
while (idx < cnts) {
word_en = 0xF;
j = (addr + idx) & 0x7;
for (i = j; i < PGPKT_DATA_SIZE && idx < cnts; i++, idx++) {
if (efuse[addr + idx] != map[addr + idx])
word_en &= ~BIT(i >> 1);
}
if (word_en != 0xF) {
chk_total_byte += Efuse_CalculateWordCnts(word_en) * 2;
if (offset >= EFUSE_MAX_SECTION_BASE) /* Over EFUSE_MAX_SECTION 16 for 2 ByteHeader */
chk_total_byte += 2;
else
chk_total_byte += 1;
}
offset++;
}
RTW_INFO("Total PG bytes Count = %d\n", chk_total_byte);
startAddr = hal_EfuseGetCurrentSize_BT(adapter, _FALSE);
RTW_INFO("%s: startAddr=%#X\n", __func__, startAddr);
if (!AVAILABLE_EFUSE_ADDR(startAddr + chk_total_byte)) {
RTW_INFO("%s: startAddr(0x%X) + PG data len %d >= efuse BT available offset (0x%X)\n",
__func__, startAddr, chk_total_byte, EFUSE_BT_REAL_CONTENT_LEN - EFUSE_PROTECT_BYTES_BANK);
ret = _FAIL;
goto exit;
}
idx = 0;
offset = (addr >> 3);
while (idx < cnts) {
word_en = 0xF;
j = (addr + idx) & 0x7;
_rtw_memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
for (i = j; i < PGPKT_DATA_SIZE && idx < cnts; i++, idx++) {
if (efuse[addr + idx] != map[addr + idx]) {
word_en &= ~BIT(i >> 1);
newdata[i] = efuse[addr + idx];
}
}
if (word_en != 0xF) {
ret = EfusePgPacketWrite_BT(adapter, offset, word_en, newdata, _FALSE);
RTW_INFO("offset=%x\n", offset);
RTW_INFO("word_en=%x\n", word_en);
RTW_INFO("%s: data=", __FUNCTION__);
for (i = 0; i < PGPKT_DATA_SIZE; i++)
RTW_INFO("0x%02X ", newdata[i]);
RTW_INFO("\n");
if (ret == _FAIL)
break;
}
offset++;
}
exit:
rtw_mfree(map, mapLen);
return ret;
}
void hal_ReadEFuse_BT_logic_map(
PADAPTER padapter,
u16 _offset,
u16 _size_byte,
u8 *pbuf
)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal;
u8 *efuseTbl, *phyefuse;
u8 bank;
u16 eFuse_Addr = 0;
u8 efuseHeader, efuseExtHdr, efuseData;
u8 offset, wden;
u16 i, total, used;
u8 efuse_usage;
/* */
/* Do NOT excess total size of EFuse table. Added by Roger, 2008.11.10. */
/* */
if ((_offset + _size_byte) > EFUSE_BT_MAP_LEN) {
RTW_INFO("%s: Invalid offset(%#x) with read bytes(%#x)!!\n", __FUNCTION__, _offset, _size_byte);
return;
}
efuseTbl = rtw_malloc(EFUSE_BT_MAP_LEN);
phyefuse = rtw_malloc(EFUSE_BT_REAL_CONTENT_LEN);
if (efuseTbl == NULL || phyefuse == NULL) {
RTW_INFO("%s: efuseTbl or phyefuse malloc fail!\n", __FUNCTION__);
goto exit;
}
/* 0xff will be efuse default value instead of 0x00. */
_rtw_memset(efuseTbl, 0xFF, EFUSE_BT_MAP_LEN);
_rtw_memset(phyefuse, 0xFF, EFUSE_BT_REAL_CONTENT_LEN);
if (rtw_efuse_bt_access(padapter, _FALSE, 0, EFUSE_BT_REAL_CONTENT_LEN, phyefuse))
dump_buf(phyefuse, EFUSE_BT_REAL_BANK_CONTENT_LEN);
total = BANK_NUM;
for (bank = 1; bank <= total; bank++) { /* 8723d Max bake 0~2 */
eFuse_Addr = 0;
while (AVAILABLE_EFUSE_ADDR(eFuse_Addr)) {
/* ReadEFuseByte(padapter, eFuse_Addr++, &efuseHeader, bPseudoTest); */
efuseHeader = phyefuse[eFuse_Addr++];
if (efuseHeader == 0xFF)
break;
RTW_INFO("%s: efuse[%#X]=0x%02x (header)\n", __FUNCTION__, (((bank - 1) * EFUSE_BT_REAL_CONTENT_LEN) + eFuse_Addr - 1), efuseHeader);
/* Check PG header for section num. */
if (EXT_HEADER(efuseHeader)) { /* extended header */
offset = GET_HDR_OFFSET_2_0(efuseHeader);
RTW_INFO("%s: extended header offset_2_0=0x%X\n", __FUNCTION__, offset);
/* ReadEFuseByte(padapter, eFuse_Addr++, &efuseExtHdr, bPseudoTest); */
efuseExtHdr = phyefuse[eFuse_Addr++];
RTW_INFO("%s: efuse[%#X]=0x%02x (ext header)\n", __FUNCTION__, (((bank - 1) * EFUSE_BT_REAL_CONTENT_LEN) + eFuse_Addr - 1), efuseExtHdr);
if (ALL_WORDS_DISABLED(efuseExtHdr))
continue;
offset |= ((efuseExtHdr & 0xF0) >> 1);
wden = (efuseExtHdr & 0x0F);
} else {
offset = ((efuseHeader >> 4) & 0x0f);
wden = (efuseHeader & 0x0f);
}
if (offset < EFUSE_BT_MAX_SECTION) {
u16 addr;
/* Get word enable value from PG header */
RTW_INFO("%s: Offset=%d Worden=%#X\n", __FUNCTION__, offset, wden);
addr = offset * PGPKT_DATA_SIZE;
for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
/* Check word enable condition in the section */
if (!(wden & (0x01 << i))) {
efuseData = 0;
/* ReadEFuseByte(padapter, eFuse_Addr++, &efuseData, bPseudoTest); */
efuseData = phyefuse[eFuse_Addr++];
RTW_INFO("%s: efuse[%#X]=0x%02X\n", __FUNCTION__, eFuse_Addr - 1, efuseData);
efuseTbl[addr] = efuseData;
efuseData = 0;
/* ReadEFuseByte(padapter, eFuse_Addr++, &efuseData, bPseudoTest); */
efuseData = phyefuse[eFuse_Addr++];
RTW_INFO("%s: efuse[%#X]=0x%02X\n", __FUNCTION__, eFuse_Addr - 1, efuseData);
efuseTbl[addr + 1] = efuseData;
}
addr += 2;
}
} else {
RTW_INFO("%s: offset(%d) is illegal!!\n", __FUNCTION__, offset);
eFuse_Addr += Efuse_CalculateWordCnts(wden) * 2;
}
}
if ((eFuse_Addr - 1) < total) {
RTW_INFO("%s: bank(%d) data end at %#x\n", __FUNCTION__, bank, eFuse_Addr - 1);
break;
}
}
/* switch bank back to bank 0 for later BT and wifi use. */
//hal_EfuseSwitchToBank(padapter, 0, bPseudoTest);
/* Copy from Efuse map to output pointer memory!!! */
for (i = 0; i < _size_byte; i++)
pbuf[i] = efuseTbl[_offset + i];
/* Calculate Efuse utilization */
total = EFUSE_BT_REAL_BANK_CONTENT_LEN;
used = eFuse_Addr - 1;
if (total)
efuse_usage = (u8)((used * 100) / total);
else
efuse_usage = 100;
fakeBTEfuseUsedBytes = used;
RTW_INFO("%s: BTEfuseUsed last Bytes = %#x\n", __FUNCTION__, fakeBTEfuseUsedBytes);
exit:
if (efuseTbl)
rtw_mfree(efuseTbl, EFUSE_BT_MAP_LEN);
if (phyefuse)
rtw_mfree(phyefuse, EFUSE_BT_REAL_BANK_CONTENT_LEN);
}
static u8 hal_EfusePartialWriteCheck(
PADAPTER padapter,
u8 efuseType,
u16 *pAddr,
PPGPKT_STRUCT pTargetPkt,
u8 bPseudoTest)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal;
u8 bRet = _FALSE;
u16 startAddr = 0, efuse_max_available_len = EFUSE_BT_REAL_BANK_CONTENT_LEN, efuse_max = EFUSE_BT_REAL_BANK_CONTENT_LEN;
u8 efuse_data = 0;
startAddr = (u16)fakeBTEfuseUsedBytes;
startAddr %= efuse_max;
RTW_INFO("%s: startAddr=%#X\n", __FUNCTION__, startAddr);
while (1) {
if (startAddr >= efuse_max_available_len) {
bRet = _FALSE;
RTW_INFO("%s: startAddr(%d) >= efuse_max_available_len(%d)\n",
__FUNCTION__, startAddr, efuse_max_available_len);
break;
}
if (rtw_efuse_bt_access(padapter, _FALSE, startAddr, 1, &efuse_data)&& (efuse_data != 0xFF)) {
bRet = _FALSE;
RTW_INFO("%s: Something Wrong! last bytes(%#X=0x%02X) is not 0xFF\n",
__FUNCTION__, startAddr, efuse_data);
break;
} else {
/* not used header, 0xff */
*pAddr = startAddr;
/* RTW_INFO("%s: Started from unused header offset=%d\n", __FUNCTION__, startAddr)); */
bRet = _TRUE;
break;
}
}
return bRet;
}
static u8 hal_EfusePgPacketWrite2ByteHeader(
PADAPTER padapter,
u8 efuseType,
u16 *pAddr,
PPGPKT_STRUCT pTargetPkt,
u8 bPseudoTest)
{
u16 efuse_addr, efuse_max_available_len = EFUSE_BT_REAL_BANK_CONTENT_LEN;
u8 pg_header = 0, tmp_header = 0;
u8 repeatcnt = 0;
/* RTW_INFO("%s\n", __FUNCTION__); */
efuse_addr = *pAddr;
if (efuse_addr >= efuse_max_available_len) {
RTW_INFO("%s: addr(%d) over avaliable(%d)!!\n", __FUNCTION__, efuse_addr, efuse_max_available_len);
return _FALSE;
}
pg_header = ((pTargetPkt->offset & 0x07) << 5) | 0x0F;
/* RTW_INFO("%s: pg_header=0x%x\n", __FUNCTION__, pg_header); */
do {
rtw_efuse_bt_access(padapter, _TRUE, efuse_addr, 1, &pg_header);
rtw_efuse_bt_access(padapter, _FALSE, efuse_addr, 1, &tmp_header);
if (tmp_header != 0xFF)
break;
if (repeatcnt++ > EFUSE_REPEAT_THRESHOLD_) {
RTW_INFO("%s: Repeat over limit for pg_header!!\n", __FUNCTION__);
return _FALSE;
}
} while (1);
if (tmp_header != pg_header) {
RTW_ERR("%s: PG Header Fail!!(pg=0x%02X read=0x%02X)\n", __FUNCTION__, pg_header, tmp_header);
return _FALSE;
}
/* to write ext_header */
efuse_addr++;
pg_header = ((pTargetPkt->offset & 0x78) << 1) | pTargetPkt->word_en;
do {
rtw_efuse_bt_access(padapter, _TRUE, efuse_addr, 1, &pg_header);
rtw_efuse_bt_access(padapter, _FALSE, efuse_addr, 1, &tmp_header);
if (tmp_header != 0xFF)
break;
if (repeatcnt++ > EFUSE_REPEAT_THRESHOLD_) {
RTW_INFO("%s: Repeat over limit for ext_header!!\n", __FUNCTION__);
return _FALSE;
}
} while (1);
if (tmp_header != pg_header) { /* offset PG fail */
RTW_ERR("%s: PG EXT Header Fail!!(pg=0x%02X read=0x%02X)\n", __FUNCTION__, pg_header, tmp_header);
return _FALSE;
}
*pAddr = efuse_addr;
return _TRUE;
}
static u8 hal_EfusePgPacketWrite1ByteHeader(
PADAPTER pAdapter,
u8 efuseType,
u16 *pAddr,
PPGPKT_STRUCT pTargetPkt,
u8 bPseudoTest)
{
u8 bRet = _FALSE;
u8 pg_header = 0, tmp_header = 0;
u16 efuse_addr = *pAddr;
u8 repeatcnt = 0;
/* RTW_INFO("%s\n", __FUNCTION__); */
pg_header = ((pTargetPkt->offset << 4) & 0xf0) | pTargetPkt->word_en;
do {
rtw_efuse_bt_access(pAdapter, _TRUE, efuse_addr, 1, &pg_header);
rtw_efuse_bt_access(pAdapter, _FALSE, efuse_addr, 1, &tmp_header);
if (tmp_header != 0xFF)
break;
if (repeatcnt++ > EFUSE_REPEAT_THRESHOLD_) {
RTW_INFO("%s: Repeat over limit for pg_header!!\n", __FUNCTION__);
return _FALSE;
}
} while (1);
if (tmp_header != pg_header) {
RTW_ERR("%s: PG Header Fail!!(pg=0x%02X read=0x%02X)\n", __FUNCTION__, pg_header, tmp_header);
return _FALSE;
}
*pAddr = efuse_addr;
return _TRUE;
}
static u8 hal_EfusePgPacketWriteHeader(
PADAPTER padapter,
u8 efuseType,
u16 *pAddr,
PPGPKT_STRUCT pTargetPkt,
u8 bPseudoTest)
{
u8 bRet = _FALSE;
if (pTargetPkt->offset >= EFUSE_MAX_SECTION_BASE)
bRet = hal_EfusePgPacketWrite2ByteHeader(padapter, efuseType, pAddr, pTargetPkt, bPseudoTest);
else
bRet = hal_EfusePgPacketWrite1ByteHeader(padapter, efuseType, pAddr, pTargetPkt, bPseudoTest);
return bRet;
}
static u8
Hal_EfuseWordEnableDataWrite(
PADAPTER padapter,
u16 efuse_addr,
u8 word_en,
u8 *data,
u8 bPseudoTest)
{
u16 tmpaddr = 0;
u16 start_addr = efuse_addr;
u8 badworden = 0x0F;
u8 tmpdata[PGPKT_DATA_SIZE];
/* RTW_INFO("%s: efuse_addr=%#x word_en=%#x\n", __FUNCTION__, efuse_addr, word_en); */
_rtw_memset(tmpdata, 0xFF, PGPKT_DATA_SIZE);
if (!(word_en & BIT(0))) {
tmpaddr = start_addr;
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[0]);
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[1]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr, 1, &tmpdata[0]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr + 1, 1, &tmpdata[1]);
if ((data[0] != tmpdata[0]) || (data[1] != tmpdata[1]))
badworden &= (~BIT(0));
}
if (!(word_en & BIT(1))) {
tmpaddr = start_addr;
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[2]);
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[3]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr, 1, &tmpdata[2]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr + 1, 1, &tmpdata[3]);
if ((data[2] != tmpdata[2]) || (data[3] != tmpdata[3]))
badworden &= (~BIT(1));
}
if (!(word_en & BIT(2))) {
tmpaddr = start_addr;
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[4]);
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[5]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr, 1, &tmpdata[4]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr + 1, 1, &tmpdata[5]);
if ((data[4] != tmpdata[4]) || (data[5] != tmpdata[5]))
badworden &= (~BIT(2));
}
if (!(word_en & BIT(3))) {
tmpaddr = start_addr;
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[6]);
rtw_efuse_bt_access(padapter, _TRUE, start_addr++, 1, &data[7]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr, 1, &tmpdata[6]);
rtw_efuse_bt_access(padapter, _FALSE, tmpaddr + 1, 1, &tmpdata[7]);
if ((data[6] != tmpdata[6]) || (data[7] != tmpdata[7]))
badworden &= (~BIT(3));
}
return badworden;
}
static void
hal_EfuseConstructPGPkt(
u8 offset,
u8 word_en,
u8 *pData,
PPGPKT_STRUCT pTargetPkt)
{
_rtw_memset(pTargetPkt->data, 0xFF, PGPKT_DATA_SIZE);
pTargetPkt->offset = offset;
pTargetPkt->word_en = word_en;
efuse_WordEnableDataRead(word_en, pData, pTargetPkt->data);
pTargetPkt->word_cnts = Efuse_CalculateWordCnts(pTargetPkt->word_en);
}
static u8
hal_EfusePgPacketWriteData(
PADAPTER pAdapter,
u8 efuseType,
u16 *pAddr,
PPGPKT_STRUCT pTargetPkt,
u8 bPseudoTest)
{
u16 efuse_addr;
u8 badworden;
efuse_addr = *pAddr;
badworden = Hal_EfuseWordEnableDataWrite(pAdapter, efuse_addr + 1, pTargetPkt->word_en, pTargetPkt->data, bPseudoTest);
if (badworden != 0x0F) {
RTW_INFO("%s: Fail!!\n", __FUNCTION__);
return _FALSE;
} else
RTW_INFO("%s: OK!!\n", __FUNCTION__);
return _TRUE;
}
u8 efuse_OneByteRead(struct _ADAPTER *a, u16 addr, u8 *data, u8 bPseudoTest)
{
struct dvobj_priv *d;
int err;
u8 ret = _TRUE;
d = adapter_to_dvobj(a);
err = rtw_halmac_read_physical_efuse(d, addr, 1, data);
if (err) {
RTW_ERR("%s: addr=0x%x FAIL!!!\n", __FUNCTION__, addr);
ret = _FALSE;
}
return ret;
}
static u8
hal_BT_EfusePgCheckAvailableAddr(
PADAPTER pAdapter,
u8 bPseudoTest)
{
u16 max_available = EFUSE_BT_REAL_CONTENT_LEN - EFUSE_PROTECT_BYTES_BANK;
u16 current_size = 0;
RTW_INFO("%s: max_available=%d\n", __FUNCTION__, max_available);
current_size = hal_EfuseGetCurrentSize_BT(pAdapter, bPseudoTest);
if (current_size >= max_available) {
RTW_INFO("%s: Error!! current_size(%d)>max_available(%d)\n", __FUNCTION__, current_size, max_available);
return _FALSE;
}
return _TRUE;
}
u8 EfusePgPacketWrite_BT(
PADAPTER pAdapter,
u8 offset,
u8 word_en,
u8 *pData,
u8 bPseudoTest)
{
PGPKT_STRUCT targetPkt;
u16 startAddr = 0;
u8 efuseType = EFUSE_BT;
if (!hal_BT_EfusePgCheckAvailableAddr(pAdapter, bPseudoTest))
return _FALSE;
hal_EfuseConstructPGPkt(offset, word_en, pData, &targetPkt);
if (!hal_EfusePartialWriteCheck(pAdapter, efuseType, &startAddr, &targetPkt, bPseudoTest))
return _FALSE;
if (!hal_EfusePgPacketWriteHeader(pAdapter, efuseType, &startAddr, &targetPkt, bPseudoTest))
return _FALSE;
if (!hal_EfusePgPacketWriteData(pAdapter, efuseType, &startAddr, &targetPkt, bPseudoTest))
return _FALSE;
return _TRUE;
}
#else /* !RTW_HALMAC */
/* ------------------------------------------------------------------------------ */
#define REG_EFUSE_CTRL 0x0030
#define EFUSE_CTRL REG_EFUSE_CTRL /* E-Fuse Control. */
/* ------------------------------------------------------------------------------ */
BOOLEAN
Efuse_Read1ByteFromFakeContent(
PADAPTER pAdapter,
u16 Offset,
u8 *Value);
BOOLEAN
Efuse_Read1ByteFromFakeContent(
PADAPTER pAdapter,
u16 Offset,
u8 *Value)
{
if (Offset >= EFUSE_MAX_HW_SIZE)
return _FALSE;
/* DbgPrint("Read fake content, offset = %d\n", Offset); */
if (fakeEfuseBank == 0)
*Value = fakeEfuseContent[Offset];
else
*Value = fakeBTEfuseContent[fakeEfuseBank - 1][Offset];
return _TRUE;
}
BOOLEAN
Efuse_Write1ByteToFakeContent(
PADAPTER pAdapter,
u16 Offset,
u8 Value);
BOOLEAN
Efuse_Write1ByteToFakeContent(
PADAPTER pAdapter,
u16 Offset,
u8 Value)
{
if (Offset >= EFUSE_MAX_HW_SIZE)
return _FALSE;
if (fakeEfuseBank == 0)
fakeEfuseContent[Offset] = Value;
else
fakeBTEfuseContent[fakeEfuseBank - 1][Offset] = Value;
return _TRUE;
}
/*-----------------------------------------------------------------------------
* Function: Efuse_PowerSwitch
*
* Overview: When we want to enable write operation, we should change to
* pwr on state. When we stop write, we should switch to 500k mode
* and disable LDO 2.5V.
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/17/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
void
Efuse_PowerSwitch(
PADAPTER pAdapter,
u8 bWrite,
u8 PwrState)
{
pAdapter->hal_func.EfusePowerSwitch(pAdapter, bWrite, PwrState);
}
void
BTEfuse_PowerSwitch(
PADAPTER pAdapter,
u8 bWrite,
u8 PwrState)
{
if (pAdapter->hal_func.BTEfusePowerSwitch)
pAdapter->hal_func.BTEfusePowerSwitch(pAdapter, bWrite, PwrState);
}
/*-----------------------------------------------------------------------------
* Function: efuse_GetCurrentSize
*
* Overview: Get current efuse size!!!
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/16/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
u16
Efuse_GetCurrentSize(
PADAPTER pAdapter,
u8 efuseType,
BOOLEAN bPseudoTest)
{
u16 ret = 0;
ret = pAdapter->hal_func.EfuseGetCurrentSize(pAdapter, efuseType, bPseudoTest);
return ret;
}
/*
* Description:
* Execute E-Fuse read byte operation.
* Refered from SD1 Richard.
*
* Assumption:
* 1. Boot from E-Fuse and successfully auto-load.
* 2. PASSIVE_LEVEL (USB interface)
*
* Created by Roger, 2008.10.21.
* */
void
ReadEFuseByte(
PADAPTER Adapter,
u16 _offset,
u8 *pbuf,
BOOLEAN bPseudoTest)
{
u32 value32;
u8 readbyte;
u16 retry;
/* systime start=rtw_get_current_time(); */
if (bPseudoTest) {
Efuse_Read1ByteFromFakeContent(Adapter, _offset, pbuf);
return;
}
if (IS_HARDWARE_TYPE_8723B(Adapter)) {
/* <20130121, Kordan> For SMIC S55 EFUSE specificatoin. */
/* 0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8]) */
phy_set_mac_reg(Adapter, EFUSE_TEST, BIT11, 0);
}
/* Write Address */
rtw_write8(Adapter, EFUSE_CTRL + 1, (_offset & 0xff));
readbyte = rtw_read8(Adapter, EFUSE_CTRL + 2);
rtw_write8(Adapter, EFUSE_CTRL + 2, ((_offset >> 8) & 0x03) | (readbyte & 0xfc));
/* Write bit 32 0 */
readbyte = rtw_read8(Adapter, EFUSE_CTRL + 3);
rtw_write8(Adapter, EFUSE_CTRL + 3, (readbyte & 0x7f));
/* Check bit 32 read-ready */
retry = 0;
value32 = rtw_read32(Adapter, EFUSE_CTRL);
/* while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10)) */
while (!(((value32 >> 24) & 0xff) & 0x80) && (retry < 10000)) {
value32 = rtw_read32(Adapter, EFUSE_CTRL);
retry++;
}
/* 20100205 Joseph: Add delay suggested by SD1 Victor. */
/* This fix the problem that Efuse read error in high temperature condition. */
/* Designer says that there shall be some delay after ready bit is set, or the */
/* result will always stay on last data we read. */
rtw_udelay_os(50);
value32 = rtw_read32(Adapter, EFUSE_CTRL);
*pbuf = (u8)(value32 & 0xff);
/* RTW_INFO("ReadEFuseByte _offset:%08u, in %d ms\n",_offset ,rtw_get_passing_time_ms(start)); */
}
/*
* Description:
* 1. Execute E-Fuse read byte operation according as map offset and
* save to E-Fuse table.
* 2. Refered from SD1 Richard.
*
* Assumption:
* 1. Boot from E-Fuse and successfully auto-load.
* 2. PASSIVE_LEVEL (USB interface)
*
* Created by Roger, 2008.10.21.
*
* 2008/12/12 MH 1. Reorganize code flow and reserve bytes. and add description.
* 2. Add efuse utilization collect.
* 2008/12/22 MH Read Efuse must check if we write section 1 data again!!! Sec1
* write addr must be after sec5.
* */
void
efuse_ReadEFuse(
PADAPTER Adapter,
u8 efuseType,
u16 _offset,
u16 _size_byte,
u8 *pbuf,
BOOLEAN bPseudoTest
);
void
efuse_ReadEFuse(
PADAPTER Adapter,
u8 efuseType,
u16 _offset,
u16 _size_byte,
u8 *pbuf,
BOOLEAN bPseudoTest
)
{
Adapter->hal_func.ReadEFuse(Adapter, efuseType, _offset, _size_byte, pbuf, bPseudoTest);
}
void
EFUSE_GetEfuseDefinition(
PADAPTER pAdapter,
u8 efuseType,
u8 type,
void *pOut,
BOOLEAN bPseudoTest
)
{
pAdapter->hal_func.EFUSEGetEfuseDefinition(pAdapter, efuseType, type, pOut, bPseudoTest);
}
/* 11/16/2008 MH Read one byte from real Efuse. */
u8
efuse_OneByteRead(
PADAPTER pAdapter,
u16 addr,
u8 *data,
BOOLEAN bPseudoTest)
{
u32 tmpidx = 0;
u8 bResult;
u8 readbyte;
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
/* RTW_INFO("===> EFUSE_OneByteRead(), addr = %x\n", addr); */
/* RTW_INFO("===> EFUSE_OneByteRead() start, 0x34 = 0x%X\n", rtw_read32(pAdapter, EFUSE_TEST)); */
if (bPseudoTest) {
bResult = Efuse_Read1ByteFromFakeContent(pAdapter, addr, data);
return bResult;
}
#ifdef CONFIG_RTL8710B
/* <20171208, Peter>, Dont do the following write16(0x34) */
if (IS_HARDWARE_TYPE_8710B(pAdapter)) {
bResult = pAdapter->hal_func.efuse_indirect_read4(pAdapter, addr, data);
return bResult;
}
#endif
if (IS_HARDWARE_TYPE_8723B(pAdapter) ||
(IS_HARDWARE_TYPE_8192E(pAdapter) && (!IS_A_CUT(pHalData->version_id))) ||
(IS_VENDOR_8188E_I_CUT_SERIES(pAdapter)) || (IS_CHIP_VENDOR_SMIC(pHalData->version_id))
) {
/* <20130121, Kordan> For SMIC EFUSE specificatoin. */
/* 0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8]) */
/* phy_set_mac_reg(pAdapter, 0x34, BIT11, 0); */
rtw_write16(pAdapter, 0x34, rtw_read16(pAdapter, 0x34) & (~BIT11));
}
/* -----------------e-fuse reg ctrl --------------------------------- */
/* address */
rtw_write8(pAdapter, EFUSE_CTRL + 1, (u8)(addr & 0xff));
rtw_write8(pAdapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) |
(rtw_read8(pAdapter, EFUSE_CTRL + 2) & 0xFC));
/* rtw_write8(pAdapter, EFUSE_CTRL+3, 0x72); */ /* read cmd */
/* Write bit 32 0 */
readbyte = rtw_read8(pAdapter, EFUSE_CTRL + 3);
rtw_write8(pAdapter, EFUSE_CTRL + 3, (readbyte & 0x7f));
while (!(0x80 & rtw_read8(pAdapter, EFUSE_CTRL + 3)) && (tmpidx < 1000)) {
rtw_mdelay_os(1);
tmpidx++;
}
if (tmpidx < 100) {
*data = rtw_read8(pAdapter, EFUSE_CTRL);
bResult = _TRUE;
} else {
*data = 0xff;
bResult = _FALSE;
RTW_INFO("%s: [ERROR] addr=0x%x bResult=%d time out 1s !!!\n", __FUNCTION__, addr, bResult);
RTW_INFO("%s: [ERROR] EFUSE_CTRL =0x%08x !!!\n", __FUNCTION__, rtw_read32(pAdapter, EFUSE_CTRL));
}
return bResult;
}
/* 11/16/2008 MH Write one byte to reald Efuse. */
u8
efuse_OneByteWrite(
PADAPTER pAdapter,
u16 addr,
u8 data,
BOOLEAN bPseudoTest)
{
u8 tmpidx = 0;
u8 bResult = _FALSE;
u32 efuseValue = 0;
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
/* RTW_INFO("===> EFUSE_OneByteWrite(), addr = %x data=%x\n", addr, data); */
/* RTW_INFO("===> EFUSE_OneByteWrite() start, 0x34 = 0x%X\n", rtw_read32(pAdapter, EFUSE_TEST)); */
if (bPseudoTest) {
bResult = Efuse_Write1ByteToFakeContent(pAdapter, addr, data);
return bResult;
}
Efuse_PowerSwitch(pAdapter, _TRUE, _TRUE);
/* -----------------e-fuse reg ctrl --------------------------------- */
/* address */
efuseValue = rtw_read32(pAdapter, EFUSE_CTRL);
efuseValue |= (BIT21 | BIT31);
efuseValue &= ~(0x3FFFF);
efuseValue |= ((addr << 8 | data) & 0x3FFFF);
/* <20130227, Kordan> 8192E MP chip A-cut had better not set 0x34[11] until B-Cut. */
if (IS_HARDWARE_TYPE_8723B(pAdapter) ||
(IS_HARDWARE_TYPE_8192E(pAdapter) && (!IS_A_CUT(pHalData->version_id))) ||
(IS_VENDOR_8188E_I_CUT_SERIES(pAdapter)) || (IS_CHIP_VENDOR_SMIC(pHalData->version_id))
) {
/* <20130121, Kordan> For SMIC EFUSE specificatoin. */
/* 0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8]) */
/* phy_set_mac_reg(pAdapter, 0x34, BIT11, 1); */
rtw_write16(pAdapter, 0x34, rtw_read16(pAdapter, 0x34) | (BIT11));
rtw_write32(pAdapter, EFUSE_CTRL, 0x90600000 | ((addr << 8 | data)));
} else
rtw_write32(pAdapter, EFUSE_CTRL, efuseValue);
rtw_mdelay_os(1);
while ((0x80 & rtw_read8(pAdapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) {
rtw_mdelay_os(1);
tmpidx++;
}
if (tmpidx < 100)
bResult = _TRUE;
else {
bResult = _FALSE;
RTW_INFO("%s: [ERROR] addr=0x%x ,efuseValue=0x%x ,bResult=%d time out 1s !!!\n",
__FUNCTION__, addr, efuseValue, bResult);
RTW_INFO("%s: [ERROR] EFUSE_CTRL =0x%08x !!!\n", __FUNCTION__, rtw_read32(pAdapter, EFUSE_CTRL));
}
/* disable Efuse program enable */
if (IS_HARDWARE_TYPE_8723B(pAdapter) ||
(IS_HARDWARE_TYPE_8192E(pAdapter) && (!IS_A_CUT(pHalData->version_id))) ||
(IS_VENDOR_8188E_I_CUT_SERIES(pAdapter)) || (IS_CHIP_VENDOR_SMIC(pHalData->version_id))
)
phy_set_mac_reg(pAdapter, EFUSE_TEST, BIT(11), 0);
Efuse_PowerSwitch(pAdapter, _TRUE, _FALSE);
return bResult;
}
int
Efuse_PgPacketRead(PADAPTER pAdapter,
u8 offset,
u8 *data,
BOOLEAN bPseudoTest)
{
int ret = 0;
ret = pAdapter->hal_func.Efuse_PgPacketRead(pAdapter, offset, data, bPseudoTest);
return ret;
}
int
Efuse_PgPacketWrite(PADAPTER pAdapter,
u8 offset,
u8 word_en,
u8 *data,
BOOLEAN bPseudoTest)
{
int ret;
ret = pAdapter->hal_func.Efuse_PgPacketWrite(pAdapter, offset, word_en, data, bPseudoTest);
return ret;
}
int
Efuse_PgPacketWrite_BT(PADAPTER pAdapter,
u8 offset,
u8 word_en,
u8 *data,
BOOLEAN bPseudoTest)
{
int ret;
ret = pAdapter->hal_func.Efuse_PgPacketWrite_BT(pAdapter, offset, word_en, data, bPseudoTest);
return ret;
}
u8
Efuse_WordEnableDataWrite(PADAPTER pAdapter,
u16 efuse_addr,
u8 word_en,
u8 *data,
BOOLEAN bPseudoTest)
{
u8 ret = 0;
ret = pAdapter->hal_func.Efuse_WordEnableDataWrite(pAdapter, efuse_addr, word_en, data, bPseudoTest);
return ret;
}
static u8 efuse_read8(PADAPTER padapter, u16 address, u8 *value)
{
return efuse_OneByteRead(padapter, address, value, _FALSE);
}
static u8 efuse_write8(PADAPTER padapter, u16 address, u8 *value)
{
return efuse_OneByteWrite(padapter, address, *value, _FALSE);
}
/*
* read/wirte raw efuse data
*/
u8 rtw_efuse_access(PADAPTER padapter, u8 bWrite, u16 start_addr, u16 cnts, u8 *data)
{
int i = 0;
u16 real_content_len = 0, max_available_size = 0;
u8 res = _FAIL ;
u8(*rw8)(PADAPTER, u16, u8 *);
u32 backupRegs[4] = {0};
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&real_content_len, _FALSE);
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_available_size, _FALSE);
if (start_addr > real_content_len)
return _FAIL;
if (_TRUE == bWrite) {
if ((start_addr + cnts) > max_available_size)
return _FAIL;
rw8 = &efuse_write8;
} else
rw8 = &efuse_read8;
efuse_PreUpdateAction(padapter, backupRegs);
Efuse_PowerSwitch(padapter, bWrite, _TRUE);
/* e-fuse one byte read / write */
for (i = 0; i < cnts; i++) {
if (start_addr >= real_content_len) {
res = _FAIL;
break;
}
res = rw8(padapter, start_addr++, data++);
if (_FAIL == res)
break;
}
Efuse_PowerSwitch(padapter, bWrite, _FALSE);
efuse_PostUpdateAction(padapter, backupRegs);
return res;
}
/* ------------------------------------------------------------------------------ */
u16 efuse_GetMaxSize(PADAPTER padapter)
{
u16 max_size;
max_size = 0;
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI , TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_size, _FALSE);
return max_size;
}
/* ------------------------------------------------------------------------------ */
u8 efuse_GetCurrentSize(PADAPTER padapter, u16 *size)
{
Efuse_PowerSwitch(padapter, _FALSE, _TRUE);
*size = Efuse_GetCurrentSize(padapter, EFUSE_WIFI, _FALSE);
Efuse_PowerSwitch(padapter, _FALSE, _FALSE);
return _SUCCESS;
}
/* ------------------------------------------------------------------------------ */
u16 efuse_bt_GetMaxSize(PADAPTER padapter)
{
u16 max_size;
max_size = 0;
EFUSE_GetEfuseDefinition(padapter, EFUSE_BT , TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_size, _FALSE);
return max_size;
}
u8 efuse_bt_GetCurrentSize(PADAPTER padapter, u16 *size)
{
Efuse_PowerSwitch(padapter, _FALSE, _TRUE);
*size = Efuse_GetCurrentSize(padapter, EFUSE_BT, _FALSE);
Efuse_PowerSwitch(padapter, _FALSE, _FALSE);
return _SUCCESS;
}
u8 rtw_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
u16 mapLen = 0;
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, _FALSE);
if ((addr + cnts) > mapLen)
return _FAIL;
Efuse_PowerSwitch(padapter, _FALSE, _TRUE);
efuse_ReadEFuse(padapter, EFUSE_WIFI, addr, cnts, data, _FALSE);
Efuse_PowerSwitch(padapter, _FALSE, _FALSE);
return _SUCCESS;
}
u8 rtw_BT_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
u16 mapLen = 0;
EFUSE_GetEfuseDefinition(padapter, EFUSE_BT, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, _FALSE);
if ((addr + cnts) > mapLen)
return _FAIL;
Efuse_PowerSwitch(padapter, _FALSE, _TRUE);
efuse_ReadEFuse(padapter, EFUSE_BT, addr, cnts, data, _FALSE);
Efuse_PowerSwitch(padapter, _FALSE, _FALSE);
return _SUCCESS;
}
/* ------------------------------------------------------------------------------ */
u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
#define RT_ASSERT_RET(expr) \
if (!(expr)) { \
printk("Assertion failed! %s at ......\n", #expr); \
printk(" ......%s,%s, line=%d\n",__FILE__, __FUNCTION__, __LINE__); \
return _FAIL; \
}
u8 *efuse = NULL;
u8 offset, word_en;
u8 *map = NULL;
u8 newdata[PGPKT_DATA_SIZE];
s32 i, j, idx, chk_total_byte;
u8 ret = _SUCCESS;
u16 mapLen = 0, startAddr = 0, efuse_max_available_len = 0;
u32 backupRegs[4] = {0};
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal;
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, _FALSE);
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, &efuse_max_available_len, _FALSE);
if ((addr + cnts) > mapLen)
return _FAIL;
RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); /* have to be 8 byte alignment */
RT_ASSERT_RET((mapLen & 0x7) == 0); /* have to be PGPKT_DATA_SIZE alignment for memcpy */
efuse = rtw_zmalloc(mapLen);
if (!efuse)
return _FAIL;
map = rtw_zmalloc(mapLen);
if (map == NULL) {
rtw_mfree(efuse, mapLen);
return _FAIL;
}
_rtw_memset(map, 0xFF, mapLen);
ret = rtw_efuse_map_read(padapter, 0, mapLen, map);
if (ret == _FAIL)
goto exit;
_rtw_memcpy(efuse , map, mapLen);
_rtw_memcpy(efuse + addr, data, cnts);
if (padapter->registrypriv.boffefusemask == 0) {
for (i = 0; i < cnts; i++) {
if (padapter->registrypriv.bFileMaskEfuse == _TRUE) {
if (rtw_file_efuse_IsMasked(padapter, addr + i), maskfileBuffer) /*use file efuse mask. */
efuse[addr + i] = map[addr + i];
} else {
if (efuse_IsMasked(padapter, addr + i))
efuse[addr + i] = map[addr + i];
}
RTW_INFO("%s , data[%d] = %x, map[addr+i]= %x\n", __func__, addr + i, efuse[ addr + i], map[addr + i]);
}
}
/*Efuse_PowerSwitch(padapter, _TRUE, _TRUE);*/
chk_total_byte = 0;
idx = 0;
offset = (addr >> 3);
while (idx < cnts) {
word_en = 0xF;
j = (addr + idx) & 0x7;
for (i = j; i < PGPKT_DATA_SIZE && idx < cnts; i++, idx++) {
if (efuse[addr + idx] != map[addr + idx])
word_en &= ~BIT(i >> 1);
}
if (word_en != 0xF) {
chk_total_byte += Efuse_CalculateWordCnts(word_en) * 2;
if (offset >= EFUSE_MAX_SECTION_BASE) /* Over EFUSE_MAX_SECTION 16 for 2 ByteHeader */
chk_total_byte += 2;
else
chk_total_byte += 1;
}
offset++;
}
RTW_INFO("Total PG bytes Count = %d\n", chk_total_byte);
rtw_hal_get_hwreg(padapter, HW_VAR_EFUSE_BYTES, (u8 *)&startAddr);
if (startAddr == 0) {
startAddr = Efuse_GetCurrentSize(padapter, EFUSE_WIFI, _FALSE);
RTW_INFO("%s: Efuse_GetCurrentSize startAddr=%#X\n", __func__, startAddr);
}
RTW_DBG("%s: startAddr=%#X\n", __func__, startAddr);
if ((startAddr + chk_total_byte) >= efuse_max_available_len) {
RTW_INFO("%s: startAddr(0x%X) + PG data len %d >= efuse_max_available_len(0x%X)\n",
__func__, startAddr, chk_total_byte, efuse_max_available_len);
ret = _FAIL;
goto exit;
}
efuse_PreUpdateAction(padapter, backupRegs);
idx = 0;
offset = (addr >> 3);
while (idx < cnts) {
word_en = 0xF;
j = (addr + idx) & 0x7;
_rtw_memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
for (i = j; i < PGPKT_DATA_SIZE && idx < cnts; i++, idx++) {
if (efuse[addr + idx] != map[addr + idx]) {
word_en &= ~BIT(i >> 1);
newdata[i] = efuse[addr + idx];
#ifdef CONFIG_RTL8723B
if (addr + idx == 0x8) {
if (IS_C_CUT(pHalData->version_id) || IS_B_CUT(pHalData->version_id)) {
if (pHalData->adjuseVoltageVal == 6) {
newdata[i] = map[addr + idx];
RTW_INFO(" %s ,\n adjuseVoltageVal = %d ,newdata[%d] = %x\n", __func__, pHalData->adjuseVoltageVal, i, newdata[i]);
}
}
}
#endif
}
}
if (word_en != 0xF) {
ret = Efuse_PgPacketWrite(padapter, offset, word_en, newdata, _FALSE);
RTW_INFO("offset=%x\n", offset);
RTW_INFO("word_en=%x\n", word_en);
for (i = 0; i < PGPKT_DATA_SIZE; i++)
RTW_INFO("data=%x \t", newdata[i]);
if (ret == _FAIL)
break;
}
offset++;
}
/*Efuse_PowerSwitch(padapter, _TRUE, _FALSE);*/
efuse_PostUpdateAction(padapter, backupRegs);
exit:
rtw_mfree(map, mapLen);
rtw_mfree(efuse, mapLen);
return ret;
}
u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
{
#define RT_ASSERT_RET(expr) \
if (!(expr)) { \
printk("Assertion failed! %s at ......\n", #expr); \
printk(" ......%s,%s, line=%d\n",__FILE__, __FUNCTION__, __LINE__); \
return _FAIL; \
}
u8 offset, word_en;
u8 *map;
u8 newdata[PGPKT_DATA_SIZE];
s32 i = 0, j = 0, idx;
u8 ret = _SUCCESS;
u16 mapLen = 0;
EFUSE_GetEfuseDefinition(padapter, EFUSE_BT, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, _FALSE);
if ((addr + cnts) > mapLen)
return _FAIL;
RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); /* have to be 8 byte alignment */
RT_ASSERT_RET((mapLen & 0x7) == 0); /* have to be PGPKT_DATA_SIZE alignment for memcpy */
map = rtw_zmalloc(mapLen);
if (map == NULL)
return _FAIL;
ret = rtw_BT_efuse_map_read(padapter, 0, mapLen, map);
if (ret == _FAIL)
goto exit;
RTW_INFO("OFFSET\tVALUE(hex)\n");
for (i = 0; i < 1024; i += 16) { /* set 512 because the iwpriv's extra size have limit 0x7FF */
RTW_INFO("0x%03x\t", i);
for (j = 0; j < 8; j++)
RTW_INFO("%02X ", map[i + j]);
RTW_INFO("\t");
for (; j < 16; j++)
RTW_INFO("%02X ", map[i + j]);
RTW_INFO("\n");
}
RTW_INFO("\n");
Efuse_PowerSwitch(padapter, _TRUE, _TRUE);
idx = 0;
offset = (addr >> 3);
while (idx < cnts) {
word_en = 0xF;
j = (addr + idx) & 0x7;
_rtw_memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
for (i = j; i < PGPKT_DATA_SIZE && idx < cnts; i++, idx++) {
if (data[idx] != map[addr + idx]) {
word_en &= ~BIT(i >> 1);
newdata[i] = data[idx];
}
}
if (word_en != 0xF) {
RTW_INFO("offset=%x\n", offset);
RTW_INFO("word_en=%x\n", word_en);
RTW_INFO("%s: data=", __FUNCTION__);
for (i = 0; i < PGPKT_DATA_SIZE; i++)
RTW_INFO("0x%02X ", newdata[i]);
RTW_INFO("\n");
ret = Efuse_PgPacketWrite_BT(padapter, offset, word_en, newdata, _FALSE);
if (ret == _FAIL)
break;
}
offset++;
}
Efuse_PowerSwitch(padapter, _TRUE, _FALSE);
exit:
rtw_mfree(map, mapLen);
return ret;
}
/*-----------------------------------------------------------------------------
* Function: Efuse_ReadAllMap
*
* Overview: Read All Efuse content
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/11/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
void
Efuse_ReadAllMap(
PADAPTER pAdapter,
u8 efuseType,
u8 *Efuse,
BOOLEAN bPseudoTest);
void
Efuse_ReadAllMap(
PADAPTER pAdapter,
u8 efuseType,
u8 *Efuse,
BOOLEAN bPseudoTest)
{
u16 mapLen = 0;
Efuse_PowerSwitch(pAdapter, _FALSE, _TRUE);
EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
efuse_ReadEFuse(pAdapter, efuseType, 0, mapLen, Efuse, bPseudoTest);
Efuse_PowerSwitch(pAdapter, _FALSE, _FALSE);
}
/*-----------------------------------------------------------------------------
* Function: efuse_ShadowWrite1Byte
* efuse_ShadowWrite2Byte
* efuse_ShadowWrite4Byte
*
* Overview: Write efuse modify map by one/two/four byte.
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/12/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
#ifdef PLATFORM
static void
efuse_ShadowWrite1Byte(
PADAPTER pAdapter,
u16 Offset,
u8 Value);
#endif /* PLATFORM */
static void
efuse_ShadowWrite1Byte(
PADAPTER pAdapter,
u16 Offset,
u8 Value)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
pHalData->efuse_eeprom_data[Offset] = Value;
} /* efuse_ShadowWrite1Byte */
/* ---------------Write Two Bytes */
static void
efuse_ShadowWrite2Byte(
PADAPTER pAdapter,
u16 Offset,
u16 Value)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
pHalData->efuse_eeprom_data[Offset] = Value & 0x00FF;
pHalData->efuse_eeprom_data[Offset + 1] = Value >> 8;
} /* efuse_ShadowWrite1Byte */
/* ---------------Write Four Bytes */
static void
efuse_ShadowWrite4Byte(
PADAPTER pAdapter,
u16 Offset,
u32 Value)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
pHalData->efuse_eeprom_data[Offset] = (u8)(Value & 0x000000FF);
pHalData->efuse_eeprom_data[Offset + 1] = (u8)((Value >> 8) & 0x0000FF);
pHalData->efuse_eeprom_data[Offset + 2] = (u8)((Value >> 16) & 0x00FF);
pHalData->efuse_eeprom_data[Offset + 3] = (u8)((Value >> 24) & 0xFF);
} /* efuse_ShadowWrite1Byte */
/*-----------------------------------------------------------------------------
* Function: EFUSE_ShadowWrite
*
* Overview: Write efuse modify map for later update operation to use!!!!!
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/12/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
void
EFUSE_ShadowWrite(
PADAPTER pAdapter,
u8 Type,
u16 Offset,
u32 Value);
void
EFUSE_ShadowWrite(
PADAPTER pAdapter,
u8 Type,
u16 Offset,
u32 Value)
{
#if (MP_DRIVER == 0)
return;
#endif
if (pAdapter->registrypriv.mp_mode == 0)
return;
if (Type == 1)
efuse_ShadowWrite1Byte(pAdapter, Offset, (u8)Value);
else if (Type == 2)
efuse_ShadowWrite2Byte(pAdapter, Offset, (u16)Value);
else if (Type == 4)
efuse_ShadowWrite4Byte(pAdapter, Offset, (u32)Value);
} /* EFUSE_ShadowWrite */
#endif /* !RTW_HALMAC */
/*-----------------------------------------------------------------------------
* Function: efuse_ShadowRead1Byte
* efuse_ShadowRead2Byte
* efuse_ShadowRead4Byte
*
* Overview: Read from efuse init map by one/two/four bytes !!!!!
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/12/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
static void
efuse_ShadowRead1Byte(
PADAPTER pAdapter,
u16 Offset,
u8 *Value)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
*Value = pHalData->efuse_eeprom_data[Offset];
} /* EFUSE_ShadowRead1Byte */
/* ---------------Read Two Bytes */
static void
efuse_ShadowRead2Byte(
PADAPTER pAdapter,
u16 Offset,
u16 *Value)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
*Value = pHalData->efuse_eeprom_data[Offset];
*Value |= pHalData->efuse_eeprom_data[Offset + 1] << 8;
} /* EFUSE_ShadowRead2Byte */
/* ---------------Read Four Bytes */
static void
efuse_ShadowRead4Byte(
PADAPTER pAdapter,
u16 Offset,
u32 *Value)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
*Value = pHalData->efuse_eeprom_data[Offset];
*Value |= pHalData->efuse_eeprom_data[Offset + 1] << 8;
*Value |= pHalData->efuse_eeprom_data[Offset + 2] << 16;
*Value |= pHalData->efuse_eeprom_data[Offset + 3] << 24;
} /* efuse_ShadowRead4Byte */
/*-----------------------------------------------------------------------------
* Function: EFUSE_ShadowRead
*
* Overview: Read from pHalData->efuse_eeprom_data
*---------------------------------------------------------------------------*/
void
EFUSE_ShadowRead(
PADAPTER pAdapter,
u8 Type,
u16 Offset,
u32 *Value)
{
if (Type == 1)
efuse_ShadowRead1Byte(pAdapter, Offset, (u8 *)Value);
else if (Type == 2)
efuse_ShadowRead2Byte(pAdapter, Offset, (u16 *)Value);
else if (Type == 4)
efuse_ShadowRead4Byte(pAdapter, Offset, (u32 *)Value);
} /* EFUSE_ShadowRead */
/* 11/16/2008 MH Add description. Get current efuse area enabled word!!. */
u8
Efuse_CalculateWordCnts(u8 word_en)
{
u8 word_cnts = 0;
if (!(word_en & BIT(0)))
word_cnts++; /* 0 : write enable */
if (!(word_en & BIT(1)))
word_cnts++;
if (!(word_en & BIT(2)))
word_cnts++;
if (!(word_en & BIT(3)))
word_cnts++;
return word_cnts;
}
/*-----------------------------------------------------------------------------
* Function: efuse_WordEnableDataRead
*
* Overview: Read allowed word in current efuse section data.
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/16/2008 MHC Create Version 0.
* 11/21/2008 MHC Fix Write bug when we only enable late word.
*
*---------------------------------------------------------------------------*/
void
efuse_WordEnableDataRead(u8 word_en,
u8 *sourdata,
u8 *targetdata)
{
if (!(word_en & BIT(0))) {
targetdata[0] = sourdata[0];
targetdata[1] = sourdata[1];
}
if (!(word_en & BIT(1))) {
targetdata[2] = sourdata[2];
targetdata[3] = sourdata[3];
}
if (!(word_en & BIT(2))) {
targetdata[4] = sourdata[4];
targetdata[5] = sourdata[5];
}
if (!(word_en & BIT(3))) {
targetdata[6] = sourdata[6];
targetdata[7] = sourdata[7];
}
}
/*-----------------------------------------------------------------------------
* Function: EFUSE_ShadowMapUpdate
*
* Overview: Transfer current EFUSE content to shadow init and modify map.
*
* Input: NONE
*
* Output: NONE
*
* Return: NONE
*
* Revised History:
* When Who Remark
* 11/13/2008 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
void EFUSE_ShadowMapUpdate(
PADAPTER pAdapter,
u8 efuseType,
BOOLEAN bPseudoTest)
{
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
u16 mapLen = 0;
#ifdef RTW_HALMAC
u8 *efuse_map = NULL;
int err;
mapLen = EEPROM_MAX_SIZE;
efuse_map = pHalData->efuse_eeprom_data;
/* efuse default content is 0xFF */
_rtw_memset(efuse_map, 0xFF, EEPROM_MAX_SIZE);
EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
if (!mapLen) {
RTW_WARN("%s: <ERROR> fail to get efuse size!\n", __FUNCTION__);
mapLen = EEPROM_MAX_SIZE;
}
if (mapLen > EEPROM_MAX_SIZE) {
RTW_WARN("%s: <ERROR> size of efuse data(%d) is large than expected(%d)!\n",
__FUNCTION__, mapLen, EEPROM_MAX_SIZE);
mapLen = EEPROM_MAX_SIZE;
}
if (pHalData->bautoload_fail_flag == _FALSE) {
err = rtw_halmac_read_logical_efuse_map(adapter_to_dvobj(pAdapter), efuse_map, mapLen, NULL, 0);
if (err)
RTW_ERR("%s: <ERROR> fail to get efuse map!\n", __FUNCTION__);
}
#else /* !RTW_HALMAC */
EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
if (pHalData->bautoload_fail_flag == _TRUE)
_rtw_memset(pHalData->efuse_eeprom_data, 0xFF, mapLen);
else {
#ifdef CONFIG_ADAPTOR_INFO_CACHING_FILE
if (_SUCCESS != retriveAdaptorInfoFile(pAdapter->registrypriv.adaptor_info_caching_file_path, pHalData->efuse_eeprom_data)) {
#endif
Efuse_ReadAllMap(pAdapter, efuseType, pHalData->efuse_eeprom_data, bPseudoTest);
#ifdef CONFIG_ADAPTOR_INFO_CACHING_FILE
storeAdaptorInfoFile(pAdapter->registrypriv.adaptor_info_caching_file_path, pHalData->efuse_eeprom_data);
}
#endif
}
/* PlatformMoveMemory((void *)&pHalData->EfuseMap[EFUSE_MODIFY_MAP][0], */
/* (void *)&pHalData->EfuseMap[EFUSE_INIT_MAP][0], mapLen); */
#endif /* !RTW_HALMAC */
rtw_mask_map_read(pAdapter, 0x00, mapLen, pHalData->efuse_eeprom_data);
rtw_dump_cur_efuse(pAdapter);
} /* EFUSE_ShadowMapUpdate */
const u8 _mac_hidden_max_bw_to_hal_bw_cap[MAC_HIDDEN_MAX_BW_NUM] = {
0,
0,
(BW_CAP_160M | BW_CAP_80M | BW_CAP_40M | BW_CAP_20M | BW_CAP_10M | BW_CAP_5M),
(BW_CAP_5M),
(BW_CAP_10M | BW_CAP_5M),
(BW_CAP_20M | BW_CAP_10M | BW_CAP_5M),
(BW_CAP_40M | BW_CAP_20M | BW_CAP_10M | BW_CAP_5M),
(BW_CAP_80M | BW_CAP_40M | BW_CAP_20M | BW_CAP_10M | BW_CAP_5M),
};
const u8 _mac_hidden_proto_to_hal_proto_cap[MAC_HIDDEN_PROTOCOL_NUM] = {
0,
0,
(PROTO_CAP_11N | PROTO_CAP_11G | PROTO_CAP_11B),
(PROTO_CAP_11AC | PROTO_CAP_11N | PROTO_CAP_11G | PROTO_CAP_11B),
};
u8 mac_hidden_wl_func_to_hal_wl_func(u8 func)
{
u8 wl_func = 0;
if (func & BIT0)
wl_func |= WL_FUNC_MIRACAST;
if (func & BIT1)
wl_func |= WL_FUNC_P2P;
if (func & BIT2)
wl_func |= WL_FUNC_TDLS;
if (func & BIT3)
wl_func |= WL_FUNC_FTM;
return wl_func;
}
#ifdef PLATFORM_LINUX
#ifdef CONFIG_ADAPTOR_INFO_CACHING_FILE
/* #include <rtw_eeprom.h> */
int isAdaptorInfoFileValid(void)
{
return _TRUE;
}
int storeAdaptorInfoFile(char *path, u8 *efuse_data)
{
int ret = _SUCCESS;
if (path && efuse_data) {
ret = rtw_store_to_file(path, efuse_data, EEPROM_MAX_SIZE_512);
if (ret == EEPROM_MAX_SIZE)
ret = _SUCCESS;
else
ret = _FAIL;
} else {
RTW_INFO("%s NULL pointer\n", __FUNCTION__);
ret = _FAIL;
}
return ret;
}
int retriveAdaptorInfoFile(char *path, u8 *efuse_data)
{
int ret = _SUCCESS;
mm_segment_t oldfs;
struct file *fp;
if (path && efuse_data) {
ret = rtw_retrieve_from_file(path, efuse_data, EEPROM_MAX_SIZE);
if (ret == EEPROM_MAX_SIZE)
ret = _SUCCESS;
else
ret = _FAIL;
#if 0
if (isAdaptorInfoFileValid())
return 0;
else
return _FAIL;
#endif
} else {
RTW_INFO("%s NULL pointer\n", __FUNCTION__);
ret = _FAIL;
}
return ret;
}
#endif /* CONFIG_ADAPTOR_INFO_CACHING_FILE */
u8 rtw_efuse_file_read(PADAPTER padapter, u8 *filepatch, u8 *buf, u32 len)
{
char *ptmpbuf = NULL, *ptr;
u8 val8;
u32 count, i, j;
int err;
u32 bufsize = 4096;
ptmpbuf = rtw_zmalloc(bufsize);
if (ptmpbuf == NULL)
return _FALSE;
count = rtw_retrieve_from_file(filepatch, ptmpbuf, bufsize);
if (count <= 90) {
rtw_mfree(ptmpbuf, bufsize);
RTW_ERR("%s, filepatch %s, size=%d, FAIL!!\n", __FUNCTION__, filepatch, count);
return _FALSE;
}
i = 0;
j = 0;
ptr = ptmpbuf;
while ((j < len) && (i < count)) {
if (ptmpbuf[i] == '\0')
break;
ptr = strpbrk(&ptmpbuf[i], " \t\n\r");
if (ptr) {
if (ptr == &ptmpbuf[i]) {
i++;
continue;
}
/* Add string terminating null */
*ptr = 0;
} else {
ptr = &ptmpbuf[count-1];
}
err = sscanf(&ptmpbuf[i], "%hhx", &val8);
if (err != 1) {
RTW_WARN("Something wrong to parse efuse file, string=%s\n", &ptmpbuf[i]);
} else {
buf[j] = val8;
RTW_DBG("i=%d, j=%d, 0x%02x\n", i, j, buf[j]);
j++;
}
i = ptr - ptmpbuf + 1;
}
rtw_mfree(ptmpbuf, bufsize);
RTW_INFO("%s, filepatch %s, size=%d, done\n", __FUNCTION__, filepatch, count);
return _TRUE;
}
#ifdef CONFIG_EFUSE_CONFIG_FILE
u32 rtw_read_efuse_from_file(const char *path, u8 *buf, int map_size)
{
u32 i;
u8 c;
u8 temp[3];
u8 temp_i;
u8 end = _FALSE;
u32 ret = _FAIL;
u8 *file_data = NULL;
u32 file_size, read_size, pos = 0;
u8 *map = NULL;
if (rtw_is_file_readable_with_size(path, &file_size) != _TRUE) {
RTW_PRINT("%s %s is not readable\n", __func__, path);
goto exit;
}
file_data = rtw_vmalloc(file_size);
if (!file_data) {
RTW_ERR("%s rtw_vmalloc(%d) fail\n", __func__, file_size);
goto exit;
}
read_size = rtw_retrieve_from_file(path, file_data, file_size);
if (read_size == 0) {
RTW_ERR("%s read from %s fail\n", __func__, path);
goto exit;
}
map = rtw_vmalloc(map_size);
if (!map) {
RTW_ERR("%s rtw_vmalloc(%d) fail\n", __func__, map_size);
goto exit;
}
_rtw_memset(map, 0xff, map_size);
temp[2] = 0; /* end of string '\0' */
for (i = 0 ; i < map_size ; i++) {
temp_i = 0;
while (1) {
if (pos >= read_size) {
end = _TRUE;
break;
}
c = file_data[pos++];
/* bypass spece or eol or null before first hex digit */
if (temp_i == 0 && (is_eol(c) == _TRUE || is_space(c) == _TRUE || is_null(c) == _TRUE))
continue;
if (IsHexDigit(c) == _FALSE) {
RTW_ERR("%s invalid 8-bit hex format for offset:0x%03x\n", __func__, i);
goto exit;
}
temp[temp_i++] = c;
if (temp_i == 2) {
/* parse value */
if (sscanf(temp, "%hhx", &map[i]) != 1) {
RTW_ERR("%s sscanf fail for offset:0x%03x\n", __func__, i);
goto exit;
}
break;
}
}
if (end == _TRUE) {
if (temp_i != 0) {
RTW_ERR("%s incomplete 8-bit hex format for offset:0x%03x\n", __func__, i);
goto exit;
}
break;
}
}
RTW_PRINT("efuse file:%s, 0x%03x byte content read\n", path, i);
_rtw_memcpy(buf, map, map_size);
ret = _SUCCESS;
exit:
if (file_data)
rtw_vmfree(file_data, file_size);
if (map)
rtw_vmfree(map, map_size);
return ret;
}
u32 rtw_read_macaddr_from_file(const char *path, u8 *buf)
{
u32 i;
u8 temp[3];
u32 ret = _FAIL;
u8 file_data[17];
u32 read_size, pos = 0;
u8 addr[ETH_ALEN];
if (rtw_is_file_readable(path) != _TRUE) {
RTW_PRINT("%s %s is not readable\n", __func__, path);
goto exit;
}
read_size = rtw_retrieve_from_file(path, file_data, 17);
if (read_size != 17) {
RTW_ERR("%s read from %s fail\n", __func__, path);
goto exit;
}
temp[2] = 0; /* end of string '\0' */
for (i = 0 ; i < ETH_ALEN ; i++) {
if (IsHexDigit(file_data[i * 3]) == _FALSE || IsHexDigit(file_data[i * 3 + 1]) == _FALSE) {
RTW_ERR("%s invalid 8-bit hex format for address offset:%u\n", __func__, i);
goto exit;
}
if (i < ETH_ALEN - 1 && file_data[i * 3 + 2] != ':') {
RTW_ERR("%s invalid separator after address offset:%u\n", __func__, i);
goto exit;
}
temp[0] = file_data[i * 3];
temp[1] = file_data[i * 3 + 1];
if (sscanf(temp, "%hhx", &addr[i]) != 1) {
RTW_ERR("%s sscanf fail for address offset:0x%03x\n", __func__, i);
goto exit;
}
}
_rtw_memcpy(buf, addr, ETH_ALEN);
RTW_PRINT("wifi_mac file: %s\n", path);
#ifdef CONFIG_RTW_DEBUG
RTW_INFO(MAC_FMT"\n", MAC_ARG(buf));
#endif
ret = _SUCCESS;
exit:
return ret;
}
#endif /* CONFIG_EFUSE_CONFIG_FILE */
#endif /* PLATFORM_LINUX */
================================================
FILE: core/mesh/rtw_mesh.c
================================================
/******************************************************************************
*
* Copyright(c) 2007 - 2017 Realtek Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*****************************************************************************/
#define _RTW_MESH_C_
#ifdef CONFIG_RTW_MESH
#include <drv_types.h>
const char *_rtw_mesh_plink_str[] = {
"UNKNOWN",
"LISTEN",
"OPN_SNT",
"OPN_RCVD",
"CNF_RCVD",
"ESTAB",
"HOLDING",
"BLOCKED",
};
const char *_rtw_mesh_ps_str[] = {
"UNKNOWN",
"ACTIVE",
"LSLEEP",
"DSLEEP",
};
const char *_action_self_protected_str[] = {
"ACT_SELF_PROTECTED_RSVD",
"MESH_OPEN",
"MESH_CONF",
"MESH_CLOSE",
"MESH_GK_INFORM",
"MESH_GK_ACK",
};
inline u8 *rtw_set_ie_mesh_id(u8 *buf, u32 *buf_len, const char *mesh_id, u8 id_len)
{
return rtw_set_ie(buf, WLAN_EID_MESH_ID, id_len, mesh_id, buf_len);
}
inline u8 *rtw_set_ie_mesh_config(u8 *buf, u32 *buf_len
, u8 path_sel_proto, u8 path_sel_metric, u8 congest_ctl_mode, u8 sync_method, u8 auth_proto
, u8 num_of_peerings, bool cto_mgate, bool cto_as
, bool accept_peerings, bool mcca_sup, bool mcca_en, bool forwarding
, bool mbca_en, bool tbtt_adj, bool ps_level)
{
u8 conf[7] = {0};
SET_MESH_CONF_ELE_PATH_SEL_PROTO_ID(conf, path_sel_proto);
SET_MESH_CONF_ELE_PATH_SEL_METRIC_ID(conf, path_sel_metric);
SET_MESH_CONF_ELE_CONGEST_CTRL_MODE_ID(conf, congest_ctl_mode);
SET_MESH_CONF_ELE_SYNC_METHOD_ID(conf, sync_method);
SET_MESH_CONF_ELE_AUTH_PROTO_ID(conf, auth_proto);
SET_MESH_CONF_ELE_CTO_MGATE(conf, cto_mgate);
SET_MESH_CONF_ELE_NUM_OF_PEERINGS(conf, num_of_peerings);
SET_MESH_CONF_ELE_CTO_AS(conf, cto_as);
SET_MESH_CONF_ELE_ACCEPT_PEERINGS(conf, accept_peerings);
SET_MESH_CONF_ELE_MCCA_SUP(conf, mcca_sup);
SET_MESH_CONF_ELE_MCCA_EN(conf, mcca_en);
SET_MESH_CONF_ELE_FORWARDING(conf, forwarding);
SET_MESH_CONF_ELE_MBCA_EN(conf, mbca_en);
SET_MESH_CONF_ELE_TBTT_ADJ(conf, tbtt_adj);
SET_MESH_CONF_ELE_PS_LEVEL(conf, ps_level);
return rtw_set_ie(buf, WLAN_EID_MESH_CONFIG, 7, conf, buf_len);
}
inline u8 *rtw_set_ie_mpm(u8 *buf, u32 *buf_len
, u8 proto_id, u16 llid, u16 *plid, u16 *reason, u8 *chosen_pmk)
{
u8 data[24] = {0};
u8 *pos = data;
RTW_PUT_LE16(pos, proto_id);
pos += 2;
RTW_PUT_LE16(pos, llid);
pos += 2;
if (plid) {
RTW_PUT_LE16(pos, *plid);
pos += 2;
}
if (reason) {
RTW_PUT_LE16(pos, *reason);
pos += 2;
}
if (chosen_pmk) {
_rtw_memcpy(pos, chosen_pmk, 16);
pos += 16;
}
return rtw_set_ie(buf, WLAN_EID_MPM, pos - data, data, buf_len);
}
bool rtw_bss_is_forwarding(WLAN_BSSID_EX *bss)
{
u8 *ie;
int ie_len;
bool ret = 0;
ie = rtw_get_ie(BSS_EX_TLV_IES(bss), WLAN_EID_MESH_CONFIG, &ie_len,
BSS_EX_TLV_IES_LEN(bss));
if (!ie || ie_len != 7)
goto exit;
ret = GET_MESH_CONF_ELE_FORWARDING(ie + 2);
exit:
return ret;
}
bool rtw_bss_is_cto_mgate(WLAN_BSSID_EX *bss)
{
u8 *ie;
int ie_len;
bool ret = 0;
ie = rtw_get_ie(BSS_EX_TLV_IES(bss), WLAN_EID_MESH_CONFIG, &ie_len,
BSS_EX_TLV_IES_LEN(bss));
if (!ie || ie_len != 7)
goto exit;
ret = GET_MESH_CONF_ELE_CTO_MGATE(ie + 2);
exit:
return ret;
}
int rtw_bss_is_same_mbss(WLAN_BSSID_EX *a, WLAN_BSSID_EX *b)
{
int ret = 0;
u8 *a_mconf_ie, *b_mconf_ie;
sint a_mconf_ie_len, b_mconf_ie_len;
if (a->InfrastructureMode != Ndis802_11_mesh)
goto exit;
a_mconf_ie = rtw_get_ie(BSS_EX_TLV_IES(a), WLAN_EID_MESH_CONFIG, &a_mconf_ie_len, BSS_EX_TLV_IES_LEN(a));
if (!a_mconf_ie || a_mconf_ie_len != 7)
goto exit;
if (b->InfrastructureMode != Ndis802_11_mesh)
goto exit;
b_mconf_ie = rtw_get_ie(BSS_EX_TLV_IES(b), WLAN_EID_MESH_CONFIG, &b_mconf_ie_len, BSS_EX_TLV_IES_LEN(b));
if (!b_mconf_ie || b_mconf_ie_len != 7)
goto exit;
if (a->mesh_id.SsidLength != b->mesh_id.SsidLength
|| _rtw_memcmp(a->mesh_id.Ssid, b->mesh_id.Ssid, a->mesh_id.SsidLength) == _FALSE)
goto exit;
if (_rtw_memcmp(a_mconf_ie + 2, b_mconf_ie + 2, 5) == _FALSE)
goto exit;
ret = 1;
exit:
return ret;
}
int rtw_bss_is_candidate_mesh_peer(WLAN_BSSID_EX *self, WLAN_BSSID_EX *target, u8 ch, u8 add_peer)
{
int ret = 0;
u8 *mconf_ie;
sint mconf_ie_len;
int i, j;
if (!rtw_bss_is_same_mbss(self, target))
goto exit;
if (ch && self->Configuration.DSConfig != target->Configuration.DSConfig)
goto exit;
if (add_peer) {
/* Accept additional mesh peerings */
mconf_ie = rtw_get_ie(BSS_EX_TLV_IES(target), WLAN_EID_MESH_CONFIG, &mconf_ie_len, BSS_EX_TLV_IES_LEN(target));
if (!mconf_ie || mconf_ie_len != 7)
goto exit;
if (GET_MESH_CONF_ELE_ACCEPT_PEERINGS(mconf_ie + 2) == 0)
goto exit;
}
/* BSSBasicRateSet */
for (i = 0; i < NDIS_802_11_LENGTH_RATES_EX; i++) {
if (target->SupportedRates[i] == 0)
break;
if (target->SupportedRates[i] & 0x80) {
u8 match = 0;
if (!ch) {
/* off-channel, check target with our hardcode capability */
if (target->Configuration.DSConfig > 14)
match = rtw_is_basic_rate_ofdm(target->SupportedRates[i]);
else
match = rtw_is_basic_rate_mix(target->SupportedRates[i]);
} else {
for (j = 0; j < NDIS_802_11_LENGTH_RATES_EX; j++) {
if (self->SupportedRates[j] == 0)
break;
if (self->SupportedRates[j] == target->SupportedRates[i]) {
match = 1;
break;
}
}
}
if (!match)
goto exit;
}
}
/* BSSBasicMCSSet */
/* 802.1X connected to AS ? */
ret = 1;
exit:
return ret;
}
void rtw_mesh_bss_peering_status(WLAN_BSSID_EX *bss, u8 *nop, u8 *accept)
{
u8 *ie;
int ie_len;
if (nop)
*nop = 0;
if (accept)
*accept = 0;
ie = rtw_get_ie(BSS_EX_TLV_IES(bss), WLAN_EID_MESH_CONFIG, &ie_len,
BSS_EX_TLV_IES_LEN(bss));
if (!ie || ie_len != 7)
goto exit;
if (nop)
*nop = GET_MESH_CONF_ELE_NUM_OF_PEERINGS(ie + 2);
if (accept)
*accept = GET_MESH_CONF_ELE_ACCEPT_PEERINGS(ie + 2);
exit:
return;
}
#if CONFIG_RTW_MESH_ACNODE_PREVENT
void rtw_mesh_update_scanned_acnode_status(_adapter *adapter, struct wlan_network *scanned)
{
bool acnode;
u8 nop, accept;
rtw_mesh_bss_peering_status(&scanned->network, &nop, &accept);
acnode = !nop && accept;
if (acnode && scanned->acnode_stime == 0) {
scanned->acnode_stime = rtw_get_current_time();
if (scanned->acnode_stime == 0)
scanned->acnode_stime++;
} else if (!acnode) {
scanned->acnode_stime = 0;
scanned->acnode_notify_etime = 0;
}
}
bool rtw_mesh_scanned_is_acnode_confirmed(_adapter *adapter, struct wlan_network *scanned)
{
return scanned->acnode_stime
&& rtw_get_passing_time_ms(scanned->acnode_stime)
> adapter->mesh_cfg.peer_sel_policy.acnode_conf_timeout_ms;
}
static bool rtw_mesh_scanned_is_acnode_allow_notify(_adapter *adapter, struct wlan_network *scanned)
{
return scanned->acnode_notify_etime
&& rtw_time_after(scanned->acnode_notify_etime, rtw_get_current_time());
}
bool rtw_mesh_acnode_prevent_allow_sacrifice(_adapter *adapter)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct sta_priv *stapriv = &adapter->stapriv;
bool allow = 0;
if (!mcfg->peer_sel_policy.acnode_prevent
|| mcfg->max_peer_links <= 1
|| stapriv->asoc_list_cnt < mcfg->max_peer_links)
goto exit;
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
if (rtw_mesh_cto_mgate_required(adapter))
goto exit;
#endif
allow = 1;
exit:
return allow;
}
static bool rtw_mesh_acnode_candidate_exist(_adapter *adapter)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct sta_priv *stapriv = &adapter->stapriv;
struct mlme_priv *mlme = &adapter->mlmepriv;
_queue *queue = &(mlme->scanned_queue);
_list *head, *list;
_irqL irqL;
struct wlan_network *scanned = NULL;
struct sta_info *sta = NULL;
bool need = 0;
_enter_critical_bh(&(mlme->scanned_queue.lock), &irqL);
head = get_list_head(queue);
list = get_next(head);
while (!rtw_end_of_queue_search(head, list)) {
scanned = LIST_CONTAINOR(list, struct wlan_network, list);
list = get_next(list);
if (rtw_get_passing_time_ms(scanned->last_scanned) < mcfg->peer_sel_policy.scanr_exp_ms
&& rtw_mesh_scanned_is_acnode_confirmed(adapter, scanned)
&& (!mcfg->rssi_threshold || mcfg->rssi_threshold <= scanned->network.Rssi)
#if CONFIG_RTW_MACADDR_ACL
&& rtw_access_ctrl(adapter, scanned->network.MacAddress) == _TRUE
#endif
&& rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &scanned->network, 1, 1)
#if CONFIG_RTW_MESH_PEER_BLACKLIST
&& !rtw_mesh_peer_blacklist_search(adapter, scanned->network.MacAddress)
#endif
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
&& rtw_mesh_cto_mgate_network_filter(adapter, scanned)
#endif
) {
need = 1;
break;
}
}
_exit_critical_bh(&(mlme->scanned_queue.lock), &irqL);
return need;
}
static int rtw_mesh_acnode_prevent_sacrifice_chk(_adapter *adapter, struct sta_info **sac, struct sta_info *com)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
int updated = 0;
/*
* TODO: compare next_hop reference cnt of forwarding info
* don't sacrifice working next_hop or choose sta with least cnt
*/
if (*sac == NULL) {
updated = 1;
goto exit;
}
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
if (mcfg->peer_sel_policy.cto_mgate_require
&& !mcfg->dot11MeshGateAnnouncementProtocol
) {
if (IS_CTO_MGATE_CONF_TIMEOUT(com->plink)) {
if (!IS_CTO_MGATE_CONF_TIMEOUT((*sac)->plink)) {
/* blacklist > not blacklist */
updated = 1;
goto exit;
}
} else if (!IS_CTO_MGATE_CONF_DISABLED(com->plink)) {
if (IS_CTO_MGATE_CONF_DISABLED((*sac)->plink)) {
/* confirming > disabled */
updated = 1;
goto exit;
}
}
}
#endif
exit:
if (updated)
*sac = com;
return updated;
}
struct sta_info *_rtw_mesh_acnode_prevent_pick_sacrifice(_adapter *adapter)
{
struct sta_priv *stapriv = &adapter->stapriv;
_list *head, *list;
struct sta_info *sta, *sacrifice = NULL;
u8 nop;
head = &stapriv->asoc_list;
list = get_next(head);
while (rtw_end_of_queue_search(head, list) == _FALSE) {
sta = LIST_CONTAINOR(list, struct sta_info, asoc_list);
list = get_next(list);
if (!sta->plink || !sta->plink->scanned) {
rtw_warn_on(1);
continue;
}
rtw_mesh_bss_peering_status(&sta->plink->scanned->network, &nop, NULL);
if (nop < 2)
continue;
rtw_mesh_acnode_prevent_sacrifice_chk(adapter, &sacrifice, sta);
}
return sacrifice;
}
struct sta_info *rtw_mesh_acnode_prevent_pick_sacrifice(_adapter *adapter)
{
struct sta_priv *stapriv = &adapter->stapriv;
struct sta_info *sacrifice = NULL;
enter_critical_bh(&stapriv->asoc_list_lock);
sacrifice = _rtw_mesh_acnode_prevent_pick_sacrifice(adapter);
exit_critical_bh(&stapriv->asoc_list_lock);
return sacrifice;
}
static void rtw_mesh_acnode_rsvd_chk(_adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
u8 acnode_rsvd = 0;
if (rtw_mesh_acnode_prevent_allow_sacrifice(adapter)
&& rtw_mesh_acnode_prevent_pick_sacrifice(adapter)
&& rtw_mesh_acnode_candidate_exist(adapter))
acnode_rsvd = 1;
if (plink_ctl->acnode_rsvd != acnode_rsvd) {
plink_ctl->acnode_rsvd = acnode_rsvd;
RTW_INFO(FUNC_ADPT_FMT" acnode_rsvd = %d\n", FUNC_ADPT_ARG(adapter), plink_ctl->acnode_rsvd);
update_beacon(adapter, WLAN_EID_MESH_CONFIG, NULL, 1, 0);
}
}
static void rtw_mesh_acnode_set_notify_etime(_adapter *adapter, u8 *rframe_whdr)
{
if (adapter->mesh_info.plink_ctl.acnode_rsvd) {
struct wlan_network *scanned = rtw_find_network(&adapter->mlmepriv.scanned_queue, get_addr2_ptr(rframe_whdr));
if (rtw_mesh_scanned_is_acnode_confirmed(adapter, scanned)) {
scanned->acnode_notify_etime = rtw_get_current_time()
+ rtw_ms_to_systime(adapter->mesh_cfg.peer_sel_policy.acnode_notify_timeout_ms);
if (scanned->acnode_notify_etime == 0)
scanned->acnode_notify_etime++;
}
}
}
void dump_mesh_acnode_prevent_settings(void *sel, _adapter *adapter)
{
struct mesh_peer_sel_policy *peer_sel_policy = &adapter->mesh_cfg.peer_sel_policy;
RTW_PRINT_SEL(sel, "%-6s %-12s %-14s\n"
, "enable", "conf_timeout", "nofity_timeout");
RTW_PRINT_SEL(sel, "%6u %12u %14u\n"
, peer_sel_policy->acnode_prevent
, peer_sel_policy->acnode_conf_timeout_ms
, peer_sel_policy->acnode_notify_timeout_ms);
}
#endif /* CONFIG_RTW_MESH_ACNODE_PREVENT */
#if CONFIG_RTW_MESH_PEER_BLACKLIST
int rtw_mesh_peer_blacklist_add(_adapter *adapter, const u8 *addr)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
return rtw_blacklist_add(&plink_ctl->peer_blacklist, addr
, mcfg->peer_sel_policy.peer_blacklist_timeout_ms);
}
int rtw_mesh_peer_blacklist_del(_adapter *adapter, const u8 *addr)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
return rtw_blacklist_del(&plink_ctl->peer_blacklist, addr);
}
int rtw_mesh_peer_blacklist_search(_adapter *adapter, const u8 *addr)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
return rtw_blacklist_search(&plink_ctl->peer_blacklist, addr);
}
void rtw_mesh_peer_blacklist_flush(_adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
rtw_blacklist_flush(&plink_ctl->peer_blacklist);
}
void dump_mesh_peer_blacklist(void *sel, _adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
dump_blacklist(sel, &plink_ctl->peer_blacklist, "blacklist");
}
void dump_mesh_peer_blacklist_settings(void *sel, _adapter *adapter)
{
struct mesh_peer_sel_policy *peer_sel_policy = &adapter->mesh_cfg.peer_sel_policy;
RTW_PRINT_SEL(sel, "%-12s %-17s\n"
, "conf_timeout", "blacklist_timeout");
RTW_PRINT_SEL(sel, "%12u %17u\n"
, peer_sel_policy->peer_conf_timeout_ms
, peer_sel_policy->peer_blacklist_timeout_ms);
}
#endif /* CONFIG_RTW_MESH_PEER_BLACKLIST */
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
u8 rtw_mesh_cto_mgate_required(_adapter *adapter)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct mlme_ext_priv *mlmeext = &adapter->mlmeextpriv;
return mcfg->peer_sel_policy.cto_mgate_require
&& !rtw_bss_is_cto_mgate(&(mlmeext->mlmext_info.network));
}
u8 rtw_mesh_cto_mgate_network_filter(_adapter *adapter, struct wlan_network *scanned)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct mlme_ext_priv *mlmeext = &adapter->mlmeextpriv;
return !rtw_mesh_cto_mgate_required(adapter)
|| (rtw_bss_is_cto_mgate(&scanned->network)
&& !rtw_mesh_cto_mgate_blacklist_search(adapter, scanned->network.MacAddress));
}
int rtw_mesh_cto_mgate_blacklist_add(_adapter *adapter, const u8 *addr)
{
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
return rtw_blacklist_add(&plink_ctl->cto_mgate_blacklist, addr
, mcfg->peer_sel_policy.cto_mgate_blacklist_timeout_ms);
}
int rtw_mesh_cto_mgate_blacklist_del(_adapter *adapter, const u8 *addr)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
return rtw_blacklist_del(&plink_ctl->cto_mgate_blacklist, addr);
}
int rtw_mesh_cto_mgate_blacklist_search(_adapter *adapter, const u8 *addr)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
return rtw_blacklist_search(&plink_ctl->cto_mgate_blacklist, addr);
}
void rtw_mesh_cto_mgate_blacklist_flush(_adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
rtw_blacklist_flush(&plink_ctl->cto_mgate_blacklist);
}
void dump_mesh_cto_mgate_blacklist(void *sel, _adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
dump_blacklist(sel, &plink_ctl->cto_mgate_blacklist, "blacklist");
}
void dump_mesh_cto_mgate_blacklist_settings(void *sel, _adapter *adapter)
{
struct mesh_peer_sel_policy *peer_sel_policy = &adapter->mesh_cfg.peer_sel_policy;
RTW_PRINT_SEL(sel, "%-12s %-17s\n"
, "conf_timeout", "blacklist_timeout");
RTW_PRINT_SEL(sel, "%12u %17u\n"
, peer_sel_policy->cto_mgate_conf_timeout_ms
, peer_sel_policy->cto_mgate_blacklist_timeout_ms);
}
static void rtw_mesh_cto_mgate_blacklist_chk(_adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
_queue *blist = &plink_ctl->cto_mgate_blacklist;
_list *list, *head;
struct blacklist_ent *ent = NULL;
struct wlan_network *scanned = NULL;
enter_critical_bh(&blist->lock);
head = &blist->queue;
list = get_next(head);
while (rtw_end_of_queue_search(head, list) == _FALSE) {
ent = LIST_CONTAINOR(list, struct blacklist_ent, list);
list = get_next(list);
if (rtw_time_after(rtw_get_current_time(), ent->exp_time)) {
rtw_list_delete(&ent->list);
rtw_mfree(ent, sizeof(struct blacklist_ent));
continue;
}
scanned = rtw_find_network(&adapter->mlmepriv.scanned_queue, ent->addr);
if (!scanned)
continue;
if (rtw_bss_is_forwarding(&scanned->network)) {
rtw_list_delete(&ent->list);
rtw_mfree(ent, sizeof(struct blacklist_ent));
}
}
exit_critical_bh(&blist->lock);
}
#endif /* CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST */
void rtw_chk_candidate_peer_notify(_adapter *adapter, struct wlan_network *scanned)
{
struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter);
struct mlme_priv *mlme = &adapter->mlmepriv;
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
bool acnode = 0;
if (IS_CH_WAITING(rfctl) && !IS_UNDER_CAC(rfctl))
goto exit;
if (plink_ctl->num >= RTW_MESH_MAX_PEER_CANDIDATES)
goto exit;
#if CONFIG_RTW_MESH_ACNODE_PREVENT
if (plink_ctl->acnode_rsvd) {
acnode = rtw_mesh_scanned_is_acnode_confirmed(adapter, scanned);
if (acnode && !rtw_mesh_scanned_is_acnode_allow_notify(adapter, scanned))
goto exit;
}
#endif
/* wpa_supplicant's auto peer will initiate peering when candidate peer is reported without max_peer_links consideration */
if (plink_ctl->num >= mcfg->max_peer_links + acnode ? 1 : 0)
goto exit;
if (rtw_get_passing_time_ms(scanned->last_scanned) >= mcfg->peer_sel_policy.scanr_exp_ms
|| (mcfg->rssi_threshold && mcfg->rssi_threshold > scanned->network.Rssi)
|| !rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &scanned->network, 1, 1)
#if CONFIG_RTW_MACADDR_ACL
|| rtw_access_ctrl(adapter, scanned->network.MacAddress) == _FALSE
#endif
|| rtw_mesh_plink_get(adapter, scanned->network.MacAddress)
#if CONFIG_RTW_MESH_PEER_BLACKLIST
|| rtw_mesh_peer_blacklist_search(adapter, scanned->network.MacAddress)
#endif
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
|| !rtw_mesh_cto_mgate_network_filter(adapter, scanned)
#endif
)
goto exit;
#if CONFIG_RTW_MESH_ACNODE_PREVENT
if (acnode) {
scanned->acnode_notify_etime = 0;
RTW_INFO(FUNC_ADPT_FMT" acnode "MAC_FMT"\n"
, FUNC_ADPT_ARG(adapter), MAC_ARG(scanned->network.MacAddress));
}
#endif
#ifdef CONFIG_IOCTL_CFG80211
rtw_cfg80211_notify_new_peer_candidate(adapter->rtw_wdev
, scanned->network.MacAddress
, BSS_EX_TLV_IES(&scanned->network)
, BSS_EX_TLV_IES_LEN(&scanned->network)
, scanned->network.Rssi
, GFP_ATOMIC
);
#endif
exit:
return;
}
void rtw_mesh_peer_status_chk(_adapter *adapter)
{
struct mlme_priv *mlme = &adapter->mlmepriv;
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
struct mesh_plink_ent *plink;
_list *head, *list;
struct sta_info *sta = NULL;
struct sta_priv *stapriv = &adapter->stapriv;
int stainfo_offset;
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
u8 cto_mgate, forwarding, mgate;
#endif
u8 flush;
s8 flush_list[NUM_STA];
u8 flush_num = 0;
int i;
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
if (rtw_mesh_cto_mgate_required(adapter)) {
/* active scan on operating channel */
issue_probereq_ex(adapter, &adapter->mlmepriv.cur_network.network.mesh_id, NULL, 0, 0, 0, 0);
}
#endif
enter_critical_bh(&(plink_ctl->lock));
/* check established peers */
enter_critical_bh(&stapriv->asoc_list_lock);
head = &stapriv->asoc_list;
list = get_next(head);
while (rtw_end_of_queue_search(head, list) == _FALSE) {
sta = LIST_CONTAINOR(list, struct sta_info, asoc_list);
list = get_next(list);
if (!sta->plink || !sta->plink->scanned) {
rtw_warn_on(1);
continue;
}
plink = sta->plink;
flush = 0;
/* remove unsuitable peer */
if (!rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &plink->scanned->network, 1, 0)
#if CONFIG_RTW_MACADDR_ACL
|| rtw_access_ctrl(adapter, plink->addr) == _FALSE
#endif
) {
flush = 1;
goto flush_add;
}
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
cto_mgate = rtw_bss_is_cto_mgate(&(plink->scanned->network));
forwarding = rtw_bss_is_forwarding(&(plink->scanned->network));
mgate = rtw_mesh_gate_search(minfo->mesh_paths, sta->cmn.mac_addr);
/* CTO_MGATE required, remove peer without CTO_MGATE */
if (rtw_mesh_cto_mgate_required(adapter) && !cto_mgate) {
flush = 1;
goto flush_add;
}
/* cto_mgate_conf status update */
if (IS_CTO_MGATE_CONF_DISABLED(plink)) {
if (cto_mgate && !forwarding && !mgate)
SET_CTO_MGATE_CONF_END_TIME(plink, mcfg->peer_sel_policy.cto_mgate_conf_timeout_ms);
else
rtw_mesh_cto_mgate_blacklist_del(adapter, sta->cmn.mac_addr);
} else {
/* cto_mgate_conf ongoing */
if (cto_mgate && !forwarding && !mgate) {
if (IS_CTO_MGATE_CONF_TIMEOUT(plink)) {
rtw_mesh_cto_mgate_blacklist_add(adapter, sta->cmn.mac_addr);
/* CTO_MGATE required, remove peering can't achieve CTO_MGATE */
if (rtw_mesh_cto_mgate_required(adapter)) {
flush = 1;
goto flush_add;
}
}
} else {
SET_CTO_MGATE_CONF_DISABLED(plink);
rtw_mesh_cto_mgate_blacklist_del(adapter, sta->cmn.mac_addr);
}
}
#endif /* CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST */
flush_add:
if (flush) {
rtw_list_delete(&sta->asoc_list);
stapriv->asoc_list_cnt--;
STA_SET_MESH_PLINK(sta, NULL);
stainfo_offset = rtw_stainfo_offset(stapriv, sta);
if (stainfo_offset_valid(stainfo_offset))
flush_list[flush_num++] = stainfo_offset;
else
rtw_warn_on(1);
}
}
exit_critical_bh(&stapriv->asoc_list_lock);
/* check non-established peers */
for (i = 0; i < RTW_MESH_MAX_PEER_CANDIDATES; i++) {
plink = &plink_ctl->ent[i];
if (plink->valid != _TRUE || plink->plink_state == RTW_MESH_PLINK_ESTAB)
continue;
/* remove unsuitable peer */
if (!rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &plink->scanned->network, 1, 1)
#if CONFIG_RTW_MACADDR_ACL
|| rtw_access_ctrl(adapter, plink->addr) == _FALSE
#endif
) {
_rtw_mesh_expire_peer_ent(adapter, plink);
continue;
}
#if CONFIG_RTW_MESH_PEER_BLACKLIST
/* peer confirm check timeout, add to black list */
if (IS_PEER_CONF_TIMEOUT(plink)) {
rtw_mesh_peer_blacklist_add(adapter, plink->addr);
_rtw_mesh_expire_peer_ent(adapter, plink);
}
#endif
}
exit_critical_bh(&(plink_ctl->lock));
if (flush_num) {
u8 sta_addr[ETH_ALEN];
u8 updated = _FALSE;
for (i = 0; i < flush_num; i++) {
sta = rtw_get_stainfo_by_offset(stapriv, flush_list[i]);
_rtw_memcpy(sta_addr, sta->cmn.mac_addr, ETH_ALEN);
updated |= ap_free_sta(adapter, sta, _TRUE, WLAN_REASON_DEAUTH_LEAVING, _FALSE);
rtw_mesh_expire_peer(adapter, sta_addr);
}
associated_clients_update(adapter, updated, STA_INFO_UPDATE_ALL);
}
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
/* loop cto_mgate_blacklist to remove ent according to scan_r */
rtw_mesh_cto_mgate_blacklist_chk(adapter);
#endif
#if CONFIG_RTW_MESH_ACNODE_PREVENT
rtw_mesh_acnode_rsvd_chk(adapter);
#endif
return;
}
#if CONFIG_RTW_MESH_OFFCH_CAND
static u8 rtw_mesh_offch_cto_mgate_required(_adapter *adapter)
{
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct mlme_priv *mlme = &adapter->mlmepriv;
_queue *queue = &(mlme->scanned_queue);
_list *head, *pos;
struct wlan_network *scanned = NULL;
u8 ret = 0;
if (!rtw_mesh_cto_mgate_required(adapter))
goto exit;
enter_critical_bh(&(mlme->scanned_queue.lock));
head = get_list_head(queue);
pos = get_next(head);
while (!rtw_end_of_queue_search(head, pos)) {
scanned = LIST_CONTAINOR(pos, struct wlan_network, list);
if (rtw_get_passing_time_ms(scanned->last_scanned) < mcfg->peer_sel_policy.scanr_exp_ms
&& (!mcfg->rssi_threshold || mcfg->rssi_threshold <= scanned->network.Rssi)
#if CONFIG_RTW_MACADDR_ACL
&& rtw_access_ctrl(adapter, scanned->network.MacAddress) == _TRUE
#endif
&& rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &scanned->network, 1, 1)
&& rtw_bss_is_cto_mgate(&scanned->network)
#if CONFIG_RTW_MESH_PEER_BLACKLIST
&& !rtw_mesh_peer_blacklist_search(adapter, scanned->network.MacAddress)
#endif
&& !rtw_mesh_cto_mgate_blacklist_search(adapter, scanned->network.MacAddress)
)
break;
pos = get_next(pos);
}
if (rtw_end_of_queue_search(head, pos))
ret = 1;
exit_critical_bh(&(mlme->scanned_queue.lock));
exit:
return ret;
#else
return 0;
#endif /* CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST */
}
u8 rtw_mesh_offch_candidate_accepted(_adapter *adapter)
{
struct rtw_mesh_info *minfo = &adapter->mesh_info;
struct mesh_plink_pool *plink_ctl = &minfo->plink_ctl;
u8 ret = 0;
if (!adapter->mesh_cfg.peer_sel_policy.offch_cand)
goto exit;
ret = MLME_IS_MESH(adapter) && MLME_IS_ASOC(adapter)
&& (!plink_ctl->num || rtw_mesh_offch_cto_mgate_required(adapter))
;
#ifdef CONFIG_CONCURRENT_MODE
if (ret) {
struct mi_state mstate_no_self;
rtw_mi_status_no_self(adapter, &mstate_no_self);
if (MSTATE_STA_LD_NUM(&mstate_no_self))
ret = 0;
}
#endif
exit:
return ret;
}
/*
* this function is called under off channel candidate is required
* the channel with maximum candidate count is selected
*/
u8 rtw_mesh_select_operating_ch(_adapter *adapter)
{
struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter);
struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg;
struct mlme_priv *mlme = &adapter->mlmepriv;
_queue *queue = &(mlme->scanned_queue);
_list *head, *pos;
_irqL irqL;
struct wlan_network *scanned = NULL;
int i;
/* statistics for candidate accept peering */
u8 cand_ap_cnt[MAX_CHANNEL_NUM] = {0};
u8 max_cand_ap_ch = 0;
u8 max_cand_ap_cnt = 0;
/* statistics for candidate including not accept peering */
u8 cand_cnt[MAX_CHANNEL_NUM] = {0};
u8 max_cand_ch = 0;
u8 max_cand_cnt = 0;
_enter_critical_bh(&(mlme->scanned_queue.lock), &irqL);
head = get_list_head(queue);
pos = get_next(head);
while (!rtw_end_of_queue_search(head, pos)) {
scanned = LIST_CONTAINOR(pos, struct wlan_network, list);
pos = get_next(pos);
if (rtw_get_passing_time_ms(scanned->last_scanned) < mcfg->peer_sel_policy.scanr_exp_ms
&& (!mcfg->rssi_threshold || mcfg->rssi_threshold <= scanned->network.Rssi)
#if CONFIG_RTW_MACADDR_ACL
&& rtw_access_ctrl(adapter, scanned->network.MacAddress) == _TRUE
#endif
&& rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &scanned->network, 0, 0)
#if CONFIG_RTW_MESH_PEER_BLACKLIST
&& !rtw_mesh_peer_blacklist_search(adapter, scanned->network.MacAddress)
#endif
#if CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
&& rtw_mesh_cto_mgate_network_filter(adapter, scanned)
#endif
) {
int ch_set_idx = rtw_chset_search_ch(rfctl->channel_set, scanned->network.Configuration.DSConfig);
if (ch_set_idx >= 0
&& !CH_IS_NON_OCP(&rfctl->channel_set[ch_set_idx])
) {
u8 nop, accept;
rtw_mesh_bss_peering_status(&scanned->network, &nop, &accept);
cand_cnt[ch_set_idx]++;
if (max_cand_cnt < cand_cnt[ch_set_idx]) {
max_cand_cnt = cand_cnt[ch_set_idx];
max_cand_ch = rfctl->channel_set[ch_set_idx].ChannelNum;
}
if (accept) {
cand_ap_cnt[ch_set_idx]++;
if (max_cand_ap_cnt < cand_ap_cnt[ch_set_idx]) {
max_cand_ap_cnt = cand_ap_cnt[ch_set_idx];
max_cand_ap_ch = rfctl->channel_set[ch_set_idx].ChannelNum;
}
}
}
}
}
_exit_critical_bh(&(mlme->scanned_queue.lock), &irqL);
return max_cand_ap_ch ? max_cand_ap_ch : max_cand_ch;
}
void dump_mesh_offch_cand_settings(void *sel, _adapter *adapter)
{
struct mesh_peer_sel_policy *peer_sel_policy = &adapter->mesh_cfg.peer_sel_policy;
RTW_PRINT_SEL(sel, "%-6s %-11s\n"
, "enable", "find_int_ms");
RTW_PRINT_SEL(sel, "%6u %11u\n"
, peer_sel_policy->offch_cand, peer_sel_policy->offch_find_int_ms);
}
#endif /* CONFIG_RTW_MESH_OFFCH_CAND */
void dump_mesh_peer_sel_policy(void *sel, _adapter *adapter)
{
struct mesh_peer_sel_policy *peer_sel_policy = &adapter->mesh_cfg.peer_sel_policy;
RTW_PRINT_SEL(sel, "%-12s\n", "scanr_exp_ms");
RTW_PRINT_SEL(sel, "%12u\n", peer_sel_policy->scanr_exp_ms);
}
void dump_mesh_networks(void *sel, _adapter *adapter)
{
#if CONFIG_RTW_MESH_ACNODE_PREVENT
#define NSTATE_TITLE_FMT_ACN " %-5s"
#define NSTATE_VALUE_FMT_ACN " %5d"
#define NSTATE_TITLE_ARG_ACN , "acn"
#define NSTATE_VALUE_ARG_ACN , (acn_ms < 99999 ? acn_ms : 99999)
#else
#define NSTATE_TITLE_FMT_ACN ""
#define NSTATE_VALUE_FMT_ACN ""
#define NSTATE_TITLE_ARG_ACN
#define NSTATE_VALUE_ARG_ACN
#endif
struct mlme_priv *mlme = &(adapter->mlmepriv);
_queue *queue = &(mlme->scanned_queue);
struct wlan_network *network;
_list *list, *head;
u8 same_mbss;
u8 candidate;
struct mesh_plink_ent *plink;
u8 blocked;
u8 established;
s32 age_ms;
#if CONFIG_RTW_MESH_ACNODE_PREVENT
s32 acn_ms;
#endif
u8 *mesh_conf_ie;
sint mesh_conf_ie_len;
struct wlan_network **mesh_networks;
u8 mesh_network_cnt = 0;
int i;
mesh_networks = rtw_zvmalloc(mlme->max_bss_cnt * sizeof(struct wlan_network *));
if (!mesh_networks)
return;
enter_critical_bh(&queue->lock);
head = get_list_head(queue);
list = get_next(head);
while (rtw_end_of_queue_search(head, list) == _FALSE) {
network = LIST_CONTAINOR(list, struct wlan_network, list);
list = get_next(list);
if (network->network.InfrastructureMode != Ndis802_11_mesh)
continue;
mesh_conf_ie = rtw_get_ie(BSS_EX_TLV_IES(&network->network), WLAN_EID_MESH_CONFIG
, &mesh_conf_ie_len, BSS_EX_TLV_IES_LEN(&network->network));
if (!mesh_conf_ie || mesh_conf_ie_len != 7)
continue;
mesh_networks[mesh_network_cnt++] = network;
}
exit_critical_bh(&queue->lock);
RTW_PRINT_SEL(sel, " %-17s %-3s %-4s %-5s %-32s %-3s %-3s %-3s"
NSTATE_TITLE_FMT_ACN
"\n"
, "bssid", "ch", "rssi", "age", "mesh_id", "nop", "fwd", "cto"
NSTATE_TITLE_ARG_ACN
);
for (i = 0; i < mesh_network_cnt; i++) {
network = mesh_networks[i];
if (network->network.InfrastructureMode != Ndis802_11_mesh)
continue;
mesh_conf_ie = rtw_get_ie(BSS_EX_TLV_IES(&network->network), WLAN_EID_MESH_CONFIG
, &mesh_conf_ie_len, BSS_EX_TLV_IES_LEN(&network->network));
if (!mesh_conf_ie || mesh_conf_ie_len != 7)
continue;
age_ms = rtw_get_passing_time_ms(network->last_scanned);
#if CONFIG_RTW_MESH_ACNODE_PREVENT
if (network->acnode_stime == 0)
acn_ms = 0;
else
acn_ms = rtw_get_passing_time_ms(network->acnode_stime);
#endif
same_mbss = 0;
candidate = 0;
plink = NULL;
blocked = 0;
established = 0;
if (MLME_IS_MESH(adapter) && MLME_IS_ASOC(adapter)) {
plink = rtw_mesh_plink_get(adapter, network->network.MacAddress);
if (plink && plink->plink_state == RTW_MESH_PLINK_ESTAB)
established = 1;
else if (plink && plink->plink_state == RTW_MESH_PLINK_BLOCKED)
blocked = 1;
else if (plink)
;
else if (rtw_bss_is_candidate_mesh_peer(&mlme->cur_network.network, &network->network, 0, 1))
candidate = 1;
else if (rtw_bss_is_same_mbss(&mlme->cur_network.network, &network->network))
same_mbss = 1;
}
RTW_PRINT_SEL(sel, "%c "MAC_FMT" %3d %4ld %5d %-32s %c%2u %3u %c%c "
NSTATE_VALUE_FMT_ACN
"\n"
, established ? 'E' : (blocked ? 'B' : (plink ? 'N' : (candidate ? 'C' : (same_mbss ? 'S' : ' '))))
, MAC_ARG(network->network.MacAddress)
, network->network.Configuration.DSConfig
, network->network.Rssi
, age_ms < 99999 ? age_ms : 99999
, network->network.mesh_id.Ssid
, GET_MESH_CONF_ELE_ACCEPT_PEERINGS(mesh_conf_ie + 2) ? '+' : ' '
, GET_MESH_CONF_ELE_NUM_OF_PEERINGS(mesh_conf_ie + 2)
, GET_MESH_CONF_ELE_FORWARDING(mesh_conf_ie + 2)
, GET_MESH_CONF_ELE_CTO_MGATE(mesh_conf_ie + 2) ? 'G' : ' '
, GET_MESH_CONF_ELE_CTO_AS(mesh_conf_ie + 2) ? 'A' : ' '
NSTATE_VALUE_ARG_ACN
);
}
rtw_vmfree(mesh_networks, mlme->max_bss_cnt * sizeof(struct wlan_network *));
}
void rtw_mesh_adjust_chbw(u8 req_ch, u8 *req_bw, u8 *req_offset)
{
if (req_ch >= 5 && req_ch <= 9) {
/* prevent secondary channel offset mismatch */
if (*req_bw > CHANNEL_WIDTH_20) {
*req_bw = CHANNEL_WIDTH_20;
*req_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
}
}
}
void rtw_mesh_sae_check_frames(_adapter *adapter, const u8 *buf, u32 len, u8 tx, u16 alg, u16 seq, u16 status)
{
#if CONFIG_RTW_MESH_PEER_BLACKLIST
if (tx && seq == 1)
rtw_mesh_plink_set_peer_conf_timeout(adapter, GetAddr1Ptr(buf));
#endif
}
#if CONFIG_RTW_MPM_TX_IES_SYNC_BSS
#ifdef CONFIG_RTW_MESH_AEK
static int rtw_mpm_ampe_dec(_adapter *adapter, struct mesh_plink_ent *plink
, u8 *fhead, size_t flen, u8* fbody, u8 *mic_ie, u8 *ampe_buf)
{
int ret = _FAIL, verify_ret;
const u8 *aad[] = {adapter_mac_addr(adapter), plink->addr, fbody};
const size_t aad_len[] = {ETH_ALEN, ETH_ALEN, mic_ie - fbody};
u8 *iv_crypt;
size_t iv_crypt_len = flen - (mic_ie + 2 - fhead);
iv_crypt
gitextract_ori71sv_/ ├── Kconfig ├── Makefile ├── README.md ├── clean ├── core/ │ ├── efuse/ │ │ └── rtw_efuse.c │ ├── mesh/ │ │ ├── rtw_mesh.c │ │ ├── rtw_mesh.h │ │ ├── rtw_mesh_hwmp.c │ │ ├── rtw_mesh_hwmp.h │ │ ├── rtw_mesh_pathtbl.c │ │ └── rtw_mesh_pathtbl.h │ ├── rtw_ap.c │ ├── rtw_beamforming.c │ ├── rtw_br_ext.c │ ├── rtw_bt_mp.c │ ├── rtw_btcoex.c │ ├── rtw_btcoex_wifionly.c │ ├── rtw_chplan.c │ ├── rtw_chplan.h │ ├── rtw_cmd.c │ ├── rtw_debug.c │ ├── rtw_eeprom.c │ ├── rtw_ieee80211.c │ ├── rtw_io.c │ ├── rtw_ioctl_query.c │ ├── rtw_ioctl_set.c │ ├── rtw_iol.c │ ├── rtw_mem.c │ ├── rtw_mi.c │ ├── rtw_mlme.c │ ├── rtw_mlme_ext.c │ ├── rtw_mp.c │ ├── rtw_odm.c │ ├── rtw_p2p.c │ ├── rtw_pwrctrl.c │ ├── rtw_recv.c │ ├── rtw_rf.c │ ├── rtw_rm.c │ ├── rtw_rm_fsm.c │ ├── rtw_rson.c │ ├── rtw_sdio.c │ ├── rtw_security.c │ ├── rtw_sreset.c │ ├── rtw_sta_mgt.c │ ├── rtw_tdls.c │ ├── rtw_vht.c │ ├── rtw_wapi.c │ ├── rtw_wapi_sms4.c │ ├── rtw_wlan_util.c │ └── rtw_xmit.c ├── dkms.conf ├── hal/ │ ├── HalPwrSeqCmd.c │ ├── btc/ │ │ ├── btc_basic_types.h │ │ ├── halbtc8822c.c │ │ ├── halbtc8822c.h │ │ ├── halbtc8822cwifionly.c │ │ ├── halbtc8822cwifionly.h │ │ ├── halbtccommon.c │ │ ├── halbtccommon.h │ │ ├── halbtcoutsrc.h │ │ └── mp_precomp.h │ ├── efuse/ │ │ ├── efuse_mask.h │ │ └── rtl8822c/ │ │ ├── HalEfuseMask8822C_PCIE.c │ │ ├── HalEfuseMask8822C_PCIE.h │ │ ├── HalEfuseMask8822C_SDIO.c │ │ ├── HalEfuseMask8822C_SDIO.h │ │ ├── HalEfuseMask8822C_USB.c │ │ └── HalEfuseMask8822C_USB.h │ ├── hal_btcoex.c │ ├── hal_btcoex_wifionly.c │ ├── hal_com.c │ ├── hal_com_c2h.h │ ├── hal_com_phycfg.c │ ├── hal_dm.c │ ├── hal_dm.h │ ├── hal_dm_acs.c │ ├── hal_dm_acs.h │ ├── hal_halmac.c │ ├── hal_halmac.h │ ├── hal_hci/ │ │ └── hal_pci.c │ ├── hal_intf.c │ ├── hal_mcc.c │ ├── hal_mp.c │ ├── hal_phy.c │ ├── halmac/ │ │ ├── halmac_2_platform.h │ │ ├── halmac_88xx/ │ │ │ ├── halmac_8822c/ │ │ │ │ ├── halmac_8822c_cfg.h │ │ │ │ ├── halmac_cfg_wmac_8822c.c │ │ │ │ ├── halmac_cfg_wmac_8822c.h │ │ │ │ ├── halmac_common_8822c.c │ │ │ │ ├── halmac_common_8822c.h │ │ │ │ ├── halmac_gpio_8822c.c │ │ │ │ ├── halmac_gpio_8822c.h │ │ │ │ ├── halmac_init_8822c.c │ │ │ │ ├── halmac_init_8822c.h │ │ │ │ ├── halmac_pcie_8822c.c │ │ │ │ ├── halmac_pcie_8822c.h │ │ │ │ ├── halmac_phy_8822c.c │ │ │ │ ├── halmac_pwr_seq_8822c.c │ │ │ │ └── halmac_pwr_seq_8822c.h │ │ │ ├── halmac_88xx_cfg.h │ │ │ ├── halmac_bb_rf_88xx.c │ │ │ ├── halmac_bb_rf_88xx.h │ │ │ ├── halmac_cfg_wmac_88xx.c │ │ │ ├── halmac_cfg_wmac_88xx.h │ │ │ ├── halmac_common_88xx.c │ │ │ ├── halmac_common_88xx.h │ │ │ ├── halmac_efuse_88xx.c │ │ │ ├── halmac_efuse_88xx.h │ │ │ ├── halmac_flash_88xx.c │ │ │ ├── halmac_flash_88xx.h │ │ │ ├── halmac_fw_88xx.c │ │ │ ├── halmac_fw_88xx.h │ │ │ ├── halmac_gpio_88xx.c │ │ │ ├── halmac_gpio_88xx.h │ │ │ ├── halmac_init_88xx.c │ │ │ ├── halmac_init_88xx.h │ │ │ ├── halmac_mimo_88xx.c │ │ │ ├── halmac_mimo_88xx.h │ │ │ ├── halmac_pcie_88xx.c │ │ │ └── halmac_pcie_88xx.h │ │ ├── halmac_api.c │ │ ├── halmac_api.h │ │ ├── halmac_bit2.h │ │ ├── halmac_bit_8197f.h │ │ ├── halmac_bit_8814b.h │ │ ├── halmac_bit_8821c.h │ │ ├── halmac_bit_8822b.h │ │ ├── halmac_bit_8822c.h │ │ ├── halmac_fw_info.h │ │ ├── halmac_fw_offload_c2h_ap.h │ │ ├── halmac_fw_offload_c2h_nic.h │ │ ├── halmac_fw_offload_h2c_ap.h │ │ ├── halmac_fw_offload_h2c_nic.h │ │ ├── halmac_gpio_cmd.h │ │ ├── halmac_h2c_extra_info_ap.h │ │ ├── halmac_h2c_extra_info_nic.h │ │ ├── halmac_hw_cfg.h │ │ ├── halmac_intf_phy_cmd.h │ │ ├── halmac_original_c2h_ap.h │ │ ├── halmac_original_c2h_nic.h │ │ ├── halmac_original_h2c_ap.h │ │ ├── halmac_original_h2c_nic.h │ │ ├── halmac_pcie_reg.h │ │ ├── halmac_pwr_seq_cmd.h │ │ ├── halmac_reg2.h │ │ ├── halmac_reg_8197f.h │ │ ├── halmac_reg_8814b.h │ │ ├── halmac_reg_8821c.h │ │ ├── halmac_reg_8822b.h │ │ ├── halmac_reg_8822c.h │ │ ├── halmac_rx_bd_nic.h │ │ ├── halmac_rx_desc_ap.h │ │ ├── halmac_rx_desc_chip.h │ │ ├── halmac_rx_desc_nic.h │ │ ├── halmac_sdio_reg.h │ │ ├── halmac_state_machine.h │ │ ├── halmac_tx_bd_nic.h │ │ ├── halmac_tx_desc_ap.h │ │ ├── halmac_tx_desc_buffer_ap.h │ │ ├── halmac_tx_desc_buffer_chip.h │ │ ├── halmac_tx_desc_buffer_nic.h │ │ ├── halmac_tx_desc_chip.h │ │ ├── halmac_tx_desc_ie_ap.h │ │ ├── halmac_tx_desc_ie_chip.h │ │ ├── halmac_tx_desc_ie_nic.h │ │ ├── halmac_tx_desc_nic.h │ │ ├── halmac_type.h │ │ └── halmac_usb_reg.h │ ├── led/ │ │ ├── hal_led.c │ │ └── hal_pci_led.c │ ├── phydm/ │ │ ├── ap_makefile.mk │ │ ├── halhwimg.h │ │ ├── halrf/ │ │ │ ├── halphyrf_ap.c │ │ │ ├── halphyrf_ap.h │ │ │ ├── halphyrf_ce.c │ │ │ ├── halphyrf_ce.h │ │ │ ├── halphyrf_iot.c │ │ │ ├── halphyrf_iot.h │ │ │ ├── halphyrf_win.c │ │ │ ├── halphyrf_win.h │ │ │ ├── halrf.c │ │ │ ├── halrf.h │ │ │ ├── halrf_debug.c │ │ │ ├── halrf_debug.h │ │ │ ├── halrf_dpk.h │ │ │ ├── halrf_features.h │ │ │ ├── halrf_iqk.h │ │ │ ├── halrf_kfree.c │ │ │ ├── halrf_kfree.h │ │ │ ├── halrf_powertracking.c │ │ │ ├── halrf_powertracking.h │ │ │ ├── halrf_powertracking_ap.c │ │ │ ├── halrf_powertracking_ap.h │ │ │ ├── halrf_powertracking_ce.c │ │ │ ├── halrf_powertracking_ce.h │ │ │ ├── halrf_powertracking_iot.c │ │ │ ├── halrf_powertracking_iot.h │ │ │ ├── halrf_powertracking_win.c │ │ │ ├── halrf_powertracking_win.h │ │ │ ├── halrf_psd.c │ │ │ ├── halrf_psd.h │ │ │ ├── halrf_txgapcal.c │ │ │ ├── halrf_txgapcal.h │ │ │ └── rtl8822c/ │ │ │ ├── halhwimg8822c_rf.c │ │ │ ├── halhwimg8822c_rf.h │ │ │ ├── halrf_8822c.c │ │ │ ├── halrf_8822c.h │ │ │ ├── halrf_dpk_8822c.c │ │ │ ├── halrf_dpk_8822c.h │ │ │ ├── halrf_iqk_8822c.c │ │ │ ├── halrf_iqk_8822c.h │ │ │ ├── halrf_rfk_init_8822c.c │ │ │ ├── halrf_rfk_init_8822c.h │ │ │ ├── halrf_tssi_8822c.c │ │ │ ├── halrf_tssi_8822c.h │ │ │ └── version_rtl8822c_rf.h │ │ ├── mp_precomp.h │ │ ├── phydm.c │ │ ├── phydm.h │ │ ├── phydm.mk │ │ ├── phydm_adaptivity.c │ │ ├── phydm_adaptivity.h │ │ ├── phydm_adc_sampling.c │ │ ├── phydm_adc_sampling.h │ │ ├── phydm_antdect.c │ │ ├── phydm_antdect.h │ │ ├── phydm_antdiv.c │ │ ├── phydm_antdiv.h │ │ ├── phydm_api.c │ │ ├── phydm_api.h │ │ ├── phydm_auto_dbg.c │ │ ├── phydm_auto_dbg.h │ │ ├── phydm_beamforming.c │ │ ├── phydm_beamforming.h │ │ ├── phydm_cck_pd.c │ │ ├── phydm_cck_pd.h │ │ ├── phydm_ccx.c │ │ ├── phydm_ccx.h │ │ ├── phydm_cfotracking.c │ │ ├── phydm_cfotracking.h │ │ ├── phydm_debug.c │ │ ├── phydm_debug.h │ │ ├── phydm_dfs.c │ │ ├── phydm_dfs.h │ │ ├── phydm_dig.c │ │ ├── phydm_dig.h │ │ ├── phydm_direct_bf.c │ │ ├── phydm_direct_bf.h │ │ ├── phydm_dynamictxpower.c │ │ ├── phydm_dynamictxpower.h │ │ ├── phydm_features.h │ │ ├── phydm_features_ap.h │ │ ├── phydm_features_ce.h │ │ ├── phydm_features_ce2_kernel.h │ │ ├── phydm_features_iot.h │ │ ├── phydm_features_win.h │ │ ├── phydm_hwconfig.c │ │ ├── phydm_hwconfig.h │ │ ├── phydm_interface.c │ │ ├── phydm_interface.h │ │ ├── phydm_lna_sat.c │ │ ├── phydm_lna_sat.h │ │ ├── phydm_math_lib.c │ │ ├── phydm_math_lib.h │ │ ├── phydm_mp.c │ │ ├── phydm_mp.h │ │ ├── phydm_noisemonitor.c │ │ ├── phydm_noisemonitor.h │ │ ├── phydm_pathdiv.c │ │ ├── phydm_pathdiv.h │ │ ├── phydm_phystatus.c │ │ ├── phydm_phystatus.h │ │ ├── phydm_pmac_tx_setting.c │ │ ├── phydm_pmac_tx_setting.h │ │ ├── phydm_pow_train.c │ │ ├── phydm_pow_train.h │ │ ├── phydm_pre_define.h │ │ ├── phydm_precomp.h │ │ ├── phydm_primary_cca.c │ │ ├── phydm_primary_cca.h │ │ ├── phydm_psd.c │ │ ├── phydm_psd.h │ │ ├── phydm_rainfo.c │ │ ├── phydm_rainfo.h │ │ ├── phydm_reg.h │ │ ├── phydm_regdefine11ac.h │ │ ├── phydm_regdefine11n.h │ │ ├── phydm_regtable.h │ │ ├── phydm_rssi_monitor.c │ │ ├── phydm_rssi_monitor.h │ │ ├── phydm_smt_ant.c │ │ ├── phydm_smt_ant.h │ │ ├── phydm_soml.c │ │ ├── phydm_soml.h │ │ ├── phydm_types.h │ │ ├── rtl8822c/ │ │ │ ├── halhwimg8822c_bb.c │ │ │ ├── halhwimg8822c_bb.h │ │ │ ├── mp_precomp.h │ │ │ ├── phydm_hal_api8822c.c │ │ │ ├── phydm_hal_api8822c.h │ │ │ ├── phydm_regconfig8822c.c │ │ │ ├── phydm_regconfig8822c.h │ │ │ ├── phydm_rtl8822c.c │ │ │ ├── phydm_rtl8822c.h │ │ │ └── version_rtl8822c.h │ │ ├── sd4_phydm_2_kernel.mk │ │ └── txbf/ │ │ ├── halcomtxbf.c │ │ ├── halcomtxbf.h │ │ ├── haltxbf8192e.c │ │ ├── haltxbf8192e.h │ │ ├── haltxbf8814a.c │ │ ├── haltxbf8814a.h │ │ ├── haltxbf8822b.c │ │ ├── haltxbf8822b.h │ │ ├── haltxbfinterface.c │ │ ├── haltxbfinterface.h │ │ ├── haltxbfjaguar.c │ │ ├── haltxbfjaguar.h │ │ ├── phydm_hal_txbf_api.c │ │ └── phydm_hal_txbf_api.h │ └── rtl8822c/ │ ├── hal8822c_fw.c │ ├── hal8822c_fw.h │ ├── pci/ │ │ ├── rtl8822ce.h │ │ ├── rtl8822ce_halinit.c │ │ ├── rtl8822ce_halmac.c │ │ ├── rtl8822ce_io.c │ │ ├── rtl8822ce_led.c │ │ ├── rtl8822ce_ops.c │ │ ├── rtl8822ce_recv.c │ │ └── rtl8822ce_xmit.c │ ├── rtl8822c.h │ ├── rtl8822c_cmd.c │ ├── rtl8822c_halinit.c │ ├── rtl8822c_mac.c │ ├── rtl8822c_ops.c │ └── rtl8822c_phy.c ├── halmac.mk ├── ifcfg-wlan0 ├── include/ │ ├── Hal8188EPhyCfg.h │ ├── Hal8188EPhyReg.h │ ├── Hal8188EPwrSeq.h │ ├── Hal8188FPhyCfg.h │ ├── Hal8188FPhyReg.h │ ├── Hal8188FPwrSeq.h │ ├── Hal8192EPhyCfg.h │ ├── Hal8192EPhyReg.h │ ├── Hal8192EPwrSeq.h │ ├── Hal8192FPhyCfg.h │ ├── Hal8192FPhyReg.h │ ├── Hal8192FPwrSeq.h │ ├── Hal8703BPhyCfg.h │ ├── Hal8703BPhyReg.h │ ├── Hal8703BPwrSeq.h │ ├── Hal8710BPhyCfg.h │ ├── Hal8710BPhyReg.h │ ├── Hal8710BPwrSeq.h │ ├── Hal8723BPhyCfg.h │ ├── Hal8723BPhyReg.h │ ├── Hal8723BPwrSeq.h │ ├── Hal8723DPhyCfg.h │ ├── Hal8723DPhyReg.h │ ├── Hal8723DPwrSeq.h │ ├── Hal8723PwrSeq.h │ ├── Hal8812PhyCfg.h │ ├── Hal8812PhyReg.h │ ├── Hal8812PwrSeq.h │ ├── Hal8814PhyCfg.h │ ├── Hal8814PhyReg.h │ ├── Hal8814PwrSeq.h │ ├── Hal8821APwrSeq.h │ ├── HalPwrSeqCmd.h │ ├── HalVerDef.h │ ├── autoconf.h │ ├── basic_types.h │ ├── byteorder/ │ │ ├── big_endian.h │ │ ├── generic.h │ │ ├── little_endian.h │ │ ├── swab.h │ │ └── swabb.h │ ├── circ_buf.h │ ├── cmd_osdep.h │ ├── cmn_info/ │ │ └── rtw_sta_info.h │ ├── custom_gpio.h │ ├── drv_conf.h │ ├── drv_types.h │ ├── drv_types_ce.h │ ├── drv_types_gspi.h │ ├── drv_types_linux.h │ ├── drv_types_pci.h │ ├── drv_types_sdio.h │ ├── drv_types_xp.h │ ├── ethernet.h │ ├── gspi_hal.h │ ├── gspi_ops.h │ ├── gspi_ops_linux.h │ ├── gspi_osintf.h │ ├── h2clbk.h │ ├── hal_btcoex.h │ ├── hal_btcoex_wifionly.h │ ├── hal_com.h │ ├── hal_com_h2c.h │ ├── hal_com_led.h │ ├── hal_com_phycfg.h │ ├── hal_com_reg.h │ ├── hal_data.h │ ├── hal_gspi.h │ ├── hal_ic_cfg.h │ ├── hal_intf.h │ ├── hal_pg.h │ ├── hal_phy.h │ ├── hal_phy_reg.h │ ├── hal_sdio.h │ ├── hal_sdio_coex.h │ ├── ieee80211.h │ ├── ieee80211_ext.h │ ├── if_ether.h │ ├── ip.h │ ├── linux/ │ │ └── wireless.h │ ├── mlme_osdep.h │ ├── nic_spec.h │ ├── osdep_intf.h │ ├── osdep_service.h │ ├── osdep_service_bsd.h │ ├── osdep_service_ce.h │ ├── osdep_service_linux.h │ ├── osdep_service_xp.h │ ├── pci_hal.h │ ├── pci_ops.h │ ├── pci_osintf.h │ ├── recv_osdep.h │ ├── rtl8188e_cmd.h │ ├── rtl8188e_dm.h │ ├── rtl8188e_hal.h │ ├── rtl8188e_led.h │ ├── rtl8188e_recv.h │ ├── rtl8188e_rf.h │ ├── rtl8188e_spec.h │ ├── rtl8188e_sreset.h │ ├── rtl8188e_xmit.h │ ├── rtl8188f_cmd.h │ ├── rtl8188f_dm.h │ ├── rtl8188f_hal.h │ ├── rtl8188f_led.h │ ├── rtl8188f_recv.h │ ├── rtl8188f_rf.h │ ├── rtl8188f_spec.h │ ├── rtl8188f_sreset.h │ ├── rtl8188f_xmit.h │ ├── rtl8192e_cmd.h │ ├── rtl8192e_dm.h │ ├── rtl8192e_hal.h │ ├── rtl8192e_led.h │ ├── rtl8192e_recv.h │ ├── rtl8192e_rf.h │ ├── rtl8192e_spec.h │ ├── rtl8192e_sreset.h │ ├── rtl8192e_xmit.h │ ├── rtl8192f_cmd.h │ ├── rtl8192f_dm.h │ ├── rtl8192f_hal.h │ ├── rtl8192f_led.h │ ├── rtl8192f_recv.h │ ├── rtl8192f_rf.h │ ├── rtl8192f_spec.h │ ├── rtl8192f_sreset.h │ ├── rtl8192f_xmit.h │ ├── rtl8703b_cmd.h │ ├── rtl8703b_dm.h │ ├── rtl8703b_hal.h │ ├── rtl8703b_led.h │ ├── rtl8703b_recv.h │ ├── rtl8703b_rf.h │ ├── rtl8703b_spec.h │ ├── rtl8703b_sreset.h │ ├── rtl8703b_xmit.h │ ├── rtl8710b_cmd.h │ ├── rtl8710b_dm.h │ ├── rtl8710b_hal.h │ ├── rtl8710b_led.h │ ├── rtl8710b_lps_poff.h │ ├── rtl8710b_recv.h │ ├── rtl8710b_rf.h │ ├── rtl8710b_spec.h │ ├── rtl8710b_sreset.h │ ├── rtl8710b_xmit.h │ ├── rtl8723b_cmd.h │ ├── rtl8723b_dm.h │ ├── rtl8723b_hal.h │ ├── rtl8723b_led.h │ ├── rtl8723b_recv.h │ ├── rtl8723b_rf.h │ ├── rtl8723b_spec.h │ ├── rtl8723b_sreset.h │ ├── rtl8723b_xmit.h │ ├── rtl8723d_cmd.h │ ├── rtl8723d_dm.h │ ├── rtl8723d_hal.h │ ├── rtl8723d_led.h │ ├── rtl8723d_lps_poff.h │ ├── rtl8723d_recv.h │ ├── rtl8723d_rf.h │ ├── rtl8723d_spec.h │ ├── rtl8723d_sreset.h │ ├── rtl8723d_xmit.h │ ├── rtl8812a_cmd.h │ ├── rtl8812a_dm.h │ ├── rtl8812a_hal.h │ ├── rtl8812a_led.h │ ├── rtl8812a_recv.h │ ├── rtl8812a_rf.h │ ├── rtl8812a_spec.h │ ├── rtl8812a_sreset.h │ ├── rtl8812a_xmit.h │ ├── rtl8814a_cmd.h │ ├── rtl8814a_dm.h │ ├── rtl8814a_hal.h │ ├── rtl8814a_led.h │ ├── rtl8814a_recv.h │ ├── rtl8814a_rf.h │ ├── rtl8814a_spec.h │ ├── rtl8814a_sreset.h │ ├── rtl8814a_xmit.h │ ├── rtl8821a_spec.h │ ├── rtl8821a_xmit.h │ ├── rtl8821c_dm.h │ ├── rtl8821c_hal.h │ ├── rtl8821c_spec.h │ ├── rtl8821ce_hal.h │ ├── rtl8821cs_hal.h │ ├── rtl8821cu_hal.h │ ├── rtl8822b_hal.h │ ├── rtl8822be_hal.h │ ├── rtl8822bs_hal.h │ ├── rtl8822bu_hal.h │ ├── rtl8822c_hal.h │ ├── rtl8822ce_hal.h │ ├── rtl8822cs_hal.h │ ├── rtl8822cu_hal.h │ ├── rtw_android.h │ ├── rtw_ap.h │ ├── rtw_beamforming.h │ ├── rtw_br_ext.h │ ├── rtw_bt_mp.h │ ├── rtw_btcoex.h │ ├── rtw_btcoex_wifionly.h │ ├── rtw_byteorder.h │ ├── rtw_cmd.h │ ├── rtw_debug.h │ ├── rtw_eeprom.h │ ├── rtw_efuse.h │ ├── rtw_event.h │ ├── rtw_ht.h │ ├── rtw_io.h │ ├── rtw_ioctl.h │ ├── rtw_ioctl_query.h │ ├── rtw_ioctl_set.h │ ├── rtw_iol.h │ ├── rtw_mcc.h │ ├── rtw_mem.h │ ├── rtw_mi.h │ ├── rtw_mlme.h │ ├── rtw_mlme_ext.h │ ├── rtw_mp.h │ ├── rtw_mp_phy_regdef.h │ ├── rtw_odm.h │ ├── rtw_p2p.h │ ├── rtw_pwrctrl.h │ ├── rtw_qos.h │ ├── rtw_recv.h │ ├── rtw_rf.h │ ├── rtw_rm.h │ ├── rtw_rm_fsm.h │ ├── rtw_rson.h │ ├── rtw_sdio.h │ ├── rtw_security.h │ ├── rtw_sreset.h │ ├── rtw_tdls.h │ ├── rtw_version.h │ ├── rtw_vht.h │ ├── rtw_wapi.h │ ├── rtw_wifi_regd.h │ ├── rtw_xmit.h │ ├── sdio_hal.h │ ├── sdio_ops.h │ ├── sdio_ops_ce.h │ ├── sdio_ops_linux.h │ ├── sdio_ops_xp.h │ ├── sdio_osintf.h │ ├── sta_info.h │ ├── usb_hal.h │ ├── usb_ops.h │ ├── usb_ops_linux.h │ ├── usb_osintf.h │ ├── usb_vendor_req.h │ ├── wifi.h │ ├── wlan_bssdef.h │ └── xmit_osdep.h ├── os_dep/ │ ├── linux/ │ │ ├── .rtw_proc.o.d │ │ ├── custom_gpio_linux.c │ │ ├── ioctl_cfg80211.c │ │ ├── ioctl_cfg80211.h │ │ ├── ioctl_linux.c │ │ ├── ioctl_mp.c │ │ ├── mlme_linux.c │ │ ├── os_intfs.c │ │ ├── pci_intf.c │ │ ├── pci_ops_linux.c │ │ ├── recv_linux.c │ │ ├── rhashtable.c │ │ ├── rhashtable.h │ │ ├── rtw_android.c │ │ ├── rtw_cfgvendor.c │ │ ├── rtw_cfgvendor.h │ │ ├── rtw_proc.c │ │ ├── rtw_proc.h │ │ ├── rtw_rhashtable.c │ │ ├── rtw_rhashtable.h │ │ ├── wifi_regd.c │ │ └── xmit_linux.c │ └── osdep_service.c ├── platform/ │ ├── custom_country_chplan.h │ ├── platform_ARM_SUN50IW1P1_sdio.c │ ├── platform_ARM_SUNnI_sdio.c │ ├── platform_ARM_SUNxI_sdio.c │ ├── platform_ARM_SUNxI_usb.c │ ├── platform_ARM_WMT_sdio.c │ ├── platform_RTK_DMP_usb.c │ ├── platform_aml_s905_sdio.c │ ├── platform_aml_s905_sdio.h │ ├── platform_arm_act_sdio.c │ ├── platform_hisilicon_hi3798_sdio.c │ ├── platform_hisilicon_hi3798_sdio.h │ ├── platform_ops.c │ ├── platform_ops.h │ ├── platform_sprd_sdio.c │ ├── platform_zte_zx296716_sdio.c │ └── platform_zte_zx296716_sdio.h ├── rtl8822c.mk ├── rtw88_blacklist.conf ├── runwpa └── wlan0dhcp
Showing preview only (1,020K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (12901 symbols across 439 files)
FILE: core/efuse/rtw_efuse.c
function BOOLEAN (line 43) | BOOLEAN rtw_file_efuse_IsMasked(PADAPTER pAdapter, u16 Offset, u8 *maskbuf)
function BOOLEAN (line 59) | BOOLEAN efuse_IsBT_Masked(PADAPTER pAdapter, u16 Offset)
function rtw_bt_efuse_mask_array (line 82) | void rtw_bt_efuse_mask_array(PADAPTER pAdapter, u8 *pArray)
function u16 (line 101) | u16 rtw_get_bt_efuse_mask_arraylen(PADAPTER pAdapter)
function BOOLEAN (line 120) | BOOLEAN efuse_IsMasked(PADAPTER pAdapter, u16 Offset)
function rtw_efuse_mask_array (line 285) | void rtw_efuse_mask_array(PADAPTER pAdapter, u8 *pArray)
function u16 (line 431) | u16 rtw_get_efuse_mask_arraylen(PADAPTER pAdapter)
function rtw_mask_map_read (line 578) | static void rtw_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 ...
function rtw_bt_mask_map_read (line 599) | static void rtw_bt_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, ...
function u8 (line 622) | u8 rtw_efuse_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
function u8 (line 640) | static u8 hal_EfuseSwitchToBank(
function rtw_efuse_analyze (line 688) | void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake)
function efuse_PreUpdateAction (line 915) | void efuse_PreUpdateAction(
function efuse_PostUpdateAction (line 944) | void efuse_PostUpdateAction(
function Efuse_PowerSwitch (line 964) | void Efuse_PowerSwitch(PADAPTER adapter, u8 write, u8 pwrstate)
function BTEfuse_PowerSwitch (line 968) | void BTEfuse_PowerSwitch(PADAPTER adapter, u8 write, u8 pwrstate)
function u8 (line 972) | u8 efuse_GetCurrentSize(PADAPTER adapter, u16 *size)
function u16 (line 979) | u16 efuse_GetMaxSize(PADAPTER adapter)
function u16 (line 993) | u16 efuse_GetavailableSize(PADAPTER adapter)
function u8 (line 1008) | u8 efuse_bt_GetCurrentSize(PADAPTER adapter, u16 *usesize)
function u16 (line 1029) | u16 efuse_bt_GetMaxSize(PADAPTER adapter)
function EFUSE_GetEfuseDefinition (line 1034) | void EFUSE_GetEfuseDefinition(PADAPTER adapter, u8 efusetype, u8 type, v...
function u8 (line 1075) | u8 rtw_efuse_access(PADAPTER adapter, u8 write, u16 addr, u16 cnts, u8 *...
function dump_buf (line 1120) | static inline void dump_buf(u8 *buf, u32 len)
function u8 (line 1133) | u8 rtw_efuse_bt_access(PADAPTER adapter, u8 write, u16 addr, u16 cnts, u...
function u8 (line 1178) | u8 rtw_efuse_map_read(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
function u8 (line 1236) | u8 rtw_efuse_map_write(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
function Efuse_PgPacketRead (line 1308) | int Efuse_PgPacketRead(PADAPTER adapter, u8 offset, u8 *data, BOOLEAN test)
function Efuse_PgPacketWrite (line 1313) | int Efuse_PgPacketWrite(PADAPTER adapter, u8 offset, u8 word_en, u8 *dat...
function u8 (line 1318) | u8 rtw_BT_efuse_map_read(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
function u16 (line 1327) | static u16
function u8 (line 1413) | u8 rtw_BT_efuse_map_write(PADAPTER adapter, u16 addr, u16 cnts, u8 *data)
function hal_ReadEFuse_BT_logic_map (line 1535) | void hal_ReadEFuse_BT_logic_map(
function u8 (line 1673) | static u8 hal_EfusePartialWriteCheck(
function u8 (line 1716) | static u8 hal_EfusePgPacketWrite2ByteHeader(
function u8 (line 1783) | static u8 hal_EfusePgPacketWrite1ByteHeader(
function u8 (line 1821) | static u8 hal_EfusePgPacketWriteHeader(
function u8 (line 1839) | static u8
function hal_EfuseConstructPGPkt (line 1897) | static void
function u8 (line 1911) | static u8
function u8 (line 1933) | u8 efuse_OneByteRead(struct _ADAPTER *a, u16 addr, u8 *data, u8 bPseudoT...
function u8 (line 1951) | static u8
function u8 (line 1968) | u8 EfusePgPacketWrite_BT(
function BOOLEAN (line 2009) | BOOLEAN
function BOOLEAN (line 2030) | BOOLEAN
function Efuse_PowerSwitch (line 2063) | void
function BTEfuse_PowerSwitch (line 2072) | void
function u16 (line 2098) | u16
function ReadEFuseByte (line 2122) | void
function efuse_ReadEFuse (line 2200) | void
function EFUSE_GetEfuseDefinition (line 2213) | void
function u8 (line 2227) | u8
function u8 (line 2294) | u8
function Efuse_PgPacketRead (line 2366) | int
function Efuse_PgPacketWrite (line 2379) | int
function Efuse_PgPacketWrite_BT (line 2394) | int
function u8 (line 2409) | u8
function u8 (line 2423) | static u8 efuse_read8(PADAPTER padapter, u16 address, u8 *value)
function u8 (line 2428) | static u8 efuse_write8(PADAPTER padapter, u16 address, u8 *value)
function u8 (line 2436) | u8 rtw_efuse_access(PADAPTER padapter, u8 bWrite, u16 start_addr, u16 cn...
function u16 (line 2481) | u16 efuse_GetMaxSize(PADAPTER padapter)
function u8 (line 2490) | u8 efuse_GetCurrentSize(PADAPTER padapter, u16 *size)
function u16 (line 2499) | u16 efuse_bt_GetMaxSize(PADAPTER padapter)
function u8 (line 2508) | u8 efuse_bt_GetCurrentSize(PADAPTER padapter, u16 *size)
function u8 (line 2517) | u8 rtw_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
function u8 (line 2535) | u8 rtw_BT_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
function u8 (line 2554) | u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
function u8 (line 2709) | u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
function Efuse_ReadAllMap (line 2812) | void
function efuse_ShadowWrite1Byte (line 2855) | static void
function efuse_ShadowWrite2Byte (line 2868) | static void
function efuse_ShadowWrite4Byte (line 2884) | static void
function EFUSE_ShadowWrite (line 2922) | void
function efuse_ShadowRead1Byte (line 2964) | static void
function efuse_ShadowRead2Byte (line 2977) | static void
function efuse_ShadowRead4Byte (line 2991) | static void
function EFUSE_ShadowRead (line 3011) | void
function u8 (line 3028) | u8
function efuse_WordEnableDataRead (line 3060) | void
function u8 (line 3177) | u8 mac_hidden_wl_func_to_hal_wl_func(u8 func)
function isAdaptorInfoFileValid (line 3197) | int isAdaptorInfoFileValid(void)
function storeAdaptorInfoFile (line 3202) | int storeAdaptorInfoFile(char *path, u8 *efuse_data)
function retriveAdaptorInfoFile (line 3219) | int retriveAdaptorInfoFile(char *path, u8 *efuse_data)
function u8 (line 3249) | u8 rtw_efuse_file_read(PADAPTER padapter, u8 *filepatch, u8 *buf, u32 len)
function u32 (line 3306) | u32 rtw_read_efuse_from_file(const char *path, u8 *buf, int map_size)
function u32 (line 3400) | u32 rtw_read_macaddr_from_file(const char *path, u8 *buf)
FILE: core/mesh/rtw_mesh.c
function u8 (line 47) | inline u8 *rtw_set_ie_mesh_id(u8 *buf, u32 *buf_len, const char *mesh_id...
function u8 (line 52) | inline u8 *rtw_set_ie_mesh_config(u8 *buf, u32 *buf_len
function u8 (line 82) | inline u8 *rtw_set_ie_mpm(u8 *buf, u32 *buf_len
function rtw_bss_is_forwarding (line 112) | bool rtw_bss_is_forwarding(WLAN_BSSID_EX *bss)
function rtw_bss_is_cto_mgate (line 129) | bool rtw_bss_is_cto_mgate(WLAN_BSSID_EX *bss)
function rtw_bss_is_same_mbss (line 146) | int rtw_bss_is_same_mbss(WLAN_BSSID_EX *a, WLAN_BSSID_EX *b)
function rtw_bss_is_candidate_mesh_peer (line 176) | int rtw_bss_is_candidate_mesh_peer(WLAN_BSSID_EX *self, WLAN_BSSID_EX *t...
function rtw_mesh_bss_peering_status (line 237) | void rtw_mesh_bss_peering_status(WLAN_BSSID_EX *bss, u8 *nop, u8 *accept)
function rtw_mesh_update_scanned_acnode_status (line 262) | void rtw_mesh_update_scanned_acnode_status(_adapter *adapter, struct wla...
function rtw_mesh_scanned_is_acnode_confirmed (line 281) | bool rtw_mesh_scanned_is_acnode_confirmed(_adapter *adapter, struct wlan...
function rtw_mesh_scanned_is_acnode_allow_notify (line 288) | static bool rtw_mesh_scanned_is_acnode_allow_notify(_adapter *adapter, s...
function rtw_mesh_acnode_prevent_allow_sacrifice (line 294) | bool rtw_mesh_acnode_prevent_allow_sacrifice(_adapter *adapter)
function rtw_mesh_acnode_candidate_exist (line 316) | static bool rtw_mesh_acnode_candidate_exist(_adapter *adapter)
function rtw_mesh_acnode_prevent_sacrifice_chk (line 360) | static int rtw_mesh_acnode_prevent_sacrifice_chk(_adapter *adapter, stru...
type sta_info (line 402) | struct sta_info
type sta_priv (line 404) | struct sta_priv
type sta_info (line 406) | struct sta_info
type sta_info (line 430) | struct sta_info
type sta_priv (line 432) | struct sta_priv
type sta_info (line 433) | struct sta_info
function rtw_mesh_acnode_rsvd_chk (line 444) | static void rtw_mesh_acnode_rsvd_chk(_adapter *adapter)
function rtw_mesh_acnode_set_notify_etime (line 462) | static void rtw_mesh_acnode_set_notify_etime(_adapter *adapter, u8 *rfra...
function dump_mesh_acnode_prevent_settings (line 476) | void dump_mesh_acnode_prevent_settings(void *sel, _adapter *adapter)
function rtw_mesh_peer_blacklist_add (line 490) | int rtw_mesh_peer_blacklist_add(_adapter *adapter, const u8 *addr)
function rtw_mesh_peer_blacklist_del (line 500) | int rtw_mesh_peer_blacklist_del(_adapter *adapter, const u8 *addr)
function rtw_mesh_peer_blacklist_search (line 508) | int rtw_mesh_peer_blacklist_search(_adapter *adapter, const u8 *addr)
function rtw_mesh_peer_blacklist_flush (line 516) | void rtw_mesh_peer_blacklist_flush(_adapter *adapter)
function dump_mesh_peer_blacklist (line 524) | void dump_mesh_peer_blacklist(void *sel, _adapter *adapter)
function dump_mesh_peer_blacklist_settings (line 532) | void dump_mesh_peer_blacklist_settings(void *sel, _adapter *adapter)
function u8 (line 545) | u8 rtw_mesh_cto_mgate_required(_adapter *adapter)
function u8 (line 554) | u8 rtw_mesh_cto_mgate_network_filter(_adapter *adapter, struct wlan_netw...
function rtw_mesh_cto_mgate_blacklist_add (line 564) | int rtw_mesh_cto_mgate_blacklist_add(_adapter *adapter, const u8 *addr)
function rtw_mesh_cto_mgate_blacklist_del (line 574) | int rtw_mesh_cto_mgate_blacklist_del(_adapter *adapter, const u8 *addr)
function rtw_mesh_cto_mgate_blacklist_search (line 582) | int rtw_mesh_cto_mgate_blacklist_search(_adapter *adapter, const u8 *addr)
function rtw_mesh_cto_mgate_blacklist_flush (line 590) | void rtw_mesh_cto_mgate_blacklist_flush(_adapter *adapter)
function dump_mesh_cto_mgate_blacklist (line 598) | void dump_mesh_cto_mgate_blacklist(void *sel, _adapter *adapter)
function dump_mesh_cto_mgate_blacklist_settings (line 606) | void dump_mesh_cto_mgate_blacklist_settings(void *sel, _adapter *adapter)
function rtw_mesh_cto_mgate_blacklist_chk (line 617) | static void rtw_mesh_cto_mgate_blacklist_chk(_adapter *adapter)
function rtw_chk_candidate_peer_notify (line 653) | void rtw_chk_candidate_peer_notify(_adapter *adapter, struct wlan_networ...
function rtw_mesh_peer_status_chk (line 718) | void rtw_mesh_peer_status_chk(_adapter *adapter)
function u8 (line 879) | static u8 rtw_mesh_offch_cto_mgate_required(_adapter *adapter)
function u8 (line 928) | u8 rtw_mesh_offch_candidate_accepted(_adapter *adapter)
function u8 (line 959) | u8 rtw_mesh_select_operating_ch(_adapter *adapter)
function dump_mesh_offch_cand_settings (line 1028) | void dump_mesh_offch_cand_settings(void *sel, _adapter *adapter)
function dump_mesh_peer_sel_policy (line 1039) | void dump_mesh_peer_sel_policy(void *sel, _adapter *adapter)
function dump_mesh_networks (line 1047) | void dump_mesh_networks(void *sel, _adapter *adapter)
function rtw_mesh_adjust_chbw (line 1171) | void rtw_mesh_adjust_chbw(u8 req_ch, u8 *req_bw, u8 *req_offset)
function rtw_mesh_sae_check_frames (line 1182) | void rtw_mesh_sae_check_frames(_adapter *adapter, const u8 *buf, u32 len...
function rtw_mpm_ampe_dec (line 1192) | static int rtw_mpm_ampe_dec(_adapter *adapter, struct mesh_plink_ent *plink
function rtw_mpm_ampe_enc (line 1229) | static int rtw_mpm_ampe_enc(_adapter *adapter, struct mesh_plink_ent *plink
function rtw_mpm_tx_ies_sync_bss (line 1270) | static int rtw_mpm_tx_ies_sync_bss(_adapter *adapter, struct mesh_plink_...
type mpm_frame_info (line 1417) | struct mpm_frame_info {
function rtw_mpm_info_msg (line 1437) | static void rtw_mpm_info_msg(struct mpm_frame_info *mpm_info, u8 *mpm_lo...
type rtw_mesh_info (line 1478) | struct rtw_mesh_info
type mesh_plink_pool (line 1479) | struct mesh_plink_pool
type mesh_plink_ent (line 1480) | struct mesh_plink_ent
type rtw_ieee80211_hdr_3addr (line 1486) | struct rtw_ieee80211_hdr_3addr
type mpm_frame_info (line 1487) | struct mpm_frame_info
type mpm_frame_info (line 1515) | struct mpm_frame_info
type rtw_ieee80211_hdr_3addr (line 1522) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1524) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1584) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1586) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1605) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1606) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1618) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1620) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1622) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1628) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1629) | struct rtw_ieee80211_hdr_3addr
type sta_info (line 1651) | struct sta_info
type sta_priv (line 1654) | struct sta_priv
type rtw_ieee80211_hdr_3addr (line 1721) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1723) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 1727) | struct rtw_ieee80211_hdr_3addr
function rtw_mesh_check_frames (line 1766) | static int rtw_mesh_check_frames(_adapter *adapter, const u8 **buf, size...
function rtw_mesh_check_frames_tx (line 1797) | int rtw_mesh_check_frames_tx(_adapter *adapter, const u8 **buf, size_t *...
function rtw_mesh_check_frames_rx (line 1802) | int rtw_mesh_check_frames_rx(_adapter *adapter, const u8 *buf, size_t len)
function rtw_mesh_on_auth (line 1807) | int rtw_mesh_on_auth(_adapter *adapter, union recv_frame *rframe)
function on_action_self_protected (line 1832) | unsigned int on_action_self_protected(_adapter *adapter, union recv_fram...
function on_action_mesh (line 1889) | unsigned int on_action_mesh(_adapter *adapter, union recv_frame *rframe)
function rtw_mesh_update_bss_peering_status (line 1923) | bool rtw_mesh_update_bss_peering_status(_adapter *adapter, WLAN_BSSID_EX...
function rtw_mesh_update_bss_formation_info (line 1959) | bool rtw_mesh_update_bss_formation_info(_adapter *adapter, WLAN_BSSID_EX...
function rtw_mesh_update_bss_forwarding_state (line 1990) | bool rtw_mesh_update_bss_forwarding_state(_adapter *adapter, WLAN_BSSID_...
type mesh_plink_ent (line 2014) | struct mesh_plink_ent
type rtw_mesh_info (line 2016) | struct rtw_mesh_info
type mesh_plink_pool (line 2017) | struct mesh_plink_pool
type mesh_plink_ent (line 2018) | struct mesh_plink_ent
type mesh_plink_ent (line 2033) | struct mesh_plink_ent
type rtw_mesh_info (line 2035) | struct rtw_mesh_info
type mesh_plink_pool (line 2036) | struct mesh_plink_pool
type mesh_plink_ent (line 2037) | struct mesh_plink_ent
type mesh_plink_ent (line 2047) | struct mesh_plink_ent
type rtw_mesh_info (line 2049) | struct rtw_mesh_info
type mesh_plink_pool (line 2050) | struct mesh_plink_pool
type mesh_plink_ent (line 2051) | struct mesh_plink_ent
function _rtw_mesh_plink_add (line 2072) | int _rtw_mesh_plink_add(_adapter *adapter, const u8 *hwaddr)
function rtw_mesh_plink_add (line 2120) | int rtw_mesh_plink_add(_adapter *adapter, const u8 *hwaddr)
function rtw_mesh_plink_set_state (line 2134) | int rtw_mesh_plink_set_state(_adapter *adapter, const u8 *hwaddr, u8 state)
function rtw_mesh_plink_set_aek (line 2151) | int rtw_mesh_plink_set_aek(_adapter *adapter, const u8 *hwaddr, const u8...
function rtw_mesh_plink_set_peer_conf_timeout (line 2171) | int rtw_mesh_plink_set_peer_conf_timeout(_adapter *adapter, const u8 *hw...
function _rtw_mesh_plink_del_ent (line 2191) | void _rtw_mesh_plink_del_ent(_adapter *adapter, struct mesh_plink_ent *ent)
function rtw_mesh_plink_del (line 2212) | int rtw_mesh_plink_del(_adapter *adapter, const u8 *hwaddr)
function rtw_mesh_plink_ctl_init (line 2240) | void rtw_mesh_plink_ctl_init(_adapter *adapter)
function rtw_mesh_plink_ctl_deinit (line 2259) | void rtw_mesh_plink_ctl_deinit(_adapter *adapter)
function dump_mesh_plink_ctl (line 2291) | void dump_mesh_plink_ctl(void *sel, _adapter *adapter)
function rtw_mesh_peer_establish (line 2359) | int rtw_mesh_peer_establish(_adapter *adapter, struct mesh_plink_ent *pl...
function rtw_mesh_expire_peer_notify (line 2482) | void rtw_mesh_expire_peer_notify(_adapter *adapter, const u8 *peer_addr)
function u8 (line 2499) | static u8 *rtw_mesh_construct_peer_mesh_close(_adapter *adapter, struct ...
function _rtw_mesh_expire_peer_ent (line 2572) | void _rtw_mesh_expire_peer_ent(_adapter *adapter, struct mesh_plink_ent ...
function rtw_mesh_expire_peer (line 2605) | void rtw_mesh_expire_peer(_adapter *adapter, const u8 *peer_addr)
function u8 (line 2624) | u8 rtw_mesh_ps_annc(_adapter *adapter, u8 ps)
function mpath_tx_tasklet_hdl (line 2666) | static void mpath_tx_tasklet_hdl(void *priv)
function rtw_mpath_tx_queue_flush (line 2708) | static void rtw_mpath_tx_queue_flush(_adapter *adapter)
type rtw_mcache (line 2738) | typedef struct kmem_cache rtw_mcache;
function rtw_mcache (line 2741) | rtw_mcache *rtw_mcache_create(const char *name, size_t size)
function rtw_mcache_destroy (line 2750) | void rtw_mcache_destroy(rtw_mcache *s)
function _rtw_mcache_free (line 2768) | void _rtw_mcache_free(rtw_mcache *cachep, void *objp)
type mstat_f (line 2778) | enum mstat_f
function dbg_rtw_mcache_free (line 2797) | inline void dbg_rtw_mcache_free(rtw_mcache *cachep, void *pbuf, const en...
type rtw_mrc_entry (line 2837) | struct rtw_mrc_entry {
type rtw_mrc (line 2844) | struct rtw_mrc {
function rtw_mrc_init (line 2850) | static int rtw_mrc_init(_adapter *adapter)
function rtw_mrc_free (line 2869) | static void rtw_mrc_free(_adapter *adapter)
function rtw_mrc_check (line 2906) | static int rtw_mrc_check(_adapter *adapter, const u8 *msa, u32 seq)
function rtw_mesh_decache (line 2945) | static int rtw_mesh_decache(_adapter *adapter, const u8 *msa, u32 seq)
function rtw_mesh_cfg_init_peer_sel_policy (line 2988) | void rtw_mesh_cfg_init_peer_sel_policy(struct rtw_mesh_cfg *mcfg)
function rtw_mesh_cfg_init (line 3017) | void rtw_mesh_cfg_init(_adapter *adapter)
function rtw_mesh_cfg_init_max_peer_links (line 3054) | void rtw_mesh_cfg_init_max_peer_links(_adapter *adapter, u8 stack_conf)
function rtw_mesh_cfg_init_plink_timeout (line 3064) | void rtw_mesh_cfg_init_plink_timeout(_adapter *adapter, u32 stack_conf)
function rtw_mesh_init_mesh_info (line 3071) | void rtw_mesh_init_mesh_info(_adapter *adapter)
function rtw_mesh_deinit_mesh_info (line 3102) | void rtw_mesh_deinit_mesh_info(_adapter *adapter)
function rtw_mesh_nexthop_resolve (line 3134) | int rtw_mesh_nexthop_resolve(_adapter *adapter,
function rtw_mesh_nexthop_lookup (line 3197) | int rtw_mesh_nexthop_lookup(_adapter *adapter,
function rtw_mesh_data_bmc_to_uc (line 3255) | static bool rtw_mesh_data_bmc_to_uc(_adapter *adapter
function dump_mesh_b2u_flags (line 3332) | void dump_mesh_b2u_flags(void *sel, _adapter *adapter)
function rtw_mesh_addr_resolve (line 3341) | int rtw_mesh_addr_resolve(_adapter *adapter, struct xmit_frame *xframe, ...
function s8 (line 3443) | s8 rtw_mesh_tx_set_whdr_mctrl_len(u8 mesh_frame_mode, struct pkt_attrib ...
function rtw_mesh_tx_build_mctrl (line 3476) | void rtw_mesh_tx_build_mctrl(_adapter *adapter, struct pkt_attrib *attri...
function u8 (line 3525) | u8 rtw_mesh_tx_build_whdr(_adapter *adapter, struct pkt_attrib *attrib
function rtw_mesh_rx_data_validate_hdr (line 3561) | int rtw_mesh_rx_data_validate_hdr(_adapter *adapter, union recv_frame *r...
function rtw_mesh_rx_data_validate_mctrl (line 3655) | int rtw_mesh_rx_data_validate_mctrl(_adapter *adapter, union recv_frame ...
function rtw_mesh_rx_validate_mctrl_non_amsdu (line 3703) | inline int rtw_mesh_rx_validate_mctrl_non_amsdu(_adapter *adapter, union...
function rtw_mesh_rx_nexthop_resolve (line 3735) | static int rtw_mesh_rx_nexthop_resolve(_adapter *adapter,
function rtw_mesh_rx_msdu_act_check (line 3774) | int rtw_mesh_rx_msdu_act_check(union recv_frame *rframe
function dump_mesh_stats (line 4080) | void dump_mesh_stats(void *sel, _adapter *adapter)
FILE: core/mesh/rtw_mesh.h
type rtw_mesh_preq_queue (line 110) | struct rtw_mesh_preq_queue {
type mesh_frame_type (line 118) | enum mesh_frame_type {
type mpath_sel_frame_type (line 127) | enum mpath_sel_frame_type {
type rtw_mesh_deferred_task_flags (line 145) | enum rtw_mesh_deferred_task_flags {
type mesh_plink_ent (line 192) | struct mesh_plink_ent {
type mesh_plink_pool (line 240) | struct mesh_plink_pool {
type mesh_peer_sel_policy (line 257) | struct mesh_peer_sel_policy {
type rtw_mesh_cfg (line 307) | struct rtw_mesh_cfg {
type rtw_mesh_stats (line 342) | struct rtw_mesh_stats {
type rtw_mrc (line 354) | struct rtw_mrc
type rtw_mesh_info (line 356) | struct rtw_mesh_info {
type wlan_network (line 417) | struct wlan_network
type wlan_network (line 422) | struct wlan_network
type wlan_network (line 423) | struct wlan_network
type sta_info (line 425) | struct sta_info
type wlan_network (line 445) | struct wlan_network
type mesh_plink_ent (line 469) | struct mesh_plink_ent
type mesh_plink_ent (line 470) | struct mesh_plink_ent
type mesh_plink_ent (line 471) | struct mesh_plink_ent
type mesh_plink_ent (line 481) | struct mesh_plink_ent
type mesh_plink_ent (line 487) | struct mesh_plink_ent
type sta_info (line 487) | struct sta_info
type mesh_plink_ent (line 488) | struct mesh_plink_ent
type xmit_frame (line 504) | struct xmit_frame
type pkt_attrib (line 506) | struct pkt_attrib
type pkt_attrib (line 507) | struct pkt_attrib
type pkt_attrib (line 508) | struct pkt_attrib
type rtw_ieee80211_hdr (line 509) | struct rtw_ieee80211_hdr
type sta_info (line 511) | struct sta_info
type rtw_ieee80211s_hdr (line 513) | struct rtw_ieee80211s_hdr
type rtw_ieee80211s_hdr (line 520) | struct rtw_ieee80211s_hdr
type xmit_frame (line 521) | struct xmit_frame
FILE: core/mesh/rtw_mesh_hwmp.c
type rtw_mpath_frame_type (line 96) | enum rtw_mpath_frame_type {
function u32 (line 103) | static inline u32 rtw_u32_field_get(const u8 *preq_elem, int shift, BOOL...
function u16 (line 110) | static inline u16 rtw_u16_field_get(const u8 *preq_elem, int shift, BOOL...
function u32 (line 155) | static inline u32 RTW_SN_DELTA(u32 x, u32 y)
function BOOLEAN (line 172) | static inline BOOLEAN rtw_ether_addr_equal(const u8 *addr1, const u8 *ad...
function rtw_ewma_err_rate_init (line 187) | inline void rtw_ewma_err_rate_init(struct rtw_ewma_err_rate *e)
function rtw_ewma_err_rate_read (line 191) | inline unsigned long rtw_ewma_err_rate_read(struct rtw_ewma_err_rate *e)
function rtw_ewma_err_rate_add (line 195) | inline void rtw_ewma_err_rate_add(struct rtw_ewma_err_rate *e,
function rtw_mesh_path_sel_frame_tx (line 209) | static int rtw_mesh_path_sel_frame_tx(enum rtw_mpath_frame_type mpath_ac...
function rtw_mesh_path_error_tx (line 322) | int rtw_mesh_path_error_tx(_adapter *adapter,
function u32 (line 397) | static u32 rtw_get_vht_bitrate(u8 mcs, u8 bw, u8 nss, u8 sgi)
function u32 (line 486) | static u32 rtw_get_ht_bitrate(u8 mcs, u8 bw, u8 sgi)
function u32 (line 528) | static u32 rtw_desc_rate_to_bitrate(u8 bw, u8 rate_idx, u8 sgi)
function u32 (line 553) | static u32 rtw_airtime_link_metric_get(_adapter *adapter, struct sta_inf...
function rtw_ieee80211s_update_metric (line 588) | void rtw_ieee80211s_update_metric(_adapter *adapter, u8 mac_id,
function rtw_hwmp_preq_frame_process (line 624) | static void rtw_hwmp_preq_frame_process(_adapter *adapter,
type sta_info (line 800) | struct sta_info
type rtw_mesh_path (line 801) | struct rtw_mesh_path
function rtw_hwmp_prep_frame_process (line 807) | static void rtw_hwmp_prep_frame_process(_adapter *adapter,
function rtw_hwmp_perr_frame_process (line 889) | static void rtw_hwmp_perr_frame_process(_adapter *adapter,
function rtw_hwmp_rann_frame_process (line 944) | static void rtw_hwmp_rann_frame_process(_adapter *adapter,
function u32 (line 1062) | static u32 rtw_hwmp_route_info_get(_adapter *adapter,
function rtw_mesh_rx_hwmp_frame_cnts (line 1213) | static void rtw_mesh_rx_hwmp_frame_cnts(_adapter *adapter, u8 *addr)
function rtw_mesh_rx_path_sel_frame (line 1222) | void rtw_mesh_rx_path_sel_frame(_adapter *adapter, union recv_frame *rfr...
function rtw_mesh_queue_preq (line 1283) | void rtw_mesh_queue_preq(struct rtw_mesh_path *path, u8 flags)
function u8 (line 1342) | static const u8 *rtw_hwmp_preq_da(struct rtw_mesh_path *path,
function rtw_mesh_path_start_discovery (line 1365) | void rtw_mesh_path_start_discovery(_adapter *adapter)
function rtw_mesh_path_timer (line 1465) | void rtw_mesh_path_timer(void *ctx)
function rtw_mesh_path_tx_root_frame (line 1520) | void rtw_mesh_path_tx_root_frame(_adapter *adapter)
function rtw_mesh_work (line 1555) | void rtw_mesh_work(_workitem *work)
function rtw_ieee80211_mesh_path_timer (line 1561) | void rtw_ieee80211_mesh_path_timer(void *ctx)
function rtw_ieee80211_mesh_path_root_timer (line 1567) | void rtw_ieee80211_mesh_path_root_timer(void *ctx)
function rtw_ieee80211_mesh_rootpath (line 1576) | static void rtw_ieee80211_mesh_rootpath(_adapter *adapter)
function BOOLEAN (line 1591) | BOOLEAN rtw_ieee80211_mesh_root_setup(_adapter *adapter)
function rtw_mesh_work_hdl (line 1609) | void rtw_mesh_work_hdl(_workitem *work)
function rtw_update_metric_directly (line 1632) | static void rtw_update_metric_directly(_adapter *adapter)
function rtw_mesh_atlm_param_req_timer (line 1658) | void rtw_mesh_atlm_param_req_timer(void *ctx)
FILE: core/mesh/rtw_mesh_hwmp.h
type rtw_ewma_err_rate (line 37) | struct rtw_ewma_err_rate
type rtw_ewma_err_rate (line 38) | struct rtw_ewma_err_rate
type rtw_ewma_err_rate (line 39) | struct rtw_ewma_err_rate
type rtw_mesh_path (line 47) | struct rtw_mesh_path
FILE: core/mesh/rtw_mesh_pathtbl.c
function rtw_mpath_free_rcu (line 23) | static void rtw_mpath_free_rcu(struct rtw_mesh_path *mpath)
function rtw_mpath_free_rcu_callback (line 29) | static void rtw_mpath_free_rcu_callback(rtw_rcu_head *head)
function rtw_mpath_free_rcu (line 37) | static void rtw_mpath_free_rcu(struct rtw_mesh_path *mpath)
type rtw_mesh_table (line 44) | struct rtw_mesh_table
type rtw_mesh_path (line 44) | struct rtw_mesh_path
function u32 (line 46) | static u32 rtw_mesh_table_hash(const void *addr, u32 len, u32 seed)
type rtw_mesh_path (line 56) | struct rtw_mesh_path
type rtw_mesh_path (line 57) | struct rtw_mesh_path
function rtw_mpath_expired (line 61) | static inline bool rtw_mpath_expired(struct rtw_mesh_path *mpath)
function rtw_mesh_path_rht_free (line 68) | static void rtw_mesh_path_rht_free(void *ptr, void *tblptr)
type rtw_mesh_table (line 76) | struct rtw_mesh_table
type rtw_mesh_table (line 78) | struct rtw_mesh_table
type rtw_mesh_table (line 80) | struct rtw_mesh_table
function rtw_mesh_table_free (line 91) | static void rtw_mesh_table_free(struct rtw_mesh_table *tbl)
function rtw_mesh_path_assign_nexthop (line 107) | void rtw_mesh_path_assign_nexthop(struct rtw_mesh_path *mpath, struct st...
function rtw_prepare_for_gate (line 126) | static void rtw_prepare_for_gate(struct xmit_frame *xframe, char *dst_addr,
function rtw_mesh_path_move_to_queue (line 161) | static void rtw_mesh_path_move_to_queue(struct rtw_mesh_path *gate_mpath,
type rtw_mesh_path (line 233) | struct rtw_mesh_path
type rtw_mesh_table (line 233) | struct rtw_mesh_table
type rtw_mesh_path (line 235) | struct rtw_mesh_path
type rtw_mesh_path (line 259) | struct rtw_mesh_path
type rtw_mesh_path (line 265) | struct rtw_mesh_path
type rtw_mesh_path (line 271) | struct rtw_mesh_path
type rtw_mesh_table (line 272) | struct rtw_mesh_table
type rtw_mesh_path (line 275) | struct rtw_mesh_path
type rtw_mesh_path (line 321) | struct rtw_mesh_path
function dump_mpath (line 327) | void dump_mpath(void *sel, _adapter *adapter)
type rtw_mesh_path (line 393) | struct rtw_mesh_path
function rtw_mesh_path_add_gate (line 403) | int rtw_mesh_path_add_gate(struct rtw_mesh_path *mpath)
function rtw_mesh_gate_del (line 470) | void rtw_mesh_gate_del(struct rtw_mesh_table *tbl, struct rtw_mesh_path ...
function rtw_mesh_gate_search (line 526) | bool rtw_mesh_gate_search(struct rtw_mesh_table *tbl, const u8 *addr)
function rtw_mesh_gate_num (line 549) | int rtw_mesh_gate_num(_adapter *adapter)
function rtw_mesh_is_primary_gate (line 554) | bool rtw_mesh_is_primary_gate(_adapter *adapter)
function dump_known_gates (line 563) | void dump_known_gates(void *sel, _adapter *adapter)
type rtw_mesh_path (line 594) | struct rtw_mesh_path
type rtw_mesh_path (line 597) | struct rtw_mesh_path
type rtw_mesh_path (line 599) | struct rtw_mesh_path
type rtw_mesh_path (line 627) | struct rtw_mesh_path
type rtw_mesh_table (line 630) | struct rtw_mesh_table
type rtw_mesh_path (line 631) | struct rtw_mesh_path
type rtw_mesh_path (line 671) | struct rtw_mesh_path
function rtw_mpp_path_add (line 678) | int rtw_mpp_path_add(_adapter *adapter,
function dump_mpp (line 709) | void dump_mpp(void *sel, _adapter *adapter)
function rtw_mesh_plink_broken (line 746) | void rtw_mesh_plink_broken(struct sta_info *sta)
function rtw_mesh_path_free_rcu (line 789) | static void rtw_mesh_path_free_rcu(struct rtw_mesh_table *tbl,
function __rtw_mesh_path_del (line 808) | static void __rtw_mesh_path_del(struct rtw_mesh_table *tbl, struct rtw_m...
function rtw_mesh_path_flush_by_nexthop (line 825) | void rtw_mesh_path_flush_by_nexthop(struct sta_info *sta)
function rtw_mpp_flush_by_proxy (line 858) | static void rtw_mpp_flush_by_proxy(_adapter *adapter,
function rtw_table_flush_by_iface (line 891) | static void rtw_table_flush_by_iface(struct rtw_mesh_table *tbl)
function rtw_mesh_path_flush_by_iface (line 928) | void rtw_mesh_path_flush_by_iface(_adapter *adapter)
function rtw_table_path_del (line 943) | static int rtw_table_path_del(struct rtw_mesh_table *tbl,
function rtw_mesh_path_del (line 972) | int rtw_mesh_path_del(_adapter *adapter, const u8 *addr)
function rtw_mesh_path_tx_pending (line 992) | void rtw_mesh_path_tx_pending(struct rtw_mesh_path *mpath)
function rtw_mesh_path_send_to_gates (line 1033) | int rtw_mesh_path_send_to_gates(struct rtw_mesh_path *mpath)
function rtw_mesh_path_discard_frame (line 1079) | void rtw_mesh_path_discard_frame(_adapter *adapter,
function rtw_mesh_path_flush_pending (line 1093) | void rtw_mesh_path_flush_pending(struct rtw_mesh_path *mpath)
function rtw_mesh_path_fix_nexthop (line 1124) | void rtw_mesh_path_fix_nexthop(struct rtw_mesh_path *mpath, struct sta_i...
function rtw_mesh_pathtbl_init (line 1141) | int rtw_mesh_pathtbl_init(_adapter *adapter)
function rtw_mesh_path_tbl_expire (line 1169) | static
function rtw_mesh_path_expire (line 1223) | void rtw_mesh_path_expire(_adapter *adapter)
function rtw_mesh_pathtbl_unregister (line 1229) | void rtw_mesh_pathtbl_unregister(_adapter *adapter)
FILE: core/mesh/rtw_mesh_pathtbl.h
type rtw_mesh_path_flags (line 51) | enum rtw_mesh_path_flags {
type rtw_mesh_path (line 101) | struct rtw_mesh_path {
type rtw_mesh_table (line 142) | struct rtw_mesh_table {
type xmit_frame (line 160) | struct xmit_frame
type rtw_mesh_path (line 162) | struct rtw_mesh_path
type rtw_mesh_path (line 164) | struct rtw_mesh_path
type rtw_mesh_path (line 170) | struct rtw_mesh_path
type rtw_mesh_path (line 174) | struct rtw_mesh_path
type rtw_mesh_path (line 176) | struct rtw_mesh_path
type sta_info (line 176) | struct sta_info
type rtw_mesh_path (line 179) | struct rtw_mesh_path
type rtw_mesh_path (line 182) | struct rtw_mesh_path
type rtw_mesh_table (line 183) | struct rtw_mesh_table
type rtw_mesh_path (line 183) | struct rtw_mesh_path
type rtw_mesh_table (line 184) | struct rtw_mesh_table
type rtw_mesh_path (line 185) | struct rtw_mesh_path
type sta_info (line 190) | struct sta_info
type rtw_mesh_path (line 192) | struct rtw_mesh_path
type sta_info (line 192) | struct sta_info
type rtw_mesh_path (line 193) | struct rtw_mesh_path
type rtw_mesh_path (line 194) | struct rtw_mesh_path
type sta_info (line 199) | struct sta_info
type xmit_frame (line 201) | struct xmit_frame
function rtw_mesh_path_activate (line 203) | static inline void rtw_mesh_path_activate(struct rtw_mesh_path *mpath)
FILE: core/rtw_ap.c
function init_mlme_ap_info (line 28) | void init_mlme_ap_info(_adapter *padapter)
function free_mlme_ap_info (line 36) | void free_mlme_ap_info(_adapter *padapter)
function u8 (line 49) | u8 rtw_set_tim_ie(u8 dtim_cnt, u8 dtim_period
function update_BCNTIM (line 88) | static void update_BCNTIM(_adapter *padapter)
function rtw_add_bcn_ie (line 168) | void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 inde...
function rtw_remove_bcn_ie (line 234) | void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 i...
type sta_info (line 272) | struct sta_info
function u8 (line 273) | u8 chk_sta_is_alive(struct sta_info *psta)
function issue_aka_chk_frame (line 325) | static int issue_aka_chk_frame(_adapter *adapter, struct sta_info *psta)
function rtw_check_restore_rf18 (line 369) | static void rtw_check_restore_rf18(_adapter *padapter)
function expire_timeout_chk (line 399) | void expire_timeout_chk(_adapter *padapter)
function rtw_ap_update_sta_ra_info (line 766) | void rtw_ap_update_sta_ra_info(_adapter *padapter, struct sta_info *psta)
function u8 (line 813) | u8 rtw_ap_find_mini_tx_rate(_adapter *adapter)
function u8 (line 837) | u8 rtw_ap_find_bmc_rate(_adapter *adapter, u8 tx_rate)
function rtw_update_bmc_sta_tx_rate (line 921) | void rtw_update_bmc_sta_tx_rate(_adapter *adapter)
function rtw_init_bmc_sta_tx_rate (line 952) | void rtw_init_bmc_sta_tx_rate(_adapter *padapter, struct sta_info *psta)
function update_bmc_sta (line 984) | void update_bmc_sta(_adapter *padapter)
function update_sta_info_apmode_ht_bf_cap (line 1039) | void update_sta_info_apmode_ht_bf_cap(_adapter *padapter, struct sta_inf...
function update_sta_info_apmode (line 1072) | void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta)
function update_ap_info (line 1207) | static void update_ap_info(_adapter *padapter, struct sta_info *psta)
function rtw_set_hw_wmm_param (line 1259) | static void rtw_set_hw_wmm_param(_adapter *padapter)
function update_hw_ht_param (line 1409) | static void update_hw_ht_param(_adapter *padapter)
function rtw_ap_check_scan (line 1453) | static void rtw_ap_check_scan(_adapter *padapter)
function rtw_start_bss_hdl_after_chbw_decided (line 1548) | void rtw_start_bss_hdl_after_chbw_decided(_adapter *adapter)
function rtw_ap_nums_check (line 1578) | bool rtw_ap_nums_check(_adapter *adapter)
function u8 (line 1584) | u8 rtw_ap_allocate_vapid(struct dvobj_priv *dvobj)
function u8 (line 1598) | u8 rtw_ap_release_vapid(struct dvobj_priv *dvobj, u8 vap_id)
function _rtw_iface_undersurvey_chk (line 1609) | static void _rtw_iface_undersurvey_chk(const char *func, _adapter *adapter)
type createbss_parm (line 1625) | struct createbss_parm
type registry_priv (line 1632) | struct registry_priv
type mlme_priv (line 1633) | struct mlme_priv
type security_priv (line 1634) | struct security_priv
type mlme_ext_priv (line 1636) | struct mlme_ext_priv
type mlme_ext_info (line 1637) | struct mlme_ext_info
type dvobj_priv (line 1639) | struct dvobj_priv
type mlme_priv (line 1815) | struct mlme_priv
function rtw_check_beacon_data (line 1901) | int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len)
function rtw_macaddr_acl_init (line 2456) | void rtw_macaddr_acl_init(_adapter *adapter, u8 period)
function _rtw_macaddr_acl_deinit (line 2485) | static void _rtw_macaddr_acl_deinit(_adapter *adapter, u8 period, bool c...
function rtw_macaddr_acl_deinit (line 2524) | void rtw_macaddr_acl_deinit(_adapter *adapter, u8 period)
function rtw_macaddr_acl_clear (line 2529) | void rtw_macaddr_acl_clear(_adapter *adapter, u8 period)
function rtw_set_macaddr_acl (line 2534) | void rtw_set_macaddr_acl(_adapter *adapter, u8 period, int mode)
function rtw_acl_add_sta (line 2552) | int rtw_acl_add_sta(_adapter *adapter, u8 period, const u8 *addr)
function rtw_acl_remove_sta (line 2625) | int rtw_acl_remove_sta(_adapter *adapter, u8 period, const u8 *addr)
function u8 (line 2676) | u8 rtw_ap_set_sta_key(_adapter *adapter, const u8 *addr, u8 alg, const u...
function u8 (line 2710) | u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta)
function rtw_ap_set_key (line 2721) | static int rtw_ap_set_key(_adapter *padapter, u8 *key, u8 alg, int keyid...
function rtw_ap_set_group_key (line 2785) | int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid)
function rtw_ap_set_wep_key (line 2792) | int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid...
function u8 (line 2812) | u8 rtw_ap_bmc_frames_hdl(_adapter *padapter)
function associated_stainfo_update (line 2913) | static void associated_stainfo_update(_adapter *padapter, struct sta_inf...
function update_bcn_ext_capab_ie (line 2957) | static void update_bcn_ext_capab_ie(_adapter *padapter)
function update_bcn_erpinfo_ie (line 2978) | static void update_bcn_erpinfo_ie(_adapter *padapter)
function update_bcn_htcap_ie (line 3012) | static void update_bcn_htcap_ie(_adapter *padapter)
function update_bcn_htinfo_ie (line 3018) | static void update_bcn_htinfo_ie(_adapter *padapter)
function update_bcn_rsn_ie (line 3102) | static void update_bcn_rsn_ie(_adapter *padapter)
function update_bcn_wpa_ie (line 3108) | static void update_bcn_wpa_ie(_adapter *padapter)
function update_bcn_wmm_ie (line 3114) | static void update_bcn_wmm_ie(_adapter *padapter)
function update_bcn_wps_ie (line 3120) | static void update_bcn_wps_ie(_adapter *padapter)
function update_bcn_p2p_ie (line 3187) | static void update_bcn_p2p_ie(_adapter *padapter)
function update_bcn_vendor_spec_ie (line 3192) | static void update_bcn_vendor_spec_ie(_adapter *padapter, u8 *oui)
function _update_beacon (line 3210) | void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, u8 fla...
function rtw_process_public_act_bsscoex (line 3296) | void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint...
function rtw_process_ht_action_smps (line 3356) | void rtw_process_ht_action_smps(_adapter *padapter, u8 *ta, u8 ctrl_field)
function rtw_ht_operation_update (line 3397) | int rtw_ht_operation_update(_adapter *padapter)
function associated_clients_update (line 3470) | void associated_clients_update(_adapter *padapter, u8 updated, u32 sta_i...
function bss_cap_update_on_sta_join (line 3500) | void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta)
function u8 (line 3696) | u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta)
function u8 (line 3790) | u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u...
function rtw_ap_inform_ch_switch (line 3862) | int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset)
function rtw_sta_flush (line 3898) | int rtw_sta_flush(_adapter *padapter, bool enqueue)
function sta_info_update (line 3960) | void sta_info_update(_adapter *padapter, struct sta_info *psta)
function ap_sta_info_defer_update (line 4005) | void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta)
function rtw_ap_restore_network (line 4011) | void rtw_ap_restore_network(_adapter *padapter)
function start_ap_mode (line 4074) | void start_ap_mode(_adapter *padapter)
function rtw_ap_bcmc_sta_flush (line 4141) | void rtw_ap_bcmc_sta_flush(_adapter *padapter)
function stop_ap_mode (line 4160) | void stop_ap_mode(_adapter *padapter)
function rtw_ap_update_bss_chbw (line 4265) | void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch...
function u8 (line 4389) | static u8 rtw_ap_update_chbw_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp
function u8 (line 4460) | static u8 rtw_ap_ch_specific_chk(_adapter *adapter, u8 ch, u8 *bw, u8 *o...
function rtw_ap_choose_chbw (line 4501) | static bool rtw_ap_choose_chbw(_adapter *adapter, u8 sel_ch, u8 max_bw, ...
function u8 (line 4562) | u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp
function u8 (line 4907) | u8 rtw_ap_sta_states_check(_adapter *adapter)
function tx_beacon_handlder (line 4945) | void tx_beacon_handlder(struct dvobj_priv *pdvobj)
function tx_beacon_timer_handlder (line 5092) | void tx_beacon_timer_handlder(void *ctx)
function rtw_ap_parse_sta_capability (line 5102) | void rtw_ap_parse_sta_capability(_adapter *adapter, struct sta_info *sta...
function u16 (line 5111) | u16 rtw_ap_parse_sta_supported_rates(_adapter *adapter, struct sta_info ...
function u16 (line 5147) | u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta...
function rtw_ap_parse_sta_wmm_ie (line 5309) | void rtw_ap_parse_sta_wmm_ie(_adapter *adapter, struct sta_info *sta, u8...
function rtw_ap_parse_sta_ht_ie (line 5374) | void rtw_ap_parse_sta_ht_ie(_adapter *adapter, struct sta_info *sta, str...
function rtw_ap_parse_sta_vht_ie (line 5402) | void rtw_ap_parse_sta_vht_ie(_adapter *adapter, struct sta_info *sta, st...
FILE: core/rtw_beamforming.c
type ndpa_sta_info (line 24) | struct ndpa_sta_info {
function _get_txvector_parameter (line 30) | static void _get_txvector_parameter(PADAPTER adapter, struct sta_info *s...
function _get_sta_beamform_cap (line 93) | static void _get_sta_beamform_cap(PADAPTER adapter, struct sta_info *sta,
function u8 (line 165) | static u8 _send_ht_ndpa_packet(PADAPTER adapter, u8 *ra, enum channel_wi...
function u8 (line 263) | static u8 _send_vht_ndpa_packet(PADAPTER adapter, u8 *ra, u16 aid, enum ...
function u8 (line 369) | static u8 _send_vht_mu_ndpa_packet(PADAPTER adapter, enum channel_width bw)
function u8 (line 486) | static u8 _send_bf_report_poll(PADAPTER adapter, u8 *ra, u8 bFinalPoll)
function _sounding_update_min_period (line 548) | static void _sounding_update_min_period(PADAPTER adapter, u16 period, u8...
function _sounding_init (line 582) | static void _sounding_init(struct sounding_info *sounding)
function _sounding_reset_vars (line 593) | static void _sounding_reset_vars(PADAPTER adapter)
function _sounding_get_list (line 625) | static int _sounding_get_list(PADAPTER adapter)
function _sounding_handler (line 712) | static void _sounding_handler(PADAPTER adapter)
function _sounding_force_stop (line 861) | static void _sounding_force_stop(PADAPTER adapter)
function _sounding_timer_handler (line 883) | static void _sounding_timer_handler(void *FunctionContext)
function _sounding_timeout_timer_handler (line 927) | static void _sounding_timeout_timer_handler(void *FunctionContext)
type beamformer_entry (line 959) | struct beamformer_entry
type beamforming_info (line 962) | struct beamforming_info
type beamformer_entry (line 963) | struct beamformer_entry
type beamformer_entry (line 977) | struct beamformer_entry
type beamforming_info (line 980) | struct beamforming_info
type beamformer_entry (line 981) | struct beamformer_entry
type beamformer_entry (line 997) | struct beamformer_entry
type sta_info (line 998) | struct sta_info
type mlme_priv (line 1000) | struct mlme_priv
type beamforming_info (line 1001) | struct beamforming_info
type beamformer_entry (line 1002) | struct beamformer_entry
function _bfer_remove_entry (line 1046) | static void _bfer_remove_entry(PADAPTER adapter, struct beamformer_entry...
function u8 (line 1069) | static u8 _bfer_set_entry_gid(PADAPTER adapter, u8 *addr, u8 *gid, u8 *p...
type beamformee_entry (line 1089) | struct beamformee_entry
type beamforming_info (line 1092) | struct beamforming_info
type beamformee_entry (line 1093) | struct beamformee_entry
type beamformee_entry (line 1107) | struct beamformee_entry
type beamforming_info (line 1110) | struct beamforming_info
type beamformee_entry (line 1111) | struct beamformee_entry
function u8 (line 1127) | static u8 _bfee_get_first_su_entry_idx(PADAPTER adapter, struct beamform...
function u8 (line 1160) | static u8 _bfee_get_first_mu_entry_idx(PADAPTER adapter, struct beamform...
type beamformee_entry (line 1182) | struct beamformee_entry
type sta_info (line 1183) | struct sta_info
type mlme_priv (line 1185) | struct mlme_priv
type beamforming_info (line 1186) | struct beamforming_info
type beamformee_entry (line 1187) | struct beamformee_entry
type _RT_CSI_INFO (line 1248) | struct _RT_CSI_INFO
type _RT_CSI_INFO (line 1249) | struct _RT_CSI_INFO
type _RT_CSI_INFO (line 1271) | struct _RT_CSI_INFO
function _bfee_remove_entry (line 1293) | static void _bfee_remove_entry(PADAPTER adapter, struct beamformee_entry...
function _bfee_get_entry_cap_by_macid (line 1336) | static enum beamforming_cap _bfee_get_entry_cap_by_macid(PADAPTER adapte...
function _beamforming_enter (line 1356) | static void _beamforming_enter(PADAPTER adapter, void *p)
function _beamforming_reset (line 1453) | static void _beamforming_reset(PADAPTER adapter)
function _beamforming_leave (line 1458) | static void _beamforming_leave(PADAPTER adapter, u8 *ra)
function _beamforming_sounding_down (line 1496) | static void _beamforming_sounding_down(PADAPTER adapter, u8 status)
function _c2h_snd_txbf (line 1557) | static void _c2h_snd_txbf(PADAPTER adapter, u8 *buf, u8 buf_len)
function rtw_bf_bfee_get_entry_cap_by_macid (line 1576) | enum beamforming_cap rtw_bf_bfee_get_entry_cap_by_macid(void *mlme, u8 m...
type beamformer_entry (line 1588) | struct beamformer_entry
type beamformee_entry (line 1593) | struct beamformee_entry
function rtw_bf_get_ndpa_packet (line 1598) | void rtw_bf_get_ndpa_packet(PADAPTER adapter, union recv_frame *precv_fr...
function u32 (line 1603) | u32 rtw_bf_get_report_packet(PADAPTER adapter, union recv_frame *precv_f...
function u8 (line 1688) | u8 rtw_bf_send_vht_gid_mgnt_packet(PADAPTER adapter, u8 *ra, u8 *gid, u8...
function rtw_bf_get_vht_gid_mgnt_packet (line 1750) | void rtw_bf_get_vht_gid_mgnt_packet(PADAPTER adapter, union recv_frame *...
function rtw_bf_init (line 1773) | void rtw_bf_init(PADAPTER adapter)
function rtw_bf_cmd_hdl (line 1811) | void rtw_bf_cmd_hdl(PADAPTER adapter, u8 type, u8 *pbuf)
function u8 (line 1846) | u8 rtw_bf_cmd(PADAPTER adapter, s32 type, u8 *pbuf, s32 size, u8 enqueue)
function rtw_bf_update_attrib (line 1901) | void rtw_bf_update_attrib(PADAPTER adapter, struct pkt_attrib *attrib, s...
function rtw_bf_c2h_handler (line 1909) | void rtw_bf_c2h_handler(PADAPTER adapter, u8 id, u8 *buf, u8 buf_len)
function rtw_bf_update_traffic (line 1919) | void rtw_bf_update_traffic(PADAPTER adapter)
function u32 (line 2008) | u32 rtw_beamforming_get_report_frame(PADAPTER Adapter, union recv_frame...
function rtw_beamforming_get_ndpa_frame (line 2019) | void rtw_beamforming_get_ndpa_frame(PADAPTER Adapter, union recv_frame ...
function beamforming_wk_hdl (line 2027) | void beamforming_wk_hdl(_adapter *padapter, u8 type, u8 *pbuf)
function u8 (line 2050) | u8 beamforming_wk_cmd(_adapter *padapter, s32 type, u8 *pbuf, s32 size, ...
function update_attrib_txbf_info (line 2112) | void update_attrib_txbf_info(_adapter *padapter, struct pkt_attrib *patt...
FILE: core/rtw_br_ext.c
type pppoe_hdr (line 87) | struct pppoe_hdr
function __nat25_add_pppoe_tag (line 105) | static __inline__ int __nat25_add_pppoe_tag(struct sk_buff *skb, struct ...
function skb_pull_and_merge (line 124) | static int skb_pull_and_merge(struct sk_buff *skb, unsigned char *src, i...
function __nat25_timeout (line 145) | static __inline__ unsigned long __nat25_timeout(_adapter *priv)
function __nat25_has_expired (line 155) | static __inline__ int __nat25_has_expired(_adapter *priv,
function __nat25_generate_ipv4_network_addr (line 165) | static __inline__ void __nat25_generate_ipv4_network_addr(unsigned char ...
function __nat25_generate_ipx_network_addr_with_node (line 176) | static __inline__ void __nat25_generate_ipx_network_addr_with_node(unsig...
function __nat25_generate_ipx_network_addr_with_socket (line 187) | static __inline__ void __nat25_generate_ipx_network_addr_with_socket(uns...
function __nat25_generate_apple_network_addr (line 198) | static __inline__ void __nat25_generate_apple_network_addr(unsigned char...
function __nat25_generate_pppoe_network_addr (line 210) | static __inline__ void __nat25_generate_pppoe_network_addr(unsigned char...
function __nat25_generate_ipv6_network_addr (line 222) | static void __nat25_generate_ipv6_network_addr(unsigned char *networkAddr,
function update_nd_link_layer_addr (line 245) | static int update_nd_link_layer_addr(unsigned char *data, int len, unsig...
function convert_ipv6_mac_to_mc (line 310) | static void convert_ipv6_mac_to_mc(struct sk_buff *skb)
function __nat25_network_hash (line 330) | static __inline__ int __nat25_network_hash(unsigned char *networkAddr)
function __network_hash_link (line 384) | static __inline__ void __network_hash_link(_adapter *priv,
function __network_hash_unlink (line 401) | static __inline__ void __network_hash_unlink(struct nat25_network_db_ent...
function __nat25_db_network_lookup_and_replace (line 417) | static int __nat25_db_network_lookup_and_replace(_adapter *priv,
function __nat25_db_network_insert (line 491) | static void __nat25_db_network_insert(_adapter *priv,
function __nat25_db_print (line 529) | static void __nat25_db_print(_adapter *priv)
function nat25_db_cleanup (line 616) | void nat25_db_cleanup(_adapter *priv)
function nat25_db_expire (line 645) | void nat25_db_expire(_adapter *priv)
function checkIPMcAndReplace (line 734) | static int checkIPMcAndReplace(_adapter *priv, struct sk_buff *skb, unsi...
function nat25_db_handle (line 761) | int nat25_db_handle(_adapter *priv, struct sk_buff *skb, int method)
function nat25_handle_frame (line 1393) | int nat25_handle_frame(_adapter *priv, struct sk_buff *skb)
function mac_clone (line 1472) | void mac_clone(_adapter *priv, unsigned char *addr)
function mac_clone_handle_frame (line 1483) | int mac_clone_handle_frame(_adapter *priv, struct sk_buff *skb)
type dhcpMessage (line 1505) | struct dhcpMessage {
function dhcp_flag_bcast (line 1524) | void dhcp_flag_bcast(_adapter *priv, struct sk_buff *skb)
type nat25_network_db_entry (line 1569) | struct nat25_network_db_entry
FILE: core/rtw_bt_mp.c
function MPh2c_timeout_handle (line 25) | void MPh2c_timeout_handle(void *FunctionContext)
function u32 (line 44) | u32 WaitC2Hevent(PADAPTER pAdapter, u8 *C2H_event, u32 delay_time)
function BT_CTRL_STATUS (line 70) | BT_CTRL_STATUS
function BT_CTRL_STATUS (line 96) | BT_CTRL_STATUS
function BT_CTRL_STATUS (line 156) | BT_CTRL_STATUS
function BT_CTRL_STATUS (line 192) | BT_CTRL_STATUS
function u16 (line 251) | u16
function mptbt_close_WiFiRF (line 349) | void mptbt_close_WiFiRF(PADAPTER Adapter)
function mptbt_open_WiFiRF (line 356) | void mptbt_open_WiFiRF(PADAPTER Adapter)
function u32 (line 363) | u32 mptbt_switch_RF(PADAPTER Adapter, u8 Enter)
function u16 (line 393) | u16
function MPTBT_FwC2hBtMpCtrl (line 458) | void
function u16 (line 528) | u16
function u16 (line 832) | u16
function u16 (line 1119) | u16
function u16 (line 1398) | u16
function u16 (line 1463) | u16
function mptbt_BtControlProcess (line 1502) | void
FILE: core/rtw_btcoex.c
function rtw_btcoex_Initialize (line 20) | void rtw_btcoex_Initialize(PADAPTER padapter)
function rtw_btcoex_PowerOnSetting (line 25) | void rtw_btcoex_PowerOnSetting(PADAPTER padapter)
function rtw_btcoex_AntInfoSetting (line 30) | void rtw_btcoex_AntInfoSetting(PADAPTER padapter)
function rtw_btcoex_PowerOffSetting (line 35) | void rtw_btcoex_PowerOffSetting(PADAPTER padapter)
function rtw_btcoex_PreLoadFirmware (line 40) | void rtw_btcoex_PreLoadFirmware(PADAPTER padapter)
function rtw_btcoex_HAL_Initialize (line 45) | void rtw_btcoex_HAL_Initialize(PADAPTER padapter, u8 bWifiOnly)
function rtw_btcoex_IpsNotify (line 50) | void rtw_btcoex_IpsNotify(PADAPTER padapter, u8 type)
function rtw_btcoex_LpsNotify (line 61) | void rtw_btcoex_LpsNotify(PADAPTER padapter, u8 type)
function rtw_btcoex_ScanNotify (line 72) | void rtw_btcoex_ScanNotify(PADAPTER padapter, u8 type)
function rtw_btcoex_ConnectNotify (line 103) | void rtw_btcoex_ConnectNotify(PADAPTER padapter, u8 action)
function rtw_btcoex_MediaStatusNotify (line 129) | void rtw_btcoex_MediaStatusNotify(PADAPTER padapter, u8 mediaStatus)
function rtw_btcoex_SpecialPacketNotify (line 159) | void rtw_btcoex_SpecialPacketNotify(PADAPTER padapter, u8 pktType)
function rtw_btcoex_IQKNotify (line 170) | void rtw_btcoex_IQKNotify(PADAPTER padapter, u8 state)
function rtw_btcoex_BtInfoNotify (line 181) | void rtw_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf)
function rtw_btcoex_BtMpRptNotify (line 192) | void rtw_btcoex_BtMpRptNotify(PADAPTER padapter, u8 length, u8 *tmpBuf)
function rtw_btcoex_SuspendNotify (line 206) | void rtw_btcoex_SuspendNotify(PADAPTER padapter, u8 state)
function rtw_btcoex_HaltNotify (line 217) | void rtw_btcoex_HaltNotify(PADAPTER padapter)
function rtw_btcoex_switchband_notify (line 241) | void rtw_btcoex_switchband_notify(u8 under_scan, u8 band_type)
function rtw_btcoex_WlFwDbgInfoNotify (line 246) | void rtw_btcoex_WlFwDbgInfoNotify(PADAPTER padapter, u8* tmpBuf, u8 length)
function rtw_btcoex_rx_rate_change_notify (line 251) | void rtw_btcoex_rx_rate_change_notify(PADAPTER padapter, u8 is_data_fram...
function rtw_btcoex_SwitchBtTRxMask (line 256) | void rtw_btcoex_SwitchBtTRxMask(PADAPTER padapter)
function rtw_btcoex_Switch (line 261) | void rtw_btcoex_Switch(PADAPTER padapter, u8 enable)
function u8 (line 266) | u8 rtw_btcoex_IsBtDisabled(PADAPTER padapter)
function rtw_btcoex_Handler (line 271) | void rtw_btcoex_Handler(PADAPTER padapter)
function s32 (line 283) | s32 rtw_btcoex_IsBTCoexRejectAMPDU(PADAPTER padapter)
function s32 (line 292) | s32 rtw_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER padapter)
function u32 (line 301) | u32 rtw_btcoex_GetAMPDUSize(PADAPTER padapter)
function rtw_btcoex_SetManualControl (line 310) | void rtw_btcoex_SetManualControl(PADAPTER padapter, u8 manual)
function u8 (line 318) | u8 rtw_btcoex_1Ant(PADAPTER padapter)
function u8 (line 323) | u8 rtw_btcoex_IsBtControlLps(PADAPTER padapter)
function u8 (line 328) | u8 rtw_btcoex_IsLpsOn(PADAPTER padapter)
function u8 (line 333) | u8 rtw_btcoex_RpwmVal(PADAPTER padapter)
function u8 (line 338) | u8 rtw_btcoex_LpsVal(PADAPTER padapter)
function u32 (line 343) | u32 rtw_btcoex_GetRaMask(PADAPTER padapter)
function u8 (line 348) | u8 rtw_btcoex_query_reduced_wl_pwr_lvl(PADAPTER padapter)
function rtw_btcoex_set_reduced_wl_pwr_lvl (line 353) | void rtw_btcoex_set_reduced_wl_pwr_lvl(PADAPTER padapter, u8 val)
function rtw_btcoex_do_reduce_wl_pwr_lvl (line 358) | void rtw_btcoex_do_reduce_wl_pwr_lvl(PADAPTER padapter)
function rtw_btcoex_RecordPwrMode (line 363) | void rtw_btcoex_RecordPwrMode(PADAPTER padapter, u8 *pCmdBuf, u8 cmdLen)
function rtw_btcoex_DisplayBtCoexInfo (line 368) | void rtw_btcoex_DisplayBtCoexInfo(PADAPTER padapter, u8 *pbuf, u32 bufsize)
function rtw_btcoex_SetDBG (line 373) | void rtw_btcoex_SetDBG(PADAPTER padapter, u32 *pDbgModule)
function u32 (line 378) | u32 rtw_btcoex_GetDBG(PADAPTER padapter, u8 *pStrBuf, u32 bufSize)
function u8 (line 383) | u8 rtw_btcoex_IncreaseScanDeviceNum(PADAPTER padapter)
function u8 (line 388) | u8 rtw_btcoex_IsBtLinkExist(PADAPTER padapter)
function rtw_btcoex_SetBtPatchVersion (line 393) | void rtw_btcoex_SetBtPatchVersion(PADAPTER padapter, u16 btHciVer, u16 b...
function rtw_btcoex_SetHciVersion (line 398) | void rtw_btcoex_SetHciVersion(PADAPTER padapter, u16 hciVersion)
function rtw_btcoex_StackUpdateProfileInfo (line 403) | void rtw_btcoex_StackUpdateProfileInfo(void)
function rtw_btcoex_pta_off_on_notify (line 408) | void rtw_btcoex_pta_off_on_notify(PADAPTER padapter, u8 bBTON)
function rtw_btcoex_SetRf4ceLinkState (line 414) | void rtw_btcoex_SetRf4ceLinkState(PADAPTER padapter, u8 state)
function u8 (line 419) | u8 rtw_btcoex_GetRf4ceLinkState(PADAPTER padapter)
function rtw_btcoex_rx_ampdu_apply (line 428) | void rtw_btcoex_rx_ampdu_apply(PADAPTER padapter)
function rtw_btcoex_LPS_Enter (line 433) | void rtw_btcoex_LPS_Enter(PADAPTER padapter)
function u8 (line 446) | u8 rtw_btcoex_LPS_Leave(PADAPTER padapter)
function u16 (line 461) | u16 rtw_btcoex_btreg_read(PADAPTER padapter, u8 type, u16 addr, u32 *data)
function u16 (line 466) | u16 rtw_btcoex_btreg_write(PADAPTER padapter, u8 type, u16 addr, u16 val)
function u16 (line 471) | u16 rtw_btcoex_btset_testmode(PADAPTER padapter, u8 type)
function u8 (line 476) | u8 rtw_btcoex_get_reduce_wl_txpwr(PADAPTER padapter)
function u8 (line 481) | u8 rtw_btcoex_get_bt_coexist(PADAPTER padapter)
function u8 (line 488) | u8 rtw_btcoex_get_chip_type(PADAPTER padapter)
function u8 (line 495) | u8 rtw_btcoex_get_pg_ant_num(PADAPTER padapter)
function u8 (line 502) | u8 rtw_btcoex_get_pg_single_ant_path(PADAPTER padapter)
function u8 (line 509) | u8 rtw_btcoex_get_pg_rfe_type(PADAPTER padapter)
function u8 (line 516) | u8 rtw_btcoex_is_tfbga_package_type(PADAPTER padapter)
function u8 (line 529) | u8 rtw_btcoex_get_ant_div_cfg(PADAPTER padapter)
function u8 (line 544) | u8 rtw_btcoex_btinfo_cmd(_adapter *adapter, u8 *buf, u16 len)
function u8 (line 588) | u8 rtw_btcoex_send_event_to_BT(_adapter *padapter, u8 status, u8 event_...
function u8 (line 630) | u8 rtw_btcoex_parse_BT_info_notify_cmd(_adapter *padapter, u8 *pcmd, u16...
function u8 (line 700) | u8 rtw_btcoex_parse_BT_patch_ver_info_cmd(_adapter *padapter, u8 *pcmd, ...
function u8 (line 750) | u8 rtw_btcoex_parse_HCI_Ver_notify_cmd(_adapter *padapter, u8 *pcmd, u16...
function u8 (line 797) | u8 rtw_btcoex_parse_WIFI_scan_notify_cmd(_adapter *padapter, u8 *pcmd, u...
function u8 (line 838) | u8 rtw_btcoex_parse_HCI_link_status_notify_cmd(_adapter *padapter, u8 *p...
function u8 (line 943) | u8 rtw_btcoex_parse_HCI_BT_coex_notify_cmd(_adapter *padapter, u8 *pcmd,...
function u8 (line 977) | u8 rtw_btcoex_parse_HCI_BT_operation_notify_cmd(_adapter *padapter, u8 *...
function u8 (line 1050) | u8 rtw_btcoex_parse_BT_AFH_MAP_notify_cmd(_adapter *padapter, u8 *pcmd, ...
function u8 (line 1084) | u8 rtw_btcoex_parse_BT_register_val_notify_cmd(_adapter *padapter, u8 *p...
function u8 (line 1119) | u8 rtw_btcoex_parse_HCI_BT_abnormal_notify_cmd(_adapter *padapter, u8 *p...
function u8 (line 1153) | u8 rtw_btcoex_parse_HCI_query_RF_status_cmd(_adapter *padapter, u8 *pcmd...
function rtw_btcoex_parse_hci_extend_cmd (line 1198) | void rtw_btcoex_parse_hci_extend_cmd(_adapter *padapter, u8 *pcmd, u16 l...
function rtw_btcoex_parse_hci_cmd (line 1257) | void rtw_btcoex_parse_hci_cmd(_adapter *padapter, u8 *pcmd, u16 len)
function u16 (line 1277) | u16 rtw_btcoex_parse_recv_data(u8 *msg, u8 msg_size)
function rtw_btcoex_recvmsgbysocket (line 1313) | void rtw_btcoex_recvmsgbysocket(void *data)
type sock (line 1448) | struct sock
function rtw_btcoex_recvmsg_init (line 1450) | void rtw_btcoex_recvmsg_init(struct sock *sk_in)
function u8 (line 1467) | u8 rtw_btcoex_sendmsgbysocket(_adapter *padapter, u8 *msg, u8 msg_size, ...
function u8 (line 1517) | u8 rtw_btcoex_create_kernel_socket(_adapter *padapter)
function rtw_btcoex_close_kernel_socket (line 1571) | void rtw_btcoex_close_kernel_socket(_adapter *padapter)
function rtw_btcoex_init_socket (line 1585) | void rtw_btcoex_init_socket(_adapter *padapter)
function rtw_btcoex_close_socket (line 1612) | void rtw_btcoex_close_socket(_adapter *padapter)
function rtw_btcoex_dump_tx_msg (line 1637) | void rtw_btcoex_dump_tx_msg(u8 *tx_msg, u8 len, u8 *msg_name)
function rtw_btcoex_SendEventExtBtCoexControl (line 1648) | void rtw_btcoex_SendEventExtBtCoexControl(PADAPTER padapter, u8 bNeedDbg...
function rtw_btcoex_SendEventExtBtInfoControl (line 1688) | void rtw_btcoex_SendEventExtBtInfoControl(PADAPTER padapter, u8 dataLen,...
function rtw_btcoex_SendScanNotify (line 1729) | void rtw_btcoex_SendScanNotify(PADAPTER padapter, u8 scanType)
function rtw_btcoex_set_ant_info (line 1770) | void rtw_btcoex_set_ant_info(PADAPTER padapter)
FILE: core/rtw_btcoex_wifionly.c
function rtw_btcoex_wifionly_switchband_notify (line 19) | void rtw_btcoex_wifionly_switchband_notify(PADAPTER padapter)
function rtw_btcoex_wifionly_scan_notify (line 24) | void rtw_btcoex_wifionly_scan_notify(PADAPTER padapter)
function rtw_btcoex_wifionly_connect_notify (line 29) | void rtw_btcoex_wifionly_connect_notify(PADAPTER padapter)
function rtw_btcoex_wifionly_hw_config (line 34) | void rtw_btcoex_wifionly_hw_config(PADAPTER padapter)
function rtw_btcoex_wifionly_initialize (line 39) | void rtw_btcoex_wifionly_initialize(PADAPTER padapter)
function rtw_btcoex_wifionly_AntInfoSetting (line 44) | void rtw_btcoex_wifionly_AntInfoSetting(PADAPTER padapter)
FILE: core/rtw_chplan.c
type rtw_rd_2g (line 51) | enum rtw_rd_2g {
type rtw_rd_5g (line 69) | enum rtw_rd_5g {
type ch_list_t (line 143) | struct ch_list_t {
type chplan_ent_t (line 153) | struct chplan_ent_t {
type ch_list_t (line 167) | struct ch_list_t
type ch_list_t (line 184) | struct ch_list_t
type chplan_ent_t (line 257) | struct chplan_ent_t
type chplan_ent_t (line 385) | struct chplan_ent_t
function u8 (line 388) | u8 rtw_chplan_get_default_regd(u8 id)
function rtw_chplan_is_empty (line 400) | bool rtw_chplan_is_empty(u8 id)
function rtw_regsty_is_excl_chs (line 419) | bool rtw_regsty_is_excl_chs(struct registry_priv *regsty, u8 ch)
function u8 (line 432) | inline static u8 rtw_rd_5g_band1_passive(u8 rtw_rd_5g)
function u8 (line 452) | inline static u8 rtw_rd_5g_band4_passive(u8 rtw_rd_5g)
function u8 (line 470) | u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO ...
type country_chplan (line 619) | struct country_chplan
type country_chplan (line 643) | struct country_chplan
type country_chplan (line 654) | struct country_chplan
type country_chplan (line 661) | struct country_chplan
type country_chplan (line 672) | struct country_chplan
type country_chplan (line 697) | struct country_chplan
type country_chplan (line 719) | struct country_chplan
type country_chplan (line 741) | struct country_chplan
type country_chplan (line 764) | struct country_chplan
type country_chplan (line 772) | struct country_chplan
type country_chplan (line 778) | struct country_chplan
type country_chplan (line 789) | struct country_chplan
type country_chplan (line 791) | struct country_chplan
type country_chplan (line 792) | struct country_chplan
type country_chplan (line 799) | struct country_chplan
type country_chplan (line 802) | struct country_chplan
type country_chplan (line 805) | struct country_chplan
type country_chplan (line 808) | struct country_chplan
type country_chplan (line 811) | struct country_chplan
type country_chplan (line 814) | struct country_chplan
type country_chplan (line 817) | struct country_chplan
type country_chplan (line 820) | struct country_chplan
type country_chplan (line 823) | struct country_chplan
type country_chplan (line 826) | struct country_chplan
type country_chplan (line 829) | struct country_chplan
type country_chplan (line 847) | struct country_chplan
type country_chplan (line 1093) | struct country_chplan
type country_chplan (line 1096) | struct country_chplan
type country_chplan (line 1098) | struct country_chplan
type country_chplan (line 1099) | struct country_chplan
type country_chplan (line 1109) | struct country_chplan
type country_chplan (line 1115) | struct country_chplan
function dump_country_chplan (line 1135) | void dump_country_chplan(void *sel, const struct country_chplan *ent)
function dump_country_chplan_map (line 1143) | void dump_country_chplan_map(void *sel)
function dump_chplan_id_list (line 1166) | void dump_chplan_id_list(void *sel)
function dump_chplan_test (line 1185) | void dump_chplan_test(void *sel)
function dump_chplan_ver (line 1207) | void dump_chplan_ver(void *sel)
FILE: core/rtw_chplan.h
type rtw_chplan_id (line 18) | enum rtw_chplan_id {
type _RT_CHANNEL_INFO (line 137) | struct _RT_CHANNEL_INFO
type _RT_CHANNEL_INFO (line 138) | struct _RT_CHANNEL_INFO
type country_chplan (line 154) | struct country_chplan {
type country_chplan (line 177) | struct country_chplan
type country_chplan (line 179) | struct country_chplan
FILE: core/rtw_cmd.c
function sint (line 29) | sint _rtw_init_cmd_priv(struct cmd_priv *pcmdpriv)
function c2h_wk_callback (line 73) | static void c2h_wk_callback(_workitem *work)
function sint (line 129) | sint _rtw_init_evt_priv(struct evt_priv *pevtpriv)
function _rtw_free_evt_priv (line 185) | void _rtw_free_evt_priv(struct evt_priv *pevtpriv)
function _rtw_free_cmd_priv (line 214) | void _rtw_free_cmd_priv(struct cmd_priv *pcmdpriv)
function sint (line 246) | sint _rtw_enqueue_cmd(_queue *queue, struct cmd_obj *obj, bool to_head)
type cmd_obj (line 307) | struct cmd_obj
type cmd_obj (line 310) | struct cmd_obj
type drvextra_cmd_parm (line 349) | struct drvextra_cmd_parm
type drvextra_cmd_parm (line 349) | struct drvextra_cmd_parm
function u32 (line 367) | u32 rtw_init_cmd_priv(struct cmd_priv *pcmdpriv)
function u32 (line 374) | u32 rtw_init_evt_priv(struct evt_priv *pevtpriv)
function rtw_free_evt_priv (line 381) | void rtw_free_evt_priv(struct evt_priv *pevtpriv)
function rtw_free_cmd_priv (line 386) | void rtw_free_cmd_priv(struct cmd_priv *pcmdpriv)
type cmd_priv (line 391) | struct cmd_priv
type cmd_obj (line 391) | struct cmd_obj
function rtw_cmd_filter (line 392) | int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj)
function u32 (line 433) | u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj)
type cmd_obj (line 478) | struct cmd_obj
type cmd_priv (line 478) | struct cmd_priv
type cmd_obj (line 480) | struct cmd_obj
function rtw_cmd_clr_isr (line 488) | void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv)
function rtw_free_cmd_obj (line 494) | void rtw_free_cmd_obj(struct cmd_obj *pcmd)
function rtw_stop_cmd_thread (line 512) | void rtw_stop_cmd_thread(_adapter *adapter)
function thread_return (line 521) | thread_return rtw_cmd_thread(thread_context context)
function u32 (line 737) | u32 rtw_enqueue_evt(struct evt_priv *pevtpriv, struct evt_obj *obj)
type evt_obj (line 765) | struct evt_obj
type evt_obj (line 768) | struct evt_obj
function rtw_free_evt_obj (line 786) | void rtw_free_evt_obj(struct evt_obj *pevtobj)
function rtw_evt_notify_isr (line 796) | void rtw_evt_notify_isr(struct evt_priv *pevtpriv)
function u8 (line 807) | u8 rtw_setstandby_cmd(_adapter *padapter, uint action)
function rtw_init_sitesurvey_parm (line 841) | void rtw_init_sitesurvey_parm(_adapter *padapter, struct sitesurvey_parm...
function u8 (line 855) | u8 rtw_sitesurvey_cmd(_adapter *padapter, struct sitesurvey_parm *pparm)
function u8 (line 911) | u8 rtw_setdatarate_cmd(_adapter *padapter, u8 *rateset)
function u8 (line 947) | u8 rtw_setbasicrate_cmd(_adapter *padapter, u8 *rateset)
function u8 (line 987) | u8 rtw_setphy_cmd(_adapter *padapter, u8 modem, u8 ch)
function u8 (line 1021) | u8 rtw_getmacreg_cmd(_adapter *padapter, u8 len, u32 addr)
function rtw_usb_catc_trigger_cmd (line 1052) | void rtw_usb_catc_trigger_cmd(_adapter *padapter, const char *caller)
function u8 (line 1058) | u8 rtw_setbbreg_cmd(_adapter *padapter, u8 offset, u8 val)
function u8 (line 1087) | u8 rtw_getbbreg_cmd(_adapter *padapter, u8 offset, u8 *pval)
function u8 (line 1120) | u8 rtw_setrfreg_cmd(_adapter *padapter, u8 offset, u32 val)
function u8 (line 1149) | u8 rtw_getrfreg_cmd(_adapter *padapter, u8 offset, u8 *pval)
function rtw_getbbrfreg_cmdrsp_callback (line 1187) | void rtw_getbbrfreg_cmdrsp_callback(_adapter *padapter, struct cmd_obj ...
function rtw_readtssi_cmdrsp_callback (line 1200) | void rtw_readtssi_cmdrsp_callback(_adapter *padapter, struct cmd_obj *p...
function u8 (line 1213) | static u8 rtw_createbss_cmd(_adapter *adapter, int flags, bool adhoc
function u8 (line 1284) | inline u8 rtw_create_ibss_cmd(_adapter *adapter, int flags)
function u8 (line 1293) | inline u8 rtw_startbss_cmd(_adapter *adapter, int flags)
function u8 (line 1302) | inline u8 rtw_change_bss_chbw_cmd(_adapter *adapter, int flags
function rtw_ft_validate_akm_type (line 1313) | static void rtw_ft_validate_akm_type(_adapter *padapter,
function u8 (line 1348) | u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork)
function u8 (line 1543) | u8 rtw_disassoc_cmd(_adapter *padapter, u32 deauth_timeout_ms, int flags...
function u8 (line 1594) | u8 rtw_setopmode_cmd(_adapter *adapter, NDIS_802_11_NETWORK_INFRASTRUCT...
function u8 (line 1646) | u8 rtw_setstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 key_ty...
function u8 (line 1716) | u8 rtw_clearstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 enqu...
function u8 (line 1776) | u8 rtw_setrttbl_cmd(_adapter *padapter, struct setratable_parm *prate_t...
function u8 (line 1806) | u8 rtw_getrttbl_cmd(_adapter *padapter, struct getratable_rsp *pval)
function u8 (line 1843) | u8 rtw_setassocsta_cmd(_adapter *padapter, u8 *mac_addr)
function u8 (line 1887) | u8 rtw_addbareq_cmd(_adapter *padapter, u8 tid, u8 *addr)
function u8 (line 1925) | u8 rtw_addbarsp_cmd(_adapter *padapter, u8 *addr, u16 tid, u8 status, u8...
function u8 (line 1963) | u8 rtw_reset_securitypriv_cmd(_adapter *padapter)
function free_assoc_resources_hdl (line 2002) | void free_assoc_resources_hdl(_adapter *padapter, u8 lock_scanned_queue)
function u8 (line 2007) | u8 rtw_free_assoc_resources_cmd(_adapter *padapter, u8 lock_scanned_queu...
function u8 (line 2058) | u8 rtw_dynamic_chk_wk_cmd(_adapter *padapter)
function u8 (line 2098) | u8 rtw_set_chbw_cmd(_adapter *padapter, u8 ch, u8 bw, u8 ch_offset, u8 f...
function u8 (line 2165) | u8 _rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, const st...
function u8 (line 2254) | inline u8 rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, u8...
function u8 (line 2259) | inline u8 rtw_set_country_cmd(_adapter *adapter, int flags, const char *...
function u8 (line 2282) | u8 rtw_led_blink_cmd(_adapter *padapter, void *pLed)
function u8 (line 2316) | u8 rtw_set_csa_cmd(_adapter *adapter)
function u8 (line 2335) | u8 rtw_tdls_cmd(_adapter *padapter, u8 *addr, u8 option)
function u8 (line 2371) | u8 rtw_enable_hw_update_tsf_cmd(_adapter *padapter)
function u8 (line 2405) | u8 rtw_periodic_tsf_update_end_cmd(_adapter *adapter)
function u8 (line 2437) | u8 rtw_ssmps_wk_hdl(_adapter *adapter, struct ssmps_cmd_parm *ssmp_param)
function u8 (line 2453) | u8 rtw_ssmps_wk_cmd(_adapter *adapter, struct sta_info *sta, u8 smps, u8...
function u8 (line 2507) | u8 _ssmps_chk_by_tp(_adapter *adapter, u8 from_timer)
function rtw_ctrl_txss_update_mimo_type (line 2588) | void rtw_ctrl_txss_update_mimo_type(_adapter *adapter, struct sta_info *...
function u8 (line 2595) | u8 rtw_ctrl_txss(_adapter *adapter, struct sta_info *sta, bool tx_1ss)
function u8 (line 2628) | u8 rtw_ctrl_txss_wk_hdl(_adapter *adapter, struct txss_cmd_parm *txss_pa...
function u8 (line 2636) | u8 rtw_ctrl_txss_wk_cmd(_adapter *adapter, struct sta_info *sta, bool tx...
function rtw_ctrl_tx_ss_by_tp (line 2699) | void rtw_ctrl_tx_ss_by_tp(_adapter *adapter, u8 from_timer)
function dbg_ctrl_txss (line 2747) | void dbg_ctrl_txss(_adapter *adapter, bool tx_1ss)
function u8 (line 2774) | static u8 _bcn_cnt_expected(struct sta_info *psta)
function u8 (line 2795) | u8 _lps_chk_by_tp(_adapter *adapter, u8 from_timer)
function u8 (line 2890) | static u8 _lps_chk_by_pkt_cnts(_adapter *padapter, u8 from_timer, u8 bBu...
function u8 (line 2993) | u8 traffic_status_watchdog(_adapter *padapter, u8 from_timer)
function dynamic_update_bcn_check (line 3135) | static void dynamic_update_bcn_check(_adapter *padapter)
function rtw_iface_dynamic_chk_wk_hdl (line 3186) | void rtw_iface_dynamic_chk_wk_hdl(_adapter *padapter)
function rtw_dynamic_chk_wk_hdl (line 3213) | void rtw_dynamic_chk_wk_hdl(_adapter *padapter)
type lps_ctrl_wk_parm (line 3255) | struct lps_ctrl_wk_parm {
function lps_ctrl_wk_hdl (line 3262) | void lps_ctrl_wk_hdl(_adapter *padapter, u8 lps_ctrl_type, u8 *buf)
function u8 (line 3350) | static u8 _rtw_lps_ctrl_wk_cmd(_adapter *adapter, u8 lps_ctrl_type, s8 l...
function u8 (line 3424) | u8 rtw_lps_ctrl_wk_cmd(_adapter *adapter, u8 lps_ctrl_type, u8 flags)
function u8 (line 3429) | u8 rtw_lps_ctrl_leave_set_level_cmd(_adapter *adapter, u8 lps_level, u8 ...
function u8 (line 3435) | u8 rtw_lps_ctrl_leave_set_1t1r_cmd(_adapter *adapter, u8 lps_1t1r, u8 fl...
function rtw_dm_in_lps_hdl (line 3441) | void rtw_dm_in_lps_hdl(_adapter *padapter)
function u8 (line 3446) | u8 rtw_dm_in_lps_wk_cmd(_adapter *padapter)
function rtw_lps_change_dtim_hdl (line 3482) | void rtw_lps_change_dtim_hdl(_adapter *padapter, u8 dtim)
function u8 (line 3521) | u8 rtw_lps_change_dtim_cmd(_adapter *padapter, u8 dtim)
function rpt_timer_setting_wk_hdl (line 3564) | void rpt_timer_setting_wk_hdl(_adapter *padapter, u16 minRptTime)
function u8 (line 3569) | u8 rtw_rpt_timer_cfg_cmd(_adapter *padapter, u16 minRptTime)
function antenna_select_wk_hdl (line 3606) | void antenna_select_wk_hdl(_adapter *padapter, u8 antenna)
function u8 (line 3611) | u8 rtw_antenna_select_cmd(_adapter *padapter, u8 antenna, u8 enqueue)
function rtw_dm_ra_mask_hdl (line 3661) | void rtw_dm_ra_mask_hdl(_adapter *padapter, struct sta_info *psta)
function u8 (line 3667) | u8 rtw_dm_ra_mask_wk_cmd(_adapter *padapter, u8 *psta)
function power_saving_wk_hdl (line 3703) | void power_saving_wk_hdl(_adapter *padapter)
function reset_securitypriv_hdl (line 3709) | void reset_securitypriv_hdl(_adapter *padapter)
function u8 (line 3715) | u8 p2p_protocol_wk_cmd(_adapter *padapter, int intCmdType)
function u8 (line 3757) | static u8 _p2p_roch_cmd(_adapter *adapter
function u8 (line 3837) | inline u8 p2p_roch_cmd(_adapter *adapter
function u8 (line 3847) | inline u8 p2p_cancel_roch_cmd(_adapter *adapter, u64 cookie, struct wire...
function u8 (line 3856) | inline u8 rtw_mgnt_tx_cmd(_adapter *adapter, u8 tx_ch, u8 no_cck, const ...
function u8 (line 3929) | u8 rtw_ps_cmd(_adapter *padapter)
function rtw_dfs_ch_switch_hdl (line 3971) | void rtw_dfs_ch_switch_hdl(struct dvobj_priv *dvobj)
function rtw_chk_hi_queue_hdl (line 4062) | static void rtw_chk_hi_queue_hdl(_adapter *padapter)
function u8 (line 4099) | u8 rtw_chk_hi_queue_cmd(_adapter *padapter)
function u8 (line 4135) | u8 rtw_dfs_rd_hdl(_adapter *adapter)
function u8 (line 4224) | u8 rtw_dfs_rd_cmd(_adapter *adapter, bool enqueue)
function rtw_dfs_rd_timer_hdl (line 4258) | void rtw_dfs_rd_timer_hdl(void *ctx)
function rtw_dfs_rd_enable (line 4266) | static void rtw_dfs_rd_enable(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 o...
function rtw_dfs_rd_disable (line 4308) | static void rtw_dfs_rd_disable(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 ...
function rtw_dfs_rd_en_decision (line 4347) | void rtw_dfs_rd_en_decision(_adapter *adapter, u8 mlme_act, u8 excl_ifbmp)
function u8 (line 4459) | u8 rtw_dfs_rd_en_decision_cmd(_adapter *adapter)
type btinfo (line 4492) | struct btinfo {
function btinfo_evt_dump (line 4526) | void btinfo_evt_dump(void *sel, void *buf)
function rtw_btinfo_hdl (line 4557) | static void rtw_btinfo_hdl(_adapter *adapter, u8 *buf, u16 buf_len)
function u8 (line 4599) | u8 rtw_btinfo_cmd(_adapter *adapter, u8 *buf, u16 len)
function rtw_btc_reduce_wl_txpwr_hdl (line 4643) | static void rtw_btc_reduce_wl_txpwr_hdl(_adapter *adapter, u32 pwr_lvl)
function u8 (line 4652) | u8 rtw_btc_reduce_wl_txpwr_cmd(_adapter *adapter, u32 val)
function u8 (line 4686) | u8 rtw_test_h2c_cmd(_adapter *adapter, u8 *buf, u8 len)
function s32 (line 4731) | static s32 rtw_mp_cmd_hdl(_adapter *padapter, u8 mp_cmd_id)
function u8 (line 4854) | u8 rtw_mp_cmd(_adapter *adapter, u8 mp_cmd_id, u8 flags)
function s32 (line 4913) | static s32 rtw_customer_str_cmd_hdl(_adapter *adapter, u8 write, const u...
function u8 (line 4925) | static u8 rtw_customer_str_cmd(_adapter *adapter, u8 write, const u8 *cstr)
function u8 (line 4988) | inline u8 rtw_customer_str_req_cmd(_adapter *adapter)
function u8 (line 4993) | inline u8 rtw_customer_str_write_cmd(_adapter *adapter, const u8 *cstr)
function u8 (line 4999) | u8 rtw_c2h_wk_cmd(PADAPTER padapter, u8 *pbuf, u16 length, u8 type)
function u8 (line 5043) | inline u8 rtw_c2h_reg_wk_cmd(_adapter *adapter, u8 *c2h_evt)
function u8 (line 5050) | inline u8 rtw_c2h_packet_wk_cmd(_adapter *adapter, u8 *c2h_evt, u16 length)
function u8 (line 5056) | u8 rtw_run_in_thread_cmd(PADAPTER padapter, void (*func)(void *), void *...
function s32 (line 5091) | s32 c2h_evt_hdl(_adapter *adapter, u8 *c2h_evt, c2h_id_filter filter)
function u8 (line 5117) | u8 session_tracker_cmd(_adapter *adapter, u8 cmd, struct sta_info *sta, ...
function u8 (line 5168) | inline u8 session_tracker_chk_cmd(_adapter *adapter, struct sta_info *sta)
function u8 (line 5173) | inline u8 session_tracker_add_cmd(_adapter *adapter, struct sta_info *st...
function u8 (line 5178) | inline u8 session_tracker_del_cmd(_adapter *adapter, struct sta_info *st...
function session_tracker_chk_for_sta (line 5183) | void session_tracker_chk_for_sta(_adapter *adapter, struct sta_info *sta)
function session_tracker_chk_for_adapter (line 5265) | void session_tracker_chk_for_adapter(_adapter *adapter)
function session_tracker_cmd_hdl (line 5297) | void session_tracker_cmd_hdl(_adapter *adapter, struct st_cmd_parm *parm)
function s32 (line 5396) | static s32 rtw_req_per_cmd_hdl(_adapter *adapter)
function u8 (line 5423) | u8 rtw_req_per_cmd(_adapter *adapter)
function u8 (line 5458) | u8 rtw_drvextra_cmd_hdl(_adapter *padapter, unsigned char *pbuf)
function rtw_survey_cmd_callback (line 5633) | void rtw_survey_cmd_callback(_adapter *padapter , struct cmd_obj *pcmd)
function rtw_disassoc_cmd_callback (line 5650) | void rtw_disassoc_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd)
function rtw_getmacreg_cmdrsp_callback (line 5675) | void rtw_getmacreg_cmdrsp_callback(_adapter *padapter, struct cmd_obj *...
function rtw_joinbss_cmd_callback (line 5683) | void rtw_joinbss_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd)
function rtw_create_ibss_post_hdl (line 5699) | void rtw_create_ibss_post_hdl(_adapter *padapter, int status)
function rtw_setstaKey_cmdrsp_callback (line 5753) | void rtw_setstaKey_cmdrsp_callback(_adapter *padapter , struct cmd_obj ...
function rtw_setassocsta_cmdrsp_callback (line 5773) | void rtw_setassocsta_cmdrsp_callback(_adapter *padapter, struct cmd_obj...
type cmd_obj (line 5802) | struct cmd_obj
function rtw_getrttbl_cmd_cmdrsp_callback (line 5803) | void rtw_getrttbl_cmd_cmdrsp_callback(_adapter *padapter, struct cmd_ob...
FILE: core/rtw_debug.c
function dump_drv_version (line 46) | void dump_drv_version(void *sel)
function dump_drv_cfg (line 52) | void dump_drv_cfg(void *sel)
function dump_log_level (line 237) | void dump_log_level(void *sel)
function sd_f0_reg_dump (line 254) | void sd_f0_reg_dump(void *sel, _adapter *adapter)
function sdio_local_reg_dump (line 271) | void sdio_local_reg_dump(void *sel, _adapter *adapter)
function u32 (line 285) | u32 sd_monitor_sdio_clk(_adapter *adapter, u8 clk_moni_mode)
function mac_reg_dump (line 312) | void mac_reg_dump(void *sel, _adapter *adapter)
function bb_reg_dump (line 350) | void bb_reg_dump(void *sel, _adapter *adapter)
function bb_reg_dump_ex (line 410) | void bb_reg_dump_ex(void *sel, _adapter *adapter)
function rf_reg_dump (line 430) | void rf_reg_dump(void *sel, _adapter *adapter)
function rtw_sink_rtp_seq_dbg (line 453) | void rtw_sink_rtp_seq_dbg(_adapter *adapter, u8 *ehdr_pos)
function sta_rx_reorder_ctl_dump (line 466) | void sta_rx_reorder_ctl_dump(void *sel, struct sta_info *sta)
function dump_tx_rate_bmp (line 481) | void dump_tx_rate_bmp(void *sel, struct dvobj_priv *dvobj)
function dump_adapters_status (line 520) | void dump_adapters_status(void *sel, struct dvobj_priv *dvobj)
function dump_sec_cam_ent (line 746) | void dump_sec_cam_ent(void *sel, struct sec_cam_ent *ent, int id)
function dump_sec_cam_ent_title (line 755) | void dump_sec_cam_ent_title(void *sel, u8 has_id)
function dump_sec_cam (line 764) | void dump_sec_cam(void *sel, _adapter *adapter)
function dump_sec_cam_cache (line 779) | void dump_sec_cam_cache(void *sel, _adapter *adapter)
function rtw_fwdl_test_trigger_chksum_fail (line 797) | bool rtw_fwdl_test_trigger_chksum_fail(void)
function rtw_fwdl_test_trigger_wintint_rdy_fail (line 807) | bool rtw_fwdl_test_trigger_wintint_rdy_fail(void)
function rtw_del_rx_ampdu_test_trigger_no_tx_fail (line 819) | bool rtw_del_rx_ampdu_test_trigger_no_tx_fail(void)
function u32 (line 831) | u32 rtw_get_wait_hiq_empty_ms(void)
function rtw_sta_linking_test_set_start (line 840) | void rtw_sta_linking_test_set_start(void)
function rtw_sta_linking_test_wait_done (line 845) | bool rtw_sta_linking_test_wait_done(void)
function rtw_sta_linking_test_force_fail (line 850) | bool rtw_sta_linking_test_force_fail(void)
function u16 (line 859) | u16 rtw_ap_linking_test_force_auth_fail(void)
function u16 (line 864) | u16 rtw_ap_linking_test_force_asoc_fail(void)
function proc_set_write_reg (line 871) | ssize_t proc_set_write_reg(struct file *file, const char __user *buffer,...
function proc_get_read_reg (line 921) | int proc_get_read_reg(struct seq_file *m, void *v)
function proc_set_read_reg (line 949) | ssize_t proc_set_read_reg(struct file *file, const char __user *buffer, ...
function proc_get_rx_stat (line 982) | int proc_get_rx_stat(struct seq_file *m, void *v)
function proc_get_tx_stat (line 1030) | int proc_get_tx_stat(struct seq_file *m, void *v)
function proc_get_fwstate (line 1101) | int proc_get_fwstate(struct seq_file *m, void *v)
function proc_get_sec_info (line 1112) | int proc_get_sec_info(struct seq_file *m, void *v)
function proc_get_mlmext_state (line 1144) | int proc_get_mlmext_state(struct seq_file *m, void *v)
function proc_get_roam_flags (line 1157) | int proc_get_roam_flags(struct seq_file *m, void *v)
function proc_set_roam_flags (line 1167) | ssize_t proc_set_roam_flags(struct file *file, const char __user *buffer...
function proc_get_roam_param (line 1195) | int proc_get_roam_param(struct seq_file *m, void *v)
function proc_set_roam_param (line 1212) | ssize_t proc_set_roam_param(struct file *file, const char __user *buffer...
function proc_set_roam_tgt_addr (line 1250) | ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buf...
function proc_set_ft_flags (line 1280) | ssize_t proc_set_ft_flags(struct file *file, const char __user *buffer, ...
function proc_get_ft_flags (line 1307) | int proc_get_ft_flags(struct seq_file *m, void *v)
function proc_get_qos_option (line 1318) | int proc_get_qos_option(struct seq_file *m, void *v)
function proc_get_ht_option (line 1329) | int proc_get_ht_option(struct seq_file *m, void *v)
function proc_get_rf_info (line 1342) | int proc_get_rf_info(struct seq_file *m, void *v)
function proc_get_scan_param (line 1357) | int proc_get_scan_param(struct seq_file *m, void *v)
function proc_set_scan_param (line 1414) | ssize_t proc_set_scan_param(struct file *file, const char __user *buffer...
function proc_get_scan_abort (line 1483) | int proc_get_scan_abort(struct seq_file *m, void *v)
function proc_get_rson_data (line 1497) | int proc_get_rson_data(struct seq_file *m, void *v)
function proc_set_rson_data (line 1508) | ssize_t proc_set_rson_data(struct file *file, const char __user *buffer,...
function proc_get_survey_info (line 1542) | int proc_get_survey_info(struct seq_file *m, void *v)
function proc_set_survey_info (line 1633) | ssize_t proc_set_survey_info(struct file *file, const char __user *buffe...
function proc_get_infra_ap (line 1705) | int proc_get_infra_ap(struct seq_file *m, void *v)
function proc_get_ap_info (line 1767) | int proc_get_ap_info(struct seq_file *m, void *v)
function proc_reset_trx_info (line 1811) | ssize_t proc_reset_trx_info(struct file *file, const char __user *buffer...
function proc_get_trx_info (line 1841) | int proc_get_trx_info(struct seq_file *m, void *v)
function proc_get_rate_ctl (line 1895) | int proc_get_rate_ctl(struct seq_file *m, void *v)
function proc_set_rate_ctl (line 1920) | ssize_t proc_set_rate_ctl(struct file *file, const char __user *buffer, ...
function proc_get_bmc_tx_rate (line 2015) | int proc_get_bmc_tx_rate(struct seq_file *m, void *v)
function proc_set_bmc_tx_rate (line 2029) | ssize_t proc_set_bmc_tx_rate(struct file *file, const char __user *buffe...
function proc_get_tx_power_offset (line 2058) | int proc_get_tx_power_offset(struct seq_file *m, void *v)
function proc_set_tx_power_offset (line 2067) | ssize_t proc_set_tx_power_offset(struct file *file, const char __user *b...
function proc_get_bw_ctl (line 2097) | int proc_get_bw_ctl(struct seq_file *m, void *v)
function proc_set_bw_ctl (line 2112) | ssize_t proc_set_bw_ctl(struct file *file, const char __user *buffer, si...
function proc_get_rx_cnt_dump (line 2144) | int proc_get_rx_cnt_dump(struct seq_file *m, void *v)
function proc_set_rx_cnt_dump (line 2158) | ssize_t proc_set_rx_cnt_dump(struct file *file, const char __user *buffe...
function proc_set_fwdl_test_case (line 2187) | ssize_t proc_set_fwdl_test_case(struct file *file, const char __user *bu...
function proc_set_del_rx_ampdu_test_case (line 2205) | ssize_t proc_set_del_rx_ampdu_test_case(struct file *file, const char __...
function proc_set_wait_hiq_empty (line 2223) | ssize_t proc_set_wait_hiq_empty(struct file *file, const char __user *bu...
function proc_set_sta_linking_test (line 2241) | ssize_t proc_set_sta_linking_test(struct file *file, const char __user *...
function proc_set_ap_linking_test (line 2268) | ssize_t proc_set_ap_linking_test(struct file *file, const char __user *b...
function proc_get_ps_dbg_info (line 2295) | int proc_get_ps_dbg_info(struct seq_file *m, void *v)
function proc_set_ps_dbg_info (line 2334) | ssize_t proc_set_ps_dbg_info(struct file *file, const char __user *buffe...
function proc_get_rx_logs (line 2366) | int proc_get_rx_logs(struct seq_file *m, void *v)
function proc_get_tx_logs (line 2464) | int proc_get_tx_logs(struct seq_file *m, void *v)
function proc_get_int_logs (line 2580) | int proc_get_int_logs(struct seq_file *m, void *v)
function proc_get_hw_status (line 2627) | int proc_get_hw_status(struct seq_file *m, void *v)
function proc_set_hw_status (line 2650) | ssize_t proc_set_hw_status(struct file *file, const char __user *buffer,...
function proc_get_huawei_trx_info (line 2681) | int proc_get_huawei_trx_info(struct seq_file *sel, void *v)
function proc_get_trx_info_debug (line 2738) | int proc_get_trx_info_debug(struct seq_file *m, void *v)
function proc_get_rx_signal (line 2752) | int proc_get_rx_signal(struct seq_file *m, void *v)
function proc_set_rx_signal (line 2794) | ssize_t proc_set_rx_signal(struct file *file, const char __user *buffer,...
function proc_get_mac_rptbuf (line 2837) | int proc_get_mac_rptbuf(struct seq_file *m, void *v)
function proc_get_ht_enable (line 2868) | int proc_get_ht_enable(struct seq_file *m, void *v)
function proc_set_ht_enable (line 2880) | ssize_t proc_set_ht_enable(struct file *file, const char __user *buffer,...
function proc_get_bw_mode (line 2910) | int proc_get_bw_mode(struct seq_file *m, void *v)
function proc_set_bw_mode (line 2922) | ssize_t proc_set_bw_mode(struct file *file, const char __user *buffer, s...
function proc_get_ampdu_enable (line 2956) | int proc_get_ampdu_enable(struct seq_file *m, void *v)
function proc_set_ampdu_enable (line 2968) | ssize_t proc_set_ampdu_enable(struct file *file, const char __user *buff...
function dump_regsty_rx_ampdu_size_limit (line 3000) | void dump_regsty_rx_ampdu_size_limit(void *sel, _adapter *adapter)
function proc_get_rx_ampdu (line 3015) | int proc_get_rx_ampdu(struct seq_file *m, void *v)
function proc_set_rx_ampdu (line 3043) | ssize_t proc_set_rx_ampdu(struct file *file, const char __user *buffer, ...
function proc_get_rx_ampdu_factor (line 3074) | int proc_get_rx_ampdu_factor(struct seq_file *m, void *v)
function proc_set_rx_ampdu_factor (line 3086) | ssize_t proc_set_rx_ampdu_factor(struct file *file, const char __user *b...
function proc_get_tx_max_agg_num (line 3119) | int proc_get_tx_max_agg_num(struct seq_file *m, void *v)
function proc_set_tx_max_agg_num (line 3131) | ssize_t proc_set_tx_max_agg_num(struct file *file, const char __user *bu...
function proc_get_rx_ampdu_density (line 3161) | int proc_get_rx_ampdu_density(struct seq_file *m, void *v)
function proc_set_rx_ampdu_density (line 3173) | ssize_t proc_set_rx_ampdu_density(struct file *file, const char __user *...
function proc_get_tx_ampdu_density (line 3205) | int proc_get_tx_ampdu_density(struct seq_file *m, void *v)
function proc_set_tx_ampdu_density (line 3217) | ssize_t proc_set_tx_ampdu_density(struct file *file, const char __user *...
function proc_get_tx_quick_addba_req (line 3249) | int proc_get_tx_quick_addba_req(struct seq_file *m, void *v)
function proc_set_tx_quick_addba_req (line 3261) | ssize_t proc_set_tx_quick_addba_req(struct file *file, const char __user...
function proc_get_tx_amsdu (line 3290) | int proc_get_tx_amsdu(struct seq_file *m, void *v)
function proc_set_tx_amsdu (line 3308) | ssize_t proc_set_tx_amsdu(struct file *file, const char __user *buffer, ...
function proc_get_tx_amsdu_rate (line 3348) | int proc_get_tx_amsdu_rate(struct seq_file *m, void *v)
function proc_set_tx_amsdu_rate (line 3359) | ssize_t proc_set_tx_amsdu_rate(struct file *file, const char __user *buf...
function proc_get_en_fwps (line 3389) | int proc_get_en_fwps(struct seq_file *m, void *v)
function proc_set_en_fwps (line 3402) | ssize_t proc_set_en_fwps(struct file *file, const char __user *buffer, s...
function rtw_dump_dft_phy_cap (line 3446) | void rtw_dump_dft_phy_cap(void *sel, _adapter *adapter)
function rtw_get_dft_phy_cap (line 3480) | void rtw_get_dft_phy_cap(void *sel, _adapter *adapter)
function rtw_dump_drv_phy_cap (line 3492) | void rtw_dump_drv_phy_cap(void *sel, _adapter *adapter)
function proc_get_stbc_cap (line 3547) | int proc_get_stbc_cap(struct seq_file *m, void *v)
function proc_set_stbc_cap (line 3559) | ssize_t proc_set_stbc_cap(struct file *file, const char __user *buffer, ...
function proc_get_rx_stbc (line 3587) | int proc_get_rx_stbc(struct seq_file *m, void *v)
function proc_set_rx_stbc (line 3599) | ssize_t proc_set_rx_stbc(struct file *file, const char __user *buffer, s...
function proc_get_ldpc_cap (line 3628) | int proc_get_ldpc_cap(struct seq_file *m, void *v)
function proc_set_ldpc_cap (line 3640) | ssize_t proc_set_ldpc_cap(struct file *file, const char __user *buffer, ...
function proc_get_txbf_cap (line 3669) | int proc_get_txbf_cap(struct seq_file *m, void *v)
function proc_set_txbf_cap (line 3681) | ssize_t proc_set_txbf_cap(struct file *file, const char __user *buffer, ...
function proc_get_all_sta_info (line 3766) | int proc_get_all_sta_info(struct seq_file *m, void *v)
function proc_get_rtkm_info (line 3874) | int proc_get_rtkm_info(struct seq_file *m, void *v)
function proc_get_malloc_cnt (line 3900) | int proc_get_malloc_cnt(struct seq_file *m, void *v)
function proc_get_best_channel (line 3910) | int proc_get_best_channel(struct seq_file *m, void *v)
function proc_set_best_channel (line 3965) | ssize_t proc_set_best_channel(struct file *file, const char __user *buff...
function proc_get_btcoex_dbg (line 3993) | int proc_get_btcoex_dbg(struct seq_file *m, void *v)
function proc_set_btcoex_dbg (line 4007) | ssize_t proc_set_btcoex_dbg(struct file *file, const char __user *buffer...
function proc_get_btcoex_info (line 4065) | int proc_get_btcoex_info(struct seq_file *m, void *v)
function proc_get_rf4ce_state (line 4088) | int proc_get_rf4ce_state(struct seq_file *m, void *v)
function proc_set_rf4ce_state (line 4109) | ssize_t proc_set_rf4ce_state(struct file *file, const char __user *buffe...
function proc_get_sreset (line 4138) | int proc_get_sreset(struct seq_file *m, void *v)
function proc_set_sreset (line 4159) | ssize_t proc_set_sreset(struct file *file, const char __user *buffer, si...
function proc_set_pci_bridge_conf_space (line 4198) | ssize_t proc_set_pci_bridge_conf_space(struct file *file, const char __u...
function proc_get_pci_bridge_conf_space (line 4246) | int proc_get_pci_bridge_conf_space(struct seq_file *m, void *v)
function proc_set_pci_conf_space (line 4273) | ssize_t proc_set_pci_conf_space(struct file *file, const char __user *bu...
function proc_get_pci_conf_space (line 4324) | int proc_get_pci_conf_space(struct seq_file *m, void *v)
function proc_get_pci_aspm (line 4352) | int proc_get_pci_aspm(struct seq_file *m, void *v)
function proc_get_rx_ring (line 4409) | int proc_get_rx_ring(struct seq_file *m, void *v)
function proc_get_tx_ring (line 4450) | int proc_get_tx_ring(struct seq_file *m, void *v)
function proc_get_tx_ring_ext (line 4496) | int proc_get_tx_ring_ext(struct seq_file *m, void *v)
function proc_set_tx_ring_ext (line 4597) | ssize_t proc_set_tx_ring_ext(struct file *file, const char __user *buffe...
function proc_get_pattern_info (line 4643) | int proc_get_pattern_info(struct seq_file *m, void *v)
function proc_set_pattern_info (line 4704) | ssize_t proc_set_pattern_info(struct file *file, const char __user *buffer,
function proc_get_wakeup_event (line 4751) | int proc_get_wakeup_event(struct seq_file *m, void *v)
function proc_set_wakeup_event (line 4761) | ssize_t proc_set_wakeup_event(struct file *file, const char __user *buffer,
function proc_get_wakeup_reason (line 4807) | int proc_get_wakeup_reason(struct seq_file *m, void *v)
function proc_get_wowlan_gpio_info (line 4820) | int proc_get_wowlan_gpio_info(struct seq_file *m, void *v)
function proc_set_wowlan_gpio_info (line 4833) | ssize_t proc_set_wowlan_gpio_info(struct file *file, const char __user *...
function proc_get_p2p_wowlan_info (line 4891) | int proc_get_p2p_wowlan_info(struct seq_file *m, void *v)
function proc_get_new_bcn_max (line 4922) | int proc_get_new_bcn_max(struct seq_file *m, void *v)
function proc_set_new_bcn_max (line 4930) | ssize_t proc_set_new_bcn_max(struct file *file, const char __user *buffe...
function proc_get_ps_info (line 4950) | int proc_get_ps_info(struct seq_file *m, void *v)
function proc_set_ps_info (line 5056) | ssize_t proc_set_ps_info(struct file *file, const char __user *buffer, s...
function proc_get_wmmps_info (line 5125) | int proc_get_wmmps_info(struct seq_file *m, void *v)
function proc_set_wmmps_info (line 5164) | ssize_t proc_set_wmmps_info(struct file *file, const char __user *buffer...
function proc_get_tdls_enable (line 5204) | int proc_get_tdls_enable(struct seq_file *m, void *v)
function proc_set_tdls_enable (line 5216) | ssize_t proc_set_tdls_enable(struct file *file, const char __user *buffe...
function proc_tdls_display_tdls_function_info (line 5247) | static int proc_tdls_display_tdls_function_info(struct seq_file *m)
function proc_tdls_display_network_info (line 5327) | static int proc_tdls_display_network_info(struct seq_file *m)
function proc_tdls_display_tdls_sta_info (line 5445) | static int proc_tdls_display_tdls_sta_info(struct seq_file *m)
function proc_get_tdls_info (line 5623) | int proc_get_tdls_info(struct seq_file *m, void *v)
function proc_get_monitor (line 5654) | int proc_get_monitor(struct seq_file *m, void *v)
function proc_set_monitor (line 5671) | ssize_t proc_set_monitor(struct file *file, const char __user *buffer, s...
function proc_get_xmit_block (line 5703) | int proc_get_xmit_block(struct seq_file *m, void *v)
function proc_set_xmit_block (line 5713) | ssize_t proc_set_xmit_block(struct file *file, const char __user *buffer...
function proc_get_efuse_map (line 5750) | int proc_get_efuse_map(struct seq_file *m, void *v)
function proc_set_efuse_map (line 5813) | ssize_t proc_set_efuse_map(struct file *file, const char __user *buffer,...
function proc_set_tx_sa_query (line 5856) | ssize_t proc_set_tx_sa_query(struct file *file, const char __user *buffe...
function proc_get_tx_sa_query (line 5926) | int proc_get_tx_sa_query(struct seq_file *m, void *v)
function proc_set_tx_deauth (line 5935) | ssize_t proc_set_tx_deauth(struct file *file, const char __user *buffer,...
function proc_get_tx_deauth (line 6030) | int proc_get_tx_deauth(struct seq_file *m, void *v)
function proc_set_tx_auth (line 6039) | ssize_t proc_set_tx_auth(struct file *file, const char __user *buffer, s...
function proc_get_tx_auth (line 6089) | int proc_get_tx_auth(struct seq_file *m, void *v)
function proc_get_pathb_phase (line 6101) | int proc_get_pathb_phase(struct seq_file *m, void *v)
function proc_set_pathb_phase (line 6110) | ssize_t proc_set_pathb_phase(struct file *file, const char __user *buffe...
function proc_get_mcc_info (line 6142) | int proc_get_mcc_info(struct seq_file *m, void *v)
function proc_get_mcc_policy_table (line 6152) | int proc_get_mcc_policy_table(struct seq_file *m, void *v)
function proc_set_mcc_enable (line 6161) | ssize_t proc_set_mcc_enable(struct file *file, const char __user *buffer...
function proc_set_mcc_duration (line 6208) | ssize_t proc_set_mcc_duration(struct file *file, const char __user *buff...
function proc_set_mcc_phydm_offload_enable (line 6264) | ssize_t proc_set_mcc_phydm_offload_enable(struct file *file, const char ...
function proc_set_mcc_single_tx_criteria (line 6305) | ssize_t proc_set_mcc_single_tx_criteria(struct file *file, const char __...
function proc_set_mcc_ap_bw20_target_tp (line 6355) | ssize_t proc_set_mcc_ap_bw20_target_tp(struct file *file, const char __u...
function proc_set_mcc_ap_bw40_target_tp (line 6396) | ssize_t proc_set_mcc_ap_bw40_target_tp(struct file *file, const char __u...
function proc_set_mcc_ap_bw80_target_tp (line 6437) | ssize_t proc_set_mcc_ap_bw80_target_tp(struct file *file, const char __u...
function proc_set_mcc_sta_bw20_target_tp (line 6478) | ssize_t proc_set_mcc_sta_bw20_target_tp(struct file *file, const char __...
function proc_set_mcc_sta_bw40_target_tp (line 6519) | ssize_t proc_set_mcc_sta_bw40_target_tp(struct file *file, const char __...
function proc_set_mcc_sta_bw80_target_tp (line 6560) | ssize_t proc_set_mcc_sta_bw80_target_tp(struct file *file, const char __...
function proc_get_ack_timeout (line 6602) | int proc_get_ack_timeout(struct seq_file *m, void *v)
function proc_set_ack_timeout (line 6624) | ssize_t proc_set_ack_timeout(struct file *file, const char __user *buffe...
function proc_set_fw_offload (line 6666) | ssize_t proc_set_fw_offload(struct file *file, const char __user *buffer...
function proc_get_fw_offload (line 6711) | int proc_get_fw_offload(struct seq_file *m, void *v)
function proc_set_fw_tbtt_rpt (line 6724) | ssize_t proc_set_fw_tbtt_rpt(struct file *file, const char __user *buffe...
function proc_get_fw_tbtt_rpt (line 6761) | int proc_get_fw_tbtt_rpt(struct seq_file *m, void *v)
function proc_set_txss_tp (line 6775) | ssize_t proc_set_txss_tp(struct file *file, const char __user *buffer, s...
function proc_get_txss_tp (line 6826) | int proc_get_txss_tp(struct seq_file *m, void *v)
function proc_set_txss_ctrl (line 6839) | ssize_t proc_set_txss_ctrl(struct file *file, const char __user *buffer,...
function proc_get_txss_ctrl (line 6882) | int proc_get_txss_ctrl(struct seq_file *m, void *v)
function proc_get_iqk_info (line 6896) | int proc_get_iqk_info(struct seq_file *m, void *v)
function proc_set_iqk (line 6904) | ssize_t proc_set_iqk(struct file *file, const char __user *buffer, size_...
function proc_get_lck_info (line 6935) | int proc_get_lck_info(struct seq_file *m, void *v)
function proc_set_lck (line 6943) | ssize_t proc_set_lck(struct file *file, const char __user *buffer, size_...
function proc_set_lps_chk_tp (line 6975) | ssize_t proc_set_lps_chk_tp(struct file *file, const char __user *buffer...
function proc_get_lps_chk_tp (line 7042) | int proc_get_lps_chk_tp(struct seq_file *m, void *v)
function proc_set_smps (line 7060) | ssize_t proc_set_smps(struct file *file, const char __user *buffer, size...
function proc_get_smps (line 7123) | int proc_get_smps(struct seq_file *m, void *v)
function RTW_BUF_DUMP_SEL (line 7142) | inline void RTW_BUF_DUMP_SEL(uint _loglevel, void *sel, u8 *_titlestring,
function _RTW_STR_DUMP_SEL (line 7174) | inline void _RTW_STR_DUMP_SEL(void *sel, char *str_out)
function RTW_BUF_DUMP_SEL (line 7183) | inline void RTW_BUF_DUMP_SEL(uint _loglevel, void *sel, u8 *_titlestring,
FILE: core/rtw_eeprom.c
function up_clk (line 21) | void up_clk(_adapter *padapter, u16 *x)
function down_clk (line 30) | void down_clk(_adapter *padapter, u16 *x)
function shift_out_bits (line 37) | void shift_out_bits(_adapter *padapter, u16 data, u16 count)
function u16 (line 71) | u16 shift_in_bits(_adapter *padapter)
function standby (line 101) | void standby(_adapter *padapter)
function u16 (line 115) | u16 wait_eeprom_cmd_done(_adapter *padapter)
function eeprom_clean (line 132) | void eeprom_clean(_adapter *padapter)
function eeprom_write16 (line 156) | void eeprom_write16(_adapter *padapter, u16 reg, u16 data)
function u16 (line 213) | u16 eeprom_read16(_adapter *padapter, u16 reg) /* ReadEEprom */
function eeprom_read_sz (line 253) | void eeprom_read_sz(_adapter *padapter, u16 reg, u8 *data, u32 sz)
function u8 (line 291) | u8 eeprom_read(_adapter *padapter, u32 addr_off, u8 sz, u8 *rbuf)
function read_eeprom_content (line 324) | void read_eeprom_content(_adapter *padapter)
FILE: core/rtw_ieee80211.c
type rate_section_ent (line 119) | struct rate_section_ent
function rtw_get_bit_value_from_ieee_value (line 132) | int rtw_get_bit_value_from_ieee_value(u8 val)
function uint (line 144) | uint rtw_get_cckrate_size(u8 *rate, u32 rate_length)
function uint (line 158) | uint rtw_is_cckrates_included(u8 *rate)
function uint (line 172) | uint rtw_is_cckratesonly_included(u8 *rate)
function rtw_check_network_type (line 189) | int rtw_check_network_type(unsigned char *rate, int ratelen, int channel)
function u8 (line 207) | u8 *rtw_set_fixed_ie(unsigned char *pbuf, unsigned int len, unsigned cha...
function u8 (line 216) | u8 *rtw_set_ie
function u8 (line 238) | inline u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode,
function u8 (line 249) | inline u8 secondary_ch_offset_to_hal_ch_offset(u8 ch_offset)
function u8 (line 261) | inline u8 hal_ch_offset_to_secondary_ch_offset(u8 ch_offset)
function u8 (line 273) | inline u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len, u8 seco...
function u8 (line 278) | inline u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl,
function u8 (line 294) | u8 *rtw_get_ie(const u8 *pbuf, sint index, sint *len, sint limit)
function u8 (line 332) | u8 *rtw_get_ie_ex(const u8 *in_ie, uint in_len, u8 eid, const u8 *oui, u...
function rtw_ies_remove_ie (line 378) | int rtw_ies_remove_ie(u8 *ies, uint *ies_len, uint offset, u8 eid, u8 *o...
function rtw_set_supported_rate (line 411) | void rtw_set_supported_rate(u8 *SupportedRates, uint mode)
function rtw_filter_suppport_rateie (line 440) | void rtw_filter_suppport_rateie(WLAN_BSSID_EX *pbss_network, u8 keep)
function u8 (line 477) | u8 rtw_update_rate_bymode(WLAN_BSSID_EX *pbss_network, u32 mode)
function uint (line 506) | uint rtw_get_rateset_len(u8 *rateset)
function rtw_generate_ie (line 521) | int rtw_generate_ie(struct registry_priv *pregistrypriv)
function rtw_get_wpa_cipher_suite (line 666) | int rtw_get_wpa_cipher_suite(u8 *s)
function rtw_get_wpa2_cipher_suite (line 682) | int rtw_get_wpa2_cipher_suite(u8 *s)
function u32 (line 698) | u32 rtw_get_akm_suite_bitmap(u8 *s)
function rtw_parse_wpa_ie (line 734) | int rtw_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher,
function rtw_rsne_info_parse (line 807) | int rtw_rsne_info_parse(const u8 *ie, uint ie_len, struct rsne_info *info)
function rtw_parse_wpa2_ie (line 906) | int rtw_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher,
function rtw_get_wapi_ie (line 946) | int rtw_get_wapi_ie(u8 *in_ie, uint in_len, u8 *wapi_ie, u16 *wapi_len)
function rtw_get_sec_ie (line 990) | int rtw_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, u8 ...
function u8 (line 1033) | u8 rtw_is_wps_ie(u8 *ie_ptr, uint *wps_ielen)
function u8 (line 1051) | u8 *rtw_get_wps_ie_from_scan_queue(u8 *in_ie, uint in_len, u8 *wps_ie, u...
function u8 (line 1084) | u8 *rtw_get_wps_ie(const u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_i...
function u8 (line 1139) | u8 *rtw_get_wps_attr(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8...
function u8 (line 1191) | u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr...
function rtw_ieee802_11_parse_vendor_specific (line 1214) | static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen,
function ParseRes (line 1319) | ParseRes rtw_ieee802_11_parse_elems(u8 *start, uint len,
function u8 (line 1481) | static u8 key_char2num(u8 ch)
function u8 (line 1494) | u8 str_2char2num(u8 hch, u8 lch)
function u8 (line 1500) | u8 key_2char2num(u8 hch, u8 lch)
function macstr2num (line 1506) | void macstr2num(u8 *dst, u8 *src)
function u8 (line 1513) | u8 convert_ip_addr(u8 hch, u8 mch, u8 lch)
function rtw_get_mac_addr_intel (line 1521) | int rtw_get_mac_addr_intel(unsigned char *buf)
function u8 (line 1562) | u8 rtw_check_invalid_mac_address(u8 *mac_addr, u8 check_local_bit)
function rtw_macaddr_cfg (line 1600) | void rtw_macaddr_cfg(u8 *out, const u8 *hw_mac_addr)
function dump_ht_cap_ie_content (line 1656) | void dump_ht_cap_ie_content(void *sel, const u8 *buf, u32 buf_len)
function dump_ht_cap_ie (line 1671) | void dump_ht_cap_ie(void *sel, const u8 *ie, u32 ie_len)
function dump_ht_op_ie_content (line 1690) | void dump_ht_op_ie_content(void *sel, const u8 *buf, u32 buf_len)
function dump_ht_op_ie (line 1704) | void dump_ht_op_ie(void *sel, const u8 *ie, u32 ie_len)
function dump_ies (line 1717) | void dump_ies(void *sel, const u8 *buf, u32 buf_len)
function dump_wps_ie (line 1747) | void dump_wps_ie(void *sel, const u8 *ie, u32 ie_len)
function rtw_ies_get_chbw (line 1782) | void rtw_ies_get_chbw(u8 *ies, int ies_len, u8 *ch, u8 *bw, u8 *offset, ...
function rtw_bss_get_chbw (line 1847) | void rtw_bss_get_chbw(WLAN_BSSID_EX *bss, u8 *ch, u8 *bw, u8 *offset, u8...
function rtw_is_chbw_grouped (line 1872) | bool rtw_is_chbw_grouped(u8 ch_a, u8 bw_a, u8 offset_a
function rtw_sync_chbw (line 1902) | void rtw_sync_chbw(u8 *req_ch, u8 *req_bw, u8 *req_offset
function u32 (line 1958) | u32 rtw_get_p2p_merged_ies_len(u8 *in_ie, u32 in_len)
function rtw_p2p_merge_ies (line 1985) | int rtw_p2p_merge_ies(u8 *in_ie, u32 in_len, u8 *merge_ie)
function dump_p2p_ie (line 2018) | void dump_p2p_ie(void *sel, const u8 *ie, u32 ie_len)
function u8 (line 2052) | u8 *rtw_get_p2p_ie(const u8 *in_ie, int in_len, u8 *p2p_ie, uint *p2p_ie...
function u8 (line 2107) | u8 *rtw_get_p2p_attr(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id , u8 ...
function u8 (line 2164) | u8 *rtw_get_p2p_attr_content(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_...
function u32 (line 2187) | u32 rtw_set_p2p_attr_content(u8 *pbuf, u8 attr_id, u16 attr_len, u8 *pda...
function uint (line 2204) | uint rtw_del_p2p_ie(u8 *ies, uint ies_len_ori, const char *msg)
function uint (line 2245) | uint rtw_del_p2p_attr(u8 *ie, uint ielen_ori, u8 attr_id)
function u8 (line 2287) | inline u8 *rtw_bss_ex_get_p2p_ie(WLAN_BSSID_EX *bss_ex, u8 *p2p_ie, uint...
function rtw_bss_ex_del_p2p_ie (line 2292) | void rtw_bss_ex_del_p2p_ie(WLAN_BSSID_EX *bss_ex)
function rtw_bss_ex_del_p2p_attr (line 2304) | void rtw_bss_ex_del_p2p_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id)
function dump_wfd_ie (line 2362) | void dump_wfd_ie(void *sel, const u8 *ie, u32 ie_len)
function u8 (line 2396) | u8 *rtw_get_wfd_ie(const u8 *in_ie, int in_len, u8 *wfd_ie, uint *wfd_ie...
function u8 (line 2451) | u8 *rtw_get_wfd_attr(u8 *wfd_ie, uint wfd_ielen, u8 target_attr_id, u8 *...
function u8 (line 2508) | u8 *rtw_get_wfd_attr_content(u8 *wfd_ie, uint wfd_ielen, u8 target_attr_...
function uint (line 2531) | uint rtw_del_wfd_ie(u8 *ies, uint ies_len_ori, const char *msg)
function uint (line 2572) | uint rtw_del_wfd_attr(u8 *ie, uint ielen_ori, u8 attr_id)
function u8 (line 2614) | inline u8 *rtw_bss_ex_get_wfd_ie(WLAN_BSSID_EX *bss_ex, u8 *wfd_ie, uint...
function rtw_bss_ex_del_wfd_ie (line 2619) | void rtw_bss_ex_del_wfd_ie(WLAN_BSSID_EX *bss_ex)
function rtw_bss_ex_del_wfd_attr (line 2630) | void rtw_bss_ex_del_wfd_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id)
function ieee80211_is_empty_essid (line 2689) | int ieee80211_is_empty_essid(const char *essid, int essid_len)
function ieee80211_get_hdrlen (line 2705) | int ieee80211_get_hdrlen(u16 fc)
function u8 (line 2732) | u8 rtw_ht_mcsset_to_nss(u8 *supp_mcs_set)
function u32 (line 2750) | u32 rtw_ht_mcs_set_to_bitmap(u8 *mcs_set, u8 nss)
function u16 (line 2765) | u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI, unsigned char *MC...
function rtw_action_frame_parse (line 2842) | int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category,...
FILE: core/rtw_io.c
function u8 (line 63) | u8 _rtw_read8(_adapter *adapter, u32 addr)
function u16 (line 76) | u16 _rtw_read16(_adapter *adapter, u32 addr)
function u32 (line 89) | u32 _rtw_read32(_adapter *adapter, u32 addr)
function _rtw_write8 (line 103) | int _rtw_write8(_adapter *adapter, u32 addr, u8 val)
function _rtw_write16 (line 116) | int _rtw_write16(_adapter *adapter, u32 addr, u16 val)
function _rtw_write32 (line 130) | int _rtw_write32(_adapter *adapter, u32 addr, u32 val)
function _rtw_writeN (line 145) | int _rtw_writeN(_adapter *adapter, u32 addr , u32 length , u8 *pdata)
function u8 (line 160) | u8 _rtw_sd_f0_read8(_adapter *adapter, u32 addr)
function u8 (line 178) | u8 _rtw_sd_iread8(_adapter *adapter, u32 addr)
function u16 (line 195) | u16 _rtw_sd_iread16(_adapter *adapter, u32 addr)
function u32 (line 212) | u32 _rtw_sd_iread32(_adapter *adapter, u32 addr)
function _rtw_sd_iwrite8 (line 229) | int _rtw_sd_iwrite8(_adapter *adapter, u32 addr, u8 val)
function _rtw_sd_iwrite16 (line 246) | int _rtw_sd_iwrite16(_adapter *adapter, u32 addr, u16 val)
function _rtw_sd_iwrite32 (line 262) | int _rtw_sd_iwrite32(_adapter *adapter, u32 addr, u32 val)
function _rtw_write8_async (line 283) | int _rtw_write8_async(_adapter *adapter, u32 addr, u8 val)
function _rtw_write16_async (line 296) | int _rtw_write16_async(_adapter *adapter, u32 addr, u16 val)
function _rtw_write32_async (line 309) | int _rtw_write32_async(_adapter *adapter, u32 addr, u32 val)
function _rtw_read_mem (line 323) | void _rtw_read_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
function _rtw_write_mem (line 342) | void _rtw_write_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
function _rtw_read_port (line 357) | void _rtw_read_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
function _rtw_read_port_cancel (line 376) | void _rtw_read_port_cancel(_adapter *adapter)
function u32 (line 390) | u32 _rtw_write_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
function u32 (line 407) | u32 _rtw_write_port_and_wait(_adapter *adapter, u32 addr, u32 cnt, u8 *p...
function _rtw_write_port_cancel (line 428) | void _rtw_write_port_cancel(_adapter *adapter)
function rtw_init_io_priv (line 441) | int rtw_init_io_priv(_adapter *padapter, void (*set_intf_ops)(_adapter *...
function rtw_inc_and_chk_continual_io_error (line 463) | int rtw_inc_and_chk_continual_io_error(struct dvobj_priv *dvobj)
function rtw_reset_continual_io_error (line 481) | void rtw_reset_continual_io_error(struct dvobj_priv *dvobj)
type rtw_io_sniff_ent (line 490) | struct rtw_io_sniff_ent {
type rtw_io_sniff_ent (line 521) | struct rtw_io_sniff_ent
type rtw_io_sniff_ent (line 533) | struct rtw_io_sniff_ent
type rtw_io_sniff_ent (line 535) | struct rtw_io_sniff_ent
type rtw_io_sniff_ent (line 558) | struct rtw_io_sniff_ent
function match_io_sniff_ranges (line 560) | static bool match_io_sniff_ranges(_adapter *adapter
function match_io_sniff_value (line 571) | static bool match_io_sniff_value(_adapter *adapter
function match_io_sniff (line 621) | static bool match_io_sniff(_adapter *adapter
function u32 (line 652) | u32 match_read_sniff(_adapter *adapter, u32 addr, u16 len, u32 val)
function u32 (line 672) | u32 match_write_sniff(_adapter *adapter, u32 addr, u16 len, u32 val)
type rf_sniff_ent (line 692) | struct rf_sniff_ent {
type rf_sniff_ent (line 698) | struct rf_sniff_ent
type rf_sniff_ent (line 703) | struct rf_sniff_ent
type rf_sniff_ent (line 708) | struct rf_sniff_ent
type rf_sniff_ent (line 709) | struct rf_sniff_ent
function match_rf_read_sniff_ranges (line 711) | bool match_rf_read_sniff_ranges(_adapter *adapter, u8 path, u32 addr, u3...
function match_rf_write_sniff_ranges (line 724) | bool match_rf_write_sniff_ranges(_adapter *adapter, u8 path, u32 addr, u...
function u8 (line 737) | u8 dbg_rtw_read8(_adapter *adapter, u32 addr, const char *caller, const ...
function u16 (line 749) | u16 dbg_rtw_read16(_adapter *adapter, u32 addr, const char *caller, cons...
function u32 (line 761) | u32 dbg_rtw_read32(_adapter *adapter, u32 addr, const char *caller, cons...
function dbg_rtw_write8 (line 773) | int dbg_rtw_write8(_adapter *adapter, u32 addr, u8 val, const char *call...
function dbg_rtw_write16 (line 782) | int dbg_rtw_write16(_adapter *adapter, u32 addr, u16 val, const char *ca...
function dbg_rtw_write32 (line 791) | int dbg_rtw_write32(_adapter *adapter, u32 addr, u32 val, const char *ca...
function dbg_rtw_writeN (line 800) | int dbg_rtw_writeN(_adapter *adapter, u32 addr , u32 length , u8 *data, ...
function u8 (line 811) | u8 dbg_rtw_sd_f0_read8(_adapter *adapter, u32 addr, const char *caller, ...
function u8 (line 826) | u8 dbg_rtw_sd_iread8(_adapter *adapter, u32 addr, const char *caller, co...
function u16 (line 838) | u16 dbg_rtw_sd_iread16(_adapter *adapter, u32 addr, const char *caller, ...
function u32 (line 850) | u32 dbg_rtw_sd_iread32(_adapter *adapter, u32 addr, const char *caller, ...
function dbg_rtw_sd_iwrite8 (line 862) | int dbg_rtw_sd_iwrite8(_adapter *adapter, u32 addr, u8 val, const char *...
function dbg_rtw_sd_iwrite16 (line 871) | int dbg_rtw_sd_iwrite16(_adapter *adapter, u32 addr, u16 val, const char...
function dbg_rtw_sd_iwrite32 (line 880) | int dbg_rtw_sd_iwrite32(_adapter *adapter, u32 addr, u32 val, const char...
FILE: core/rtw_ioctl_set.c
function u8 (line 30) | u8 rtw_validate_bssid(u8 *bssid)
function u8 (line 43) | u8 rtw_validate_ssid(NDIS_802_11_SSID *ssid)
function u8 (line 73) | u8 rtw_do_join(_adapter *padapter)
function u8 (line 206) | u8 rtw_set_802_11_bssid(_adapter *padapter, u8 *bssid)
function u8 (line 277) | u8 rtw_set_802_11_ssid(_adapter *padapter, NDIS_802_11_SSID *ssid)
function u8 (line 374) | u8 rtw_set_802_11_connect(_adapter *padapter,
function u8 (line 445) | u8 rtw_set_802_11_infrastructure_mode(_adapter *padapter,
function u8 (line 537) | u8 rtw_set_802_11_disassociate(_adapter *padapter)
function u8 (line 562) | u8 rtw_set_802_11_bssid_list_scan(_adapter *padapter, struct sitesurvey_...
function u8 (line 576) | u8 rtw_set_802_11_bssid_list_scan(_adapter *padapter, struct sitesurvey_...
function u8 (line 618) | u8 rtw_set_802_11_authentication_mode(_adapter *padapter, NDIS_802_11_AU...
function u8 (line 648) | u8 rtw_set_802_11_add_wep(_adapter *padapter, NDIS_802_11_WEP *wep)
function u16 (line 704) | u16 rtw_get_cur_max_rate(_adapter *adapter)
function rtw_set_scan_mode (line 794) | int rtw_set_scan_mode(_adapter *adapter, RT_SCAN_TYPE scan_mode)
function rtw_set_channel_plan (line 811) | int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan)
function rtw_set_country (line 824) | int rtw_set_country(_adapter *adapter, const char *country_code)
function rtw_set_band (line 841) | int rtw_set_band(_adapter *adapter, u8 band)
FILE: core/rtw_iol.c
type xmit_frame (line 19) | struct xmit_frame
type xmit_frame (line 21) | struct xmit_frame
type xmit_buf (line 22) | struct xmit_buf
type pkt_attrib (line 23) | struct pkt_attrib
type xmit_priv (line 24) | struct xmit_priv
function rtw_IOL_append_cmds (line 69) | int rtw_IOL_append_cmds(struct xmit_frame *xmit_frame, u8 *IOL_cmds, u32...
function rtw_IOL_applied (line 94) | bool rtw_IOL_applied(ADAPTER *adapter)
function rtw_IOL_exec_cmds_sync (line 107) | int rtw_IOL_exec_cmds_sync(ADAPTER *adapter, struct xmit_frame *xmit_fra...
function rtw_IOL_append_LLT_cmd (line 113) | int rtw_IOL_append_LLT_cmd(struct xmit_frame *xmit_frame, u8 page_boundary)
function _rtw_IOL_append_WB_cmd (line 117) | int _rtw_IOL_append_WB_cmd(struct xmit_frame *xmit_frame, u16 addr, u8 v...
function _rtw_IOL_append_WW_cmd (line 137) | int _rtw_IOL_append_WW_cmd(struct xmit_frame *xmit_frame, u16 addr, u16 ...
function _rtw_IOL_append_WD_cmd (line 157) | int _rtw_IOL_append_WD_cmd(struct xmit_frame *xmit_frame, u16 addr, u32 ...
function _rtw_IOL_append_WRF_cmd (line 178) | int _rtw_IOL_append_WRF_cmd(struct xmit_frame *xmit_frame, u8 rf_path, u...
function rtw_IOL_append_DELAY_US_cmd (line 201) | int rtw_IOL_append_DELAY_US_cmd(struct xmit_frame *xmit_frame, u16 us)
function rtw_IOL_append_DELAY_MS_cmd (line 211) | int rtw_IOL_append_DELAY_MS_cmd(struct xmit_frame *xmit_frame, u16 ms)
function rtw_IOL_append_END_cmd (line 221) | int rtw_IOL_append_END_cmd(struct xmit_frame *xmit_frame)
function u8 (line 228) | u8 rtw_IOL_cmd_boundary_handle(struct xmit_frame *pxmit_frame)
function rtw_IOL_cmd_buf_dump (line 242) | void rtw_IOL_cmd_buf_dump(ADAPTER *Adapter, int buf_len, u8 *pbuf)
function rtw_IOL_append_LLT_cmd (line 261) | int rtw_IOL_append_LLT_cmd(struct xmit_frame *xmit_frame, u8 page_boundary)
function _rtw_IOL_append_WB_cmd (line 270) | int _rtw_IOL_append_WB_cmd(struct xmit_frame *xmit_frame, u16 addr, u8 v...
function _rtw_IOL_append_WW_cmd (line 280) | int _rtw_IOL_append_WW_cmd(struct xmit_frame *xmit_frame, u16 addr, u16 ...
function _rtw_IOL_append_WD_cmd (line 290) | int _rtw_IOL_append_WD_cmd(struct xmit_frame *xmit_frame, u16 addr, u32 ...
function dbg_rtw_IOL_append_WB_cmd (line 302) | int dbg_rtw_IOL_append_WB_cmd(struct xmit_frame *xmit_frame, u16 addr, u...
function dbg_rtw_IOL_append_WW_cmd (line 312) | int dbg_rtw_IOL_append_WW_cmd(struct xmit_frame *xmit_frame, u16 addr, u...
function dbg_rtw_IOL_append_WD_cmd (line 322) | int dbg_rtw_IOL_append_WD_cmd(struct xmit_frame *xmit_frame, u16 addr, u...
function rtw_IOL_append_DELAY_US_cmd (line 333) | int rtw_IOL_append_DELAY_US_cmd(struct xmit_frame *xmit_frame, u16 us)
function rtw_IOL_append_DELAY_MS_cmd (line 344) | int rtw_IOL_append_DELAY_MS_cmd(struct xmit_frame *xmit_frame, u16 ms)
function rtw_IOL_append_END_cmd (line 355) | int rtw_IOL_append_END_cmd(struct xmit_frame *xmit_frame)
function rtw_IOL_exec_cmd_array_sync (line 364) | int rtw_IOL_exec_cmd_array_sync(PADAPTER adapter, u8 *IOL_cmds, u32 cmd_...
function rtw_IOL_exec_empty_cmds_sync (line 378) | int rtw_IOL_exec_empty_cmds_sync(ADAPTER *adapter, u32 max_wating_ms)
FILE: core/rtw_mem.c
type sk_buff_head (line 24) | struct sk_buff_head
type u8 (line 25) | struct u8
type u8 (line 27) | struct u8
function u16 (line 33) | u16 rtw_rtkm_get_buff_size(void)
function u8 (line 39) | u8 rtw_rtkm_get_nr_recv_skb(void)
type sk_buff (line 45) | struct sk_buff
type sk_buff (line 47) | struct sk_buff
function rtw_free_skb_premem (line 63) | int rtw_free_skb_premem(struct sk_buff *pskb)
function rtw_mem_init (line 79) | static int __init rtw_mem_init(void)
function rtw_mem_exit (line 117) | static void __exit rtw_mem_exit(void)
FILE: core/rtw_mi.c
function rtw_mi_update_union_chan_inf (line 20) | void rtw_mi_update_union_chan_inf(_adapter *adapter, u8 ch, u8 offset , ...
function u8 (line 32) | static u8 _rtw_mi_p2p_listen_scan_chk(_adapter *adapter)
function u8 (line 52) | u8 rtw_mi_stayin_union_ch_chk(_adapter *adapter)
function u8 (line 86) | u8 rtw_mi_stayin_union_band_chk(_adapter *adapter)
function rtw_mi_get_ch_setting_union_by_ifbmp (line 110) | int rtw_mi_get_ch_setting_union_by_ifbmp(struct dvobj_priv *dvobj, u8 if...
function rtw_mi_get_ch_setting_union (line 176) | inline int rtw_mi_get_ch_setting_union(_adapter *adapter, u8 *ch, u8 *bw...
function rtw_mi_get_ch_setting_union_no_self (line 181) | inline int rtw_mi_get_ch_setting_union_no_self(_adapter *adapter, u8 *ch...
function rtw_mi_status_by_ifbmp (line 187) | void rtw_mi_status_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp, struct m...
function rtw_mi_status (line 274) | inline void rtw_mi_status(_adapter *adapter, struct mi_state *mstate)
function rtw_mi_status_no_self (line 279) | inline void rtw_mi_status_no_self(_adapter *adapter, struct mi_state *ms...
function rtw_mi_status_no_others (line 284) | inline void rtw_mi_status_no_others(_adapter *adapter, struct mi_state *...
function rtw_mi_status_merge (line 290) | inline void rtw_mi_status_merge(struct mi_state *d, struct mi_state *a)
function dump_mi_status (line 319) | void dump_mi_status(void *sel, struct dvobj_priv *dvobj)
function dump_dvobj_mi_status (line 358) | void dump_dvobj_mi_status(void *sel, const char *fun_name, _adapter *ada...
function rtw_mi_update_iface_status (line 364) | inline void rtw_mi_update_iface_status(struct mlme_priv *pmlmepriv, sint...
function u8 (line 397) | u8 rtw_mi_check_status(_adapter *adapter, u8 type)
function u8 (line 475) | static u8 _rtw_mi_process(_adapter *padapter, bool exclude_self,
function u8 (line 498) | static u8 _rtw_mi_process_without_schk(_adapter *padapter, bool exclude_...
function u8 (line 521) | static u8 _rtw_mi_netif_caroff_qstop(_adapter *padapter, void *data)
function u8 (line 529) | u8 rtw_mi_netif_caroff_qstop(_adapter *padapter)
function u8 (line 533) | u8 rtw_mi_buddy_netif_caroff_qstop(_adapter *padapter)
function u8 (line 538) | static u8 _rtw_mi_netif_caron_qstart(_adapter *padapter, void *data)
function u8 (line 546) | u8 rtw_mi_netif_caron_qstart(_adapter *padapter)
function u8 (line 550) | u8 rtw_mi_buddy_netif_caron_qstart(_adapter *padapter)
function u8 (line 555) | static u8 _rtw_mi_netif_stop_queue(_adapter *padapter, void *data)
function u8 (line 562) | u8 rtw_mi_netif_stop_queue(_adapter *padapter)
function u8 (line 566) | u8 rtw_mi_buddy_netif_stop_queue(_adapter *padapter)
function u8 (line 571) | static u8 _rtw_mi_netif_wake_queue(_adapter *padapter, void *data)
function u8 (line 579) | u8 rtw_mi_netif_wake_queue(_adapter *padapter)
function u8 (line 583) | u8 rtw_mi_buddy_netif_wake_queue(_adapter *padapter)
function u8 (line 588) | static u8 _rtw_mi_netif_carrier_on(_adapter *padapter, void *data)
function u8 (line 596) | u8 rtw_mi_netif_carrier_on(_adapter *padapter)
function u8 (line 600) | u8 rtw_mi_buddy_netif_carrier_on(_adapter *padapter)
function u8 (line 605) | static u8 _rtw_mi_netif_carrier_off(_adapter *padapter, void *data)
function u8 (line 613) | u8 rtw_mi_netif_carrier_off(_adapter *padapter)
function u8 (line 617) | u8 rtw_mi_buddy_netif_carrier_off(_adapter *padapter)
function u8 (line 622) | static u8 _rtw_mi_scan_abort(_adapter *adapter, void *data)
function rtw_mi_scan_abort (line 633) | void rtw_mi_scan_abort(_adapter *adapter, bool bwait)
function rtw_mi_buddy_scan_abort (line 640) | void rtw_mi_buddy_scan_abort(_adapter *adapter, bool bwait)
function u32 (line 647) | static u32 _rtw_mi_start_drv_threads(_adapter *adapter, bool exclude_self)
function u32 (line 667) | u32 rtw_mi_start_drv_threads(_adapter *adapter)
function u32 (line 671) | u32 rtw_mi_buddy_start_drv_threads(_adapter *adapter)
function _rtw_mi_stop_drv_threads (line 676) | static void _rtw_mi_stop_drv_threads(_adapter *adapter, bool exclude_self)
function rtw_mi_stop_drv_threads (line 691) | void rtw_mi_stop_drv_threads(_adapter *adapter)
function rtw_mi_buddy_stop_drv_threads (line 695) | void rtw_mi_buddy_stop_drv_threads(_adapter *adapter)
function u8 (line 700) | static u8 _rtw_mi_cancel_all_timer(_adapter *adapter, void *data)
function rtw_mi_cancel_all_timer (line 705) | void rtw_mi_cancel_all_timer(_adapter *adapter)
function rtw_mi_buddy_cancel_all_timer (line 709) | void rtw_mi_buddy_cancel_all_timer(_adapter *adapter)
function u8 (line 714) | static u8 _rtw_mi_reset_drv_sw(_adapter *adapter, void *data)
function rtw_mi_reset_drv_sw (line 719) | void rtw_mi_reset_drv_sw(_adapter *adapter)
function rtw_mi_buddy_reset_drv_sw (line 723) | void rtw_mi_buddy_reset_drv_sw(_adapter *adapter)
function u8 (line 728) | static u8 _rtw_mi_intf_start(_adapter *adapter, void *data)
function rtw_mi_intf_start (line 733) | void rtw_mi_intf_start(_adapter *adapter)
function rtw_mi_buddy_intf_start (line 737) | void rtw_mi_buddy_intf_start(_adapter *adapter)
function u8 (line 742) | static u8 _rtw_mi_intf_stop(_adapter *adapter, void *data)
function rtw_mi_intf_stop (line 747) | void rtw_mi_intf_stop(_adapter *adapter)
function rtw_mi_buddy_intf_stop (line 751) | void rtw_mi_buddy_intf_stop(_adapter *adapter)
function u8 (line 757) | u8 rtw_mi_hal_iface_init(_adapter *padapter)
function u8 (line 774) | static u8 _rtw_mi_suspend_free_assoc_resource(_adapter *padapter, void *...
function rtw_mi_suspend_free_assoc_resource (line 778) | void rtw_mi_suspend_free_assoc_resource(_adapter *adapter)
function rtw_mi_buddy_suspend_free_assoc_resource (line 782) | void rtw_mi_buddy_suspend_free_assoc_resource(_adapter *adapter)
function u8 (line 787) | static u8 _rtw_mi_is_scan_deny(_adapter *adapter, void *data)
function u8 (line 792) | u8 rtw_mi_is_scan_deny(_adapter *adapter)
function u8 (line 797) | u8 rtw_mi_buddy_is_scan_deny(_adapter *adapter)
function u8 (line 803) | static u8 _rtw_mi_set_scan_deny(_adapter *adapter, void *data)
function rtw_mi_set_scan_deny (line 810) | void rtw_mi_set_scan_deny(_adapter *adapter, u32 ms)
function rtw_mi_buddy_set_scan_deny (line 816) | void rtw_mi_buddy_set_scan_deny(_adapter *adapter, u32 ms)
function u8 (line 824) | static u8 _rtw_mi_beacon_update(_adapter *padapter, void *data)
function rtw_mi_beacon_update (line 834) | void rtw_mi_beacon_update(_adapter *padapter)
function rtw_mi_buddy_beacon_update (line 839) | void rtw_mi_buddy_beacon_update(_adapter *padapter)
function u8 (line 844) | static u8 _rtw_mi_hal_dump_macaddr(_adapter *padapter, void *data)
function rtw_mi_hal_dump_macaddr (line 852) | void rtw_mi_hal_dump_macaddr(_adapter *padapter)
function rtw_mi_buddy_hal_dump_macaddr (line 856) | void rtw_mi_buddy_hal_dump_macaddr(_adapter *padapter)
function u8 (line 862) | static u8 _rtw_mi_xmit_tasklet_schedule(_adapter *padapter, void *data)
function rtw_mi_xmit_tasklet_schedule (line 870) | void rtw_mi_xmit_tasklet_schedule(_adapter *padapter)
function rtw_mi_buddy_xmit_tasklet_schedule (line 874) | void rtw_mi_buddy_xmit_tasklet_schedule(_adapter *padapter)
function u8 (line 880) | u8 _rtw_mi_busy_traffic_check(_adapter *padapter, void *data)
function u8 (line 901) | u8 rtw_mi_busy_traffic_check(_adapter *padapter, bool check_sc_interval)
function u8 (line 907) | u8 rtw_mi_buddy_busy_traffic_check(_adapter *padapter, bool check_sc_int...
function u8 (line 913) | static u8 _rtw_mi_check_mlmeinfo_state(_adapter *padapter, void *data)
function u8 (line 925) | u8 rtw_mi_check_mlmeinfo_state(_adapter *padapter, u32 state)
function u8 (line 932) | u8 rtw_mi_buddy_check_mlmeinfo_state(_adapter *padapter, u32 state)
function rtw_dbg_dump_fwstate (line 941) | static void rtw_dbg_dump_fwstate(_adapter *padapter, sint state)
function u8 (line 971) | static u8 _rtw_mi_check_fwstate(_adapter *padapter, void *data)
function u8 (line 988) | u8 rtw_mi_check_fwstate(_adapter *padapter, sint state)
function u8 (line 994) | u8 rtw_mi_buddy_check_fwstate(_adapter *padapter, sint state)
function u8 (line 1001) | static u8 _rtw_mi_traffic_statistics(_adapter *padapter , void *data)
function u8 (line 1016) | u8 rtw_mi_traffic_statistics(_adapter *padapter)
function u8 (line 1021) | static u8 _rtw_mi_check_miracast_enabled(_adapter *padapter , void *data)
function u8 (line 1025) | u8 rtw_mi_check_miracast_enabled(_adapter *padapter)
function u8 (line 1031) | static u8 _rtw_mi_check_pending_xmitbuf(_adapter *padapter , void *data)
function u8 (line 1037) | u8 rtw_mi_check_pending_xmitbuf(_adapter *padapter)
function u8 (line 1041) | u8 rtw_mi_buddy_check_pending_xmitbuf(_adapter *padapter)
function u8 (line 1048) | static u8 _rtw_mi_dequeue_writeport(_adapter *padapter , bool exclude_self)
function u8 (line 1067) | u8 rtw_mi_dequeue_writeport(_adapter *padapter)
function u8 (line 1071) | u8 rtw_mi_buddy_dequeue_writeport(_adapter *padapter)
function _rtw_mi_adapter_reset (line 1076) | static void _rtw_mi_adapter_reset(_adapter *padapter , u8 exclude_self)
function rtw_mi_adapter_reset (line 1090) | void rtw_mi_adapter_reset(_adapter *padapter)
function rtw_mi_buddy_adapter_reset (line 1095) | void rtw_mi_buddy_adapter_reset(_adapter *padapter)
function u8 (line 1100) | static u8 _rtw_mi_dynamic_check_timer_handlder(_adapter *adapter, void *...
function u8 (line 1105) | u8 rtw_mi_dynamic_check_timer_handlder(_adapter *padapter)
function u8 (line 1109) | u8 rtw_mi_buddy_dynamic_check_timer_handlder(_adapter *padapter)
function u8 (line 1114) | static u8 _rtw_mi_dynamic_chk_wk_hdl(_adapter *adapter, void *data)
function u8 (line 1119) | u8 rtw_mi_dynamic_chk_wk_hdl(_adapter *padapter)
function u8 (line 1123) | u8 rtw_mi_buddy_dynamic_chk_wk_hdl(_adapter *padapter)
function u8 (line 1128) | static u8 _rtw_mi_os_xmit_schedule(_adapter *adapter, void *data)
function u8 (line 1133) | u8 rtw_mi_os_xmit_schedule(_adapter *padapter)
function u8 (line 1137) | u8 rtw_mi_buddy_os_xmit_schedule(_adapter *padapter)
function u8 (line 1142) | static u8 _rtw_mi_report_survey_event(_adapter *adapter, void *data)
function u8 (line 1149) | u8 rtw_mi_report_survey_event(_adapter *padapter, union recv_frame *prec...
function u8 (line 1153) | u8 rtw_mi_buddy_report_survey_event(_adapter *padapter, union recv_frame...
function u8 (line 1158) | static u8 _rtw_mi_sreset_adapter_hdl(_adapter *adapter, void *data)
function u8 (line 1168) | u8 rtw_mi_sreset_adapter_hdl(_adapter *padapter, u8 bstart)
function u8 (line 1174) | u8 rtw_mi_buddy_sreset_adapter_hdl(_adapter *padapter, u8 bstart)
function u8 (line 1180) | static u8 _rtw_mi_tx_beacon_hdl(_adapter *adapter, void *data)
function u8 (line 1194) | u8 rtw_mi_tx_beacon_hdl(_adapter *padapter)
function u8 (line 1198) | u8 rtw_mi_buddy_tx_beacon_hdl(_adapter *padapter)
function u8 (line 1203) | static u8 _rtw_mi_set_tx_beacon_cmd(_adapter *adapter, void *data)
function u8 (line 1213) | u8 rtw_mi_set_tx_beacon_cmd(_adapter *padapter)
function u8 (line 1217) | u8 rtw_mi_buddy_set_tx_beacon_cmd(_adapter *padapter)
function u8 (line 1223) | static u8 _rtw_mi_p2p_chk_state(_adapter *adapter, void *data)
function u8 (line 1230) | u8 rtw_mi_p2p_chk_state(_adapter *padapter, enum P2P_STATE p2p_state)
function u8 (line 1236) | u8 rtw_mi_buddy_p2p_chk_state(_adapter *padapter, enum P2P_STATE p2p_state)
function u8 (line 1242) | static u8 _rtw_mi_stay_in_p2p_mode(_adapter *adapter, void *data)
function u8 (line 1250) | u8 rtw_mi_stay_in_p2p_mode(_adapter *padapter)
function u8 (line 1254) | u8 rtw_mi_buddy_stay_in_p2p_mode(_adapter *padapter)
function _adapter (line 1260) | _adapter *rtw_get_iface_by_id(_adapter *padapter, u8 iface_id)
function _adapter (line 1273) | _adapter *rtw_get_iface_by_macddr(_adapter *padapter, const u8 *mac_addr)
function _adapter (line 1293) | _adapter *rtw_get_iface_by_hwport(_adapter *padapter, u8 hw_port)
function rtw_dbg_skb_process (line 1316) | void rtw_dbg_skb_process(_adapter *padapter, union recv_frame *precvfram...
function s32 (line 1362) | static s32 _rtw_mi_buddy_clone_bcmc_packet(_adapter *adapter, union recv...
function rtw_mi_buddy_clone_bcmc_packet (line 1407) | void rtw_mi_buddy_clone_bcmc_packet(_adapter *padapter, union recv_frame...
function _adapter (line 1443) | _adapter *rtw_mi_get_ap_adapter(_adapter *padapter)
function u8 (line 1463) | u8 rtw_mi_get_ld_sta_ifbmp(_adapter *adapter)
function u8 (line 1482) | u8 rtw_mi_get_ap_mesh_ifbmp(_adapter *adapter)
function rtw_mi_update_ap_bmc_camid (line 1502) | void rtw_mi_update_ap_bmc_camid(_adapter *padapter, u8 camid_a, u8 camid_b)
function u8 (line 1527) | u8 rtw_mi_get_assoc_if_num(_adapter *adapter)
FILE: core/rtw_mlme.c
function rtw_init_mlme_timer (line 23) | void rtw_init_mlme_timer(_adapter *padapter)
function sint (line 40) | sint _rtw_init_mlme_priv(_adapter *padapter)
type mlme_priv (line 152) | struct mlme_priv
function rtw_mfree_mlme_priv_lock (line 153) | void rtw_mfree_mlme_priv_lock(struct mlme_priv *pmlmepriv)
function rtw_free_mlme_ie_data (line 160) | static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen)
function rtw_free_mlme_priv_ie_data (line 169) | void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
function rtw_mlme_update_wfd_ie_data (line 202) | int rtw_mlme_update_wfd_ie_data(struct mlme_priv *mlme, u8 type, u8 *ie,...
function _rtw_free_mlme_priv (line 298) | void _rtw_free_mlme_priv(struct mlme_priv *pmlmepriv)
function sint (line 317) | sint _rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork)
type wlan_network (line 365) | struct wlan_network
type mlme_priv (line 365) | struct mlme_priv
type wlan_network (line 368) | struct wlan_network
function _rtw_free_network (line 405) | void _rtw_free_network(struct mlme_priv *pmlmepriv , struct wlan_network...
function _rtw_free_network_nolock (line 446) | void _rtw_free_network_nolock(struct mlme_priv *pmlmepriv, struct wlan_n...
function _rtw_free_network_queue (line 472) | void _rtw_free_network_queue(_adapter *padapter, u8 isfreeall)
function sint (line 505) | sint rtw_if_up(_adapter *padapter)
function rtw_generate_random_ibss (line 520) | void rtw_generate_random_ibss(u8 *pibss)
function u8 (line 528) | u8 *rtw_get_capability_from_ie(u8 *ie)
function u16 (line 534) | u16 rtw_get_capability(WLAN_BSSID_EX *bss)
function u8 (line 543) | u8 *rtw_get_timestampe_from_ie(u8 *ie)
function u8 (line 548) | u8 *rtw_get_beacon_interval_from_ie(u8 *ie)
function rtw_init_mlme_priv (line 554) | int rtw_init_mlme_priv(_adapter *padapter) /* (struct mlme_priv *pmlmepr...
function rtw_free_mlme_priv (line 561) | void rtw_free_mlme_priv(struct mlme_priv *pmlmepriv)
type wlan_network (line 566) | struct wlan_network
function rtw_enqueue_network (line 567) | int rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork)
type wlan_network (line 583) | struct wlan_network
type mlme_priv (line 583) | struct mlme_priv
type wlan_network (line 584) | struct wlan_network
type mlme_priv (line 584) | struct mlme_priv
type wlan_network (line 586) | struct wlan_network
type mlme_priv (line 591) | struct mlme_priv
type wlan_network (line 591) | struct wlan_network
function rtw_free_network (line 592) | void rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network *...
type wlan_network (line 597) | struct wlan_network
function rtw_free_network_nolock (line 598) | void rtw_free_network_nolock(_adapter *padapter, struct wlan_network *pn...
function rtw_free_network_queue (line 607) | void rtw_free_network_queue(_adapter *dev, u8 isfreeall)
type wlan_network (line 612) | struct wlan_network
type wlan_network (line 615) | struct wlan_network
type wlan_network (line 642) | struct wlan_network
type wlan_network (line 644) | struct wlan_network
function rtw_is_same_ibss (line 654) | int rtw_is_same_ibss(_adapter *adapter, struct wlan_network *pnetwork)
function is_same_ess (line 672) | inline int is_same_ess(WLAN_BSSID_EX *a, WLAN_BSSID_EX *b)
function is_same_network (line 678) | int is_same_network(WLAN_BSSID_EX *src, WLAN_BSSID_EX *dst, u8 feature)
type wlan_network (line 732) | struct wlan_network
type wlan_network (line 732) | struct wlan_network
type wlan_network (line 735) | struct wlan_network
type wlan_network (line 755) | struct wlan_network
type wlan_network (line 755) | struct wlan_network
type wlan_network (line 758) | struct wlan_network
type wlan_network (line 771) | struct wlan_network
type wlan_network (line 776) | struct wlan_network
type wlan_network (line 777) | struct wlan_network
function update_network (line 800) | void update_network(WLAN_BSSID_EX *dst, WLAN_BSSID_EX *src,
function update_current_network (line 908) | static void update_current_network(_adapter *adapter, WLAN_BSSID_EX *pne...
type mlme_priv (line 943) | struct mlme_priv
type wifidirect_info (line 945) | struct wifidirect_info
type wlan_network (line 948) | struct wlan_network
type wlan_network (line 949) | struct wlan_network
function rtw_add_network (line 1136) | void rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *pnetwork)
type wlan_network (line 1167) | struct wlan_network
function rtw_is_desired_network (line 1168) | int rtw_is_desired_network(_adapter *adapter, struct wlan_network *pnetw...
function rtw_atimdone_event_callback (line 1221) | void rtw_atimdone_event_callback(_adapter *adapter , u8 *pbuf)
function rtw_survey_event_callback (line 1228) | void rtw_survey_event_callback(_adapter *adapter, u8 *pbuf)
function rtw_surveydone_event_callback (line 1279) | void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf)
function u8 (line 1454) | u8 _rtw_sitesurvey_condition_check(const char *caller, _adapter *adapter...
function rtw_dummy_event_callback (line 1581) | void rtw_dummy_event_callback(_adapter *adapter , u8 *pbuf)
function rtw_fwdbg_event_callback (line 1586) | void rtw_fwdbg_event_callback(_adapter *adapter , u8 *pbuf)
function free_scanqueue (line 1591) | static void free_scanqueue(struct mlme_priv *pmlmepriv)
function rtw_reset_rx_info (line 1618) | void rtw_reset_rx_info(_adapter *adapter)
function rtw_free_assoc_resources (line 1634) | void rtw_free_assoc_resources(_adapter *adapter, u8 lock_scanned_queue)
function rtw_indicate_connect (line 1725) | void rtw_indicate_connect(_adapter *padapter)
function rtw_indicate_disconnect (line 1751) | void rtw_indicate_disconnect(_adapter *padapter, u16 reason, u8 locally_...
function rtw_indicate_scan_done (line 1829) | inline void rtw_indicate_scan_done(_adapter *padapter, bool aborted)
function u32 (line 1852) | static u32 _rtw_wait_scan_done(_adapter *adapter, u8 abort, u32 timeout_ms)
function rtw_scan_wait_completed (line 1893) | void rtw_scan_wait_completed(_adapter *adapter)
function u32 (line 1901) | u32 rtw_scan_abort_timeout(_adapter *adapter, u32 timeout_ms)
function rtw_scan_abort_no_wait (line 1906) | void rtw_scan_abort_no_wait(_adapter *adapter)
function rtw_scan_abort (line 1915) | void rtw_scan_abort(_adapter *adapter)
function u32 (line 1920) | static u32 _rtw_wait_join_done(_adapter *adapter, u8 abort, u32 timeout_ms)
function u32 (line 1964) | u32 rtw_join_abort_timeout(_adapter *adapter, u32 timeout_ms)
type sta_info (line 1969) | struct sta_info
type wlan_network (line 1969) | struct wlan_network
type sta_info (line 1972) | struct sta_info
type recv_reorder_ctrl (line 1973) | struct recv_reorder_ctrl
type sta_priv (line 1974) | struct sta_priv
type mlme_ext_priv (line 1975) | struct mlme_ext_priv
type mlme_priv (line 1977) | struct mlme_priv
type wlan_network (line 1978) | struct wlan_network
function rtw_joinbss_update_network (line 2079) | static void rtw_joinbss_update_network(_adapter *padapter, struct wlan_n...
function rtw_joinbss_event_prehandle (line 2157) | void rtw_joinbss_event_prehandle(_adapter *adapter, u8 *pbuf, u16 status)
function rtw_joinbss_event_callback (line 2305) | void rtw_joinbss_event_callback(_adapter *adapter, u8 *pbuf)
function rtw_sta_media_status_rpt (line 2316) | void rtw_sta_media_status_rpt(_adapter *adapter, struct sta_info *sta, b...
function u8 (line 2390) | u8 rtw_sta_media_status_rpt_cmd(_adapter *adapter, struct sta_info *sta,...
function rtw_sta_media_status_rpt_cmd_hdl (line 2434) | inline void rtw_sta_media_status_rpt_cmd_hdl(_adapter *adapter, struct s...
function rtw_stassoc_event_callback (line 2439) | void rtw_stassoc_event_callback(_adapter *adapter, u8 *pbuf)
function rtw_sta_timeout_event_callback (line 2559) | void rtw_sta_timeout_event_callback(_adapter *adapter, u8 *pbuf)
function rtw_ft_info_init (line 2589) | void rtw_ft_info_init(struct ft_roam_info *pft)
function u8 (line 2602) | u8 rtw_ft_chk_roaming_candidate(
function rtw_ft_update_stainfo (line 2628) | void rtw_ft_update_stainfo(_adapter *padapter, WLAN_BSSID_EX *pnetwork)
function rtw_ft_reassoc_event_callback (line 2653) | void rtw_ft_reassoc_event_callback(_adapter *padapter, u8 *pbuf)
function rtw_roam_nb_info_init (line 2695) | void rtw_roam_nb_info_init(_adapter *padapter)
function u8 (line 2714) | u8 rtw_roam_nb_scan_list_set(
function rtw_sta_mstatus_disc_rpt (line 2765) | void rtw_sta_mstatus_disc_rpt(_adapter *adapter, u8 mac_id)
function rtw_sta_mstatus_report (line 2793) | void rtw_sta_mstatus_report(_adapter *adapter)
function rtw_stadel_event_callback (line 2810) | void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf)
function rtw_cpwm_event_callback (line 2953) | void rtw_cpwm_event_callback(PADAPTER padapter, u8 *pbuf)
function rtw_wmm_event_callback (line 2970) | void rtw_wmm_event_callback(PADAPTER padapter, u8 *pbuf)
function rtw_join_timeout_handler (line 2981) | void rtw_join_timeout_handler(void *ctx)
function rtw_scan_timeout_handler (line 3058) | void rtw_scan_timeout_handler(void *ctx)
function rtw_mlme_reset_auto_scan_int (line 3082) | void rtw_mlme_reset_auto_scan_int(_adapter *adapter, u8 *reason)
function rtw_drv_scan_by_self (line 3126) | void rtw_drv_scan_by_self(_adapter *padapter, u8 reason)
function rtw_auto_scan_handler (line 3209) | static void rtw_auto_scan_handler(_adapter *padapter)
function u8 (line 3235) | static u8 is_drv_in_lps(_adapter *adapter)
function rtw_iface_dynamic_check_timer_handlder (line 3249) | void rtw_iface_dynamic_check_timer_handlder(_adapter *adapter)
function collect_sta_traffic_statistics (line 3321) | static void collect_sta_traffic_statistics(_adapter *adapter)
function rtw_sta_traffic_info (line 3371) | void rtw_sta_traffic_info(void *sel, _adapter *adapter)
function collect_traffic_statistics (line 3385) | static void collect_traffic_statistics(_adapter *padapter)
function rtw_dynamic_check_timer_handlder (line 3432) | void rtw_dynamic_check_timer_handlder(void *ctx)
function rtw_is_scan_deny (line 3466) | inline bool rtw_is_scan_deny(_adapter *adapter)
function rtw_clear_scan_deny (line 3472) | inline void rtw_clear_scan_deny(_adapter *adapter)
function rtw_set_scan_deny_timer_hdl (line 3480) | void rtw_set_scan_deny_timer_hdl(void *ctx)
function rtw_set_scan_deny (line 3486) | void rtw_set_scan_deny(_adapter *adapter, u32 ms)
function rtw_check_roaming_candidate (line 3502) | static int rtw_check_roaming_candidate(struct mlme_priv *mlme
function rtw_select_roaming_candidate (line 3586) | int rtw_select_roaming_candidate(struct mlme_priv *mlme)
function rtw_check_join_candidate (line 3679) | static int rtw_check_join_candidate(struct mlme_priv *mlme
function rtw_select_and_join_from_scanned_queue (line 3773) | int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv)
function sint (line 3880) | sint rtw_set_auth(_adapter *adapter, struct security_priv *psecuritypriv)
function sint (line 3924) | sint rtw_set_key(_adapter *adapter, struct security_priv *psecuritypriv,...
function rtw_uapsd_use_default_setting (line 4019) | void rtw_uapsd_use_default_setting(_adapter *padapter)
function rtw_is_wmmps_mode (line 4089) | bool rtw_is_wmmps_mode(_adapter *padapter)
function rtw_restruct_wmm_ie (line 4102) | int rtw_restruct_wmm_ie(_adapter *adapter, u8 *in_ie, u8 *out_ie, uint i...
function SecIsInPMKIDList (line 4192) | static int SecIsInPMKIDList(_adapter *Adapter, u8 *bssid)
function rtw_cached_pmkid (line 4218) | int rtw_cached_pmkid(_adapter *Adapter, u8 *bssid)
function rtw_rsn_sync_pmkid (line 4223) | int rtw_rsn_sync_pmkid(_adapter *adapter, u8 *ie, uint ie_len, int i_ent)
function sint (line 4285) | sint rtw_restruct_sec_ie(_adapter *adapter, u8 *out_ie)
function rtw_init_registrypriv_dev_network (line 4327) | void rtw_init_registrypriv_dev_network(_adapter *adapter)
function rtw_update_registrypriv_dev_network (line 4342) | void rtw_update_registrypriv_dev_network(_adapter *adapter)
function rtw_get_encrypt_decrypt_from_registrypriv (line 4396) | void rtw_get_encrypt_decrypt_from_registrypriv(_adapter *adapter)
function rtw_joinbss_reset (line 4404) | void rtw_joinbss_reset(_adapter *padapter)
function rtw_ht_use_default_setting (line 4440) | void rtw_ht_use_default_setting(_adapter *padapter)
function rtw_build_wmm_ie_ht (line 4511) | void rtw_build_wmm_ie_ht(_adapter *padapter, u8 *out_ie, uint *pout_len)
function rtw_restructure_ht_ie (line 4527) | unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *ou...
function rtw_update_ht_cap (line 4786) | void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len, u8 chan...
function rtw_issue_addbareq_cmd_tdls (line 4935) | void rtw_issue_addbareq_cmd_tdls(_adapter *padapter, struct xmit_frame *...
function u8 (line 4966) | static u8 rtw_issue_addbareq_check(_adapter *padapter, struct xmit_frame...
function rtw_issue_addbareq_cmd (line 4987) | void rtw_issue_addbareq_cmd(_adapter *padapter, struct xmit_frame *pxmit...
function rtw_append_exented_cap (line 5036) | void rtw_append_exented_cap(_adapter *padapter, u8 *out_ie, uint *pout_len)
function rtw_set_to_roam (line 5068) | inline void rtw_set_to_roam(_adapter *adapter, u8 to_roam)
function u8 (line 5075) | inline u8 rtw_dec_to_roam(_adapter *adapter)
function u8 (line 5081) | inline u8 rtw_to_roam(_adapter *adapter)
function rtw_roaming (line 5086) | void rtw_roaming(_adapter *padapter, struct wlan_network *tgt_network)
function _rtw_roaming (line 5095) | void _rtw_roaming(_adapter *padapter, struct wlan_network *tgt_network)
function rtw_adjust_chbw (line 5139) | bool rtw_adjust_chbw(_adapter *adapter, u8 req_ch, u8 *req_bw, u8 *req_o...
function sint (line 5166) | sint rtw_linked_check(_adapter *padapter)
function u8 (line 5181) | u8 rtw_is_adapter_up(_adapter *padapter)
function is_miracast_enabled (line 5213) | bool is_miracast_enabled(_adapter *adapter)
function rtw_chk_miracast_mode (line 5226) | bool rtw_chk_miracast_mode(_adapter *adapter, u8 mode)
function wfd_st_match_rule (line 5253) | static bool wfd_st_match_rule(_adapter *adapter, u8 *local_naddr, u8 *lo...
type st_register (line 5264) | struct st_register
function rtw_wfd_st_switch (line 5270) | inline void rtw_wfd_st_switch(struct sta_info *sta, bool on)
function dump_arp_pkt (line 5280) | void dump_arp_pkt(void *sel, u8 *da, u8 *sa, u8 *arp, bool tx)
FILE: core/rtw_mlme_ext.c
type mlme_handler (line 24) | struct mlme_handler
type mlme_handler (line 47) | struct mlme_handler
type action_handler (line 70) | struct action_handler
function init_channel_list (line 117) | static void init_channel_list(_adapter *padapter, RT_CHANNEL_INFO *chann...
function rtw_txpwr_init_regd (line 174) | void rtw_txpwr_init_regd(struct rf_ctl_t *rfctl)
function rtw_rfctl_init (line 273) | void rtw_rfctl_init(_adapter *adapter)
function rtw_rfctl_deinit (line 299) | void rtw_rfctl_deinit(_adapter *adapter)
function rtw_is_cac_reset_needed (line 318) | bool rtw_is_cac_reset_needed(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 of...
function _rtw_rfctl_overlap_radar_detect_ch (line 371) | bool _rtw_rfctl_overlap_radar_detect_ch(struct rf_ctl_t *rfctl, u8 ch, u...
function rtw_rfctl_overlap_radar_detect_ch (line 403) | bool rtw_rfctl_overlap_radar_detect_ch(struct rf_ctl_t *rfctl)
function rtw_rfctl_is_tx_blocked_by_ch_waiting (line 411) | bool rtw_rfctl_is_tx_blocked_by_ch_waiting(struct rf_ctl_t *rfctl)
function rtw_chset_is_chbw_non_ocp (line 416) | bool rtw_chset_is_chbw_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8...
function rtw_chset_is_ch_non_ocp (line 446) | bool rtw_chset_is_ch_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch)
function u32 (line 451) | u32 rtw_chset_get_ch_non_ocp_ms(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u...
function _rtw_chset_update_non_ocp (line 492) | static void _rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8...
function rtw_chset_update_non_ocp (line 520) | inline void rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 ...
function rtw_chset_update_non_ocp_ms (line 525) | inline void rtw_chset_update_non_ocp_ms(RT_CHANNEL_INFO *ch_set, u8 ch, ...
function u32 (line 530) | u32 rtw_get_ch_waiting_ms(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offse...
function rtw_reset_cac (line 579) | void rtw_reset_cac(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset)
function u32 (line 604) | u32 rtw_force_stop_cac(struct rf_ctl_t *rfctl, u32 timeout_ms)
function rtw_choose_shortest_waiting_ch (line 636) | bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u...
function dump_chset (line 754) | void dump_chset(void *sel, RT_CHANNEL_INFO *ch_set)
function dump_cur_chset (line 782) | void dump_cur_chset(void *sel, struct rf_ctl_t *rfctl)
function rtw_chset_search_ch (line 825) | int rtw_chset_search_ch(RT_CHANNEL_INFO *ch_set, const u32 ch)
function u8 (line 849) | u8 rtw_chset_is_chbw_valid(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 off...
function rtw_chset_sync_chbw (line 886) | void rtw_chset_sync_chbw(RT_CHANNEL_INFO *ch_set, u8 *req_ch, u8 *req_bw...
function rtw_mlme_band_check (line 927) | bool rtw_mlme_band_check(_adapter *adapter, const u32 ch)
function RTW_SET_SCAN_BAND_SKIP (line 936) | inline void RTW_SET_SCAN_BAND_SKIP(_adapter *padapter, int skip_band)
function RTW_CLR_SCAN_BAND_SKIP (line 944) | inline void RTW_CLR_SCAN_BAND_SKIP(_adapter *padapter, int skip_band)
function RTW_GET_SCAN_BAND_SKIP (line 951) | inline int RTW_GET_SCAN_BAND_SKIP(_adapter *padapter)
function rtw_mlme_ignore_chan (line 958) | bool rtw_mlme_ignore_chan(_adapter *adapter, const u32 ch)
function init_hw_mlme_ext (line 975) | int init_hw_mlme_ext(_adapter *padapter)
function init_mlme_default_rate_set (line 997) | void init_mlme_default_rate_set(_adapter *padapter)
function init_mlme_ext_priv_value (line 1035) | static void init_mlme_ext_priv_value(_adapter *padapter)
function init_mlme_ext_timer (line 1110) | void init_mlme_ext_timer(_adapter *padapter)
function init_mlme_ext_priv (line 1126) | int init_mlme_ext_priv(_adapter *padapter)
function free_mlme_ext_priv (line 1185) | void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext)
function u8 (line 1199) | static u8 cmp_pkt_chnl_diff(_adapter *padapter, u8 *pframe, uint packet_...
function _mgt_dispatcher (line 1218) | static void _mgt_dispatcher(_adapter *padapter, struct mlme_handler *pta...
function mgt_dispatcher (line 1252) | void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame)
function u32 (line 1385) | u32 p2p_listen_state_process(_adapter *padapter, unsigned char *da)
type mlme_priv (line 1437) | struct mlme_priv
type mlme_ext_priv (line 1438) | struct mlme_ext_priv
type mlme_ext_info (line 1439) | struct mlme_ext_info
type sta_info (line 1449) | struct sta_info
type sta_priv (line 1450) | struct sta_priv
type wifidirect_info (line 1455) | struct wifidirect_info
type rx_pkt_attrib (line 1456) | struct rx_pkt_attrib
type sta_info (line 1543) | struct sta_info
type sta_priv (line 1545) | struct sta_priv
type stainfo_stats (line 1624) | struct stainfo_stats
function OnProbeRsp (line 1694) | unsigned int OnProbeRsp(_adapter *padapter, union recv_frame *precv_frame)
function rtw_check_legacy_ap (line 1779) | static void rtw_check_legacy_ap(_adapter *padapter, u8 *pframe, u32 len)
function OnBeacon (line 1822) | unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame)
type sta_info (line 2058) | struct sta_info
type sta_info (line 2059) | struct sta_info
type sta_priv (line 2060) | struct sta_priv
type security_priv (line 2061) | struct security_priv
type mlme_ext_priv (line 2062) | struct mlme_ext_priv
type mlme_ext_info (line 2063) | struct mlme_ext_info
type rx_pkt_attrib (line 2096) | struct rx_pkt_attrib
function OnAuthClient (line 2320) | unsigned int OnAuthClient(_adapter *padapter, union recv_frame *precv_fr...
type rtw_ieee802_11_elems (line 2430) | struct rtw_ieee802_11_elems
type sta_info (line 2431) | struct sta_info
type mlme_ext_priv (line 2436) | struct mlme_ext_priv
type mlme_ext_info (line 2437) | struct mlme_ext_info
type sta_priv (line 2439) | struct sta_priv
type wifidirect_info (line 2443) | struct wifidirect_info
type sta_info (line 2477) | struct sta_info
function rtw_roam_nb_discover (line 2753) | void rtw_roam_nb_discover(_adapter *padapter, u8 bfroce)
function OnAssocRsp (line 2780) | unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame)
function OnDeAuth (line 2941) | unsigned int OnDeAuth(_adapter *padapter, union recv_frame *precv_frame)
function OnDisassoc (line 3029) | unsigned int OnDisassoc(_adapter *padapter, union recv_frame *precv_frame)
function OnAtim (line 3098) | unsigned int OnAtim(_adapter *padapter, union recv_frame *precv_frame)
function on_action_spct_ch_switch (line 3104) | unsigned int on_action_spct_ch_switch(_adapter *padapter, struct sta_inf...
function on_action_spct (line 3161) | unsigned int on_action_spct(_adapter *padapter, union recv_frame *precv_...
function OnAction_qos (line 3210) | unsigned int OnAction_qos(_adapter *padapter, union recv_frame *precv_fr...
function OnAction_dls (line 3215) | unsigned int OnAction_dls(_adapter *padapter, union recv_frame *precv_fr...
function on_action_wnm (line 3221) | unsigned int on_action_wnm(_adapter *adapter, union recv_frame *rframe)
function u8 (line 3275) | u8 rtw_rx_ampdu_size(_adapter *adapter)
function rtw_rx_ampdu_is_accept (line 3334) | bool rtw_rx_ampdu_is_accept(_adapter *adapter)
function rtw_rx_ampdu_set_size (line 3374) | bool rtw_rx_ampdu_set_size(_adapter *adapter, u8 size, u8 reason)
function rtw_rx_ampdu_set_accept (line 3410) | bool rtw_rx_ampdu_set_accept(_adapter *adapter, u8 accept, u8 reason)
function u8 (line 3452) | u8 rx_ampdu_apply_sta_tid(_adapter *adapter, struct sta_info *sta, u8 ti...
function u8 (line 3477) | u8 rx_ampdu_size_sta_limit(_adapter *adapter, struct sta_info *sta)
function u8 (line 3517) | u8 rx_ampdu_apply_sta(_adapter *adapter, struct sta_info *sta, u8 accept...
function u16 (line 3536) | u16 rtw_rx_ampdu_apply(_adapter *adapter)
function OnAction_back (line 3602) | unsigned int OnAction_back(_adapter *padapter, union recv_frame *precv_f...
function u32 (line 3725) | u32 rtw_build_vendor_ie(_adapter *padapter , unsigned char **pframe , u8...
function get_reg_classes_full_count (line 3744) | int get_reg_classes_full_count(struct p2p_channels *channel_list)
function issue_p2p_GO_request (line 3755) | void issue_p2p_GO_request(_adapter *padapter, u8 *raddr)
function issue_p2p_GO_response (line 4151) | void issue_p2p_GO_response(_adapter *padapter, u8 *raddr, u8 *frame_body...
function issue_p2p_GO_confirm (line 4568) | void issue_p2p_GO_confirm(_adapter *padapter, u8 *raddr, u8 result)
function issue_p2p_invitation_request (line 4802) | void issue_p2p_invitation_request(_adapter *padapter, u8 *raddr)
function issue_p2p_invitation_response (line 5100) | void issue_p2p_invitation_response(_adapter *padapter, u8 *raddr, u8 dia...
function issue_p2p_provision_request (line 5335) | void issue_p2p_provision_request(_adapter *padapter, u8 *pssid, u8 ussid...
function u8 (line 5446) | u8 is_matched_in_profilelist(u8 *peermacaddr, struct profile_info *profi...
function issue_probersp_p2p (line 5466) | void issue_probersp_p2p(_adapter *padapter, unsigned char *da)
function _issue_probereq_p2p (line 5762) | int _issue_probereq_p2p(_adapter *padapter, u8 *da, int wait_ack)
function issue_probereq_p2p (line 6087) | inline void issue_probereq_p2p(_adapter *adapter, u8 *da)
function issue_probereq_p2p_ex (line 6097) | int issue_probereq_p2p_ex(_adapter *adapter, u8 *da, int try_cnt, int wa...
function s32 (line 6139) | s32 rtw_action_public_decache(union recv_frame *rframe, u8 token_offset)
function on_action_public_p2p (line 6164) | unsigned int on_action_public_p2p(union recv_frame *precv_frame)
function on_action_public_vendor (line 6514) | unsigned int on_action_public_vendor(union recv_frame *precv_frame)
function on_action_public_default (line 6534) | unsigned int on_action_public_default(union recv_frame *precv_frame, u8 ...
function on_action_public (line 6560) | unsigned int on_action_public(_adapter *padapter, union recv_frame *prec...
function u8 (line 6600) | static u8 rtw_wnm_nb_elem_parsing(
function u8 (line 6678) | static u8 rtw_wnm_candidates_sorting(
function rtw_wnm_nb_info_update (line 6708) | static void rtw_wnm_nb_info_update(
function rtw_wnm_btm_candidate_select (line 6754) | static void rtw_wnm_btm_candidate_select(_adapter *padapter)
function u32 (line 6785) | u32 rtw_wnm_btm_candidates_survey(
function OnAction_ft (line 6842) | unsigned int OnAction_ft(_adapter *padapter, union recv_frame *precv_frame)
function u8 (line 6928) | u8 rtw_wmn_btm_rsp_reason_decision(_adapter *padapter, u8* req_mode)
function u32 (line 6972) | static u32 rtw_wnm_btm_candidates_offset_get(u8* pframe)
function rtw_wnm_btm_req_hdr_parsing (line 7000) | static void rtw_wnm_btm_req_hdr_parsing(u8* pframe, struct btm_req_hdr *...
function rtw_wnm_roam_scan_hdl (line 7025) | void rtw_wnm_roam_scan_hdl(void *ctx)
function rtw_wnm_roam_scan (line 7037) | static void rtw_wnm_roam_scan(_adapter *padapter)
function rtw_wnm_process_btm_req (line 7048) | void rtw_wnm_process_btm_req(_adapter *padapter, u8* pframe, u32 frame_len)
function rtw_wnm_reset_btm_candidate (line 7071) | void rtw_wnm_reset_btm_candidate(struct roam_nb_info *pnb)
function rtw_wnm_reset_btm_state (line 7077) | void rtw_wnm_reset_btm_state(_adapter *padapter)
function rtw_wnm_issue_action (line 7090) | void rtw_wnm_issue_action(_adapter *padapter, u8 action, u8 reason)
function OnAction_ht (line 7159) | unsigned int OnAction_ht(_adapter *padapter, union recv_frame *precv_frame)
function OnAction_sa_query (line 7199) | unsigned int OnAction_sa_query(_adapter *padapter, union recv_frame *pre...
function on_action_rm (line 7243) | unsigned int on_action_rm(_adapter *padapter, union recv_frame *precv_fr...
function OnAction_wmm (line 7252) | unsigned int OnAction_wmm(_adapter *padapter, union recv_frame *precv_fr...
function OnAction_vht (line 7257) | unsigned int OnAction_vht(_adapter *padapter, union recv_frame *precv_fr...
function OnAction_p2p (line 7306) | unsigned int OnAction_p2p(_adapter *padapter, union recv_frame *precv_fr...
function OnAction (line 7371) | unsigned int OnAction(_adapter *padapter, union recv_frame *precv_frame)
function DoReserved (line 7395) | unsigned int DoReserved(_adapter *padapter, union recv_frame *precv_frame)
type xmit_frame (line 7402) | struct xmit_frame
type xmit_priv (line 7402) | struct xmit_priv
type xmit_frame (line 7404) | struct xmit_frame
type xmit_buf (line 7405) | struct xmit_buf
type xmit_frame (line 7435) | struct xmit_frame
type xmit_priv (line 7435) | struct xmit_priv
type xmit_frame (line 7440) | struct xmit_frame
type xmit_priv (line 7440) | struct xmit_priv
function update_mgnt_tx_rate (line 7452) | void update_mgnt_tx_rate(_adapter *padapter, u8 rate)
function update_monitor_frame_attrib (line 7461) | void update_monitor_frame_attrib(_adapter *padapter, struct pkt_attrib *...
function update_mgntframe_attrib (line 7522) | void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *patt...
function update_mgntframe_attrib_addr (line 7597) | void update_mgntframe_attrib_addr(_adapter *padapter, struct xmit_frame ...
function dump_mgntframe (line 7623) | void dump_mgntframe(_adapter *padapter, struct xmit_frame *pmgntframe)
function s32 (line 7634) | s32 dump_mgntframe_and_wait(_adapter *padapter, struct xmit_frame *pmgnt...
function s32 (line 7663) | s32 dump_mgntframe_and_wait_ack_timeout(_adapter *padapter, struct xmit_...
function s32 (line 7695) | s32 dump_mgntframe_and_wait_ack(_adapter *padapter, struct xmit_frame *p...
function update_hidden_ssid (line 7702) | int update_hidden_ssid(u8 *ies, u32 ies_len, u8 hidden_ssid_mode)
type xmit_frame (line 7739) | struct xmit_frame
type pkt_attrib (line 7740) | struct pkt_attrib
type rtw_ieee80211_hdr (line 7742) | struct rtw_ieee80211_hdr
type xmit_priv (line 7745) | struct xmit_priv
type mlme_priv (line 7748) | struct mlme_priv
type mlme_ext_priv (line 7750) | struct mlme_ext_priv
type mlme_ext_info (line 7751) | struct mlme_ext_info
type wifidirect_info (line 7755) | struct wifidirect_info
type rtw_ieee80211_hdr (line 7793) | struct rtw_ieee80211_hdr
type rtw_ieee80211_hdr_3addr (line 7807) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 7808) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 7924) | struct rtw_ieee80211_hdr_3addr
type rtw_ieee80211_hdr_3addr (line 7925) | struct rtw_ieee80211_hdr_3addr
function issue_probersp (line 8059) | void issue_probersp(_adapter *padapter, unsigned char *da, u8 is_valid_p...
function _issue_probereq (line 8339) | int _issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *pssid, c...
function issue_probereq (line 8479) | inline void issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *p...
function issue_probereq_ex (line 8489) | int issue_probereq_ex(_adapter *padapter, const NDIS_802_11_SSID *pssid,...
function issue_auth (line 8534) | void issue_auth(_adapter *padapter, struct sta_info *psta, unsigned shor...
function issue_asocrsp (line 8687) | void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta...
function _issue_assocreq (line 8913) | void _issue_assocreq(_adapter *padapter, u8 is_reassoc)
function issue_assocreq (line 9388) | void issue_assocreq(_adapter *padapter)
function issue_reassocreq (line 9393) | void issue_reassocreq(_adapter *padapter)
function _issue_nulldata (line 9399) | static int _issue_nulldata(_adapter *padapter, unsigned char *da, unsign...
function issue_nulldata (line 9494) | int issue_nulldata(_adapter *padapter, unsigned char *da, unsigned int p...
function _issue_qos_nulldata (line 9544) | static int _issue_qos_nulldata(_adapter *padapter, unsigned char *da, u1...
function issue_qos_nulldata (line 9648) | int issue_qos_nulldata(_adapter *padapter, unsigned char *da, u16 tid, u...
function _issue_deauth (line 9697) | static int _issue_deauth(_adapter *padapter, unsigned char *da, unsigned...
function issue_deauth (line 9769) | int issue_deauth(_adapter *padapter, unsigned char *da, unsigned short r...
function issue_deauth_11w (line 9776) | int issue_deauth_11w(_adapter *padapter, unsigned char *da, unsigned sho...
function issue_deauth_ex (line 9788) | int issue_deauth_ex(_adapter *padapter, u8 *da, unsigned short reason, i...
function issue_action_spct_ch_switch (line 9832) | void issue_action_spct_ch_switch(_adapter *padapter, u8 *ra, u8 new_ch, ...
function issue_action_SA_Query (line 9896) | void issue_action_SA_Query(_adapter *padapter, unsigned char *raddr, uns...
function issue_action_ba (line 9997) | static int issue_action_ba(_adapter *padapter, unsigned char *raddr, uns...
function issue_addba_req (line 10159) | inline void issue_addba_req(_adapter *adapter, unsigned char *ra, u8 tid)
function issue_addba_rsp (line 10181) | inline void issue_addba_rsp(_adapter *adapter, unsigned char *ra, u8 tid...
function u8 (line 10205) | inline u8 issue_addba_rsp_wait_ack(_adapter *adapter, unsigned char *ra,...
function issue_del_ba (line 10258) | inline void issue_del_ba(_adapter *adapter, unsigned char *ra, u8 tid, u...
function issue_del_ba_ex (line 10282) | int issue_del_ba_ex(_adapter *adapter, unsigned char *ra, u8 tid, u16 re...
function issue_action_BSSCoexistPacket (line 10327) | void issue_action_BSSCoexistPacket(_adapter *padapter)
function _issue_action_SM_PS (line 10475) | int _issue_action_SM_PS(_adapter *padapter , unsigned char *raddr , u8 ...
function issue_action_SM_PS_wait_ack (line 10561) | int issue_action_SM_PS_wait_ack(_adapter *padapter, unsigned char *raddr...
function issue_action_SM_PS (line 10605) | int issue_action_SM_PS(_adapter *padapter , unsigned char *raddr , u8 N...
function _send_delba_sta_tid (line 10625) | static unsigned int _send_delba_sta_tid(_adapter *adapter, u8 initiator,...
function send_delba_sta_tid (line 10668) | inline unsigned int send_delba_sta_tid(_adapter *adapter, u8 initiator, ...
function send_delba_sta_tid_wait_ack (line 10674) | inline unsigned int send_delba_sta_tid_wait_ack(_adapter *adapter, u8 in...
function send_delba (line 10680) | unsigned int send_delba(_adapter *padapter, u8 initiator, u8 *addr)
function send_beacon (line 10708) | unsigned int send_beacon(_adapter *padapter)
function BOOLEAN (line 10844) | BOOLEAN IsLegal5GChannel(
function u8 (line 10862) | u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, W...
function start_create_ibss (line 11130) | void start_create_ibss(_adapter *padapter)
function start_clnt_join (line 11193) | void start_clnt_join(_adapter *padapter)
function start_clnt_auth (line 11305) | void start_clnt_auth(_adapter *padapter)
function start_clnt_assoc (line 11352) | void start_clnt_assoc(_adapter *padapter)
function receive_disconnect (line 11372) | unsigned int receive_disconnect(_adapter *padapter, unsigned char *MacAd...
function process_80211d (line 11406) | static void process_80211d(PADAPTER padapter, WLAN_BSSID_EX *bssid)
function report_survey_event (line 11663) | void report_survey_event(_adapter *padapter, union recv_frame *precv_frame)
function report_surveydone_event (line 11745) | void report_surveydone_event(_adapter *padapter)
function u32 (line 11791) | u32 report_join_res(_adapter *padapter, int aid_res, u16 status)
function report_wmm_edca_update (line 11844) | void report_wmm_edca_update(_adapter *padapter)
function u32 (line 11888) | u32 report_del_sta_event(_adapter *padapter, unsigned char *MacAddr, uns...
function report_add_sta_event (line 11956) | void report_add_sta_event(_adapter *padapter, unsigned char *MacAddr)
function rtw_port_switch_chk (line 12002) | bool rtw_port_switch_chk(_adapter *adapter)
function update_sta_info (line 12101) | void update_sta_info(_adapter *padapter, struct sta_info *psta)
function rtw_mlmeext_disconnect (line 12183) | static void rtw_mlmeext_disconnect(_adapter *padapter)
function mlmeext_joinbss_event_callback (line 12301) | void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res)
function mlmeext_sta_add_event_callback (line 12426) | void mlmeext_sta_add_event_callback(_adapter *padapter, struct sta_info ...
function mlmeext_sta_del_event_callback (line 12468) | void mlmeext_sta_del_event_callback(_adapter *padapter)
function _linked_info_dump (line 12479) | void _linked_info_dump(_adapter *padapter)
function rtw_delba_check (line 12492) | void rtw_delba_check(_adapter *padapter, struct sta_info *psta, u8 from_...
function u8 (line 12530) | u8 chk_ap_is_alive(_adapter *padapter, struct sta_info *psta)
function u8 (line 12570) | u8 chk_adhoc_peer_is_alive(struct sta_info *psta)
function u8 (line 12602) | u8 chk_tdls_peer_sta_is_alive(_adapter *padapter, struct sta_info *psta)
function linked_status_chk_tdls (line 12611) | void linked_status_chk_tdls(_adapter *padapter)
function rtw_get_rx_chk_limit (line 12698) | inline int rtw_get_rx_chk_limit(_adapter *adapter)
function rtw_set_rx_chk_limit (line 12703) | inline void rtw_set_rx_chk_limit(_adapter *adapter, int limit)
function linked_status_chk (line 12709) | void linked_status_chk(_adapter *padapter, u8 from_timer)
function survey_timer_hdl (line 12962) | void survey_timer_hdl(void *ctx)
function rson_timer_hdl (line 12994) | void rson_timer_hdl(void *ctx)
function link_timer_hdl (line 13003) | void link_timer_hdl(void *ctx)
function addba_timer_hdl (line 13095) | void addba_timer_hdl(void *ctx)
function report_sta_timeout_event (line 13116) | void report_sta_timeout_event(_adapter *padapter, u8 *MacAddr, unsigned ...
function clnt_sa_query_timeout (line 13173) | void clnt_sa_query_timeout(_adapter *padapter)
function sa_query_timer_hdl (line 13182) | void sa_query_timer_hdl(void *ctx)
function rtw_ft_update_bcn (line 13200) | void rtw_ft_update_bcn(_adapter *padapter, union recv_frame *precv_frame)
function rtw_ft_start_clnt_join (line 13251) | void rtw_ft_start_clnt_join(_adapter *padapter)
function u8 (line 13276) | u8 rtw_ft_update_rsnie(
function u8 (line 13299) | static u8 rtw_ft_update_mdie(
function u8 (line 13322) | static u8 rtw_ft_update_ftie(
function rtw_ft_build_auth_req_ies (line 13339) | void rtw_ft_build_auth_req_ies(_adapter *padapter,
function rtw_ft_build_assoc_req_ies (line 13356) | void rtw_ft_build_assoc_req_ies(_adapter *padapter,
function u8 (line 13372) | u8 rtw_ft_update_auth_rsp_ies(_adapter *padapter, u8 *pframe, u32 len)
function rtw_ft_start_clnt_action (line 13406) | static void rtw_ft_start_clnt_action(_adapter *padapter, u8 *pTargetAddr)
function rtw_ft_start_roam (line 13415) | void rtw_ft_start_roam(_adapter *padapter, u8 *pTargetAddr)
function rtw_ft_issue_action_req (line 13427) | void rtw_ft_issue_action_req(_adapter *padapter, u8 *pTargetAddr)
function rtw_ft_report_evt (line 13482) | void rtw_ft_report_evt(_adapter *padapter)
function rtw_ft_report_reassoc_evt (line 13524) | void rtw_ft_report_reassoc_evt(_adapter *padapter, u8 *pMacAddr)
function rtw_ft_link_timer_hdl (line 13562) | void rtw_ft_link_timer_hdl(void *ctx)
function rtw_ft_roam_timer_hdl (line 13585) | void rtw_ft_roam_timer_hdl(void *ctx)
function rtw_ft_roam_status_reset (line 13594) | void rtw_ft_roam_status_reset(_adapter *padapter)
function u8 (line 13607) | u8 NULL_hdl(_adapter *padapter, u8 *pbuf)
function rtw_auto_ap_rx_msg_dump (line 13613) | void rtw_auto_ap_rx_msg_dump(_adapter *padapter, union recv_frame *precv...
function rtw_start_auto_ap (line 13647) | void rtw_start_auto_ap(_adapter *adapter)
function rtw_auto_ap_start_beacon (line 13656) | static int rtw_auto_ap_start_beacon(_adapter *adapter)
function u8 (line 13740) | u8 setopmode_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 13803) | u8 createbss_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 13866) | u8 join_cmd_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 14053) | u8 disconnect_hdl(_adapter *padapter, unsigned char *pbuf)
function scan_abort_hdl (line 14117) | static bool scan_abort_hdl(_adapter *adapter)
function u8 (line 14150) | u8 rtw_scan_sparse(_adapter *adapter, struct rtw_ieee80211_channel *ch, ...
function u8 (line 14254) | u8 rtw_scan_backop_decision(_adapter *adapter)
function u32 (line 14283) | u32 rtw_scan_timeout_decision(_adapter *padapter)
function rtw_scan_ch_decision (line 14319) | static int rtw_scan_ch_decision(_adapter *padapter, struct rtw_ieee80211...
function sitesurvey_res_reset (line 14394) | static void sitesurvey_res_reset(_adapter *adapter, struct sitesurvey_pa...
type mlme_ext_priv (line 14446) | struct mlme_ext_priv
type ss_res (line 14447) | struct ss_res
type rf_ctl_t (line 14448) | struct rf_ctl_t
type wifidirect_info (line 14451) | struct wifidirect_info
type rtw_ieee80211_channel (line 14481) | struct rtw_ieee80211_channel
type dvobj_priv (line 14558) | struct dvobj_priv
function site_survey (line 14599) | void site_survey(_adapter *padapter, u8 survey_channel, RT_SCAN_TYPE Sca...
function survey_done_set_ch_bw (line 14669) | void survey_done_set_ch_bw(_adapter *padapter)
function u8 (line 14739) | u8 rtw_ps_annc(_adapter *adapter, bool ps)
function rtw_leave_opch (line 14777) | void rtw_leave_opch(_adapter *adapter)
function rtw_back_opch (line 14805) | void rtw_back_opch(_adapter *adapter)
function sitesurvey_set_igi (line 14828) | void sitesurvey_set_igi(_adapter *adapter)
function sitesurvey_set_msr (line 14888) | void sitesurvey_set_msr(_adapter *adapter, bool enter)
function sitesurvey_set_offch_state (line 14910) | void sitesurvey_set_offch_state(_adapter *adapter, u8 scan_state)
function u8 (line 14940) | u8 sitesurvey_cmd_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 15346) | u8 setauth_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 15372) | u8 setkey_hdl(_adapter *padapter, u8 *pbuf)
function rtw_ap_wep_pk_setting (line 15498) | void rtw_ap_wep_pk_setting(_adapter *adapter, struct sta_info *psta)
function u8 (line 15523) | u8 set_stakey_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 15597) | u8 add_ba_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 15632) | u8 add_ba_rsp_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 15683) | u8 chk_bmc_sleepq_cmd(_adapter *padapter)
function u8 (line 15706) | u8 set_tx_beacon_cmd(_adapter *padapter, u8 flags)
function u8 (line 15767) | u8 mlme_evt_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 15826) | u8 h2c_msg_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 15834) | u8 chk_bmc_sleepq_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 15899) | u8 tx_beacon_hdl(_adapter *padapter, unsigned char *pbuf)
function change_band_update_ie (line 15926) | void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, ...
function rtw_join_done_chk_ch (line 15988) | void rtw_join_done_chk_ch(_adapter *adapter, int join_res)
type mlme_ext_priv (line 16127) | struct mlme_ext_priv
type dvobj_priv (line 16152) | struct dvobj_priv
type mlme_priv (line 16154) | struct mlme_priv
type mlme_ext_priv (line 16155) | struct mlme_ext_priv
type mi_state (line 16156) | struct mi_state
function rtw_set_external_auth_status (line 16301) | void rtw_set_external_auth_status(_adapter *padapter,
function u8 (line 16322) | u8 rtw_set_chbw_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 16345) | u8 set_chplan_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 16376) | u8 led_blink_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 16392) | u8 set_csa_hdl(_adapter *adapter, unsigned char *pbuf)
function u8 (line 16403) | u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf)
function u8 (line 16654) | u8 run_in_thread_hdl(_adapter *padapter, u8 *pbuf)
function u8 (line 16669) | u8 rtw_getmacreg_hdl(_adapter *padapter, u8 *pbuf)
function rtw_sae_preprocess (line 16704) | int rtw_sae_preprocess(_adapter *adapter, const u8 *buf, u32 len, u8 tx)
FILE: core/rtw_mp.c
function rtfloor (line 31) | int rtfloor(float x)
function u32 (line 42) | u32 read_macreg(_adapter *padapter, u32 addr, u32 sz)
function write_macreg (line 65) | void write_macreg(_adapter *padapter, u32 addr, u32 val, u32 sz)
function u32 (line 83) | u32 read_bbreg(_adapter *padapter, u32 addr, u32 bitmask)
function write_bbreg (line 88) | void write_bbreg(_adapter *padapter, u32 addr, u32 bitmask, u32 val)
function u32 (line 93) | u32 _read_rfreg(PADAPTER padapter, u8 rfpath, u32 addr, u32 bitmask)
function _write_rfreg (line 98) | void _write_rfreg(PADAPTER padapter, u8 rfpath, u32 addr, u32 bitmask, u...
function u32 (line 103) | u32 read_rfreg(PADAPTER padapter, u8 rfpath, u32 addr)
function write_rfreg (line 108) | void write_rfreg(PADAPTER padapter, u8 rfpath, u32 addr, u32 val)
function _init_mp_priv_ (line 113) | static void _init_mp_priv_(struct mp_priv *pmp_priv)
function mp_init_xmit_attrib (line 169) | static void mp_init_xmit_attrib(struct mp_tx *pmptx, PADAPTER padapter)
function s32 (line 220) | s32 init_mp_priv(PADAPTER padapter)
function free_mp_priv (line 269) | void free_mp_priv(struct mp_priv *pmp_priv)
function PHY_IQCalibrate_default (line 279) | static void PHY_IQCalibrate_default(
function PHY_LCCalibrate_default (line 287) | static void PHY_LCCalibrate_default(
function PHY_SetRFPathSwitch_default (line 294) | static void PHY_SetRFPathSwitch_default(
function mpt_InitHWConfig (line 303) | void mpt_InitHWConfig(PADAPTER Adapter)
function PHY_IQCalibrate (line 392) | static void PHY_IQCalibrate(PADAPTER padapter, u8 bReCovery)
function PHY_LCCalibrate (line 397) | static void PHY_LCCalibrate(PADAPTER padapter)
function u8 (line 402) | static u8 PHY_QueryRFPathSwitch(PADAPTER padapter)
function PHY_SetRFPathSwitch (line 458) | static void PHY_SetRFPathSwitch(PADAPTER padapter , BOOLEAN bMain) {
function phy_switch_rf_path_set (line 515) | static void phy_switch_rf_path_set(PADAPTER padapter , u8 *prf_set_State) {
function u8 (line 532) | u8 rtw_mp_set_antdiv(PADAPTER padapter, BOOLEAN bMain)
function s32 (line 549) | s32
function MPT_DeInitAdapter (line 651) | void
function u8 (line 677) | static u8 mpt_ProStartTest(PADAPTER padapter)
function s32 (line 696) | s32 SetPowerTracking(PADAPTER padapter, u8 enable)
function GetPowerTracking (line 703) | void GetPowerTracking(PADAPTER padapter, u8 *enable)
function rtw_mp_trigger_iqk (line 708) | void rtw_mp_trigger_iqk(PADAPTER padapter)
function rtw_mp_trigger_lck (line 713) | void rtw_mp_trigger_lck(PADAPTER padapter)
function rtw_mp_trigger_dpk (line 718) | void rtw_mp_trigger_dpk(PADAPTER padapter)
function init_mp_data (line 726) | static void init_mp_data(PADAPTER padapter)
function MPT_PwrCtlDM (line 740) | void MPT_PwrCtlDM(PADAPTER padapter, u32 bstart)
function u32 (line 791) | u32 mp_join(PADAPTER padapter, u8 mode)
function s32 (line 907) | s32 mp_start_test(PADAPTER padapter)
function mp_stop_test (line 986) | void mp_stop_test(PADAPTER padapter)
function mpt_AdjustRFRegByRateByChan92CU (line 1059) | static void mpt_AdjustRFRegByRateByChan92CU(PADAPTER pAdapter, u8 RateId...
function mpt_SwitchRfSetting (line 1117) | static void mpt_SwitchRfSetting(PADAPTER pAdapter)
function MPT_CCKTxPowerAdjust (line 1124) | static void MPT_CCKTxPowerAdjust(PADAPTER Adapter, BOOLEAN bInCH14)
function SetChannel (line 1138) | void SetChannel(PADAPTER pAdapter)
function SetBandwidth (line 1147) | void SetBandwidth(PADAPTER pAdapter)
function SetAntenna (line 1153) | void SetAntenna(PADAPTER pAdapter)
function SetTxPower (line 1158) | int SetTxPower(PADAPTER pAdapter)
function SetTxAGCOffset (line 1165) | void SetTxAGCOffset(PADAPTER pAdapter, u32 ulTxAGCOffset)
function SetDataRate (line 1178) | void SetDataRate(PADAPTER pAdapter)
function MP_PHY_SetRFPathSwitch (line 1183) | void MP_PHY_SetRFPathSwitch(PADAPTER pAdapter , BOOLEAN bMain)
function mp_phy_switch_rf_path_set (line 1190) | void mp_phy_switch_rf_path_set(PADAPTER pAdapter , u8 *pstate)
function u8 (line 1197) | u8 MP_PHY_QueryRFPathSwitch(PADAPTER pAdapter)
function s32 (line 1202) | s32 SetThermalMeter(PADAPTER pAdapter, u8 target_ther)
function TriggerRFThermalMeter (line 1208) | static void TriggerRFThermalMeter(PADAPTER pAdapter)
function u8 (line 1213) | static u8 ReadRFThermalMeter(PADAPTER pAdapter)
function GetThermalMeter (line 1219) | void GetThermalMeter(PADAPTER pAdapter, u8 rfpath ,u8 *value)
function SetSingleCarrierTx (line 1224) | void SetSingleCarrierTx(PADAPTER pAdapter, u8 bStart)
function SetSingleToneTx (line 1230) | void SetSingleToneTx(PADAPTER pAdapter, u8 bStart)
function SetCarrierSuppressionTx (line 1236) | void SetCarrierSuppressionTx(PADAPTER pAdapter, u8 bStart)
function SetContinuousTx (line 1242) | void SetContinuousTx(PADAPTER pAdapter, u8 bStart)
function PhySetTxPowerLevel (line 1249) | void PhySetTxPowerLevel(PADAPTER pAdapter)
function dump_mpframe (line 1259) | static void dump_mpframe(PADAPTER padapter, struct xmit_frame *pmpframe)
type xmit_frame (line 1264) | struct xmit_frame
type xmit_priv (line 1264) | struct xmit_priv
type xmit_frame (line 1266) | struct xmit_frame
type xmit_buf (line 1267) | struct xmit_buf
function u8 (line 1292) | static u8 check_nic_enough_desc(_adapter *padapter, struct pkt_attrib *p...
function thread_return (line 1333) | static thread_return mp_xmit_packet_thread(thread_context context)
function fill_txdesc_for_mp (line 1396) | void fill_txdesc_for_mp(PADAPTER padapter, u8 *ptxdesc)
function fill_tx_desc_8188e (line 1403) | void fill_tx_desc_8188e(PADAPTER padapter)
function fill_tx_desc_8814a (line 1457) | void fill_tx_desc_8814a(PADAPTER padapter)
function fill_tx_desc_8812a (line 1515) | void fill_tx_desc_8812a(PADAPTER padapter)
function fill_tx_desc_8192e (line 1569) | void fill_tx_desc_8192e(PADAPTER padapter)
function fill_tx_desc_8723b (line 1625) | void fill_tx_desc_8723b(PADAPTER padapter)
function fill_tx_desc_8703b (line 1657) | void fill_tx_desc_8703b(PADAPTER padapter)
function fill_tx_desc_8188f (line 1689) | void fill_tx_desc_8188f(PADAPTER padapter)
function fill_tx_desc_8188gtv (line 1720) | void fill_tx_desc_8188gtv(PADAPTER padapter)
function fill_tx_desc_8723d (line 1751) | void fill_tx_desc_8723d(PADAPTER padapter)
function fill_tx_desc_8710b (line 1783) | void fill_tx_desc_8710b(PADAPTER padapter)
function fill_tx_desc_8192f (line 1815) | void fill_tx_desc_8192f(PADAPTER padapter)
function Rtw_MPSetMacTxEDCA (line 1846) | static void Rtw_MPSetMacTxEDCA(PADAPTER padapter)
function SetPacketTx (line 1861) | void SetPacketTx(PADAPTER padapter)
function SetPacketRx (line 2053) | void SetPacketRx(PADAPTER pAdapter, u8 bStartRx, u8 bAB)
function ResetPhyRxPktCount (line 2101) | void ResetPhyRxPktCount(PADAPTER pAdapter)
function u32 (line 2113) | static u32 GetPhyRxPktCounts(PADAPTER pAdapter, u32 selbit)
function u32 (line 2127) | u32 GetPhyRxPktReceived(PADAPTER pAdapter)
function u32 (line 2138) | u32 GetPhyRxPktCRC32Error(PADAPTER pAdapter)
type psd_init_regs (line 2149) | struct psd_init_regs {
function rtw_mp_psd_init (line 2161) | static int rtw_mp_psd_init(PADAPTER padapter, struct psd_init_regs *regs)
function rtw_mp_psd_close (line 2261) | static int rtw_mp_psd_close(PADAPTER padapter, struct psd_init_regs *regs)
function u32 (line 2313) | static u32 rtw_GetPSDData(PADAPTER pAdapter, u32 point)
function u32 (line 2355) | u32 mp_query_psd(PADAPTER pAdapter, u8 *data)
function _rtw_mp_xmit_priv (line 2448) | void _rtw_mp_xmit_priv(struct xmit_priv *pxmitpriv)
function u8 (line 2532) | u8
function u8 (line 2723) | u8 HwRateToMPTRate(u8 rate)
function u8 (line 2988) | u8 rtw_mpRateParseFunc(PADAPTER pAdapter, u8 *targetStr)
function u8 (line 3018) | u8 rtw_mp_mode_check(PADAPTER pAdapter)
function u32 (line 3029) | u32 mpt_ProQueryCalTxPower(
function dump_buf (line 3064) | static inline void dump_buf(u8 *buf, u32 len)
function ByteToBit (line 3074) | void ByteToBit(
function CRC16_generator (line 3090) | void CRC16_generator(
function CCK_generator (line 3131) | void CCK_generator(
function PMAC_Get_Pkt_Param (line 3208) | void PMAC_Get_Pkt_Param(
function u32 (line 3280) | u32 LDPC_parameter_generator(
function PMAC_Nsym_generator (line 3360) | void PMAC_Nsym_generator(
function L_SIG_generator (line 3511) | void L_SIG_generator(
function CRC8_generator (line 3627) | void CRC8_generator(
function HT_SIG_generator (line 3657) | void HT_SIG_generator(
function VHT_SIG_A_generator (line 3725) | void VHT_SIG_A_generator(
function VHT_SIG_B_generator (line 3789) | void VHT_SIG_B_generator(
function VHT_Delimiter_generator (line 3859) | void VHT_Delimiter_generator(
FILE: core/rtw_odm.c
function u32 (line 19) | u32 rtw_phydm_ability_ops(_adapter *adapter, HAL_PHYDM_OPS ops, u32 abil...
function rtw_odm_init_ic_type (line 57) | void rtw_odm_init_ic_type(_adapter *adapter)
function rtw_odm_adaptivity_ver_msg (line 67) | void rtw_odm_adaptivity_ver_msg(void *sel, _adapter *adapter)
function rtw_odm_adaptivity_en_msg (line 75) | void rtw_odm_adaptivity_en_msg(void *sel, _adapter *adapter)
function rtw_odm_adaptivity_mode_msg (line 92) | void rtw_odm_adaptivity_mode_msg(void *sel, _adapter *adapter)
function rtw_odm_adaptivity_config_msg (line 106) | void rtw_odm_adaptivity_config_msg(void *sel, _adapter *adapter)
function rtw_odm_adaptivity_needed (line 113) | bool rtw_odm_adaptivity_needed(_adapter *adapter)
function rtw_odm_adaptivity_parm_msg (line 124) | void rtw_odm_adaptivity_parm_msg(void *sel, _adapter *adapter)
function rtw_odm_adaptivity_parm_set (line 138) | void rtw_odm_adaptivity_parm_set(_adapter *adapter, s8 th_l2h_ini, s8 th...
function rtw_odm_get_perpkt_rssi (line 146) | void rtw_odm_get_perpkt_rssi(void *sel, _adapter *adapter)
function rtw_odm_acquirespinlock (line 155) | void rtw_odm_acquirespinlock(_adapter *adapter, enum rt_spinlock_type type)
function rtw_odm_releasespinlock (line 168) | void rtw_odm_releasespinlock(_adapter *adapter, enum rt_spinlock_type type)
function u8 (line 181) | inline u8 rtw_odm_get_dfs_domain(struct dvobj_priv *dvobj)
function u8 (line 192) | inline u8 rtw_odm_dfs_domain_unknown(struct dvobj_priv *dvobj)
function rtw_odm_radar_detect_reset (line 202) | inline void rtw_odm_radar_detect_reset(_adapter *adapter)
function rtw_odm_radar_detect_disable (line 207) | inline void rtw_odm_radar_detect_disable(_adapter *adapter)
function rtw_odm_radar_detect_enable (line 213) | inline void rtw_odm_radar_detect_enable(_adapter *adapter)
function BOOLEAN (line 218) | inline BOOLEAN rtw_odm_radar_detect(_adapter *adapter)
function u8 (line 223) | inline u8 rtw_odm_radar_detect_polling_int_ms(struct dvobj_priv *dvobj)
function rtw_odm_parse_rx_phy_status_chinfo (line 229) | void rtw_odm_parse_rx_phy_status_chinfo(union recv_frame *rframe, u8 *phys)
function debug_DACK (line 422) | void
function debug_IQK (line 487) | void
function __odm_func__ (line 522) | __odm_func__ void
function __odm_func__ (line 549) | __odm_func__ void
function odm_lps_pg_debug_8822c (line 595) | void odm_lps_pg_debug_8822c(void *dm_void)
FILE: core/rtw_p2p.c
function rtw_p2p_is_channel_list_ok (line 21) | int rtw_p2p_is_channel_list_ok(u8 desired_ch, u8 *ch_list, u8 ch_cnt)
function is_any_client_associated (line 34) | int is_any_client_associated(_adapter *padapter)
function u32 (line 39) | static u32 go_add_group_info_attr(struct wifidirect_info *pwdinfo, u8 *p...
function issue_group_disc_req (line 141) | static void issue_group_disc_req(struct wifidirect_info *pwdinfo, u8 *da)
function issue_p2p_devdisc_resp (line 199) | static void issue_p2p_devdisc_resp(struct wifidirect_info *pwdinfo, u8 *...
function issue_p2p_provision_resp (line 272) | static void issue_p2p_provision_resp(struct wifidirect_info *pwdinfo, u8...
function issue_p2p_presence_resp (line 380) | static void issue_p2p_presence_resp(struct wifidirect_info *pwdinfo, u8 ...
function u32 (line 463) | u32 build_beacon_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 521) | u32 build_beacon_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 635) | u32 build_probe_req_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 747) | u32 build_probe_resp_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf, u...
function u32 (line 938) | u32 build_assoc_req_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1044) | u32 build_assoc_resp_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1143) | u32 build_nego_req_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1242) | u32 build_nego_resp_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1342) | u32 build_nego_confirm_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1442) | u32 build_invitation_req_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1555) | u32 build_invitation_resp_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1668) | u32 build_provdisc_req_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1768) | u32 build_provdisc_resp_wfd_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 1868) | u32 build_probe_resp_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 2019) | u32 build_prov_disc_request_p2p_ie(struct wifidirect_info *pwdinfo, u8 *...
function u32 (line 2149) | u32 build_assoc_resp_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf, u...
function u32 (line 2182) | u32 build_deauth_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pbuf)
function u32 (line 2189) | u32 process_probe_req_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pframe...
function u32 (line 2256) | u32 process_assoc_req_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pframe...
function u32 (line 2366) | u32 process_p2p_devdisc_req(struct wifidirect_info *pwdinfo, u8 *pframe,...
function u32 (line 2441) | u32 process_p2p_devdisc_resp(struct wifidirect_info *pwdinfo, u8 *pframe...
function u8 (line 2446) | u8 process_p2p_provdisc_req(struct wifidirect_info *pwdinfo, u8 *pframe...
function u8 (line 2486) | u8 process_p2p_provdisc_resp(struct wifidirect_info *pwdinfo, u8 *pframe)
function u8 (line 2492) | u8 rtw_p2p_get_peer_ch_list(struct wifidirect_info *pwdinfo, u8 *ch_cont...
function u8 (line 2514) | u8 rtw_p2p_ch_inclusion(_adapter *adapter, u8 *peer_ch_list, u8 peer_ch_...
function u8 (line 2533) | u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo, u8 ...
function u8 (line 2710) | u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8...
function u8 (line 2910) | u8 process_p2p_group_negotation_confirm(struct wifidirect_info *pwdinfo,...
function u8 (line 2992) | u8 process_p2p_presence_req(struct wifidirect_info *pwdinfo, u8 *pframe,...
function find_phase_handler (line 3009) | void find_phase_handler(_adapter *padapter)
function restore_p2p_state_handler (line 3034) | void restore_p2p_state_handler(_adapter *padapter)
function pre_tx_invitereq_handler (line 3067) | void pre_tx_invitereq_handler(_adapter *padapter)
function pre_tx_provdisc_handler (line 3079) | void pre_tx_provdisc_handler(_adapter *padapter)
function pre_tx_negoreq_handler (line 3091) | void pre_tx_negoreq_handler(_adapter *padapter)
function p2p_concurrent_handler (line 3106) | void p2p_concurrent_handler(_adapter *padapter)
function u8 (line 3220) | u8 roch_stay_in_cur_chan(_adapter *padapter)
function ro_ch_handler (line 3253) | static int ro_ch_handler(_adapter *adapter, u8 *buf)
function cancel_ro_ch_handler (line 3352) | static int cancel_ro_ch_handler(_adapter *padapter, u8 *buf)
function ro_ch_timer_process (line 3438) | static void ro_ch_timer_process(void *FunctionContext)
function rtw_change_p2pie_op_ch (line 3446) | static void rtw_change_p2pie_op_ch(_adapter *padapter, const u8 *frame_b...
function rtw_change_p2pie_ch_list (line 3479) | static void rtw_change_p2pie_ch_list(_adapter *padapter, const u8 *frame...
function rtw_chk_p2pie_ch_list_with_buddy (line 3525) | static bool rtw_chk_p2pie_ch_list_with_buddy(_adapter *padapter, const u...
function rtw_chk_p2pie_op_ch_with_buddy (line 3574) | static bool rtw_chk_p2pie_op_ch_with_buddy(_adapter *padapter, const u8 ...
function rtw_cfg80211_adjust_p2pie_channel (line 3610) | static void rtw_cfg80211_adjust_p2pie_channel(_adapter *padapter, const ...
function u32 (line 3678) | u32 rtw_xframe_build_wfd_ie(struct xmit_frame *xframe)
function rtw_xframe_del_wfd_ie (line 3756) | bool rtw_xframe_del_wfd_ie(struct xmit_frame *xframe)
function rtw_xframe_chk_wfd_ie (line 3802) | void rtw_xframe_chk_wfd_ie(struct xmit_frame *xframe)
function u8 (line 3828) | u8 *dump_p2p_attr_ch_list(u8 *p2p_ie, uint p2p_ielen, u8 *buf, u32 buf_len)
function rtw_p2p_nego_intent_compare (line 3880) | bool rtw_p2p_nego_intent_compare(u8 req, u8 resp)
function rtw_p2p_check_frames (line 3890) | int rtw_p2p_check_frames(_adapter *padapter, const u8 *buf, u32 len, u8 tx)
function rtw_init_cfg80211_wifidirect_info (line 4280) | void rtw_init_cfg80211_wifidirect_info(_adapter *padapter)
function s32 (line 4290) | s32 p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf)
function process_p2p_cross_connect_ie (line 4359) | int process_p2p_cross_connect_ie(PADAPTER padapter, u8 *IEs, u32 IELength)
function process_p2p_ps_ie (line 4394) | void process_p2p_ps_ie(PADAPTER padapter, u8 *IEs, u32 IELength)
function p2p_ps_wk_hdl (line 4488) | void p2p_ps_wk_hdl(_adapter *padapter, u8 p2p_ps_state)
function u8 (line 4563) | u8 p2p_ps_wk_cmd(_adapter *padapter, u8 p2p_ps_state, u8 enqueue)
function reset_ch_sitesurvey_timer_process (line 4614) | static void reset_ch_sitesurvey_timer_process(void *FunctionContext)
function reset_ch_sitesurvey_timer_process2 (line 4633) | static void reset_ch_sitesurvey_timer_process2(void *FunctionContext)
function restore_p2p_state_timer_process (line 4652) | static void restore_p2p_state_timer_process(void *FunctionContext)
function pre_tx_scan_timer_process (line 4663) | static void pre_tx_scan_timer_process(void *FunctionContext)
function find_phase_timer_process (line 4694) | static void find_phase_timer_process(void *FunctionContext)
function ap_p2p_switch_timer_process (line 4708) | void ap_p2p_switch_timer_process(void *FunctionContext)
function reset_global_wifidirect_info (line 4727) | void reset_global_wifidirect_info(_adapter *padapter)
function rtw_init_wifi_display_info (line 4739) | int rtw_init_wifi_display_info(_adapter *padapter)
function rtw_wfd_enable (line 4768) | inline void rtw_wfd_enable(_adapter *adapter, bool on)
function rtw_wfd_set_ctrl_port (line 4782) | inline void rtw_wfd_set_ctrl_port(_adapter *adapter, u16 port)
function rtw_tdls_wfd_enable (line 4793) | inline void rtw_tdls_wfd_enable(_adapter *adapter, bool on)
type wifidirect_info (line 4809) | struct wifidirect_info
type mlme_priv (line 4810) | struct mlme_priv
function else (line 4825) | else if (mlme->wfd_beacon_ie && mlme->wfd_beacon_ie_len > 0) {
type wifidirect_info (line 4837) | struct wifidirect_info
type mlme_priv (line 4838) | struct mlme_priv
function else (line 4853) | else if (mlme->wfd_probe_req_ie && mlme->wfd_probe_req_ie_len > 0) {
type wifidirect_info (line 4865) | struct wifidirect_info
type mlme_priv (line 4866) | struct mlme_priv
function else (line 4881) | else if (mlme->wfd_probe_resp_ie && mlme->wfd_probe_resp_ie_len > 0) {
type wifidirect_info (line 4893) | struct wifidirect_info
type mlme_priv (line 4894) | struct mlme_priv
function else (line 4909) | else if (mlme->wfd_assoc_req_ie && mlme->wfd_assoc_req_ie_len > 0) {
type wifidirect_info (line 4921) | struct wifidirect_info
type mlme_priv (line 4922) | struct mlme_priv
function else (line 4937) | else if (mlme->wfd_assoc_resp_ie && mlme->wfd_assoc_resp_ie_len > 0) {
function rtw_init_wifidirect_timers (line 4949) | void rtw_init_wifidirect_timers(_adapter *padapter)
function rtw_init_wifidirect_addrs (line 4963) | void rtw_init_wifidirect_addrs(_adapter *padapter, u8 *dev_addr, u8 *ifa...
function init_wifidirect_info (line 4976) | void init_wifidirect_info(_adapter *padapter, enum P2P_ROLE role)
function _rtw_p2p_set_role (line 5133) | void _rtw_p2p_set_role(struct wifidirect_info *wdinfo, enum P2P_ROLE role)
type P2P_ROLE (line 5148) | enum P2P_ROLE
type P2P_STATE (line 5169) | enum P2P_STATE
function dbg_rtw_p2p_set_state (line 5223) | void dbg_rtw_p2p_set_state(struct wifidirect_info *wdinfo, enum P2P_STAT...
function dbg_rtw_p2p_set_pre_state (line 5237) | void dbg_rtw_p2p_set_pre_state(struct wifidirect_info *wdinfo, enum P2P_...
function dbg_rtw_p2p_restore_state (line 5252) | void dbg_rtw_p2p_restore_state(struct wifidirect_info *wdinfo, const cha...
function dbg_rtw_p2p_set_role (line 5266) | void dbg_rtw_p2p_set_role(struct wifidirect_info *wdinfo, enum P2P_ROLE ...
function rtw_p2p_enable (line 5283) | int rtw_p2p_enable(_adapter *padapter, enum P2P_ROLE role)
FILE: core/rtw_pwrctrl.c
function rtw_fw_ps_state (line 22) | int rtw_fw_ps_state(PADAPTER padapter)
function _ips_enter (line 78) | void _ips_enter(_adapter *padapter)
function ips_enter (line 108) | void ips_enter(_adapter *pa
Copy disabled (too large)
Download .json
Condensed preview — 641 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (29,194K chars).
[
{
"path": "Kconfig",
"chars": 111,
"preview": "config RTL8822CE\n\ttristate \"Realtek 8822C PCIE WiFi\"\n\tdepends on PCI\n\t---help---\n\t Help message of RTL8822CE\n\n"
},
{
"path": "Makefile",
"chars": 70299,
"preview": "EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS)\nEXTRA_CFLAGS += -O1\n#EXTRA_CFLAGS += -O3\n#EXTRA_CFLAGS += -Wall\n#EXTRA_CFLAGS += -W"
},
{
"path": "README.md",
"chars": 3147,
"preview": "[](https://sourcerer.io/fame/juanro49/juanro49/r"
},
{
"path": "clean",
"chars": 64,
"preview": "#!/bin/bash\nrmmod 8192cu\nrmmod 8192ce\nrmmod 8192du\nrmmod 8192de\n"
},
{
"path": "core/efuse/rtw_efuse.c",
"chars": 91542,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/mesh/rtw_mesh.c",
"chars": 114092,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/mesh/rtw_mesh.h",
"chars": 20468,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/mesh/rtw_mesh_hwmp.c",
"chars": 49276,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/mesh/rtw_mesh_hwmp.h",
"chars": 2155,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/mesh/rtw_mesh_pathtbl.c",
"chars": 33222,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/mesh/rtw_mesh_pathtbl.h",
"chars": 7614,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_ap.c",
"chars": 156794,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_beamforming.c",
"chars": 58712,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_br_ext.c",
"chars": 46442,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_bt_mp.c",
"chars": 50554,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_btcoex.c",
"chars": 50086,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2013 - 2017 Realtek C"
},
{
"path": "core/rtw_btcoex_wifionly.c",
"chars": 1389,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2013 - 2017 Realtek C"
},
{
"path": "core/rtw_chplan.c",
"chars": 65614,
"preview": "/******************************************************************************\r\n *\r\n * Copyright(c) 2007 - 2018 Realtek"
},
{
"path": "core/rtw_chplan.h",
"chars": 6345,
"preview": "/******************************************************************************\r\n *\r\n * Copyright(c) 2007 - 2018 Realtek"
},
{
"path": "core/rtw_cmd.c",
"chars": 153128,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_debug.c",
"chars": 211719,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_eeprom.c",
"chars": 7066,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_ieee80211.c",
"chars": 74051,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_io.c",
"chars": 25490,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_ioctl_query.c",
"chars": 710,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_ioctl_set.c",
"chars": 21635,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_iol.c",
"chars": 10976,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_mem.c",
"chars": 3422,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "core/rtw_mi.c",
"chars": 41669,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_mlme.c",
"chars": 159391,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2019 Realtek C"
},
{
"path": "core/rtw_mlme_ext.c",
"chars": 498514,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2019 Realtek C"
},
{
"path": "core/rtw_mp.c",
"chars": 104708,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_odm.c",
"chars": 17435,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2013 - 2017 Realtek C"
},
{
"path": "core/rtw_p2p.c",
"chars": 164755,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_pwrctrl.c",
"chars": 78391,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_recv.c",
"chars": 142234,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_rf.c",
"chars": 35707,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_rm.c",
"chars": 58321,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_rm_fsm.c",
"chars": 23481,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_rson.c",
"chars": 18263,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2011 Realtek C"
},
{
"path": "core/rtw_sdio.c",
"chars": 4278,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2015 - 2017 Realtek C"
},
{
"path": "core/rtw_security.c",
"chars": 95977,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_sreset.c",
"chars": 9280,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_sta_mgt.c",
"chars": 36684,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2019 Realtek C"
},
{
"path": "core/rtw_tdls.c",
"chars": 109617,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_vht.c",
"chars": 38747,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_wapi.c",
"chars": 42741,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "core/rtw_wapi_sms4.c",
"chars": 27653,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "core/rtw_wlan_util.c",
"chars": 131633,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "core/rtw_xmit.c",
"chars": 158248,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2019 Realtek C"
},
{
"path": "dkms.conf",
"chars": 392,
"preview": "PACKAGE_NAME=\"rtl88x2ce\"\nPACKAGE_VERSION=\"5.7.3_35403_20240103\"\nPROCS_NUM=$(nproc)\n[ $PROCS_NUM -gt 16 ] && PROCS_NUM=16"
},
{
"path": "hal/HalPwrSeqCmd.c",
"chars": 5519,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/btc/btc_basic_types.h",
"chars": 1247,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtc8822c.c",
"chars": 18083,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtc8822c.h",
"chars": 1236,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtc8822cwifionly.c",
"chars": 1584,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtc8822cwifionly.h",
"chars": 1235,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtccommon.c",
"chars": 142137,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtccommon.h",
"chars": 4112,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/halbtcoutsrc.h",
"chars": 47698,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/btc/mp_precomp.h",
"chars": 3044,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2013 - 2017 Realtek C"
},
{
"path": "hal/efuse/efuse_mask.h",
"chars": 4154,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.c",
"chars": 3056,
"preview": "/******************************************************************************\n*\n * Copyright(c) 2015 - 2017 Realtek Co"
},
{
"path": "hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.h",
"chars": 1165,
"preview": "/******************************************************************************\n*\n * Copyright(c) 2015 - 2017 Realtek Co"
},
{
"path": "hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.c",
"chars": 3057,
"preview": "/******************************************************************************\n*\n * Copyright(c) 2015 - 2017 Realtek Co"
},
{
"path": "hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.h",
"chars": 1166,
"preview": "/******************************************************************************\n*\n * Copyright(c) 2015 - 2017 Realtek Co"
},
{
"path": "hal/efuse/rtl8822c/HalEfuseMask8822C_USB.c",
"chars": 3037,
"preview": "/******************************************************************************\n*\n * Copyright(c) 2015 - 2017 Realtek Co"
},
{
"path": "hal/efuse/rtl8822c/HalEfuseMask8822C_USB.h",
"chars": 1159,
"preview": "/******************************************************************************\n*\n * Copyright(c) 2015 - 2017 Realtek Co"
},
{
"path": "hal/hal_btcoex.c",
"chars": 176140,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2013 - 2017 Realtek C"
},
{
"path": "hal/hal_btcoex_wifionly.c",
"chars": 7094,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/hal_com.c",
"chars": 439690,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_com_c2h.h",
"chars": 4300,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_com_phycfg.c",
"chars": 162499,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_dm.c",
"chars": 52384,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2014 - 2017 Realtek C"
},
{
"path": "hal/hal_dm.h",
"chars": 3776,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_dm_acs.c",
"chars": 17452,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2014 - 2017 Realtek C"
},
{
"path": "hal/hal_dm_acs.h",
"chars": 5507,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_halmac.c",
"chars": 130523,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2015 - 2019 Realtek C"
},
{
"path": "hal/hal_halmac.h",
"chars": 10959,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2015 - 2019 Realtek C"
},
{
"path": "hal/hal_hci/hal_pci.c",
"chars": 722,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_intf.c",
"chars": 43162,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_mcc.c",
"chars": 123730,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2015 - 2017 Realtek C"
},
{
"path": "hal/hal_mp.c",
"chars": 93561,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/hal_phy.c",
"chars": 6367,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/halmac/halmac_2_platform.h",
"chars": 2758,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2015 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_8822c_cfg.h",
"chars": 2429,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_cfg_wmac_8822c.c",
"chars": 6300,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_cfg_wmac_8822c.h",
"chars": 1329,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_common_8822c.c",
"chars": 5731,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_common_8822c.h",
"chars": 1206,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_gpio_8822c.c",
"chars": 33963,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_gpio_8822c.h",
"chars": 1275,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_init_8822c.c",
"chars": 40451,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_init_8822c.h",
"chars": 1511,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_pcie_8822c.c",
"chars": 21141,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_pcie_8822c.h",
"chars": 1653,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_phy_8822c.c",
"chars": 2130,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.c",
"chars": 21177,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2019 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.h",
"chars": 1434,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2019 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_88xx_cfg.h",
"chars": 1377,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_bb_rf_88xx.c",
"chars": 11612,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_bb_rf_88xx.h",
"chars": 1891,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.c",
"chars": 30479,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.h",
"chars": 4054,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_common_88xx.c",
"chars": 81222,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_common_88xx.h",
"chars": 4855,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_efuse_88xx.c",
"chars": 50201,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_efuse_88xx.h",
"chars": 3511,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_flash_88xx.c",
"chars": 8712,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_flash_88xx.h",
"chars": 1282,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_fw_88xx.c",
"chars": 32227,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_fw_88xx.h",
"chars": 2024,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_gpio_88xx.c",
"chars": 10889,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_gpio_88xx.h",
"chars": 1939,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_init_88xx.c",
"chars": 28662,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_init_88xx.h",
"chars": 1970,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_mimo_88xx.c",
"chars": 25770,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_mimo_88xx.h",
"chars": 2713,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_pcie_88xx.c",
"chars": 13766,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_88xx/halmac_pcie_88xx.h",
"chars": 2987,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_api.c",
"chars": 18015,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_api.h",
"chars": 3307,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_bit2.h",
"chars": 2856238,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_bit_8197f.h",
"chars": 920016,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_bit_8814b.h",
"chars": 1356394,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_bit_8821c.h",
"chars": 1003983,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_bit_8822b.h",
"chars": 951760,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_bit_8822c.h",
"chars": 1128379,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_fw_info.h",
"chars": 3816,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_fw_offload_c2h_ap.h",
"chars": 42167,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_fw_offload_c2h_nic.h",
"chars": 29799,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_fw_offload_h2c_ap.h",
"chars": 66262,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_fw_offload_h2c_nic.h",
"chars": 45512,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_gpio_cmd.h",
"chars": 2782,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_h2c_extra_info_ap.h",
"chars": 14098,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_h2c_extra_info_nic.h",
"chars": 10306,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_hw_cfg.h",
"chars": 3863,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_intf_phy_cmd.h",
"chars": 1343,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_original_c2h_ap.h",
"chars": 41752,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_original_c2h_nic.h",
"chars": 27788,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_original_h2c_ap.h",
"chars": 103523,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_original_h2c_nic.h",
"chars": 70273,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_pcie_reg.h",
"chars": 1758,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_pwr_seq_cmd.h",
"chars": 2802,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_reg2.h",
"chars": 224574,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_reg_8197f.h",
"chars": 26703,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_reg_8814b.h",
"chars": 42058,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_reg_8821c.h",
"chars": 30896,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_reg_8822b.h",
"chars": 27980,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_reg_8822c.h",
"chars": 33908,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_rx_bd_nic.h",
"chars": 1548,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_rx_desc_ap.h",
"chars": 24337,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_rx_desc_chip.h",
"chars": 38916,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_rx_desc_nic.h",
"chars": 16666,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_sdio_reg.h",
"chars": 1946,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_state_machine.h",
"chars": 4027,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2017 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_bd_nic.h",
"chars": 4591,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_ap.h",
"chars": 111345,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_buffer_ap.h",
"chars": 65437,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_buffer_chip.h",
"chars": 28716,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_buffer_nic.h",
"chars": 28741,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_chip.h",
"chars": 179235,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_ie_ap.h",
"chars": 66778,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_ie_chip.h",
"chars": 26556,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_ie_nic.h",
"chars": 28462,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_tx_desc_nic.h",
"chars": 51245,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_type.h",
"chars": 74305,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/halmac/halmac_usb_reg.h",
"chars": 771,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2018 Realtek C"
},
{
"path": "hal/led/hal_led.c",
"chars": 6535,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/led/hal_pci_led.c",
"chars": 51772,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/ap_makefile.mk",
"chars": 6364,
"preview": "\n_PHYDM_FILES :=\\\n\tphydm/phydm.o \\\n\tphydm/phydm_dig.o\\\n\tphydm/phydm_antdiv.o\\\n\tphydm/phydm_soml.o\\\n\tphydm/phydm_smt_ant."
},
{
"path": "hal/phydm/halhwimg.h",
"chars": 4122,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2016 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halphyrf_ap.c",
"chars": 70283,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halphyrf_ap.h",
"chars": 4006,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halphyrf_ce.c",
"chars": 41979,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halphyrf_ce.h",
"chars": 3405,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halphyrf_iot.c",
"chars": 24727,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halphyrf_iot.h",
"chars": 3113,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halphyrf_win.c",
"chars": 46412,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halphyrf_win.h",
"chars": 3234,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halrf.c",
"chars": 70831,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf.h",
"chars": 22959,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_debug.c",
"chars": 7747,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_debug.h",
"chars": 3879,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_dpk.h",
"chars": 3210,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_features.h",
"chars": 1306,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_iqk.h",
"chars": 3549,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_kfree.c",
"chars": 50467,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_kfree.h",
"chars": 3836,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking.c",
"chars": 5381,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking.h",
"chars": 1404,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking_ap.c",
"chars": 54396,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halrf_powertracking_ap.h",
"chars": 12432,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halrf_powertracking_ce.c",
"chars": 32286,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking_ce.h",
"chars": 10663,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking_iot.c",
"chars": 27633,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking_iot.h",
"chars": 10938,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek "
},
{
"path": "hal/phydm/halrf/halrf_powertracking_win.c",
"chars": 33478,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halrf_powertracking_win.h",
"chars": 10075,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
},
{
"path": "hal/phydm/halrf/halrf_psd.c",
"chars": 12674,
"preview": "/******************************************************************************\n *\n * Copyright(c) 2007 - 2017 Realtek C"
}
]
// ... and 441 more files (download for full content)
About this extraction
This page contains the full source code of the juanro49/rtl88x2ce-dkms GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 641 files (26.3 MB), approximately 6.9M tokens, and a symbol index with 12901 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.