Lines Matching refs:cmd

447 static const char *mwl8k_cmd_name(__le16 cmd, char *buf, int bufsize)  in mwl8k_cmd_name()  argument
449 u16 command = le16_to_cpu(cmd); in mwl8k_cmd_name()
488 snprintf(buf, bufsize, "0x%x", cmd); in mwl8k_cmd_name()
647 struct mwl8k_cmd_pkt *cmd; in mwl8k_load_fw_image() local
651 cmd = kmalloc(sizeof(*cmd) + 256, GFP_KERNEL); in mwl8k_load_fw_image()
652 if (cmd == NULL) in mwl8k_load_fw_image()
655 cmd->code = cpu_to_le16(MWL8K_CMD_CODE_DNLD); in mwl8k_load_fw_image()
656 cmd->seq_num = 0; in mwl8k_load_fw_image()
657 cmd->macid = 0; in mwl8k_load_fw_image()
658 cmd->result = 0; in mwl8k_load_fw_image()
664 memcpy(cmd->payload, data + done, block_size); in mwl8k_load_fw_image()
665 cmd->length = cpu_to_le16(block_size); in mwl8k_load_fw_image()
667 rc = mwl8k_send_fw_load_cmd(priv, cmd, in mwl8k_load_fw_image()
668 sizeof(*cmd) + block_size); in mwl8k_load_fw_image()
677 cmd->length = 0; in mwl8k_load_fw_image()
678 rc = mwl8k_send_fw_load_cmd(priv, cmd, sizeof(*cmd)); in mwl8k_load_fw_image()
681 kfree(cmd); in mwl8k_load_fw_image()
2204 static int mwl8k_post_cmd(struct ieee80211_hw *hw, struct mwl8k_cmd_pkt *cmd) in mwl8k_post_cmd() argument
2217 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), cmd->macid); in mwl8k_post_cmd()
2229 switch (le16_to_cpu(cmd->code)) { in mwl8k_post_cmd()
2243 cmd->result = (__force __le16) 0xffff; in mwl8k_post_cmd()
2244 dma_size = le16_to_cpu(cmd->length); in mwl8k_post_cmd()
2245 dma_addr = dma_map_single(&priv->pdev->dev, cmd, dma_size, in mwl8k_post_cmd()
2270 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), in mwl8k_post_cmd()
2278 rc = cmd->result ? -EINVAL : 0; in mwl8k_post_cmd()
2281 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), in mwl8k_post_cmd()
2282 le16_to_cpu(cmd->result)); in mwl8k_post_cmd()
2285 mwl8k_cmd_name(cmd->code, in mwl8k_post_cmd()
2301 struct mwl8k_cmd_pkt *cmd) in mwl8k_post_pervif_cmd() argument
2304 cmd->macid = MWL8K_VIF(vif)->macid; in mwl8k_post_pervif_cmd()
2305 return mwl8k_post_cmd(hw, cmd); in mwl8k_post_pervif_cmd()
2462 struct mwl8k_cmd_get_hw_spec_sta *cmd; in mwl8k_cmd_get_hw_spec_sta() local
2466 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_hw_spec_sta()
2467 if (cmd == NULL) in mwl8k_cmd_get_hw_spec_sta()
2470 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_HW_SPEC); in mwl8k_cmd_get_hw_spec_sta()
2471 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_hw_spec_sta()
2473 memset(cmd->perm_addr, 0xff, sizeof(cmd->perm_addr)); in mwl8k_cmd_get_hw_spec_sta()
2474 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); in mwl8k_cmd_get_hw_spec_sta()
2475 cmd->rx_queue_ptr = cpu_to_le32(priv->rxq[0].rxd_dma); in mwl8k_cmd_get_hw_spec_sta()
2476 cmd->num_tx_queues = cpu_to_le32(mwl8k_tx_queues(priv)); in mwl8k_cmd_get_hw_spec_sta()
2478 cmd->tx_queue_ptrs[i] = cpu_to_le32(priv->txq[i].txd_dma); in mwl8k_cmd_get_hw_spec_sta()
2479 cmd->num_tx_desc_per_queue = cpu_to_le32(MWL8K_TX_DESCS); in mwl8k_cmd_get_hw_spec_sta()
2480 cmd->total_rxd = cpu_to_le32(MWL8K_RX_DESCS); in mwl8k_cmd_get_hw_spec_sta()
2482 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_hw_spec_sta()
2485 SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr); in mwl8k_cmd_get_hw_spec_sta()
2486 priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs); in mwl8k_cmd_get_hw_spec_sta()
2487 priv->fw_rev = le32_to_cpu(cmd->fw_rev); in mwl8k_cmd_get_hw_spec_sta()
2488 priv->hw_rev = cmd->hw_rev; in mwl8k_cmd_get_hw_spec_sta()
2489 mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); in mwl8k_cmd_get_hw_spec_sta()
2494 kfree(cmd); in mwl8k_cmd_get_hw_spec_sta()
2527 struct mwl8k_cmd_get_hw_spec_ap *cmd; in mwl8k_cmd_get_hw_spec_ap() local
2531 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_hw_spec_ap()
2532 if (cmd == NULL) in mwl8k_cmd_get_hw_spec_ap()
2535 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_HW_SPEC); in mwl8k_cmd_get_hw_spec_ap()
2536 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_hw_spec_ap()
2538 memset(cmd->perm_addr, 0xff, sizeof(cmd->perm_addr)); in mwl8k_cmd_get_hw_spec_ap()
2539 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); in mwl8k_cmd_get_hw_spec_ap()
2541 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_hw_spec_ap()
2546 api_version = le32_to_cpu(cmd->fw_api_version); in mwl8k_cmd_get_hw_spec_ap()
2556 SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr); in mwl8k_cmd_get_hw_spec_ap()
2557 priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs); in mwl8k_cmd_get_hw_spec_ap()
2558 priv->fw_rev = le32_to_cpu(cmd->fw_rev); in mwl8k_cmd_get_hw_spec_ap()
2559 priv->hw_rev = cmd->hw_rev; in mwl8k_cmd_get_hw_spec_ap()
2560 mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); in mwl8k_cmd_get_hw_spec_ap()
2563 priv->num_ampdu_queues = le32_to_cpu(cmd->num_of_ampdu_queues); in mwl8k_cmd_get_hw_spec_ap()
2571 off = le32_to_cpu(cmd->rxwrptr) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2574 off = le32_to_cpu(cmd->rxrdptr) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2577 priv->txq_offset[0] = le32_to_cpu(cmd->wcbbase0) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2578 priv->txq_offset[1] = le32_to_cpu(cmd->wcbbase1) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2579 priv->txq_offset[2] = le32_to_cpu(cmd->wcbbase2) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2580 priv->txq_offset[3] = le32_to_cpu(cmd->wcbbase3) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2584 le32_to_cpu(cmd->wcbbase_ampdu[i]) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2588 kfree(cmd); in mwl8k_cmd_get_hw_spec_ap()
2629 struct mwl8k_cmd_set_hw_spec *cmd; in mwl8k_cmd_set_hw_spec() local
2633 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_hw_spec()
2634 if (cmd == NULL) in mwl8k_cmd_set_hw_spec()
2637 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_HW_SPEC); in mwl8k_cmd_set_hw_spec()
2638 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_hw_spec()
2640 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); in mwl8k_cmd_set_hw_spec()
2641 cmd->rx_queue_ptr = cpu_to_le32(priv->rxq[0].rxd_dma); in mwl8k_cmd_set_hw_spec()
2642 cmd->num_tx_queues = cpu_to_le32(mwl8k_tx_queues(priv)); in mwl8k_cmd_set_hw_spec()
2652 cmd->tx_queue_ptrs[i] = cpu_to_le32(priv->txq[j].txd_dma); in mwl8k_cmd_set_hw_spec()
2655 cmd->flags = cpu_to_le32(MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT | in mwl8k_cmd_set_hw_spec()
2660 cmd->num_tx_desc_per_queue = cpu_to_le32(MWL8K_TX_DESCS); in mwl8k_cmd_set_hw_spec()
2661 cmd->total_rxd = cpu_to_le32(MWL8K_RX_DESCS); in mwl8k_cmd_set_hw_spec()
2663 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_hw_spec()
2664 kfree(cmd); in mwl8k_cmd_set_hw_spec()
2689 struct mwl8k_cmd_mac_multicast_adr *cmd; in __mwl8k_cmd_mac_multicast_adr() local
2701 size = sizeof(*cmd) + mc_count * ETH_ALEN; in __mwl8k_cmd_mac_multicast_adr()
2703 cmd = kzalloc(size, GFP_ATOMIC); in __mwl8k_cmd_mac_multicast_adr()
2704 if (cmd == NULL) in __mwl8k_cmd_mac_multicast_adr()
2707 cmd->header.code = cpu_to_le16(MWL8K_CMD_MAC_MULTICAST_ADR); in __mwl8k_cmd_mac_multicast_adr()
2708 cmd->header.length = cpu_to_le16(size); in __mwl8k_cmd_mac_multicast_adr()
2709 cmd->action = cpu_to_le16(MWL8K_ENABLE_RX_DIRECTED | in __mwl8k_cmd_mac_multicast_adr()
2713 cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST); in __mwl8k_cmd_mac_multicast_adr()
2718 cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_MULTICAST); in __mwl8k_cmd_mac_multicast_adr()
2719 cmd->numaddr = cpu_to_le16(mc_count); in __mwl8k_cmd_mac_multicast_adr()
2721 memcpy(cmd->addr[i++], ha->addr, ETH_ALEN); in __mwl8k_cmd_mac_multicast_adr()
2725 return &cmd->header; in __mwl8k_cmd_mac_multicast_adr()
2744 struct mwl8k_cmd_get_stat *cmd; in mwl8k_cmd_get_stat() local
2747 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_stat()
2748 if (cmd == NULL) in mwl8k_cmd_get_stat()
2751 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_STAT); in mwl8k_cmd_get_stat()
2752 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_stat()
2754 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_stat()
2757 le32_to_cpu(cmd->stats[MWL8K_STAT_ACK_FAILURE]); in mwl8k_cmd_get_stat()
2759 le32_to_cpu(cmd->stats[MWL8K_STAT_RTS_FAILURE]); in mwl8k_cmd_get_stat()
2761 le32_to_cpu(cmd->stats[MWL8K_STAT_FCS_ERROR]); in mwl8k_cmd_get_stat()
2763 le32_to_cpu(cmd->stats[MWL8K_STAT_RTS_SUCCESS]); in mwl8k_cmd_get_stat()
2765 kfree(cmd); in mwl8k_cmd_get_stat()
2784 struct mwl8k_cmd_radio_control *cmd; in mwl8k_cmd_radio_control() local
2790 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_radio_control()
2791 if (cmd == NULL) in mwl8k_cmd_radio_control()
2794 cmd->header.code = cpu_to_le16(MWL8K_CMD_RADIO_CONTROL); in mwl8k_cmd_radio_control()
2795 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_radio_control()
2796 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_radio_control()
2797 cmd->control = cpu_to_le16(priv->radio_short_preamble ? 3 : 1); in mwl8k_cmd_radio_control()
2798 cmd->radio_on = cpu_to_le16(enable ? 0x0001 : 0x0000); in mwl8k_cmd_radio_control()
2800 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_radio_control()
2801 kfree(cmd); in mwl8k_cmd_radio_control()
2845 struct mwl8k_cmd_rf_tx_power *cmd; in mwl8k_cmd_rf_tx_power() local
2848 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_rf_tx_power()
2849 if (cmd == NULL) in mwl8k_cmd_rf_tx_power()
2852 cmd->header.code = cpu_to_le16(MWL8K_CMD_RF_TX_POWER); in mwl8k_cmd_rf_tx_power()
2853 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_rf_tx_power()
2854 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_rf_tx_power()
2855 cmd->support_level = cpu_to_le16(dBm); in mwl8k_cmd_rf_tx_power()
2857 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_rf_tx_power()
2858 kfree(cmd); in mwl8k_cmd_rf_tx_power()
2885 struct mwl8k_cmd_tx_power *cmd; in mwl8k_cmd_tx_power() local
2889 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_tx_power()
2890 if (cmd == NULL) in mwl8k_cmd_tx_power()
2893 cmd->header.code = cpu_to_le16(MWL8K_CMD_TX_POWER); in mwl8k_cmd_tx_power()
2894 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_tx_power()
2895 cmd->action = cpu_to_le16(MWL8K_CMD_SET_LIST); in mwl8k_cmd_tx_power()
2898 cmd->band = cpu_to_le16(0x1); in mwl8k_cmd_tx_power()
2900 cmd->band = cpu_to_le16(0x4); in mwl8k_cmd_tx_power()
2902 cmd->channel = cpu_to_le16(channel->hw_value); in mwl8k_cmd_tx_power()
2906 cmd->bw = cpu_to_le16(0x2); in mwl8k_cmd_tx_power()
2908 cmd->bw = cpu_to_le16(0x4); in mwl8k_cmd_tx_power()
2910 cmd->sub_ch = cpu_to_le16(0x3); in mwl8k_cmd_tx_power()
2912 cmd->sub_ch = cpu_to_le16(0x1); in mwl8k_cmd_tx_power()
2916 cmd->power_level_list[i] = cpu_to_le16(pwr); in mwl8k_cmd_tx_power()
2918 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_tx_power()
2919 kfree(cmd); in mwl8k_cmd_tx_power()
2939 struct mwl8k_cmd_rf_antenna *cmd; in mwl8k_cmd_rf_antenna() local
2942 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_rf_antenna()
2943 if (cmd == NULL) in mwl8k_cmd_rf_antenna()
2946 cmd->header.code = cpu_to_le16(MWL8K_CMD_RF_ANTENNA); in mwl8k_cmd_rf_antenna()
2947 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_rf_antenna()
2948 cmd->antenna = cpu_to_le16(antenna); in mwl8k_cmd_rf_antenna()
2949 cmd->mode = cpu_to_le16(mask); in mwl8k_cmd_rf_antenna()
2951 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_rf_antenna()
2952 kfree(cmd); in mwl8k_cmd_rf_antenna()
2969 struct mwl8k_cmd_set_beacon *cmd; in mwl8k_cmd_set_beacon() local
2972 cmd = kzalloc(sizeof(*cmd) + len, GFP_KERNEL); in mwl8k_cmd_set_beacon()
2973 if (cmd == NULL) in mwl8k_cmd_set_beacon()
2976 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_BEACON); in mwl8k_cmd_set_beacon()
2977 cmd->header.length = cpu_to_le16(sizeof(*cmd) + len); in mwl8k_cmd_set_beacon()
2978 cmd->beacon_len = cpu_to_le16(len); in mwl8k_cmd_set_beacon()
2979 memcpy(cmd->beacon, beacon, len); in mwl8k_cmd_set_beacon()
2981 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_beacon()
2982 kfree(cmd); in mwl8k_cmd_set_beacon()
2996 struct mwl8k_cmd_set_pre_scan *cmd; in mwl8k_cmd_set_pre_scan() local
2999 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_pre_scan()
3000 if (cmd == NULL) in mwl8k_cmd_set_pre_scan()
3003 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_PRE_SCAN); in mwl8k_cmd_set_pre_scan()
3004 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_pre_scan()
3006 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_pre_scan()
3007 kfree(cmd); in mwl8k_cmd_set_pre_scan()
3029 struct mwl8k_cmd_bbp_reg_access *cmd; in mwl8k_cmd_bbp_reg_access() local
3032 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_bbp_reg_access()
3033 if (cmd == NULL) in mwl8k_cmd_bbp_reg_access()
3036 cmd->header.code = cpu_to_le16(MWL8K_CMD_BBP_REG_ACCESS); in mwl8k_cmd_bbp_reg_access()
3037 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_bbp_reg_access()
3038 cmd->action = cpu_to_le16(action); in mwl8k_cmd_bbp_reg_access()
3039 cmd->offset = cpu_to_le16(offset); in mwl8k_cmd_bbp_reg_access()
3041 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_bbp_reg_access()
3044 *value = cmd->value; in mwl8k_cmd_bbp_reg_access()
3048 kfree(cmd); in mwl8k_cmd_bbp_reg_access()
3065 struct mwl8k_cmd_set_post_scan *cmd; in mwl8k_cmd_set_post_scan() local
3068 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_post_scan()
3069 if (cmd == NULL) in mwl8k_cmd_set_post_scan()
3072 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_POST_SCAN); in mwl8k_cmd_set_post_scan()
3073 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_post_scan()
3074 cmd->isibss = 0; in mwl8k_cmd_set_post_scan()
3075 memcpy(cmd->bssid, mac, ETH_ALEN); in mwl8k_cmd_set_post_scan()
3077 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_post_scan()
3078 kfree(cmd); in mwl8k_cmd_set_post_scan()
3157 struct mwl8k_cmd_set_rf_channel *cmd; in mwl8k_cmd_set_rf_channel() local
3161 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rf_channel()
3162 if (cmd == NULL) in mwl8k_cmd_set_rf_channel()
3165 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RF_CHANNEL); in mwl8k_cmd_set_rf_channel()
3166 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rf_channel()
3167 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_rf_channel()
3168 cmd->current_channel = channel->hw_value; in mwl8k_cmd_set_rf_channel()
3171 cmd->channel_flags |= cpu_to_le32(0x00000001); in mwl8k_cmd_set_rf_channel()
3173 cmd->channel_flags |= cpu_to_le32(0x00000004); in mwl8k_cmd_set_rf_channel()
3178 cmd->channel_flags |= cpu_to_le32(0x00000080); in mwl8k_cmd_set_rf_channel()
3180 cmd->channel_flags |= cpu_to_le32(0x000001900); in mwl8k_cmd_set_rf_channel()
3182 cmd->channel_flags |= cpu_to_le32(0x000000900); in mwl8k_cmd_set_rf_channel()
3184 cmd->channel_flags |= cpu_to_le32(0x00000080); in mwl8k_cmd_set_rf_channel()
3199 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rf_channel()
3200 kfree(cmd); in mwl8k_cmd_set_rf_channel()
3243 struct mwl8k_cmd_update_set_aid *cmd; in mwl8k_cmd_set_aid() local
3247 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_aid()
3248 if (cmd == NULL) in mwl8k_cmd_set_aid()
3251 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_AID); in mwl8k_cmd_set_aid()
3252 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_aid()
3253 cmd->aid = cpu_to_le16(vif->cfg.aid); in mwl8k_cmd_set_aid()
3254 memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); in mwl8k_cmd_set_aid()
3272 cmd->protection_mode = cpu_to_le16(prot_mode); in mwl8k_cmd_set_aid()
3274 legacy_rate_mask_to_array(cmd->supp_rates, legacy_rate_mask); in mwl8k_cmd_set_aid()
3276 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_aid()
3277 kfree(cmd); in mwl8k_cmd_set_aid()
3298 struct mwl8k_cmd_set_rate *cmd; in mwl8k_cmd_set_rate() local
3301 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rate()
3302 if (cmd == NULL) in mwl8k_cmd_set_rate()
3305 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RATE); in mwl8k_cmd_set_rate()
3306 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rate()
3307 legacy_rate_mask_to_array(cmd->legacy_rates, legacy_rate_mask); in mwl8k_cmd_set_rate()
3308 memcpy(cmd->mcs_set, mcs_rates, 16); in mwl8k_cmd_set_rate()
3310 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rate()
3311 kfree(cmd); in mwl8k_cmd_set_rate()
3330 struct mwl8k_cmd_finalize_join *cmd; in mwl8k_cmd_finalize_join() local
3335 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_finalize_join()
3336 if (cmd == NULL) in mwl8k_cmd_finalize_join()
3339 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_FINALIZE_JOIN); in mwl8k_cmd_finalize_join()
3340 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_finalize_join()
3341 cmd->sleep_interval = cpu_to_le32(dtim ? dtim : 1); in mwl8k_cmd_finalize_join()
3349 memcpy(cmd->beacon_data, &payload->u.beacon, payload_len); in mwl8k_cmd_finalize_join()
3351 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_finalize_join()
3352 kfree(cmd); in mwl8k_cmd_finalize_join()
3369 struct mwl8k_cmd_set_rts_threshold *cmd; in mwl8k_cmd_set_rts_threshold() local
3372 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rts_threshold()
3373 if (cmd == NULL) in mwl8k_cmd_set_rts_threshold()
3376 cmd->header.code = cpu_to_le16(MWL8K_CMD_RTS_THRESHOLD); in mwl8k_cmd_set_rts_threshold()
3377 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rts_threshold()
3378 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_rts_threshold()
3379 cmd->threshold = cpu_to_le16(rts_thresh); in mwl8k_cmd_set_rts_threshold()
3381 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rts_threshold()
3382 kfree(cmd); in mwl8k_cmd_set_rts_threshold()
3398 struct mwl8k_cmd_set_slot *cmd; in mwl8k_cmd_set_slot() local
3401 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_slot()
3402 if (cmd == NULL) in mwl8k_cmd_set_slot()
3405 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_SLOT); in mwl8k_cmd_set_slot()
3406 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_slot()
3407 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_slot()
3408 cmd->short_slot = short_slot_time; in mwl8k_cmd_set_slot()
3410 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_slot()
3411 kfree(cmd); in mwl8k_cmd_set_slot()
3472 struct mwl8k_cmd_set_edca_params *cmd; in mwl8k_cmd_set_edca_params() local
3475 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_edca_params()
3476 if (cmd == NULL) in mwl8k_cmd_set_edca_params()
3479 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_EDCA_PARAMS); in mwl8k_cmd_set_edca_params()
3480 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_edca_params()
3481 cmd->action = cpu_to_le16(MWL8K_SET_EDCA_ALL); in mwl8k_cmd_set_edca_params()
3482 cmd->txop = cpu_to_le16(txop); in mwl8k_cmd_set_edca_params()
3484 cmd->ap.log_cw_max = cpu_to_le32(ilog2(cw_max + 1)); in mwl8k_cmd_set_edca_params()
3485 cmd->ap.log_cw_min = cpu_to_le32(ilog2(cw_min + 1)); in mwl8k_cmd_set_edca_params()
3486 cmd->ap.aifs = aifs; in mwl8k_cmd_set_edca_params()
3487 cmd->ap.txq = qnum; in mwl8k_cmd_set_edca_params()
3489 cmd->sta.log_cw_max = (u8)ilog2(cw_max + 1); in mwl8k_cmd_set_edca_params()
3490 cmd->sta.log_cw_min = (u8)ilog2(cw_min + 1); in mwl8k_cmd_set_edca_params()
3491 cmd->sta.aifs = aifs; in mwl8k_cmd_set_edca_params()
3492 cmd->sta.txq = qnum; in mwl8k_cmd_set_edca_params()
3495 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_edca_params()
3496 kfree(cmd); in mwl8k_cmd_set_edca_params()
3512 struct mwl8k_cmd_set_wmm_mode *cmd; in mwl8k_cmd_set_wmm_mode() local
3515 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_wmm_mode()
3516 if (cmd == NULL) in mwl8k_cmd_set_wmm_mode()
3519 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_WMM_MODE); in mwl8k_cmd_set_wmm_mode()
3520 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_wmm_mode()
3521 cmd->action = cpu_to_le16(!!enable); in mwl8k_cmd_set_wmm_mode()
3523 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_wmm_mode()
3524 kfree(cmd); in mwl8k_cmd_set_wmm_mode()
3544 struct mwl8k_cmd_mimo_config *cmd; in mwl8k_cmd_mimo_config() local
3547 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_mimo_config()
3548 if (cmd == NULL) in mwl8k_cmd_mimo_config()
3551 cmd->header.code = cpu_to_le16(MWL8K_CMD_MIMO_CONFIG); in mwl8k_cmd_mimo_config()
3552 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_mimo_config()
3553 cmd->action = cpu_to_le32((u32)MWL8K_CMD_SET); in mwl8k_cmd_mimo_config()
3554 cmd->rx_antenna_map = rx; in mwl8k_cmd_mimo_config()
3555 cmd->tx_antenna_map = tx; in mwl8k_cmd_mimo_config()
3557 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_mimo_config()
3558 kfree(cmd); in mwl8k_cmd_mimo_config()
3587 struct mwl8k_cmd_use_fixed_rate_sta *cmd; in mwl8k_cmd_use_fixed_rate_sta() local
3590 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_use_fixed_rate_sta()
3591 if (cmd == NULL) in mwl8k_cmd_use_fixed_rate_sta()
3594 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE); in mwl8k_cmd_use_fixed_rate_sta()
3595 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_use_fixed_rate_sta()
3596 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE); in mwl8k_cmd_use_fixed_rate_sta()
3597 cmd->rate_type = cpu_to_le32(MWL8K_UCAST_RATE); in mwl8k_cmd_use_fixed_rate_sta()
3599 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_use_fixed_rate_sta()
3600 kfree(cmd); in mwl8k_cmd_use_fixed_rate_sta()
3627 struct mwl8k_cmd_use_fixed_rate_ap *cmd; in mwl8k_cmd_use_fixed_rate_ap() local
3630 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_use_fixed_rate_ap()
3631 if (cmd == NULL) in mwl8k_cmd_use_fixed_rate_ap()
3634 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE); in mwl8k_cmd_use_fixed_rate_ap()
3635 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_use_fixed_rate_ap()
3636 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE); in mwl8k_cmd_use_fixed_rate_ap()
3637 cmd->multicast_rate = mcast; in mwl8k_cmd_use_fixed_rate_ap()
3638 cmd->management_rate = mgmt; in mwl8k_cmd_use_fixed_rate_ap()
3640 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_use_fixed_rate_ap()
3641 kfree(cmd); in mwl8k_cmd_use_fixed_rate_ap()
3656 struct mwl8k_cmd_enable_sniffer *cmd; in mwl8k_cmd_enable_sniffer() local
3659 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_enable_sniffer()
3660 if (cmd == NULL) in mwl8k_cmd_enable_sniffer()
3663 cmd->header.code = cpu_to_le16(MWL8K_CMD_ENABLE_SNIFFER); in mwl8k_cmd_enable_sniffer()
3664 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_enable_sniffer()
3665 cmd->action = cpu_to_le32(!!enable); in mwl8k_cmd_enable_sniffer()
3667 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_enable_sniffer()
3668 kfree(cmd); in mwl8k_cmd_enable_sniffer()
3694 struct mwl8k_cmd_update_mac_addr *cmd; in mwl8k_cmd_update_mac_addr() local
3714 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_mac_addr()
3715 if (cmd == NULL) in mwl8k_cmd_update_mac_addr()
3719 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_MAC_ADDR); in mwl8k_cmd_update_mac_addr()
3721 cmd->header.code = cpu_to_le16(MWL8K_CMD_DEL_MAC_ADDR); in mwl8k_cmd_update_mac_addr()
3723 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_mac_addr()
3725 cmd->mbss.mac_type = cpu_to_le16(mac_type); in mwl8k_cmd_update_mac_addr()
3726 memcpy(cmd->mbss.mac_addr, mac, ETH_ALEN); in mwl8k_cmd_update_mac_addr()
3728 memcpy(cmd->mac_addr, mac, ETH_ALEN); in mwl8k_cmd_update_mac_addr()
3731 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_update_mac_addr()
3732 kfree(cmd); in mwl8k_cmd_update_mac_addr()
3766 struct mwl8k_cmd_set_rate_adapt_mode *cmd; in mwl8k_cmd_set_rateadapt_mode() local
3769 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rateadapt_mode()
3770 if (cmd == NULL) in mwl8k_cmd_set_rateadapt_mode()
3773 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RATEADAPT_MODE); in mwl8k_cmd_set_rateadapt_mode()
3774 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rateadapt_mode()
3775 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_rateadapt_mode()
3776 cmd->mode = cpu_to_le16(mode); in mwl8k_cmd_set_rateadapt_mode()
3778 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rateadapt_mode()
3779 kfree(cmd); in mwl8k_cmd_set_rateadapt_mode()
3794 struct mwl8k_cmd_get_watchdog_bitmap *cmd; in mwl8k_cmd_get_watchdog_bitmap() local
3797 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_watchdog_bitmap()
3798 if (cmd == NULL) in mwl8k_cmd_get_watchdog_bitmap()
3801 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_WATCHDOG_BITMAP); in mwl8k_cmd_get_watchdog_bitmap()
3802 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_watchdog_bitmap()
3804 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_watchdog_bitmap()
3806 *bitmap = cmd->bitmap; in mwl8k_cmd_get_watchdog_bitmap()
3808 kfree(cmd); in mwl8k_cmd_get_watchdog_bitmap()
3875 struct mwl8k_cmd_bss_start *cmd; in mwl8k_cmd_bss_start() local
3886 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_bss_start()
3887 if (cmd == NULL) in mwl8k_cmd_bss_start()
3890 cmd->header.code = cpu_to_le16(MWL8K_CMD_BSS_START); in mwl8k_cmd_bss_start()
3891 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_bss_start()
3892 cmd->enable = cpu_to_le32(enable); in mwl8k_cmd_bss_start()
3894 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_bss_start()
3895 kfree(cmd); in mwl8k_cmd_bss_start()
3975 struct mwl8k_cmd_bastream *cmd; in mwl8k_check_ba() local
3978 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_check_ba()
3979 if (cmd == NULL) in mwl8k_check_ba()
3982 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); in mwl8k_check_ba()
3983 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_check_ba()
3985 cmd->action = cpu_to_le32(MWL8K_BA_CHECK); in mwl8k_check_ba()
3987 cmd->create_params.queue_id = stream->idx; in mwl8k_check_ba()
3988 memcpy(&cmd->create_params.peer_mac_addr[0], stream->sta->addr, in mwl8k_check_ba()
3990 cmd->create_params.tid = stream->tid; in mwl8k_check_ba()
3992 cmd->create_params.flags = in mwl8k_check_ba()
3996 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_check_ba()
3998 kfree(cmd); in mwl8k_check_ba()
4007 struct mwl8k_cmd_bastream *cmd; in mwl8k_create_ba() local
4010 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_create_ba()
4011 if (cmd == NULL) in mwl8k_create_ba()
4015 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); in mwl8k_create_ba()
4016 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_create_ba()
4018 cmd->action = cpu_to_le32(MWL8K_BA_CREATE); in mwl8k_create_ba()
4020 cmd->create_params.bar_thrs = cpu_to_le32((u32)buf_size); in mwl8k_create_ba()
4021 cmd->create_params.window_size = cpu_to_le32((u32)buf_size); in mwl8k_create_ba()
4022 cmd->create_params.queue_id = stream->idx; in mwl8k_create_ba()
4024 memcpy(cmd->create_params.peer_mac_addr, stream->sta->addr, ETH_ALEN); in mwl8k_create_ba()
4025 cmd->create_params.tid = stream->tid; in mwl8k_create_ba()
4026 cmd->create_params.curr_seq_no = cpu_to_le16(0); in mwl8k_create_ba()
4027 cmd->create_params.reset_seq_no_flag = 1; in mwl8k_create_ba()
4029 cmd->create_params.param_info = in mwl8k_create_ba()
4035 cmd->create_params.flags = in mwl8k_create_ba()
4039 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_create_ba()
4043 kfree(cmd); in mwl8k_create_ba()
4051 struct mwl8k_cmd_bastream *cmd; in mwl8k_destroy_ba() local
4053 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_destroy_ba()
4054 if (cmd == NULL) in mwl8k_destroy_ba()
4057 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); in mwl8k_destroy_ba()
4058 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_destroy_ba()
4059 cmd->action = cpu_to_le32(MWL8K_BA_DESTROY); in mwl8k_destroy_ba()
4061 cmd->destroy_params.ba_context = cpu_to_le32(idx); in mwl8k_destroy_ba()
4062 mwl8k_post_cmd(hw, &cmd->header); in mwl8k_destroy_ba()
4066 kfree(cmd); in mwl8k_destroy_ba()
4101 struct mwl8k_cmd_set_new_stn *cmd; in mwl8k_cmd_set_new_stn_add() local
4105 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_new_stn_add()
4106 if (cmd == NULL) in mwl8k_cmd_set_new_stn_add()
4109 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); in mwl8k_cmd_set_new_stn_add()
4110 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_new_stn_add()
4111 cmd->aid = cpu_to_le16(sta->aid); in mwl8k_cmd_set_new_stn_add()
4112 memcpy(cmd->mac_addr, sta->addr, ETH_ALEN); in mwl8k_cmd_set_new_stn_add()
4113 cmd->stn_id = cpu_to_le16(sta->aid); in mwl8k_cmd_set_new_stn_add()
4114 cmd->action = cpu_to_le16(MWL8K_STA_ACTION_ADD); in mwl8k_cmd_set_new_stn_add()
4119 cmd->legacy_rates = cpu_to_le32(rates); in mwl8k_cmd_set_new_stn_add()
4121 cmd->ht_rates[0] = sta->deflink.ht_cap.mcs.rx_mask[0]; in mwl8k_cmd_set_new_stn_add()
4122 cmd->ht_rates[1] = sta->deflink.ht_cap.mcs.rx_mask[1]; in mwl8k_cmd_set_new_stn_add()
4123 cmd->ht_rates[2] = sta->deflink.ht_cap.mcs.rx_mask[2]; in mwl8k_cmd_set_new_stn_add()
4124 cmd->ht_rates[3] = sta->deflink.ht_cap.mcs.rx_mask[3]; in mwl8k_cmd_set_new_stn_add()
4125 cmd->ht_capabilities_info = cpu_to_le16(sta->deflink.ht_cap.cap); in mwl8k_cmd_set_new_stn_add()
4126 cmd->mac_ht_param_info = (sta->deflink.ht_cap.ampdu_factor & 3) | in mwl8k_cmd_set_new_stn_add()
4128 cmd->is_qos_sta = 1; in mwl8k_cmd_set_new_stn_add()
4131 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_new_stn_add()
4132 kfree(cmd); in mwl8k_cmd_set_new_stn_add()
4140 struct mwl8k_cmd_set_new_stn *cmd; in mwl8k_cmd_set_new_stn_add_self() local
4143 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_new_stn_add_self()
4144 if (cmd == NULL) in mwl8k_cmd_set_new_stn_add_self()
4147 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); in mwl8k_cmd_set_new_stn_add_self()
4148 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_new_stn_add_self()
4149 memcpy(cmd->mac_addr, vif->addr, ETH_ALEN); in mwl8k_cmd_set_new_stn_add_self()
4151 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_new_stn_add_self()
4152 kfree(cmd); in mwl8k_cmd_set_new_stn_add_self()
4160 struct mwl8k_cmd_set_new_stn *cmd; in mwl8k_cmd_set_new_stn_del() local
4186 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_new_stn_del()
4187 if (cmd == NULL) in mwl8k_cmd_set_new_stn_del()
4190 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); in mwl8k_cmd_set_new_stn_del()
4191 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_new_stn_del()
4192 memcpy(cmd->mac_addr, addr, ETH_ALEN); in mwl8k_cmd_set_new_stn_del()
4193 cmd->action = cpu_to_le16(MWL8K_STA_ACTION_REMOVE); in mwl8k_cmd_set_new_stn_del()
4195 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_new_stn_del()
4196 kfree(cmd); in mwl8k_cmd_set_new_stn_del()
4270 struct mwl8k_cmd_update_encryption *cmd; in mwl8k_cmd_update_encryption_enable() local
4273 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_encryption_enable()
4274 if (cmd == NULL) in mwl8k_cmd_update_encryption_enable()
4277 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION); in mwl8k_cmd_update_encryption_enable()
4278 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_encryption_enable()
4279 cmd->action = cpu_to_le32(MWL8K_ENCR_ENABLE); in mwl8k_cmd_update_encryption_enable()
4280 memcpy(cmd->mac_addr, addr, ETH_ALEN); in mwl8k_cmd_update_encryption_enable()
4281 cmd->encr_type = encr_type; in mwl8k_cmd_update_encryption_enable()
4283 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_update_encryption_enable()
4284 kfree(cmd); in mwl8k_cmd_update_encryption_enable()
4289 static int mwl8k_encryption_set_cmd_info(struct mwl8k_cmd_set_key *cmd, in mwl8k_encryption_set_cmd_info() argument
4293 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION); in mwl8k_encryption_set_cmd_info()
4294 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_encryption_set_cmd_info()
4295 cmd->length = cpu_to_le16(sizeof(*cmd) - in mwl8k_encryption_set_cmd_info()
4297 cmd->key_id = cpu_to_le32(key->keyidx); in mwl8k_encryption_set_cmd_info()
4298 cmd->key_len = cpu_to_le16(key->keylen); in mwl8k_encryption_set_cmd_info()
4299 memcpy(cmd->mac_addr, addr, ETH_ALEN); in mwl8k_encryption_set_cmd_info()
4304 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_WEP); in mwl8k_encryption_set_cmd_info()
4306 cmd->key_info = cpu_to_le32(MWL8K_KEY_FLAG_WEP_TXKEY); in mwl8k_encryption_set_cmd_info()
4310 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_TKIP); in mwl8k_encryption_set_cmd_info()
4311 cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) in mwl8k_encryption_set_cmd_info()
4314 cmd->key_info |= cpu_to_le32(MWL8K_KEY_FLAG_MICKEY_VALID in mwl8k_encryption_set_cmd_info()
4318 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_CCMP); in mwl8k_encryption_set_cmd_info()
4319 cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) in mwl8k_encryption_set_cmd_info()
4335 struct mwl8k_cmd_set_key *cmd; in mwl8k_cmd_encryption_set_key() local
4342 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_encryption_set_key()
4343 if (cmd == NULL) in mwl8k_cmd_encryption_set_key()
4346 rc = mwl8k_encryption_set_cmd_info(cmd, addr, key); in mwl8k_cmd_encryption_set_key()
4380 memcpy(&cmd->tkip, key->key, keymlen); in mwl8k_cmd_encryption_set_key()
4381 cmd->action = cpu_to_le32(action); in mwl8k_cmd_encryption_set_key()
4383 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_encryption_set_key()
4385 kfree(cmd); in mwl8k_cmd_encryption_set_key()
4395 struct mwl8k_cmd_set_key *cmd; in mwl8k_cmd_encryption_remove_key() local
4399 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_encryption_remove_key()
4400 if (cmd == NULL) in mwl8k_cmd_encryption_remove_key()
4403 rc = mwl8k_encryption_set_cmd_info(cmd, addr, key); in mwl8k_cmd_encryption_remove_key()
4411 cmd->action = cpu_to_le32(MWL8K_ENCR_REMOVE_KEY); in mwl8k_cmd_encryption_remove_key()
4413 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_encryption_remove_key()
4415 kfree(cmd); in mwl8k_cmd_encryption_remove_key()
4531 struct mwl8k_cmd_update_stadb *cmd; in mwl8k_cmd_update_stadb_add() local
4536 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_stadb_add()
4537 if (cmd == NULL) in mwl8k_cmd_update_stadb_add()
4540 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_STADB); in mwl8k_cmd_update_stadb_add()
4541 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_stadb_add()
4542 cmd->action = cpu_to_le32(MWL8K_STA_DB_MODIFY_ENTRY); in mwl8k_cmd_update_stadb_add()
4543 memcpy(cmd->peer_addr, sta->addr, ETH_ALEN); in mwl8k_cmd_update_stadb_add()
4545 p = &cmd->peer_info; in mwl8k_cmd_update_stadb_add()
4561 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_update_stadb_add()
4564 kfree(cmd); in mwl8k_cmd_update_stadb_add()
4572 struct mwl8k_cmd_update_stadb *cmd; in mwl8k_cmd_update_stadb_del() local
4575 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_stadb_del()
4576 if (cmd == NULL) in mwl8k_cmd_update_stadb_del()
4579 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_STADB); in mwl8k_cmd_update_stadb_del()
4580 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_stadb_del()
4581 cmd->action = cpu_to_le32(MWL8K_STA_DB_DEL_ENTRY); in mwl8k_cmd_update_stadb_del()
4582 memcpy(cmd->peer_addr, addr, ETH_ALEN); in mwl8k_cmd_update_stadb_del()
4584 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_update_stadb_del()
4585 kfree(cmd); in mwl8k_cmd_update_stadb_del()
5177 struct mwl8k_cmd_pkt *cmd; in mwl8k_prepare_multicast() local
5186 cmd = __mwl8k_cmd_mac_multicast_adr(hw, 0, mc_list); in mwl8k_prepare_multicast()
5188 return (unsigned long)cmd; in mwl8k_prepare_multicast()
5237 struct mwl8k_cmd_pkt *cmd = (void *)(unsigned long)multicast; in mwl8k_configure_filter() local
5245 kfree(cmd); in mwl8k_configure_filter()
5255 kfree(cmd); in mwl8k_configure_filter()
5263 kfree(cmd); in mwl8k_configure_filter()
5307 kfree(cmd); in mwl8k_configure_filter()
5308 cmd = __mwl8k_cmd_mac_multicast_adr(hw, 1, NULL); in mwl8k_configure_filter()
5311 if (cmd != NULL) { in mwl8k_configure_filter()
5312 mwl8k_post_cmd(hw, cmd); in mwl8k_configure_filter()
5313 kfree(cmd); in mwl8k_configure_filter()