梳理了 RTL8852bs wifi 驱动的加载流程. 方便熟悉代码逻辑和超找需要的功能.
我看了所有的代码,但是还是没有找到是哪里设置的AP模式.
rtw_dev_probe()
|---> sdio_dvobj_init()
|---> devobj_init()
|---> atomic_set()
|---> sdio_init()
|---> sdio_claim_host()/* 3 1. init SDIO bus */
|---> mmc_claim_host()
|---> sdio_enable_func()
|---> mmc_io_rw_direct()
|---> sdio_set_block_size()
|---> mmc_io_rw_direct()
|---> fail---> sdio_release_host()
|---> rtw_reset_continual_io_error()
|---> ATOMIC_SET()
|---> fail---> devobj_deinit()
|---> devobj_trx_resource_init()
|---> rtw_init_lite_xmit_resource()
|---> _rtw_init_queue() /* init lite_xmit_buf */ /* Init lite xmit extension buff */ /* init xmit_urb */
|---> rtw_zvmalloc()
|---> _rtw_init_listhead()
|---> rtw_list_insert_tail()
|---> rtw_init_lite_recv_resource()
|---> _rtw_init_queue() /* init int_in_buf */ /* Init int_in_urb */
|---> rtw_zvmalloc()
|---> _rtw_init_listhead()
|---> rtw_list_insert_tail()
|---> rtw_init_recv_priv()
|---> _rtw_init_sema()
|---> _rtw_init_queue()
|---> rtw_os_recv_resource_init()
|---> rtw_zvmalloc()
|---> _rtw_init_listhead()
|---> rtw_list_insert_tail()
|---> rtw_os_recv_resource_alloc()
|---> rtw_intf_init_recv_priv()
|---> rtw_init_cmd_priv()
|---> init_completion()
|---> init_completion()
|---> INIT_LIST_HEAD()
|---> spin_lock_init()
|---> rtw_hw_init()
|---> rtw_phl_init()
|---> _os_mem_alloc()
|---> _os_mem_set()
|---> phl_regulation_init()
|---> _os_spinlock_init() --- 这些都是空函数,不知道有没有影响
|---> phl_regu_policy_init()
|---> _os_spinlock(); --- 这些都是空函数,不知道有没有影响
|---> _regu_policy_5g_bp_init()
|---> _reset_regu_policy_5g_bp()
|---> _update_cntry_prop_5g_bp("CN")
|---> _update_cntry_prop_5g_bp("IL")
|---> _os_spinunlock(); --- 这些都是空函数,不知道有没有影响
|---> phl_com_init()
|---> _os_mem_alloc()
|---> phl_sw_cap_init()
|---> _os_spinlock_init()
|---> phl_chsw_ofld_info_init()
|---> phl_fw_init()
|---> phl_chaninfo_init()
|---> _phl_com_init_rssi_stat()
|---> _phl_com_init_ppdu_sts()
|---> _os_spinlock_init()
|---> phl_txpwr_regu_info_init()
|---> phl_hci_init()