Lines Matching refs:acx

10 #include "acx.h"
28 wl1271_debug(DEBUG_ACX, "acx wake up conditions (wake_up_event %d listen_interval %d)",
58 wl1271_debug(DEBUG_ACX, "acx sleep auth %d", sleep_auth);
85 struct acx_current_tx_power *acx;
88 wl1271_debug(DEBUG_ACX, "acx dot11_cur_tx_pwr %d", power);
93 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
94 if (!acx) {
99 acx->role_id = wlvif->role_id;
100 acx->current_tx_power = power * 10;
102 ret = wl1271_cmd_configure(wl, DOT11_CUR_TX_PWR, acx, sizeof(*acx));
109 kfree(acx);
118 wl1271_debug(DEBUG_ACX, "acx feature cfg");
148 wl1271_debug(DEBUG_ACX, "acx mem map");
160 struct acx_rx_msdu_lifetime *acx;
163 wl1271_debug(DEBUG_ACX, "acx rx msdu life time");
165 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
166 if (!acx) {
171 acx->lifetime = cpu_to_le32(wl->conf.rx.rx_msdu_life_time);
173 acx, sizeof(*acx));
180 kfree(acx);
190 wl1271_debug(DEBUG_ACX, "acx slot");
216 struct acx_dot11_grp_addr_tbl *acx;
219 wl1271_debug(DEBUG_ACX, "acx group address tbl");
221 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
222 if (!acx) {
228 acx->role_id = wlvif->role_id;
229 acx->enabled = enable;
230 acx->num_groups = mc_list_len;
231 memcpy(acx->mac_table, mc_list, mc_list_len * ETH_ALEN);
234 acx, sizeof(*acx));
241 kfree(acx);
257 wl1271_debug(DEBUG_ACX, "acx service period timeout");
289 wl1271_debug(DEBUG_ACX, "acx rts threshold: %d", rts_threshold);
317 wl1271_debug(DEBUG_ACX, "acx dco itrim parameters");
346 wl1271_debug(DEBUG_ACX, "acx beacon filter opt enable=%d",
388 wl1271_debug(DEBUG_ACX, "acx beacon filter table");
441 struct acx_conn_monit_params *acx;
446 wl1271_debug(DEBUG_ACX, "acx connection monitor parameters: %s",
449 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
450 if (!acx) {
460 acx->role_id = wlvif->role_id;
461 acx->synch_fail_thold = cpu_to_le32(threshold);
462 acx->bss_lose_timeout = cpu_to_le32(timeout);
465 acx, sizeof(*acx));
473 kfree(acx);
483 wl1271_debug(DEBUG_ACX, "acx sg enable");
513 wl1271_debug(DEBUG_ACX, "acx sg cfg");
542 wl1271_debug(DEBUG_ACX, "acx cca threshold");
568 wl1271_debug(DEBUG_ACX, "acx bcn dtim options");
598 wl1271_debug(DEBUG_ACX, "acx aid");
625 wl1271_debug(DEBUG_ACX, "acx event mbox mask");
652 struct acx_preamble *acx;
657 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
658 if (!acx) {
663 acx->role_id = wlvif->role_id;
664 acx->preamble = preamble;
666 ret = wl1271_cmd_configure(wl, ACX_PREAMBLE_TYPE, acx, sizeof(*acx));
673 kfree(acx);
680 struct acx_ctsprotect *acx;
685 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
686 if (!acx) {
691 acx->role_id = wlvif->role_id;
692 acx->ctsprotect = ctsprotect;
694 ret = wl1271_cmd_configure(wl, ACX_CTS_PROTECTION, acx, sizeof(*acx));
701 kfree(acx);
709 wl1271_debug(DEBUG_ACX, "acx statistics");
715 wl1271_warning("acx statistics failed: %d", ret);
724 struct acx_rate_policy *acx;
728 wl1271_debug(DEBUG_ACX, "acx rate policies");
730 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
732 if (!acx) {
741 acx->rate_policy_idx = cpu_to_le32(wlvif->sta.basic_rate_idx);
742 acx->rate_policy.enabled_rates = cpu_to_le32(wlvif->basic_rate);
743 acx->rate_policy.short_retry_limit = c->short_retry_limit;
744 acx->rate_policy.long_retry_limit = c->long_retry_limit;
745 acx->rate_policy.aflags = c->aflags;
747 ret = wl1271_cmd_configure(wl, ACX_RATE_POLICY, acx, sizeof(*acx));
754 acx->rate_policy_idx = cpu_to_le32(wlvif->sta.ap_rate_idx);
757 acx->rate_policy.enabled_rates =
759 acx->rate_policy.short_retry_limit = c->short_retry_limit;
760 acx->rate_policy.long_retry_limit = c->long_retry_limit;
761 acx->rate_policy.aflags = c->aflags;
763 ret = wl1271_cmd_configure(wl, ACX_RATE_POLICY, acx, sizeof(*acx));
774 acx->rate_policy_idx = cpu_to_le32(wlvif->sta.p2p_rate_idx);
775 acx->rate_policy.enabled_rates =
777 acx->rate_policy.short_retry_limit = c->short_retry_limit;
778 acx->rate_policy.long_retry_limit = c->long_retry_limit;
779 acx->rate_policy.aflags = c->aflags;
781 ret = wl1271_cmd_configure(wl, ACX_RATE_POLICY, acx, sizeof(*acx));
788 kfree(acx);
795 struct acx_rate_policy *acx;
798 wl1271_debug(DEBUG_ACX, "acx ap rate policy %d rates 0x%x",
801 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
802 if (!acx) {
807 acx->rate_policy.enabled_rates = cpu_to_le32(c->enabled_rates);
808 acx->rate_policy.short_retry_limit = c->short_retry_limit;
809 acx->rate_policy.long_retry_limit = c->long_retry_limit;
810 acx->rate_policy.aflags = c->aflags;
812 acx->rate_policy_idx = cpu_to_le32(idx);
814 ret = wl1271_cmd_configure(wl, ACX_RATE_POLICY, acx, sizeof(*acx));
821 kfree(acx);
828 struct acx_ac_cfg *acx;
831 wl1271_debug(DEBUG_ACX, "acx ac cfg %d cw_ming %d cw_max %d "
834 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
836 if (!acx) {
841 acx->role_id = wlvif->role_id;
842 acx->ac = ac;
843 acx->cw_min = cw_min;
844 acx->cw_max = cpu_to_le16(cw_max);
845 acx->aifsn = aifsn;
846 acx->tx_op_limit = cpu_to_le16(txop);
848 ret = wl1271_cmd_configure(wl, ACX_AC_CFG, acx, sizeof(*acx));
850 wl1271_warning("acx ac cfg failed: %d", ret);
855 kfree(acx);
864 struct acx_tid_config *acx;
867 wl1271_debug(DEBUG_ACX, "acx tid config");
869 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
871 if (!acx) {
876 acx->role_id = wlvif->role_id;
877 acx->queue_id = queue_id;
878 acx->channel_type = channel_type;
879 acx->tsid = tsid;
880 acx->ps_scheme = ps_scheme;
881 acx->ack_policy = ack_policy;
882 acx->apsd_conf[0] = cpu_to_le32(apsd_conf0);
883 acx->apsd_conf[1] = cpu_to_le32(apsd_conf1);
885 ret = wl1271_cmd_configure(wl, ACX_TID_CFG, acx, sizeof(*acx));
892 kfree(acx);
898 struct acx_frag_threshold *acx;
908 wl1271_debug(DEBUG_ACX, "acx frag threshold: %d", frag_threshold);
910 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
912 if (!acx) {
917 acx->frag_threshold = cpu_to_le16((u16)frag_threshold);
918 ret = wl1271_cmd_configure(wl, ACX_FRAG_CFG, acx, sizeof(*acx));
925 kfree(acx);
931 struct acx_tx_config_options *acx;
934 wl1271_debug(DEBUG_ACX, "acx tx config options");
936 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
938 if (!acx) {
943 acx->tx_compl_timeout = cpu_to_le16(wl->conf.tx.tx_compl_timeout);
944 acx->tx_compl_threshold = cpu_to_le16(wl->conf.tx.tx_compl_threshold);
945 ret = wl1271_cmd_configure(wl, ACX_TX_CONFIG_OPT, acx, sizeof(*acx));
952 kfree(acx);
1061 struct wl1271_acx_bet_enable *acx = NULL;
1064 wl1271_debug(DEBUG_ACX, "acx bet enable");
1069 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1070 if (!acx) {
1075 acx->role_id = wlvif->role_id;
1076 acx->enable = enable ? CONF_BET_MODE_ENABLE : CONF_BET_MODE_DISABLE;
1077 acx->max_consecutive = wl->conf.conn.bet_max_consecutive;
1079 ret = wl1271_cmd_configure(wl, ACX_BET_ENABLE, acx, sizeof(*acx));
1081 wl1271_warning("acx bet enable failed: %d", ret);
1086 kfree(acx);
1093 struct wl1271_acx_arp_filter *acx;
1096 wl1271_debug(DEBUG_ACX, "acx arp ip filter, enable: %d", enable);
1098 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1099 if (!acx) {
1104 acx->role_id = wlvif->role_id;
1105 acx->version = ACX_IPV4_VERSION;
1106 acx->enable = enable;
1109 memcpy(acx->address, &address, ACX_IPV4_ADDR_SIZE);
1112 acx, sizeof(*acx));
1119 kfree(acx);
1125 struct wl1271_acx_pm_config *acx = NULL;
1129 wl1271_debug(DEBUG_ACX, "acx pm config");
1131 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1132 if (!acx) {
1137 acx->host_clk_settling_time = cpu_to_le32(c->host_clk_settling_time);
1138 acx->host_fast_wakeup_support = c->host_fast_wakeup_support;
1140 ret = wl1271_cmd_configure(wl, ACX_PM_CONFIG, acx, sizeof(*acx));
1142 wl1271_warning("acx pm config failed: %d", ret);
1147 kfree(acx);
1155 struct wl1271_acx_keep_alive_mode *acx = NULL;
1158 wl1271_debug(DEBUG_ACX, "acx keep alive mode: %d", enable);
1160 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1161 if (!acx) {
1166 acx->role_id = wlvif->role_id;
1167 acx->enabled = enable;
1169 ret = wl1271_cmd_configure(wl, ACX_KEEP_ALIVE_MODE, acx, sizeof(*acx));
1171 wl1271_warning("acx keep alive mode failed: %d", ret);
1176 kfree(acx);
1183 struct wl1271_acx_keep_alive_config *acx = NULL;
1186 wl1271_debug(DEBUG_ACX, "acx keep alive config");
1188 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1189 if (!acx) {
1194 acx->role_id = wlvif->role_id;
1195 acx->period = cpu_to_le32(wl->conf.conn.keep_alive_interval);
1196 acx->index = index;
1197 acx->tpl_validation = tpl_valid;
1198 acx->trigger = ACX_KEEP_ALIVE_NO_TX;
1201 acx, sizeof(*acx));
1203 wl1271_warning("acx keep alive config failed: %d", ret);
1208 kfree(acx);
1215 struct wl1271_acx_rssi_snr_trigger *acx = NULL;
1218 wl1271_debug(DEBUG_ACX, "acx rssi snr trigger");
1220 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1221 if (!acx) {
1228 acx->role_id = wlvif->role_id;
1229 acx->pacing = cpu_to_le16(wl->conf.roam_trigger.trigger_pacing);
1230 acx->metric = WL1271_ACX_TRIG_METRIC_RSSI_BEACON;
1231 acx->type = WL1271_ACX_TRIG_TYPE_EDGE;
1233 acx->enable = WL1271_ACX_TRIG_ENABLE;
1235 acx->enable = WL1271_ACX_TRIG_DISABLE;
1237 acx->index = WL1271_ACX_TRIG_IDX_RSSI;
1238 acx->dir = WL1271_ACX_TRIG_DIR_BIDIR;
1239 acx->threshold = cpu_to_le16(thold);
1240 acx->hysteresis = hyst;
1242 ret = wl1271_cmd_configure(wl, ACX_RSSI_SNR_TRIGGER, acx, sizeof(*acx));
1244 wl1271_warning("acx rssi snr trigger setting failed: %d", ret);
1249 kfree(acx);
1256 struct wl1271_acx_rssi_snr_avg_weights *acx = NULL;
1260 wl1271_debug(DEBUG_ACX, "acx rssi snr avg weights");
1262 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1263 if (!acx) {
1268 acx->role_id = wlvif->role_id;
1269 acx->rssi_beacon = c->avg_weight_rssi_beacon;
1270 acx->rssi_data = c->avg_weight_rssi_data;
1271 acx->snr_beacon = c->avg_weight_snr_beacon;
1272 acx->snr_data = c->avg_weight_snr_data;
1274 ret = wl1271_cmd_configure(wl, ACX_RSSI_SNR_WEIGHTS, acx, sizeof(*acx));
1276 wl1271_warning("acx rssi snr trigger weights failed: %d", ret);
1281 kfree(acx);
1289 struct wl1271_acx_ht_capabilities *acx;
1293 wl1271_debug(DEBUG_ACX, "acx ht capabilities setting "
1297 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1298 if (!acx) {
1314 acx->ampdu_max_length = ht_cap->ampdu_factor;
1315 acx->ampdu_min_spacing = ht_cap->ampdu_density;
1318 acx->hlid = hlid;
1319 acx->ht_capabilites = cpu_to_le32(ht_capabilites);
1321 ret = wl1271_cmd_configure(wl, ACX_PEER_HT_CAP, acx, sizeof(*acx));
1323 wl1271_warning("acx ht capabilities setting failed: %d", ret);
1328 kfree(acx);
1338 struct wl1271_acx_ht_information *acx;
1341 wl1271_debug(DEBUG_ACX, "acx ht information setting");
1343 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1344 if (!acx) {
1349 acx->role_id = wlvif->role_id;
1350 acx->ht_protection =
1352 acx->rifs_mode = 0;
1353 acx->gf_protection =
1355 acx->ht_tx_burst_limit = 0;
1356 acx->dual_cts_protection = 0;
1358 ret = wl1271_cmd_configure(wl, ACX_HT_BSS_OPERATION, acx, sizeof(*acx));
1361 wl1271_warning("acx ht information setting failed: %d", ret);
1366 kfree(acx);
1374 struct wl1271_acx_ba_initiator_policy *acx;
1377 wl1271_debug(DEBUG_ACX, "acx ba initiator policy");
1379 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1380 if (!acx) {
1386 acx->role_id = wlvif->role_id;
1387 acx->tid_bitmap = wl->conf.ht.tx_ba_tid_bitmap;
1388 acx->win_size = wl->conf.ht.tx_ba_win_size;
1389 acx->inactivity_timeout = wl->conf.ht.inactivity_timeout;
1393 acx,
1394 sizeof(*acx));
1396 wl1271_warning("acx ba initiator policy failed: %d", ret);
1401 kfree(acx);
1410 struct wl1271_acx_ba_receiver_setup *acx;
1413 wl1271_debug(DEBUG_ACX, "acx ba receiver session setting");
1415 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1416 if (!acx) {
1421 acx->hlid = peer_hlid;
1422 acx->tid = tid_index;
1423 acx->enable = enable;
1424 acx->win_size = win_size;
1425 acx->ssn = ssn;
1427 ret = wlcore_cmd_configure_failsafe(wl, ACX_BA_SESSION_RX_SETUP, acx,
1428 sizeof(*acx),
1431 wl1271_warning("acx ba receiver session failed: %d", ret);
1444 kfree(acx);
1465 wl1271_warning("acx tsf info interrogate failed");
1484 wl1271_debug(DEBUG_ACX, "acx ps rx streaming");
1517 wl1271_warning("acx ps rx streaming failed: %d", ret);
1528 struct wl1271_acx_ap_max_tx_retry *acx = NULL;
1531 wl1271_debug(DEBUG_ACX, "acx ap max tx retry");
1533 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1534 if (!acx)
1537 acx->role_id = wlvif->role_id;
1538 acx->max_tx_retry = cpu_to_le16(wl->conf.tx.max_tx_retries);
1540 ret = wl1271_cmd_configure(wl, ACX_MAX_TX_FAILURE, acx, sizeof(*acx));
1542 wl1271_warning("acx ap max tx retry failed: %d", ret);
1547 kfree(acx);
1556 wl1271_debug(DEBUG_ACX, "acx config ps");
1572 wl1271_warning("acx config ps failed: %d", ret);
1584 struct wl1271_acx_inconnection_sta *acx = NULL;
1587 wl1271_debug(DEBUG_ACX, "acx set inconnaction sta %pM", addr);
1589 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1590 if (!acx)
1593 memcpy(acx->addr, addr, ETH_ALEN);
1594 acx->role_id = wlvif->role_id;
1597 acx, sizeof(*acx));
1599 wl1271_warning("acx set inconnaction sta failed: %d", ret);
1604 kfree(acx);
1610 struct wl1271_acx_fm_coex *acx;
1613 wl1271_debug(DEBUG_ACX, "acx fm coex setting");
1615 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1616 if (!acx) {
1621 acx->enable = wl->conf.fm_coex.enable;
1622 acx->swallow_period = wl->conf.fm_coex.swallow_period;
1623 acx->n_divider_fref_set_1 = wl->conf.fm_coex.n_divider_fref_set_1;
1624 acx->n_divider_fref_set_2 = wl->conf.fm_coex.n_divider_fref_set_2;
1625 acx->m_divider_fref_set_1 =
1627 acx->m_divider_fref_set_2 =
1629 acx->coex_pll_stabilization_time =
1631 acx->ldo_stabilization_time =
1633 acx->fm_disturbed_band_margin =
1635 acx->swallow_clk_diff = wl->conf.fm_coex.swallow_clk_diff;
1637 ret = wl1271_cmd_configure(wl, ACX_FM_COEX_CFG, acx, sizeof(*acx));
1639 wl1271_warning("acx fm coex setting failed: %d", ret);
1644 kfree(acx);
1650 struct wl12xx_acx_set_rate_mgmt_params *acx = NULL;
1654 wl1271_debug(DEBUG_ACX, "acx set rate mgmt params");
1656 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1657 if (!acx)
1660 acx->index = ACX_RATE_MGMT_ALL_PARAMS;
1661 acx->rate_retry_score = cpu_to_le16(conf->rate_retry_score);
1662 acx->per_add = cpu_to_le16(conf->per_add);
1663 acx->per_th1 = cpu_to_le16(conf->per_th1);
1664 acx->per_th2 = cpu_to_le16(conf->per_th2);
1665 acx->max_per = cpu_to_le16(conf->max_per);
1666 acx->inverse_curiosity_factor = conf->inverse_curiosity_factor;
1667 acx->tx_fail_low_th = conf->tx_fail_low_th;
1668 acx->tx_fail_high_th = conf->tx_fail_high_th;
1669 acx->per_alpha_shift = conf->per_alpha_shift;
1670 acx->per_add_shift = conf->per_add_shift;
1671 acx->per_beta1_shift = conf->per_beta1_shift;
1672 acx->per_beta2_shift = conf->per_beta2_shift;
1673 acx->rate_check_up = conf->rate_check_up;
1674 acx->rate_check_down = conf->rate_check_down;
1675 memcpy(acx->rate_retry_policy, conf->rate_retry_policy,
1676 sizeof(acx->rate_retry_policy));
1679 acx, sizeof(*acx));
1681 wl1271_warning("acx set rate mgmt params failed: %d", ret);
1686 kfree(acx);
1692 struct wl12xx_acx_config_hangover *acx;
1696 wl1271_debug(DEBUG_ACX, "acx config hangover");
1698 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1699 if (!acx) {
1704 acx->recover_time = cpu_to_le32(conf->recover_time);
1705 acx->hangover_period = conf->hangover_period;
1706 acx->dynamic_mode = conf->dynamic_mode;
1707 acx->early_termination_mode = conf->early_termination_mode;
1708 acx->max_period = conf->max_period;
1709 acx->min_period = conf->min_period;
1710 acx->increase_delta = conf->increase_delta;
1711 acx->decrease_delta = conf->decrease_delta;
1712 acx->quiet_time = conf->quiet_time;
1713 acx->increase_time = conf->increase_time;
1714 acx->window_size = conf->window_size;
1716 ret = wl1271_cmd_configure(wl, ACX_CONFIG_HANGOVER, acx,
1717 sizeof(*acx));
1720 wl1271_warning("acx config hangover failed: %d", ret);
1725 kfree(acx);
1733 struct acx_roaming_stats *acx;
1736 wl1271_debug(DEBUG_ACX, "acx roaming statistics");
1738 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1739 if (!acx) {
1744 acx->role_id = wlvif->role_id;
1746 acx, sizeof(*acx), sizeof(*acx));
1748 wl1271_warning("acx roaming statistics failed: %d", ret);
1753 *avg_rssi = acx->rssi_beacon;
1755 kfree(acx);
1764 struct acx_default_rx_filter *acx;
1767 wl1271_debug(DEBUG_ACX, "acx default rx filter en: %d act: %d",
1770 acx = kzalloc(sizeof(*acx), GFP_KERNEL);
1771 if (!acx)
1774 acx->enable = enable;
1775 acx->default_action = action;
1777 ret = wl1271_cmd_configure(wl, ACX_ENABLE_RX_DATA_FILTER, acx,
1778 sizeof(*acx));
1780 wl1271_warning("acx default rx filter enable failed: %d", ret);
1785 kfree(acx);
1793 struct acx_rx_filter_cfg *acx;
1802 "acx set rx filter idx: %d enable: %d filter: %p",
1812 acx_size = ALIGN(sizeof(*acx) + fields_size, 4);
1813 acx = kzalloc(acx_size, GFP_KERNEL);
1815 if (!acx)
1818 acx->enable = enable;
1819 acx->index = index;
1822 acx->num_fields = filter->num_fields;
1823 acx->action = filter->action;
1824 wl1271_rx_filter_flatten_fields(filter, acx->fields);
1827 wl1271_dump(DEBUG_ACX, "RX_FILTER: ", acx, acx_size);
1829 ret = wl1271_cmd_configure(wl, ACX_SET_RX_DATA_FILTER, acx, acx_size);
1836 kfree(acx);