Lines Matching full:wilc
34 struct wilc *wilc = user_data; in isr_uh_routine() local
36 if (wilc->close) { in isr_uh_routine()
45 struct wilc *wilc = userdata; in isr_bh_routine() local
47 if (wilc->close) { in isr_bh_routine()
52 wilc_handle_isr(wilc); in isr_bh_routine()
60 struct wilc *wl = vif->wilc; in init_irq()
79 struct wilc *wilc = vif->wilc; in deinit_irq() local
82 if (wilc->dev_irq_num) in deinit_irq()
83 free_irq(wilc->dev_irq_num, wilc); in deinit_irq()
86 void wilc_mac_indicate(struct wilc *wilc) in wilc_mac_indicate() argument
90 wilc_wlan_cfg_get_val(wilc, WID_STATUS, &status, 1); in wilc_mac_indicate()
91 if (wilc->mac_status == WILC_MAC_STATUS_INIT) { in wilc_mac_indicate()
92 wilc->mac_status = status; in wilc_mac_indicate()
93 complete(&wilc->sync_event); in wilc_mac_indicate()
95 wilc->mac_status = status; in wilc_mac_indicate()
99 static struct net_device *get_if_handler(struct wilc *wilc, u8 *mac_header) in get_if_handler() argument
105 wilc_for_each_vif(wilc, vif) { in get_if_handler()
134 int wilc_wlan_get_num_conn_ifcs(struct wilc *wilc) in wilc_wlan_get_num_conn_ifcs() argument
140 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_wlan_get_num_conn_ifcs()
141 wilc_for_each_vif(wilc, vif) { in wilc_wlan_get_num_conn_ifcs()
145 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_wlan_get_num_conn_ifcs()
149 static void wilc_wake_tx_queues(struct wilc *wl) in wilc_wake_tx_queues()
166 struct wilc *wl = vp; in wilc_txq_task()
203 struct wilc *wilc = vif->wilc; in wilc_wlan_get_firmware() local
208 if (is_wilc1000(wilc->chipid)) in wilc_wlan_get_firmware()
210 else if (is_wilc3000(wilc->chipid)) in wilc_wlan_get_firmware()
215 netdev_info(dev, "WILC%d loading firmware [%s]\n", in wilc_wlan_get_firmware()
216 is_wilc1000(wilc->chipid) ? 1000 : 3000, in wilc_wlan_get_firmware()
219 ret = request_firmware(&wilc_fw, firmware, wilc->dev); in wilc_wlan_get_firmware()
224 wilc->firmware = wilc_fw; in wilc_wlan_get_firmware()
232 struct wilc *wilc = vif->wilc; in wilc_start_firmware() local
235 ret = wilc_wlan_start(wilc); in wilc_start_firmware()
239 if (!wait_for_completion_timeout(&wilc->sync_event, in wilc_start_firmware()
249 struct wilc *wilc = vif->wilc; in wilc_firmware_download() local
252 if (!wilc->firmware) { in wilc_firmware_download()
257 ret = wilc_wlan_firmware_download(wilc, wilc->firmware->data, in wilc_firmware_download()
258 wilc->firmware->size); in wilc_firmware_download()
262 release_firmware(wilc->firmware); in wilc_firmware_download()
263 wilc->firmware = NULL; in wilc_firmware_download()
444 struct wilc *wl = vif->wilc; in wlan_deinitialize_threads()
459 struct wilc *wl = vif->wilc; in wilc_wlan_deinitialize()
494 struct wilc *wilc = vif->wilc; in wlan_initialize_threads() local
496 wilc->txq_thread = kthread_run(wilc_txq_task, (void *)wilc, in wlan_initialize_threads()
498 if (IS_ERR(wilc->txq_thread)) { in wlan_initialize_threads()
500 wilc->close = 1; in wlan_initialize_threads()
501 return PTR_ERR(wilc->txq_thread); in wlan_initialize_threads()
503 wait_for_completion(&wilc->txq_thread_started); in wlan_initialize_threads()
511 struct wilc *wl = vif->wilc; in wilc_wlan_initialize()
600 struct wilc *wl = vif->wilc; in wilc_mac_open()
657 struct wilc *wilc = vif->wilc; in wilc_set_mac_addr() local
673 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_set_mac_addr()
674 wilc_for_each_vif(wilc, tmp_vif) { in wilc_set_mac_addr()
678 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr()
681 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr()
685 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr()
745 struct wilc *wilc = vif->wilc; in wilc_mac_xmit() local
776 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_mac_xmit()
777 wilc_for_each_vif(wilc, vif) { in wilc_mac_xmit()
781 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_mac_xmit()
790 struct wilc *wl = vif->wilc; in wilc_mac_close()
817 void wilc_frmw_to_host(struct wilc *wilc, u8 *buff, u32 size, in wilc_frmw_to_host() argument
828 if (!wilc) in wilc_frmw_to_host()
831 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_frmw_to_host()
832 wilc_netdev = get_if_handler(wilc, buff); in wilc_frmw_to_host()
859 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_frmw_to_host()
862 void wilc_wfi_mgmt_rx(struct wilc *wilc, u8 *buff, u32 size, bool is_auth) in wilc_wfi_mgmt_rx() argument
867 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_wfi_mgmt_rx()
868 wilc_for_each_vif(wilc, vif) { in wilc_wfi_mgmt_rx()
886 wilc_wfi_monitor_rx(wilc->monitor_dev, buff, size); in wilc_wfi_mgmt_rx()
888 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_wfi_mgmt_rx()
901 void wilc_netdev_cleanup(struct wilc *wilc) in wilc_netdev_cleanup() argument
905 if (!wilc) in wilc_netdev_cleanup()
908 if (wilc->firmware) { in wilc_netdev_cleanup()
909 release_firmware(wilc->firmware); in wilc_netdev_cleanup()
910 wilc->firmware = NULL; in wilc_netdev_cleanup()
913 list_for_each_entry_safe(vif, vif_tmp, &wilc->vif_list, list) { in wilc_netdev_cleanup()
914 mutex_lock(&wilc->vif_mutex); in wilc_netdev_cleanup()
916 wilc->vif_num--; in wilc_netdev_cleanup()
917 mutex_unlock(&wilc->vif_mutex); in wilc_netdev_cleanup()
918 synchronize_srcu(&wilc->srcu); in wilc_netdev_cleanup()
923 wilc_wfi_deinit_mon_interface(wilc, false); in wilc_netdev_cleanup()
924 destroy_workqueue(wilc->hif_workqueue); in wilc_netdev_cleanup()
926 wilc_wlan_cfg_deinit(wilc); in wilc_netdev_cleanup()
927 wlan_deinit_locks(wilc); in wilc_netdev_cleanup()
931 static u8 wilc_get_available_idx(struct wilc *wl) in wilc_get_available_idx()
948 struct wilc_vif *wilc_netdev_ifc_init(struct wilc *wl, const char *name, in wilc_netdev_ifc_init()
964 vif->wilc = wl; in wilc_netdev_ifc_init()
983 /* WILC firmware uses locally administered MAC address for the in wilc_netdev_ifc_init()