Lines Matching refs:vif
46 struct wilc_vif *vif; member
55 wilc_alloc_work(struct wilc_vif *vif, void (*work_fun)(struct work_struct *), in wilc_alloc_work() argument
67 msg->vif = vif; in wilc_alloc_work()
79 if (!msg->vif || !msg->vif->wilc || !msg->vif->wilc->hif_workqueue) in wilc_enqueue_work()
82 if (!queue_work(msg->vif->wilc->hif_workqueue, &msg->work)) in wilc_enqueue_work()
92 int wilc_get_vif_idx(struct wilc_vif *vif) in wilc_get_vif_idx() argument
94 return vif->idx + 1; in wilc_get_vif_idx()
105 struct wilc_vif *vif; in wilc_get_vif_from_idx() local
110 list_for_each_entry_rcu(vif, &wilc->vif_list, list) { in wilc_get_vif_from_idx()
111 if (vif->idx == index) in wilc_get_vif_from_idx()
112 return vif; in wilc_get_vif_from_idx()
118 static int handle_scan_done(struct wilc_vif *vif, enum scan_event evt) in handle_scan_done() argument
123 struct host_if_drv *hif_drv = vif->hif_drv; in handle_scan_done()
133 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in handle_scan_done()
135 netdev_err(vif->ndev, "Failed to set abort running\n"); in handle_scan_done()
141 netdev_err(vif->ndev, "%s: hif driver is NULL\n", __func__); in handle_scan_done()
154 int wilc_scan(struct wilc_vif *vif, u8 scan_source, u8 scan_type, in wilc_scan() argument
167 struct host_if_drv *hif_drv = vif->hif_drv; in wilc_scan()
171 netdev_err(vif->ndev, "Already scan\n"); in wilc_scan()
176 if (vif->connecting) { in wilc_scan()
177 netdev_err(vif->ndev, "Don't do obss scan\n"); in wilc_scan()
254 result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, index); in wilc_scan()
256 netdev_err(vif->ndev, "Failed to send scan parameters\n"); in wilc_scan()
260 hif_drv->scan_timer_vif = vif; in wilc_scan()
271 static int wilc_send_connect_wid(struct wilc_vif *vif) in wilc_send_connect_wid() argument
276 struct host_if_drv *hif_drv = vif->hif_drv; in wilc_send_connect_wid()
304 result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, wid_cnt); in wilc_send_connect_wid()
306 netdev_err(vif->ndev, "failed to send config packet\n"); in wilc_send_connect_wid()
325 struct wilc_vif *vif = msg->vif; in handle_connect_timeout() local
329 struct host_if_drv *hif_drv = vif->hif_drv; in handle_connect_timeout()
332 netdev_err(vif->ndev, "%s: hif driver is NULL\n", __func__); in handle_connect_timeout()
344 netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__); in handle_connect_timeout()
352 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in handle_connect_timeout()
354 netdev_err(vif->ndev, "Failed to send disconnect\n"); in handle_connect_timeout()
503 struct wilc_user_scan_req *scan_req = &msg->vif->hif_drv->usr_scan_req; in handle_rcvd_ntwrk_info()
534 static void host_int_get_assoc_res_info(struct wilc_vif *vif, in host_int_get_assoc_res_info() argument
547 result = wilc_send_config_pkt(vif, WILC_GET_CFG, &wid, 1); in host_int_get_assoc_res_info()
550 netdev_err(vif->ndev, "Failed to send association response\n"); in host_int_get_assoc_res_info()
579 static inline void host_int_parse_assoc_resp_info(struct wilc_vif *vif, in host_int_parse_assoc_resp_info() argument
582 struct host_if_drv *hif_drv = vif->hif_drv; in host_int_parse_assoc_resp_info()
590 host_int_get_assoc_res_info(vif, hif_drv->assoc_resp, in host_int_parse_assoc_resp_info()
601 netdev_err(vif->ndev, in host_int_parse_assoc_resp_info()
628 static inline void host_int_handle_disconnect(struct wilc_vif *vif) in host_int_handle_disconnect() argument
630 struct host_if_drv *hif_drv = vif->hif_drv; in host_int_handle_disconnect()
634 handle_scan_done(vif, SCAN_EVENT_ABORTED); in host_int_handle_disconnect()
641 netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__); in host_int_handle_disconnect()
654 struct wilc_vif *vif = msg->vif; in handle_rcvd_gnrl_async_info() local
656 struct host_if_drv *hif_drv = vif->hif_drv; in handle_rcvd_gnrl_async_info()
659 netdev_err(vif->ndev, "%s: hif driver is NULL\n", __func__); in handle_rcvd_gnrl_async_info()
664 netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__); in handle_rcvd_gnrl_async_info()
669 host_int_parse_assoc_resp_info(vif, mac_info->status); in handle_rcvd_gnrl_async_info()
672 host_int_handle_disconnect(vif); in handle_rcvd_gnrl_async_info()
675 handle_scan_done(vif, SCAN_EVENT_ABORTED); in handle_rcvd_gnrl_async_info()
683 int wilc_disconnect(struct wilc_vif *vif) in wilc_disconnect() argument
686 struct host_if_drv *hif_drv = vif->hif_drv; in wilc_disconnect()
697 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_disconnect()
699 netdev_err(vif->ndev, "Failed to send disconnect\n"); in wilc_disconnect()
719 netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__); in wilc_disconnect()
733 int wilc_get_statistics(struct wilc_vif *vif, struct rf_info *stats) in wilc_get_statistics() argument
768 result = wilc_send_config_pkt(vif, WILC_GET_CFG, wid_list, wid_cnt); in wilc_get_statistics()
770 netdev_err(vif->ndev, "Failed to send scan parameters\n"); in wilc_get_statistics()
776 wilc_enable_tcp_ack_filter(vif, true); in wilc_get_statistics()
778 wilc_enable_tcp_ack_filter(vif, false); in wilc_get_statistics()
786 struct wilc_vif *vif = msg->vif; in handle_get_statistics() local
789 wilc_get_statistics(vif, stats); in handle_get_statistics()
823 static int handle_remain_on_chan(struct wilc_vif *vif, in handle_remain_on_chan() argument
829 struct host_if_drv *hif_drv = vif->hif_drv; in handle_remain_on_chan()
837 if (vif->connecting) in handle_remain_on_chan()
851 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in handle_remain_on_chan()
860 hif_drv->remain_on_ch_timer_vif = vif; in handle_remain_on_chan()
865 static int wilc_handle_roc_expired(struct wilc_vif *vif, u64 cookie) in wilc_handle_roc_expired() argument
870 struct host_if_drv *hif_drv = vif->hif_drv; in wilc_handle_roc_expired()
872 if (vif->priv.p2p_listen_state) { in wilc_handle_roc_expired()
885 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_handle_roc_expired()
888 netdev_err(vif->ndev, "Failed to set remain channel\n"); in wilc_handle_roc_expired()
897 netdev_dbg(vif->ndev, "Not in listen state\n"); in wilc_handle_roc_expired()
907 wilc_handle_roc_expired(msg->vif, msg->body.remain_on_ch.cookie); in wilc_handle_listen_state_expired()
915 struct wilc_vif *vif = hif_drv->remain_on_ch_timer_vif; in listen_timer_cb() local
919 del_timer(&vif->hif_drv->remain_on_ch_timer); in listen_timer_cb()
921 msg = wilc_alloc_work(vif, wilc_handle_listen_state_expired, false); in listen_timer_cb()
925 msg->body.remain_on_ch.cookie = vif->hif_drv->remain_on_ch.cookie; in listen_timer_cb()
929 netdev_err(vif->ndev, "%s: enqueue work failed\n", __func__); in listen_timer_cb()
937 struct wilc_vif *vif = msg->vif; in handle_set_mcast_filter() local
960 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in handle_set_mcast_filter()
962 netdev_err(vif->ndev, "Failed to send setup multicast\n"); in handle_set_mcast_filter()
970 void wilc_set_wowlan_trigger(struct wilc_vif *vif, bool enabled) in wilc_set_wowlan_trigger() argument
984 ret = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_wowlan_trigger()
993 handle_scan_done(msg->vif, SCAN_EVENT_ABORTED); in handle_scan_timer()
1001 del_timer(&msg->vif->hif_drv->scan_timer); in handle_scan_complete()
1003 handle_scan_done(msg->vif, SCAN_EVENT_DONE); in handle_scan_complete()
1011 struct wilc_vif *vif = hif_drv->scan_timer_vif; in timer_scan_cb() local
1015 msg = wilc_alloc_work(vif, handle_scan_timer, false); in timer_scan_cb()
1028 struct wilc_vif *vif = hif_drv->connect_timer_vif; in timer_connect_cb() local
1032 msg = wilc_alloc_work(vif, handle_connect_timeout, false); in timer_connect_cb()
1041 int wilc_remove_wep_key(struct wilc_vif *vif, u8 index) in wilc_remove_wep_key() argument
1051 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_remove_wep_key()
1053 netdev_err(vif->ndev, in wilc_remove_wep_key()
1058 int wilc_set_wep_default_keyid(struct wilc_vif *vif, u8 index) in wilc_set_wep_default_keyid() argument
1067 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_wep_default_keyid()
1069 netdev_err(vif->ndev, in wilc_set_wep_default_keyid()
1075 int wilc_add_wep_key_bss_sta(struct wilc_vif *vif, const u8 *key, u8 len, in wilc_add_wep_key_bss_sta() argument
1095 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_add_wep_key_bss_sta()
1097 netdev_err(vif->ndev, in wilc_add_wep_key_bss_sta()
1104 int wilc_add_wep_key_bss_ap(struct wilc_vif *vif, const u8 *key, u8 len, in wilc_add_wep_key_bss_ap() argument
1133 result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, in wilc_add_wep_key_bss_ap()
1136 netdev_err(vif->ndev, in wilc_add_wep_key_bss_ap()
1143 int wilc_add_ptk(struct wilc_vif *vif, const u8 *ptk, u8 ptk_key_len, in wilc_add_ptk() argument
1180 result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, in wilc_add_ptk()
1207 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_add_ptk()
1214 int wilc_add_rx_gtk(struct wilc_vif *vif, const u8 *rx_gtk, u8 gtk_key_len, in wilc_add_rx_gtk() argument
1229 vif->hif_drv->hif_state == HOST_IF_CONNECTED) in wilc_add_rx_gtk()
1230 memcpy(gtk_key->mac_addr, vif->hif_drv->assoc_bssid, ETH_ALEN); in wilc_add_rx_gtk()
1258 result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, in wilc_add_rx_gtk()
1267 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_add_rx_gtk()
1274 int wilc_set_pmkid_info(struct wilc_vif *vif, struct wilc_pmkid_attr *pmkid) in wilc_set_pmkid_info() argument
1283 return wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_pmkid_info()
1286 int wilc_get_mac_address(struct wilc_vif *vif, u8 *mac_addr) in wilc_get_mac_address() argument
1296 result = wilc_send_config_pkt(vif, WILC_GET_CFG, &wid, 1); in wilc_get_mac_address()
1298 netdev_err(vif->ndev, "Failed to get mac address\n"); in wilc_get_mac_address()
1303 int wilc_set_mac_address(struct wilc_vif *vif, u8 *mac_addr) in wilc_set_mac_address() argument
1313 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_mac_address()
1315 netdev_err(vif->ndev, "Failed to get mac address\n"); in wilc_set_mac_address()
1320 int wilc_set_join_req(struct wilc_vif *vif, u8 *bssid, const u8 *ies, in wilc_set_join_req() argument
1324 struct host_if_drv *hif_drv = vif->hif_drv; in wilc_set_join_req()
1337 result = wilc_send_connect_wid(vif); in wilc_set_join_req()
1341 hif_drv->connect_timer_vif = vif; in wilc_set_join_req()
1353 int wilc_set_mac_chnl_num(struct wilc_vif *vif, u8 channel) in wilc_set_mac_chnl_num() argument
1363 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_mac_chnl_num()
1365 netdev_err(vif->ndev, "Failed to set channel\n"); in wilc_set_mac_chnl_num()
1370 int wilc_set_operation_mode(struct wilc_vif *vif, int index, u8 mode, in wilc_set_operation_mode() argument
1385 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_operation_mode()
1387 netdev_err(vif->ndev, "Failed to set driver handler\n"); in wilc_set_operation_mode()
1392 s32 wilc_get_inactive_time(struct wilc_vif *vif, const u8 *mac, u32 *out_val) in wilc_get_inactive_time() argument
1405 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_get_inactive_time()
1408 netdev_err(vif->ndev, "Failed to set inactive mac\n"); in wilc_get_inactive_time()
1416 result = wilc_send_config_pkt(vif, WILC_GET_CFG, &wid, 1); in wilc_get_inactive_time()
1418 netdev_err(vif->ndev, "Failed to get inactive time\n"); in wilc_get_inactive_time()
1423 int wilc_get_rssi(struct wilc_vif *vif, s8 *rssi_level) in wilc_get_rssi() argument
1429 netdev_err(vif->ndev, "%s: RSSI level is NULL\n", __func__); in wilc_get_rssi()
1437 result = wilc_send_config_pkt(vif, WILC_GET_CFG, &wid, 1); in wilc_get_rssi()
1439 netdev_err(vif->ndev, "Failed to get RSSI value\n"); in wilc_get_rssi()
1444 static int wilc_get_stats_async(struct wilc_vif *vif, struct rf_info *stats) in wilc_get_stats_async() argument
1449 msg = wilc_alloc_work(vif, handle_get_statistics, false); in wilc_get_stats_async()
1457 netdev_err(vif->ndev, "%s: enqueue work failed\n", __func__); in wilc_get_stats_async()
1465 int wilc_hif_set_cfg(struct wilc_vif *vif, struct cfg_param_attr *param) in wilc_hif_set_cfg() argument
1499 return wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, i); in wilc_hif_set_cfg()
1504 struct wilc_vif *vif = from_timer(vif, t, periodic_rssi); in get_periodic_rssi() local
1506 if (!vif->hif_drv) { in get_periodic_rssi()
1507 netdev_err(vif->ndev, "%s: hif driver is NULL", __func__); in get_periodic_rssi()
1511 if (vif->hif_drv->hif_state == HOST_IF_CONNECTED) in get_periodic_rssi()
1512 wilc_get_stats_async(vif, &vif->periodic_stat); in get_periodic_rssi()
1514 mod_timer(&vif->periodic_rssi, jiffies + msecs_to_jiffies(5000)); in get_periodic_rssi()
1520 struct wilc_vif *vif = netdev_priv(dev); in wilc_init() local
1528 vif->hif_drv = hif_drv; in wilc_init()
1530 timer_setup(&vif->periodic_rssi, get_periodic_rssi, 0); in wilc_init()
1531 mod_timer(&vif->periodic_rssi, jiffies + msecs_to_jiffies(5000)); in wilc_init()
1544 int wilc_deinit(struct wilc_vif *vif) in wilc_deinit() argument
1547 struct host_if_drv *hif_drv = vif->hif_drv; in wilc_deinit()
1550 netdev_err(vif->ndev, "%s: hif driver is NULL", __func__); in wilc_deinit()
1554 mutex_lock(&vif->wilc->deinit_lock); in wilc_deinit()
1558 del_timer_sync(&vif->periodic_rssi); in wilc_deinit()
1570 vif->hif_drv = NULL; in wilc_deinit()
1571 mutex_unlock(&vif->wilc->deinit_lock); in wilc_deinit()
1581 struct wilc_vif *vif; in wilc_network_info_received() local
1584 vif = wilc_get_vif_from_idx(wilc, id); in wilc_network_info_received()
1585 if (!vif) in wilc_network_info_received()
1587 hif_drv = vif->hif_drv; in wilc_network_info_received()
1590 netdev_err(vif->ndev, "driver not init[%p]\n", hif_drv); in wilc_network_info_received()
1594 msg = wilc_alloc_work(vif, handle_rcvd_ntwrk_info, false); in wilc_network_info_received()
1610 netdev_err(vif->ndev, "%s: enqueue work failed\n", __func__); in wilc_network_info_received()
1622 struct wilc_vif *vif; in wilc_gnrl_async_info_received() local
1627 vif = wilc_get_vif_from_idx(wilc, id); in wilc_gnrl_async_info_received()
1628 if (!vif) { in wilc_gnrl_async_info_received()
1633 hif_drv = vif->hif_drv; in wilc_gnrl_async_info_received()
1641 netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__); in wilc_gnrl_async_info_received()
1646 msg = wilc_alloc_work(vif, handle_rcvd_gnrl_async_info, false); in wilc_gnrl_async_info_received()
1655 netdev_err(vif->ndev, "%s: enqueue work failed\n", __func__); in wilc_gnrl_async_info_received()
1667 struct wilc_vif *vif; in wilc_scan_complete_received() local
1670 vif = wilc_get_vif_from_idx(wilc, id); in wilc_scan_complete_received()
1671 if (!vif) in wilc_scan_complete_received()
1673 hif_drv = vif->hif_drv; in wilc_scan_complete_received()
1681 msg = wilc_alloc_work(vif, handle_scan_complete, false); in wilc_scan_complete_received()
1687 netdev_err(vif->ndev, "%s: enqueue work failed\n", in wilc_scan_complete_received()
1694 int wilc_remain_on_channel(struct wilc_vif *vif, u64 cookie, in wilc_remain_on_channel() argument
1707 result = handle_remain_on_chan(vif, &roc); in wilc_remain_on_channel()
1709 netdev_err(vif->ndev, "%s: failed to set remain on channel\n", in wilc_remain_on_channel()
1715 int wilc_listen_state_expired(struct wilc_vif *vif, u64 cookie) in wilc_listen_state_expired() argument
1717 if (!vif->hif_drv) { in wilc_listen_state_expired()
1718 netdev_err(vif->ndev, "%s: hif driver is NULL", __func__); in wilc_listen_state_expired()
1722 del_timer(&vif->hif_drv->remain_on_ch_timer); in wilc_listen_state_expired()
1724 return wilc_handle_roc_expired(vif, cookie); in wilc_listen_state_expired()
1727 void wilc_frame_register(struct wilc_vif *vif, u16 frame_type, bool reg) in wilc_frame_register() argument
1756 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_frame_register()
1758 netdev_err(vif->ndev, "Failed to frame register\n"); in wilc_frame_register()
1761 int wilc_add_beacon(struct wilc_vif *vif, u32 interval, u32 dtim_period, in wilc_add_beacon() argument
1793 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_add_beacon()
1795 netdev_err(vif->ndev, "Failed to send add beacon\n"); in wilc_add_beacon()
1802 int wilc_del_beacon(struct wilc_vif *vif) in wilc_del_beacon() argument
1813 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_del_beacon()
1815 netdev_err(vif->ndev, "Failed to send delete beacon\n"); in wilc_del_beacon()
1820 int wilc_add_station(struct wilc_vif *vif, const u8 *mac, in wilc_add_station() argument
1837 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_add_station()
1839 netdev_err(vif->ndev, "Failed to send add station\n"); in wilc_add_station()
1846 int wilc_del_station(struct wilc_vif *vif, const u8 *mac_addr) in wilc_del_station() argument
1863 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_del_station()
1865 netdev_err(vif->ndev, "Failed to del station\n"); in wilc_del_station()
1872 int wilc_del_allstation(struct wilc_vif *vif, u8 mac_addr[][ETH_ALEN]) in wilc_del_allstation() argument
1898 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_del_allstation()
1900 netdev_err(vif->ndev, "Failed to send delete all station\n"); in wilc_del_allstation()
1905 int wilc_edit_station(struct wilc_vif *vif, const u8 *mac, in wilc_edit_station() argument
1922 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_edit_station()
1924 netdev_err(vif->ndev, "Failed to send edit station\n"); in wilc_edit_station()
1930 int wilc_set_power_mgmt(struct wilc_vif *vif, bool enabled, u32 timeout) in wilc_set_power_mgmt() argument
1944 result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_power_mgmt()
1946 netdev_err(vif->ndev, "Failed to send power management\n"); in wilc_set_power_mgmt()
1951 int wilc_setup_multicast_filter(struct wilc_vif *vif, u32 enabled, u32 count, in wilc_setup_multicast_filter() argument
1957 msg = wilc_alloc_work(vif, handle_set_mcast_filter, false); in wilc_setup_multicast_filter()
1967 netdev_err(vif->ndev, "%s: enqueue work failed\n", __func__); in wilc_setup_multicast_filter()
1973 int wilc_set_tx_power(struct wilc_vif *vif, u8 tx_power) in wilc_set_tx_power() argument
1982 return wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1); in wilc_set_tx_power()
1985 int wilc_get_tx_power(struct wilc_vif *vif, u8 *tx_power) in wilc_get_tx_power() argument
1994 return wilc_send_config_pkt(vif, WILC_GET_CFG, &wid, 1); in wilc_get_tx_power()