Lines Matching refs:cmd
439 static const char *mwl8k_cmd_name(__le16 cmd, char *buf, int bufsize) in mwl8k_cmd_name() argument
441 u16 command = le16_to_cpu(cmd); in mwl8k_cmd_name()
480 snprintf(buf, bufsize, "0x%x", cmd); in mwl8k_cmd_name()
638 struct mwl8k_cmd_pkt *cmd; in mwl8k_load_fw_image() local
642 cmd = kmalloc(sizeof(*cmd) + 256, GFP_KERNEL); in mwl8k_load_fw_image()
643 if (cmd == NULL) in mwl8k_load_fw_image()
646 cmd->code = cpu_to_le16(MWL8K_CMD_CODE_DNLD); in mwl8k_load_fw_image()
647 cmd->seq_num = 0; in mwl8k_load_fw_image()
648 cmd->macid = 0; in mwl8k_load_fw_image()
649 cmd->result = 0; in mwl8k_load_fw_image()
655 memcpy(cmd->payload, data + done, block_size); in mwl8k_load_fw_image()
656 cmd->length = cpu_to_le16(block_size); in mwl8k_load_fw_image()
658 rc = mwl8k_send_fw_load_cmd(priv, cmd, in mwl8k_load_fw_image()
659 sizeof(*cmd) + block_size); in mwl8k_load_fw_image()
668 cmd->length = 0; in mwl8k_load_fw_image()
669 rc = mwl8k_send_fw_load_cmd(priv, cmd, sizeof(*cmd)); in mwl8k_load_fw_image()
672 kfree(cmd); in mwl8k_load_fw_image()
2189 static int mwl8k_post_cmd(struct ieee80211_hw *hw, struct mwl8k_cmd_pkt *cmd) in mwl8k_post_cmd() argument
2202 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), cmd->macid); in mwl8k_post_cmd()
2214 switch (le16_to_cpu(cmd->code)) { in mwl8k_post_cmd()
2228 cmd->result = (__force __le16) 0xffff; in mwl8k_post_cmd()
2229 dma_size = le16_to_cpu(cmd->length); in mwl8k_post_cmd()
2230 dma_addr = pci_map_single(priv->pdev, cmd, dma_size, in mwl8k_post_cmd()
2253 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), in mwl8k_post_cmd()
2261 rc = cmd->result ? -EINVAL : 0; in mwl8k_post_cmd()
2264 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), in mwl8k_post_cmd()
2265 le16_to_cpu(cmd->result)); in mwl8k_post_cmd()
2268 mwl8k_cmd_name(cmd->code, in mwl8k_post_cmd()
2283 struct mwl8k_cmd_pkt *cmd) in mwl8k_post_pervif_cmd() argument
2286 cmd->macid = MWL8K_VIF(vif)->macid; in mwl8k_post_pervif_cmd()
2287 return mwl8k_post_cmd(hw, cmd); in mwl8k_post_pervif_cmd()
2444 struct mwl8k_cmd_get_hw_spec_sta *cmd; in mwl8k_cmd_get_hw_spec_sta() local
2448 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_hw_spec_sta()
2449 if (cmd == NULL) in mwl8k_cmd_get_hw_spec_sta()
2452 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_HW_SPEC); in mwl8k_cmd_get_hw_spec_sta()
2453 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_hw_spec_sta()
2455 memset(cmd->perm_addr, 0xff, sizeof(cmd->perm_addr)); in mwl8k_cmd_get_hw_spec_sta()
2456 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); in mwl8k_cmd_get_hw_spec_sta()
2457 cmd->rx_queue_ptr = cpu_to_le32(priv->rxq[0].rxd_dma); in mwl8k_cmd_get_hw_spec_sta()
2458 cmd->num_tx_queues = cpu_to_le32(mwl8k_tx_queues(priv)); in mwl8k_cmd_get_hw_spec_sta()
2460 cmd->tx_queue_ptrs[i] = cpu_to_le32(priv->txq[i].txd_dma); in mwl8k_cmd_get_hw_spec_sta()
2461 cmd->num_tx_desc_per_queue = cpu_to_le32(MWL8K_TX_DESCS); in mwl8k_cmd_get_hw_spec_sta()
2462 cmd->total_rxd = cpu_to_le32(MWL8K_RX_DESCS); in mwl8k_cmd_get_hw_spec_sta()
2464 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_hw_spec_sta()
2467 SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr); in mwl8k_cmd_get_hw_spec_sta()
2468 priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs); in mwl8k_cmd_get_hw_spec_sta()
2469 priv->fw_rev = le32_to_cpu(cmd->fw_rev); in mwl8k_cmd_get_hw_spec_sta()
2470 priv->hw_rev = cmd->hw_rev; in mwl8k_cmd_get_hw_spec_sta()
2471 mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); in mwl8k_cmd_get_hw_spec_sta()
2476 kfree(cmd); in mwl8k_cmd_get_hw_spec_sta()
2509 struct mwl8k_cmd_get_hw_spec_ap *cmd; in mwl8k_cmd_get_hw_spec_ap() local
2513 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_hw_spec_ap()
2514 if (cmd == NULL) in mwl8k_cmd_get_hw_spec_ap()
2517 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_HW_SPEC); in mwl8k_cmd_get_hw_spec_ap()
2518 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_hw_spec_ap()
2520 memset(cmd->perm_addr, 0xff, sizeof(cmd->perm_addr)); in mwl8k_cmd_get_hw_spec_ap()
2521 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); in mwl8k_cmd_get_hw_spec_ap()
2523 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_hw_spec_ap()
2528 api_version = le32_to_cpu(cmd->fw_api_version); in mwl8k_cmd_get_hw_spec_ap()
2538 SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr); in mwl8k_cmd_get_hw_spec_ap()
2539 priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs); in mwl8k_cmd_get_hw_spec_ap()
2540 priv->fw_rev = le32_to_cpu(cmd->fw_rev); in mwl8k_cmd_get_hw_spec_ap()
2541 priv->hw_rev = cmd->hw_rev; in mwl8k_cmd_get_hw_spec_ap()
2542 mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); in mwl8k_cmd_get_hw_spec_ap()
2545 priv->num_ampdu_queues = le32_to_cpu(cmd->num_of_ampdu_queues); in mwl8k_cmd_get_hw_spec_ap()
2553 off = le32_to_cpu(cmd->rxwrptr) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2556 off = le32_to_cpu(cmd->rxrdptr) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2559 priv->txq_offset[0] = le32_to_cpu(cmd->wcbbase0) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2560 priv->txq_offset[1] = le32_to_cpu(cmd->wcbbase1) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2561 priv->txq_offset[2] = le32_to_cpu(cmd->wcbbase2) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2562 priv->txq_offset[3] = le32_to_cpu(cmd->wcbbase3) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2566 le32_to_cpu(cmd->wcbbase_ampdu[i]) & 0xffff; in mwl8k_cmd_get_hw_spec_ap()
2570 kfree(cmd); in mwl8k_cmd_get_hw_spec_ap()
2611 struct mwl8k_cmd_set_hw_spec *cmd; in mwl8k_cmd_set_hw_spec() local
2615 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_hw_spec()
2616 if (cmd == NULL) in mwl8k_cmd_set_hw_spec()
2619 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_HW_SPEC); in mwl8k_cmd_set_hw_spec()
2620 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_hw_spec()
2622 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); in mwl8k_cmd_set_hw_spec()
2623 cmd->rx_queue_ptr = cpu_to_le32(priv->rxq[0].rxd_dma); in mwl8k_cmd_set_hw_spec()
2624 cmd->num_tx_queues = cpu_to_le32(mwl8k_tx_queues(priv)); in mwl8k_cmd_set_hw_spec()
2634 cmd->tx_queue_ptrs[i] = cpu_to_le32(priv->txq[j].txd_dma); in mwl8k_cmd_set_hw_spec()
2637 cmd->flags = cpu_to_le32(MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT | in mwl8k_cmd_set_hw_spec()
2642 cmd->num_tx_desc_per_queue = cpu_to_le32(MWL8K_TX_DESCS); in mwl8k_cmd_set_hw_spec()
2643 cmd->total_rxd = cpu_to_le32(MWL8K_RX_DESCS); in mwl8k_cmd_set_hw_spec()
2645 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_hw_spec()
2646 kfree(cmd); in mwl8k_cmd_set_hw_spec()
2671 struct mwl8k_cmd_mac_multicast_adr *cmd; in __mwl8k_cmd_mac_multicast_adr() local
2683 size = sizeof(*cmd) + mc_count * ETH_ALEN; in __mwl8k_cmd_mac_multicast_adr()
2685 cmd = kzalloc(size, GFP_ATOMIC); in __mwl8k_cmd_mac_multicast_adr()
2686 if (cmd == NULL) in __mwl8k_cmd_mac_multicast_adr()
2689 cmd->header.code = cpu_to_le16(MWL8K_CMD_MAC_MULTICAST_ADR); in __mwl8k_cmd_mac_multicast_adr()
2690 cmd->header.length = cpu_to_le16(size); in __mwl8k_cmd_mac_multicast_adr()
2691 cmd->action = cpu_to_le16(MWL8K_ENABLE_RX_DIRECTED | in __mwl8k_cmd_mac_multicast_adr()
2695 cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST); in __mwl8k_cmd_mac_multicast_adr()
2700 cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_MULTICAST); in __mwl8k_cmd_mac_multicast_adr()
2701 cmd->numaddr = cpu_to_le16(mc_count); in __mwl8k_cmd_mac_multicast_adr()
2703 memcpy(cmd->addr[i], ha->addr, ETH_ALEN); in __mwl8k_cmd_mac_multicast_adr()
2707 return &cmd->header; in __mwl8k_cmd_mac_multicast_adr()
2726 struct mwl8k_cmd_get_stat *cmd; in mwl8k_cmd_get_stat() local
2729 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_stat()
2730 if (cmd == NULL) in mwl8k_cmd_get_stat()
2733 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_STAT); in mwl8k_cmd_get_stat()
2734 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_stat()
2736 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_stat()
2739 le32_to_cpu(cmd->stats[MWL8K_STAT_ACK_FAILURE]); in mwl8k_cmd_get_stat()
2741 le32_to_cpu(cmd->stats[MWL8K_STAT_RTS_FAILURE]); in mwl8k_cmd_get_stat()
2743 le32_to_cpu(cmd->stats[MWL8K_STAT_FCS_ERROR]); in mwl8k_cmd_get_stat()
2745 le32_to_cpu(cmd->stats[MWL8K_STAT_RTS_SUCCESS]); in mwl8k_cmd_get_stat()
2747 kfree(cmd); in mwl8k_cmd_get_stat()
2766 struct mwl8k_cmd_radio_control *cmd; in mwl8k_cmd_radio_control() local
2772 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_radio_control()
2773 if (cmd == NULL) in mwl8k_cmd_radio_control()
2776 cmd->header.code = cpu_to_le16(MWL8K_CMD_RADIO_CONTROL); in mwl8k_cmd_radio_control()
2777 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_radio_control()
2778 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_radio_control()
2779 cmd->control = cpu_to_le16(priv->radio_short_preamble ? 3 : 1); in mwl8k_cmd_radio_control()
2780 cmd->radio_on = cpu_to_le16(enable ? 0x0001 : 0x0000); in mwl8k_cmd_radio_control()
2782 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_radio_control()
2783 kfree(cmd); in mwl8k_cmd_radio_control()
2827 struct mwl8k_cmd_rf_tx_power *cmd; in mwl8k_cmd_rf_tx_power() local
2830 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_rf_tx_power()
2831 if (cmd == NULL) in mwl8k_cmd_rf_tx_power()
2834 cmd->header.code = cpu_to_le16(MWL8K_CMD_RF_TX_POWER); in mwl8k_cmd_rf_tx_power()
2835 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_rf_tx_power()
2836 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_rf_tx_power()
2837 cmd->support_level = cpu_to_le16(dBm); in mwl8k_cmd_rf_tx_power()
2839 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_rf_tx_power()
2840 kfree(cmd); in mwl8k_cmd_rf_tx_power()
2867 struct mwl8k_cmd_tx_power *cmd; in mwl8k_cmd_tx_power() local
2871 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_tx_power()
2872 if (cmd == NULL) in mwl8k_cmd_tx_power()
2875 cmd->header.code = cpu_to_le16(MWL8K_CMD_TX_POWER); in mwl8k_cmd_tx_power()
2876 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_tx_power()
2877 cmd->action = cpu_to_le16(MWL8K_CMD_SET_LIST); in mwl8k_cmd_tx_power()
2880 cmd->band = cpu_to_le16(0x1); in mwl8k_cmd_tx_power()
2882 cmd->band = cpu_to_le16(0x4); in mwl8k_cmd_tx_power()
2884 cmd->channel = cpu_to_le16(channel->hw_value); in mwl8k_cmd_tx_power()
2888 cmd->bw = cpu_to_le16(0x2); in mwl8k_cmd_tx_power()
2890 cmd->bw = cpu_to_le16(0x4); in mwl8k_cmd_tx_power()
2892 cmd->sub_ch = cpu_to_le16(0x3); in mwl8k_cmd_tx_power()
2894 cmd->sub_ch = cpu_to_le16(0x1); in mwl8k_cmd_tx_power()
2898 cmd->power_level_list[i] = cpu_to_le16(pwr); in mwl8k_cmd_tx_power()
2900 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_tx_power()
2901 kfree(cmd); in mwl8k_cmd_tx_power()
2921 struct mwl8k_cmd_rf_antenna *cmd; in mwl8k_cmd_rf_antenna() local
2924 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_rf_antenna()
2925 if (cmd == NULL) in mwl8k_cmd_rf_antenna()
2928 cmd->header.code = cpu_to_le16(MWL8K_CMD_RF_ANTENNA); in mwl8k_cmd_rf_antenna()
2929 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_rf_antenna()
2930 cmd->antenna = cpu_to_le16(antenna); in mwl8k_cmd_rf_antenna()
2931 cmd->mode = cpu_to_le16(mask); in mwl8k_cmd_rf_antenna()
2933 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_rf_antenna()
2934 kfree(cmd); in mwl8k_cmd_rf_antenna()
2951 struct mwl8k_cmd_set_beacon *cmd; in mwl8k_cmd_set_beacon() local
2954 cmd = kzalloc(sizeof(*cmd) + len, GFP_KERNEL); in mwl8k_cmd_set_beacon()
2955 if (cmd == NULL) in mwl8k_cmd_set_beacon()
2958 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_BEACON); in mwl8k_cmd_set_beacon()
2959 cmd->header.length = cpu_to_le16(sizeof(*cmd) + len); in mwl8k_cmd_set_beacon()
2960 cmd->beacon_len = cpu_to_le16(len); in mwl8k_cmd_set_beacon()
2961 memcpy(cmd->beacon, beacon, len); in mwl8k_cmd_set_beacon()
2963 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_beacon()
2964 kfree(cmd); in mwl8k_cmd_set_beacon()
2978 struct mwl8k_cmd_set_pre_scan *cmd; in mwl8k_cmd_set_pre_scan() local
2981 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_pre_scan()
2982 if (cmd == NULL) in mwl8k_cmd_set_pre_scan()
2985 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_PRE_SCAN); in mwl8k_cmd_set_pre_scan()
2986 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_pre_scan()
2988 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_pre_scan()
2989 kfree(cmd); in mwl8k_cmd_set_pre_scan()
3011 struct mwl8k_cmd_bbp_reg_access *cmd; in mwl8k_cmd_bbp_reg_access() local
3014 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_bbp_reg_access()
3015 if (cmd == NULL) in mwl8k_cmd_bbp_reg_access()
3018 cmd->header.code = cpu_to_le16(MWL8K_CMD_BBP_REG_ACCESS); in mwl8k_cmd_bbp_reg_access()
3019 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_bbp_reg_access()
3020 cmd->action = cpu_to_le16(action); in mwl8k_cmd_bbp_reg_access()
3021 cmd->offset = cpu_to_le16(offset); in mwl8k_cmd_bbp_reg_access()
3023 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_bbp_reg_access()
3026 *value = cmd->value; in mwl8k_cmd_bbp_reg_access()
3030 kfree(cmd); in mwl8k_cmd_bbp_reg_access()
3047 struct mwl8k_cmd_set_post_scan *cmd; in mwl8k_cmd_set_post_scan() local
3050 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_post_scan()
3051 if (cmd == NULL) in mwl8k_cmd_set_post_scan()
3054 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_POST_SCAN); in mwl8k_cmd_set_post_scan()
3055 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_post_scan()
3056 cmd->isibss = 0; in mwl8k_cmd_set_post_scan()
3057 memcpy(cmd->bssid, mac, ETH_ALEN); in mwl8k_cmd_set_post_scan()
3059 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_post_scan()
3060 kfree(cmd); in mwl8k_cmd_set_post_scan()
3139 struct mwl8k_cmd_set_rf_channel *cmd; in mwl8k_cmd_set_rf_channel() local
3143 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rf_channel()
3144 if (cmd == NULL) in mwl8k_cmd_set_rf_channel()
3147 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RF_CHANNEL); in mwl8k_cmd_set_rf_channel()
3148 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rf_channel()
3149 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_rf_channel()
3150 cmd->current_channel = channel->hw_value; in mwl8k_cmd_set_rf_channel()
3153 cmd->channel_flags |= cpu_to_le32(0x00000001); in mwl8k_cmd_set_rf_channel()
3155 cmd->channel_flags |= cpu_to_le32(0x00000004); in mwl8k_cmd_set_rf_channel()
3160 cmd->channel_flags |= cpu_to_le32(0x00000080); in mwl8k_cmd_set_rf_channel()
3162 cmd->channel_flags |= cpu_to_le32(0x000001900); in mwl8k_cmd_set_rf_channel()
3164 cmd->channel_flags |= cpu_to_le32(0x000000900); in mwl8k_cmd_set_rf_channel()
3166 cmd->channel_flags |= cpu_to_le32(0x00000080); in mwl8k_cmd_set_rf_channel()
3181 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rf_channel()
3182 kfree(cmd); in mwl8k_cmd_set_rf_channel()
3225 struct mwl8k_cmd_update_set_aid *cmd; in mwl8k_cmd_set_aid() local
3229 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_aid()
3230 if (cmd == NULL) in mwl8k_cmd_set_aid()
3233 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_AID); in mwl8k_cmd_set_aid()
3234 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_aid()
3235 cmd->aid = cpu_to_le16(vif->bss_conf.aid); in mwl8k_cmd_set_aid()
3236 memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); in mwl8k_cmd_set_aid()
3254 cmd->protection_mode = cpu_to_le16(prot_mode); in mwl8k_cmd_set_aid()
3256 legacy_rate_mask_to_array(cmd->supp_rates, legacy_rate_mask); in mwl8k_cmd_set_aid()
3258 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_aid()
3259 kfree(cmd); in mwl8k_cmd_set_aid()
3280 struct mwl8k_cmd_set_rate *cmd; in mwl8k_cmd_set_rate() local
3283 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rate()
3284 if (cmd == NULL) in mwl8k_cmd_set_rate()
3287 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RATE); in mwl8k_cmd_set_rate()
3288 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rate()
3289 legacy_rate_mask_to_array(cmd->legacy_rates, legacy_rate_mask); in mwl8k_cmd_set_rate()
3290 memcpy(cmd->mcs_set, mcs_rates, 16); in mwl8k_cmd_set_rate()
3292 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rate()
3293 kfree(cmd); in mwl8k_cmd_set_rate()
3312 struct mwl8k_cmd_finalize_join *cmd; in mwl8k_cmd_finalize_join() local
3317 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_finalize_join()
3318 if (cmd == NULL) in mwl8k_cmd_finalize_join()
3321 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_FINALIZE_JOIN); in mwl8k_cmd_finalize_join()
3322 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_finalize_join()
3323 cmd->sleep_interval = cpu_to_le32(dtim ? dtim : 1); in mwl8k_cmd_finalize_join()
3331 memcpy(cmd->beacon_data, &payload->u.beacon, payload_len); in mwl8k_cmd_finalize_join()
3333 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_finalize_join()
3334 kfree(cmd); in mwl8k_cmd_finalize_join()
3351 struct mwl8k_cmd_set_rts_threshold *cmd; in mwl8k_cmd_set_rts_threshold() local
3354 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rts_threshold()
3355 if (cmd == NULL) in mwl8k_cmd_set_rts_threshold()
3358 cmd->header.code = cpu_to_le16(MWL8K_CMD_RTS_THRESHOLD); in mwl8k_cmd_set_rts_threshold()
3359 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rts_threshold()
3360 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_rts_threshold()
3361 cmd->threshold = cpu_to_le16(rts_thresh); in mwl8k_cmd_set_rts_threshold()
3363 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rts_threshold()
3364 kfree(cmd); in mwl8k_cmd_set_rts_threshold()
3380 struct mwl8k_cmd_set_slot *cmd; in mwl8k_cmd_set_slot() local
3383 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_slot()
3384 if (cmd == NULL) in mwl8k_cmd_set_slot()
3387 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_SLOT); in mwl8k_cmd_set_slot()
3388 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_slot()
3389 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_slot()
3390 cmd->short_slot = short_slot_time; in mwl8k_cmd_set_slot()
3392 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_slot()
3393 kfree(cmd); in mwl8k_cmd_set_slot()
3454 struct mwl8k_cmd_set_edca_params *cmd; in mwl8k_cmd_set_edca_params() local
3457 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_edca_params()
3458 if (cmd == NULL) in mwl8k_cmd_set_edca_params()
3461 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_EDCA_PARAMS); in mwl8k_cmd_set_edca_params()
3462 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_edca_params()
3463 cmd->action = cpu_to_le16(MWL8K_SET_EDCA_ALL); in mwl8k_cmd_set_edca_params()
3464 cmd->txop = cpu_to_le16(txop); in mwl8k_cmd_set_edca_params()
3466 cmd->ap.log_cw_max = cpu_to_le32(ilog2(cw_max + 1)); in mwl8k_cmd_set_edca_params()
3467 cmd->ap.log_cw_min = cpu_to_le32(ilog2(cw_min + 1)); in mwl8k_cmd_set_edca_params()
3468 cmd->ap.aifs = aifs; in mwl8k_cmd_set_edca_params()
3469 cmd->ap.txq = qnum; in mwl8k_cmd_set_edca_params()
3471 cmd->sta.log_cw_max = (u8)ilog2(cw_max + 1); in mwl8k_cmd_set_edca_params()
3472 cmd->sta.log_cw_min = (u8)ilog2(cw_min + 1); in mwl8k_cmd_set_edca_params()
3473 cmd->sta.aifs = aifs; in mwl8k_cmd_set_edca_params()
3474 cmd->sta.txq = qnum; in mwl8k_cmd_set_edca_params()
3477 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_edca_params()
3478 kfree(cmd); in mwl8k_cmd_set_edca_params()
3494 struct mwl8k_cmd_set_wmm_mode *cmd; in mwl8k_cmd_set_wmm_mode() local
3497 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_wmm_mode()
3498 if (cmd == NULL) in mwl8k_cmd_set_wmm_mode()
3501 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_WMM_MODE); in mwl8k_cmd_set_wmm_mode()
3502 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_wmm_mode()
3503 cmd->action = cpu_to_le16(!!enable); in mwl8k_cmd_set_wmm_mode()
3505 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_wmm_mode()
3506 kfree(cmd); in mwl8k_cmd_set_wmm_mode()
3526 struct mwl8k_cmd_mimo_config *cmd; in mwl8k_cmd_mimo_config() local
3529 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_mimo_config()
3530 if (cmd == NULL) in mwl8k_cmd_mimo_config()
3533 cmd->header.code = cpu_to_le16(MWL8K_CMD_MIMO_CONFIG); in mwl8k_cmd_mimo_config()
3534 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_mimo_config()
3535 cmd->action = cpu_to_le32((u32)MWL8K_CMD_SET); in mwl8k_cmd_mimo_config()
3536 cmd->rx_antenna_map = rx; in mwl8k_cmd_mimo_config()
3537 cmd->tx_antenna_map = tx; in mwl8k_cmd_mimo_config()
3539 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_mimo_config()
3540 kfree(cmd); in mwl8k_cmd_mimo_config()
3569 struct mwl8k_cmd_use_fixed_rate_sta *cmd; in mwl8k_cmd_use_fixed_rate_sta() local
3572 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_use_fixed_rate_sta()
3573 if (cmd == NULL) in mwl8k_cmd_use_fixed_rate_sta()
3576 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE); in mwl8k_cmd_use_fixed_rate_sta()
3577 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_use_fixed_rate_sta()
3578 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE); in mwl8k_cmd_use_fixed_rate_sta()
3579 cmd->rate_type = cpu_to_le32(MWL8K_UCAST_RATE); in mwl8k_cmd_use_fixed_rate_sta()
3581 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_use_fixed_rate_sta()
3582 kfree(cmd); in mwl8k_cmd_use_fixed_rate_sta()
3609 struct mwl8k_cmd_use_fixed_rate_ap *cmd; in mwl8k_cmd_use_fixed_rate_ap() local
3612 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_use_fixed_rate_ap()
3613 if (cmd == NULL) in mwl8k_cmd_use_fixed_rate_ap()
3616 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE); in mwl8k_cmd_use_fixed_rate_ap()
3617 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_use_fixed_rate_ap()
3618 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE); in mwl8k_cmd_use_fixed_rate_ap()
3619 cmd->multicast_rate = mcast; in mwl8k_cmd_use_fixed_rate_ap()
3620 cmd->management_rate = mgmt; in mwl8k_cmd_use_fixed_rate_ap()
3622 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_use_fixed_rate_ap()
3623 kfree(cmd); in mwl8k_cmd_use_fixed_rate_ap()
3638 struct mwl8k_cmd_enable_sniffer *cmd; in mwl8k_cmd_enable_sniffer() local
3641 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_enable_sniffer()
3642 if (cmd == NULL) in mwl8k_cmd_enable_sniffer()
3645 cmd->header.code = cpu_to_le16(MWL8K_CMD_ENABLE_SNIFFER); in mwl8k_cmd_enable_sniffer()
3646 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_enable_sniffer()
3647 cmd->action = cpu_to_le32(!!enable); in mwl8k_cmd_enable_sniffer()
3649 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_enable_sniffer()
3650 kfree(cmd); in mwl8k_cmd_enable_sniffer()
3676 struct mwl8k_cmd_update_mac_addr *cmd; in mwl8k_cmd_update_mac_addr() local
3696 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_mac_addr()
3697 if (cmd == NULL) in mwl8k_cmd_update_mac_addr()
3701 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_MAC_ADDR); in mwl8k_cmd_update_mac_addr()
3703 cmd->header.code = cpu_to_le16(MWL8K_CMD_DEL_MAC_ADDR); in mwl8k_cmd_update_mac_addr()
3705 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_mac_addr()
3707 cmd->mbss.mac_type = cpu_to_le16(mac_type); in mwl8k_cmd_update_mac_addr()
3708 memcpy(cmd->mbss.mac_addr, mac, ETH_ALEN); in mwl8k_cmd_update_mac_addr()
3710 memcpy(cmd->mac_addr, mac, ETH_ALEN); in mwl8k_cmd_update_mac_addr()
3713 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_update_mac_addr()
3714 kfree(cmd); in mwl8k_cmd_update_mac_addr()
3748 struct mwl8k_cmd_set_rate_adapt_mode *cmd; in mwl8k_cmd_set_rateadapt_mode() local
3751 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_rateadapt_mode()
3752 if (cmd == NULL) in mwl8k_cmd_set_rateadapt_mode()
3755 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RATEADAPT_MODE); in mwl8k_cmd_set_rateadapt_mode()
3756 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_rateadapt_mode()
3757 cmd->action = cpu_to_le16(MWL8K_CMD_SET); in mwl8k_cmd_set_rateadapt_mode()
3758 cmd->mode = cpu_to_le16(mode); in mwl8k_cmd_set_rateadapt_mode()
3760 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_set_rateadapt_mode()
3761 kfree(cmd); in mwl8k_cmd_set_rateadapt_mode()
3776 struct mwl8k_cmd_get_watchdog_bitmap *cmd; in mwl8k_cmd_get_watchdog_bitmap() local
3779 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_get_watchdog_bitmap()
3780 if (cmd == NULL) in mwl8k_cmd_get_watchdog_bitmap()
3783 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_WATCHDOG_BITMAP); in mwl8k_cmd_get_watchdog_bitmap()
3784 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_get_watchdog_bitmap()
3786 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_get_watchdog_bitmap()
3788 *bitmap = cmd->bitmap; in mwl8k_cmd_get_watchdog_bitmap()
3790 kfree(cmd); in mwl8k_cmd_get_watchdog_bitmap()
3857 struct mwl8k_cmd_bss_start *cmd; in mwl8k_cmd_bss_start() local
3868 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_bss_start()
3869 if (cmd == NULL) in mwl8k_cmd_bss_start()
3872 cmd->header.code = cpu_to_le16(MWL8K_CMD_BSS_START); in mwl8k_cmd_bss_start()
3873 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_bss_start()
3874 cmd->enable = cpu_to_le32(enable); in mwl8k_cmd_bss_start()
3876 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_bss_start()
3877 kfree(cmd); in mwl8k_cmd_bss_start()
3957 struct mwl8k_cmd_bastream *cmd; in mwl8k_check_ba() local
3960 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_check_ba()
3961 if (cmd == NULL) in mwl8k_check_ba()
3964 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); in mwl8k_check_ba()
3965 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_check_ba()
3967 cmd->action = cpu_to_le32(MWL8K_BA_CHECK); in mwl8k_check_ba()
3969 cmd->create_params.queue_id = stream->idx; in mwl8k_check_ba()
3970 memcpy(&cmd->create_params.peer_mac_addr[0], stream->sta->addr, in mwl8k_check_ba()
3972 cmd->create_params.tid = stream->tid; in mwl8k_check_ba()
3974 cmd->create_params.flags = in mwl8k_check_ba()
3978 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_check_ba()
3980 kfree(cmd); in mwl8k_check_ba()
3989 struct mwl8k_cmd_bastream *cmd; in mwl8k_create_ba() local
3992 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_create_ba()
3993 if (cmd == NULL) in mwl8k_create_ba()
3997 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); in mwl8k_create_ba()
3998 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_create_ba()
4000 cmd->action = cpu_to_le32(MWL8K_BA_CREATE); in mwl8k_create_ba()
4002 cmd->create_params.bar_thrs = cpu_to_le32((u32)buf_size); in mwl8k_create_ba()
4003 cmd->create_params.window_size = cpu_to_le32((u32)buf_size); in mwl8k_create_ba()
4004 cmd->create_params.queue_id = stream->idx; in mwl8k_create_ba()
4006 memcpy(cmd->create_params.peer_mac_addr, stream->sta->addr, ETH_ALEN); in mwl8k_create_ba()
4007 cmd->create_params.tid = stream->tid; in mwl8k_create_ba()
4008 cmd->create_params.curr_seq_no = cpu_to_le16(0); in mwl8k_create_ba()
4009 cmd->create_params.reset_seq_no_flag = 1; in mwl8k_create_ba()
4011 cmd->create_params.param_info = in mwl8k_create_ba()
4017 cmd->create_params.flags = in mwl8k_create_ba()
4021 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_create_ba()
4025 kfree(cmd); in mwl8k_create_ba()
4033 struct mwl8k_cmd_bastream *cmd; in mwl8k_destroy_ba() local
4035 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_destroy_ba()
4036 if (cmd == NULL) in mwl8k_destroy_ba()
4039 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); in mwl8k_destroy_ba()
4040 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_destroy_ba()
4041 cmd->action = cpu_to_le32(MWL8K_BA_DESTROY); in mwl8k_destroy_ba()
4043 cmd->destroy_params.ba_context = cpu_to_le32(idx); in mwl8k_destroy_ba()
4044 mwl8k_post_cmd(hw, &cmd->header); in mwl8k_destroy_ba()
4048 kfree(cmd); in mwl8k_destroy_ba()
4083 struct mwl8k_cmd_set_new_stn *cmd; in mwl8k_cmd_set_new_stn_add() local
4087 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_new_stn_add()
4088 if (cmd == NULL) in mwl8k_cmd_set_new_stn_add()
4091 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); in mwl8k_cmd_set_new_stn_add()
4092 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_new_stn_add()
4093 cmd->aid = cpu_to_le16(sta->aid); in mwl8k_cmd_set_new_stn_add()
4094 memcpy(cmd->mac_addr, sta->addr, ETH_ALEN); in mwl8k_cmd_set_new_stn_add()
4095 cmd->stn_id = cpu_to_le16(sta->aid); in mwl8k_cmd_set_new_stn_add()
4096 cmd->action = cpu_to_le16(MWL8K_STA_ACTION_ADD); in mwl8k_cmd_set_new_stn_add()
4101 cmd->legacy_rates = cpu_to_le32(rates); in mwl8k_cmd_set_new_stn_add()
4103 cmd->ht_rates[0] = sta->ht_cap.mcs.rx_mask[0]; in mwl8k_cmd_set_new_stn_add()
4104 cmd->ht_rates[1] = sta->ht_cap.mcs.rx_mask[1]; in mwl8k_cmd_set_new_stn_add()
4105 cmd->ht_rates[2] = sta->ht_cap.mcs.rx_mask[2]; in mwl8k_cmd_set_new_stn_add()
4106 cmd->ht_rates[3] = sta->ht_cap.mcs.rx_mask[3]; in mwl8k_cmd_set_new_stn_add()
4107 cmd->ht_capabilities_info = cpu_to_le16(sta->ht_cap.cap); in mwl8k_cmd_set_new_stn_add()
4108 cmd->mac_ht_param_info = (sta->ht_cap.ampdu_factor & 3) | in mwl8k_cmd_set_new_stn_add()
4110 cmd->is_qos_sta = 1; in mwl8k_cmd_set_new_stn_add()
4113 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_new_stn_add()
4114 kfree(cmd); in mwl8k_cmd_set_new_stn_add()
4122 struct mwl8k_cmd_set_new_stn *cmd; in mwl8k_cmd_set_new_stn_add_self() local
4125 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_new_stn_add_self()
4126 if (cmd == NULL) in mwl8k_cmd_set_new_stn_add_self()
4129 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); in mwl8k_cmd_set_new_stn_add_self()
4130 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_new_stn_add_self()
4131 memcpy(cmd->mac_addr, vif->addr, ETH_ALEN); in mwl8k_cmd_set_new_stn_add_self()
4133 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_new_stn_add_self()
4134 kfree(cmd); in mwl8k_cmd_set_new_stn_add_self()
4142 struct mwl8k_cmd_set_new_stn *cmd; in mwl8k_cmd_set_new_stn_del() local
4168 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_set_new_stn_del()
4169 if (cmd == NULL) in mwl8k_cmd_set_new_stn_del()
4172 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); in mwl8k_cmd_set_new_stn_del()
4173 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_set_new_stn_del()
4174 memcpy(cmd->mac_addr, addr, ETH_ALEN); in mwl8k_cmd_set_new_stn_del()
4175 cmd->action = cpu_to_le16(MWL8K_STA_ACTION_REMOVE); in mwl8k_cmd_set_new_stn_del()
4177 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_set_new_stn_del()
4178 kfree(cmd); in mwl8k_cmd_set_new_stn_del()
4250 struct mwl8k_cmd_update_encryption *cmd; in mwl8k_cmd_update_encryption_enable() local
4253 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_encryption_enable()
4254 if (cmd == NULL) in mwl8k_cmd_update_encryption_enable()
4257 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION); in mwl8k_cmd_update_encryption_enable()
4258 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_encryption_enable()
4259 cmd->action = cpu_to_le32(MWL8K_ENCR_ENABLE); in mwl8k_cmd_update_encryption_enable()
4260 memcpy(cmd->mac_addr, addr, ETH_ALEN); in mwl8k_cmd_update_encryption_enable()
4261 cmd->encr_type = encr_type; in mwl8k_cmd_update_encryption_enable()
4263 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_update_encryption_enable()
4264 kfree(cmd); in mwl8k_cmd_update_encryption_enable()
4269 static int mwl8k_encryption_set_cmd_info(struct mwl8k_cmd_set_key *cmd, in mwl8k_encryption_set_cmd_info() argument
4273 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION); in mwl8k_encryption_set_cmd_info()
4274 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_encryption_set_cmd_info()
4275 cmd->length = cpu_to_le16(sizeof(*cmd) - in mwl8k_encryption_set_cmd_info()
4277 cmd->key_id = cpu_to_le32(key->keyidx); in mwl8k_encryption_set_cmd_info()
4278 cmd->key_len = cpu_to_le16(key->keylen); in mwl8k_encryption_set_cmd_info()
4279 memcpy(cmd->mac_addr, addr, ETH_ALEN); in mwl8k_encryption_set_cmd_info()
4284 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_WEP); in mwl8k_encryption_set_cmd_info()
4286 cmd->key_info = cpu_to_le32(MWL8K_KEY_FLAG_WEP_TXKEY); in mwl8k_encryption_set_cmd_info()
4290 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_TKIP); in mwl8k_encryption_set_cmd_info()
4291 cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) in mwl8k_encryption_set_cmd_info()
4294 cmd->key_info |= cpu_to_le32(MWL8K_KEY_FLAG_MICKEY_VALID in mwl8k_encryption_set_cmd_info()
4298 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_CCMP); in mwl8k_encryption_set_cmd_info()
4299 cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) in mwl8k_encryption_set_cmd_info()
4315 struct mwl8k_cmd_set_key *cmd; in mwl8k_cmd_encryption_set_key() local
4322 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_encryption_set_key()
4323 if (cmd == NULL) in mwl8k_cmd_encryption_set_key()
4326 rc = mwl8k_encryption_set_cmd_info(cmd, addr, key); in mwl8k_cmd_encryption_set_key()
4360 memcpy(cmd->key_material, key->key, keymlen); in mwl8k_cmd_encryption_set_key()
4361 cmd->action = cpu_to_le32(action); in mwl8k_cmd_encryption_set_key()
4363 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_encryption_set_key()
4365 kfree(cmd); in mwl8k_cmd_encryption_set_key()
4375 struct mwl8k_cmd_set_key *cmd; in mwl8k_cmd_encryption_remove_key() local
4379 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_encryption_remove_key()
4380 if (cmd == NULL) in mwl8k_cmd_encryption_remove_key()
4383 rc = mwl8k_encryption_set_cmd_info(cmd, addr, key); in mwl8k_cmd_encryption_remove_key()
4391 cmd->action = cpu_to_le32(MWL8K_ENCR_REMOVE_KEY); in mwl8k_cmd_encryption_remove_key()
4393 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); in mwl8k_cmd_encryption_remove_key()
4395 kfree(cmd); in mwl8k_cmd_encryption_remove_key()
4511 struct mwl8k_cmd_update_stadb *cmd; in mwl8k_cmd_update_stadb_add() local
4516 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_stadb_add()
4517 if (cmd == NULL) in mwl8k_cmd_update_stadb_add()
4520 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_STADB); in mwl8k_cmd_update_stadb_add()
4521 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_stadb_add()
4522 cmd->action = cpu_to_le32(MWL8K_STA_DB_MODIFY_ENTRY); in mwl8k_cmd_update_stadb_add()
4523 memcpy(cmd->peer_addr, sta->addr, ETH_ALEN); in mwl8k_cmd_update_stadb_add()
4525 p = &cmd->peer_info; in mwl8k_cmd_update_stadb_add()
4541 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_update_stadb_add()
4544 kfree(cmd); in mwl8k_cmd_update_stadb_add()
4552 struct mwl8k_cmd_update_stadb *cmd; in mwl8k_cmd_update_stadb_del() local
4555 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in mwl8k_cmd_update_stadb_del()
4556 if (cmd == NULL) in mwl8k_cmd_update_stadb_del()
4559 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_STADB); in mwl8k_cmd_update_stadb_del()
4560 cmd->header.length = cpu_to_le16(sizeof(*cmd)); in mwl8k_cmd_update_stadb_del()
4561 cmd->action = cpu_to_le32(MWL8K_STA_DB_DEL_ENTRY); in mwl8k_cmd_update_stadb_del()
4562 memcpy(cmd->peer_addr, addr, ETH_ALEN); in mwl8k_cmd_update_stadb_del()
4564 rc = mwl8k_post_cmd(hw, &cmd->header); in mwl8k_cmd_update_stadb_del()
4565 kfree(cmd); in mwl8k_cmd_update_stadb_del()
5156 struct mwl8k_cmd_pkt *cmd; in mwl8k_prepare_multicast() local
5165 cmd = __mwl8k_cmd_mac_multicast_adr(hw, 0, mc_list); in mwl8k_prepare_multicast()
5167 return (unsigned long)cmd; in mwl8k_prepare_multicast()
5216 struct mwl8k_cmd_pkt *cmd = (void *)(unsigned long)multicast; in mwl8k_configure_filter() local
5224 kfree(cmd); in mwl8k_configure_filter()
5234 kfree(cmd); in mwl8k_configure_filter()
5242 kfree(cmd); in mwl8k_configure_filter()
5286 kfree(cmd); in mwl8k_configure_filter()
5287 cmd = __mwl8k_cmd_mac_multicast_adr(hw, 1, NULL); in mwl8k_configure_filter()
5290 if (cmd != NULL) { in mwl8k_configure_filter()
5291 mwl8k_post_cmd(hw, cmd); in mwl8k_configure_filter()
5292 kfree(cmd); in mwl8k_configure_filter()