mvm.h (6c2d49fdc5d947c5fe89935bd52e69f10000f4cb) mvm.h (ecaf71de414345c68a05c403d33dd0cd89b2c85f)
1/******************************************************************************
2 *
3 * This file is provided under a dual BSD/GPLv2 license. When using or
4 * redistributing this file, you may do so under either license.
5 *
6 * GPL LICENSE SUMMARY
7 *
8 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.

--- 958 unchanged lines hidden (view full) ---

967
968#ifdef CONFIG_NL80211_TESTMODE
969 u32 noa_duration;
970 struct ieee80211_vif *noa_vif;
971#endif
972
973 /* Tx queues */
974 u16 aux_queue;
1/******************************************************************************
2 *
3 * This file is provided under a dual BSD/GPLv2 license. When using or
4 * redistributing this file, you may do so under either license.
5 *
6 * GPL LICENSE SUMMARY
7 *
8 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.

--- 958 unchanged lines hidden (view full) ---

967
968#ifdef CONFIG_NL80211_TESTMODE
969 u32 noa_duration;
970 struct ieee80211_vif *noa_vif;
971#endif
972
973 /* Tx queues */
974 u16 aux_queue;
975 u16 snif_queue;
976 u16 probe_queue;
977 u16 p2p_dev_queue;
978
979 /* Indicate if device power save is allowed */
980 u8 ps_disabled; /* u8 instead of bool to ease debugfs_create_* usage */
981 unsigned int max_amsdu_len; /* used for debugfs only */
982
983 struct ieee80211_vif __rcu *csa_vif;

--- 72 unchanged lines hidden (view full) ---

1056 * @IWL_MVM_STATUS_HW_CTKILL: CT-kill is active
1057 * @IWL_MVM_STATUS_ROC_RUNNING: remain-on-channel is running
1058 * @IWL_MVM_STATUS_HW_RESTART_REQUESTED: HW restart was requested
1059 * @IWL_MVM_STATUS_IN_HW_RESTART: HW restart is active
1060 * @IWL_MVM_STATUS_IN_D0I3: NIC is in D0i3
1061 * @IWL_MVM_STATUS_ROC_AUX_RUNNING: AUX remain-on-channel is running
1062 * @IWL_MVM_STATUS_D3_RECONFIG: D3 reconfiguration is being done
1063 * @IWL_MVM_STATUS_FIRMWARE_RUNNING: firmware is running
975 u16 probe_queue;
976 u16 p2p_dev_queue;
977
978 /* Indicate if device power save is allowed */
979 u8 ps_disabled; /* u8 instead of bool to ease debugfs_create_* usage */
980 unsigned int max_amsdu_len; /* used for debugfs only */
981
982 struct ieee80211_vif __rcu *csa_vif;

--- 72 unchanged lines hidden (view full) ---

1055 * @IWL_MVM_STATUS_HW_CTKILL: CT-kill is active
1056 * @IWL_MVM_STATUS_ROC_RUNNING: remain-on-channel is running
1057 * @IWL_MVM_STATUS_HW_RESTART_REQUESTED: HW restart was requested
1058 * @IWL_MVM_STATUS_IN_HW_RESTART: HW restart is active
1059 * @IWL_MVM_STATUS_IN_D0I3: NIC is in D0i3
1060 * @IWL_MVM_STATUS_ROC_AUX_RUNNING: AUX remain-on-channel is running
1061 * @IWL_MVM_STATUS_D3_RECONFIG: D3 reconfiguration is being done
1062 * @IWL_MVM_STATUS_FIRMWARE_RUNNING: firmware is running
1064 * @IWL_MVM_STATUS_NEED_FLUSH_P2P: need to flush P2P bcast STA
1065 */
1066enum iwl_mvm_status {
1067 IWL_MVM_STATUS_HW_RFKILL,
1068 IWL_MVM_STATUS_HW_CTKILL,
1069 IWL_MVM_STATUS_ROC_RUNNING,
1070 IWL_MVM_STATUS_HW_RESTART_REQUESTED,
1071 IWL_MVM_STATUS_IN_HW_RESTART,
1072 IWL_MVM_STATUS_IN_D0I3,
1073 IWL_MVM_STATUS_ROC_AUX_RUNNING,
1074 IWL_MVM_STATUS_D3_RECONFIG,
1075 IWL_MVM_STATUS_FIRMWARE_RUNNING,
1063 */
1064enum iwl_mvm_status {
1065 IWL_MVM_STATUS_HW_RFKILL,
1066 IWL_MVM_STATUS_HW_CTKILL,
1067 IWL_MVM_STATUS_ROC_RUNNING,
1068 IWL_MVM_STATUS_HW_RESTART_REQUESTED,
1069 IWL_MVM_STATUS_IN_HW_RESTART,
1070 IWL_MVM_STATUS_IN_D0I3,
1071 IWL_MVM_STATUS_ROC_AUX_RUNNING,
1072 IWL_MVM_STATUS_D3_RECONFIG,
1073 IWL_MVM_STATUS_FIRMWARE_RUNNING,
1076 IWL_MVM_STATUS_NEED_FLUSH_P2P,
1077};
1078
1079/* Keep track of completed init configuration */
1080enum iwl_mvm_init_status {
1081 IWL_MVM_INIT_STATUS_THERMAL_INIT_COMPLETE = BIT(0),
1082 IWL_MVM_INIT_STATUS_LEDS_INIT_COMPLETE = BIT(1),
1083 IWL_MVM_INIT_STATUS_REG_HW_INIT_COMPLETE = BIT(2),
1084 IWL_MVM_INIT_STATUS_TOF_INIT_COMPLETE = BIT(3),

--- 158 unchanged lines hidden (view full) ---

1243{
1244 /* TODO - replace with TLV once defined */
1245 return mvm->trans->cfg->use_tfh;
1246}
1247
1248static inline bool iwl_mvm_has_unified_ucode(struct iwl_mvm *mvm)
1249{
1250 /* TODO - better define this */
1074};
1075
1076/* Keep track of completed init configuration */
1077enum iwl_mvm_init_status {
1078 IWL_MVM_INIT_STATUS_THERMAL_INIT_COMPLETE = BIT(0),
1079 IWL_MVM_INIT_STATUS_LEDS_INIT_COMPLETE = BIT(1),
1080 IWL_MVM_INIT_STATUS_REG_HW_INIT_COMPLETE = BIT(2),
1081 IWL_MVM_INIT_STATUS_TOF_INIT_COMPLETE = BIT(3),

--- 158 unchanged lines hidden (view full) ---

1240{
1241 /* TODO - replace with TLV once defined */
1242 return mvm->trans->cfg->use_tfh;
1243}
1244
1245static inline bool iwl_mvm_has_unified_ucode(struct iwl_mvm *mvm)
1246{
1247 /* TODO - better define this */
1251 return mvm->trans->cfg->device_family >= IWL_DEVICE_FAMILY_A000;
1248 return mvm->trans->cfg->device_family >= IWL_DEVICE_FAMILY_22000;
1252}
1253
1254static inline bool iwl_mvm_is_cdb_supported(struct iwl_mvm *mvm)
1255{
1256 /*
1257 * TODO:
1258 * The issue of how to determine CDB APIs and usage is still not fully
1259 * defined.

--- 7 unchanged lines hidden (view full) ---

1267}
1268
1269static inline bool iwl_mvm_has_new_rx_stats_api(struct iwl_mvm *mvm)
1270{
1271 return fw_has_api(&mvm->fw->ucode_capa,
1272 IWL_UCODE_TLV_API_NEW_RX_STATS);
1273}
1274
1249}
1250
1251static inline bool iwl_mvm_is_cdb_supported(struct iwl_mvm *mvm)
1252{
1253 /*
1254 * TODO:
1255 * The issue of how to determine CDB APIs and usage is still not fully
1256 * defined.

--- 7 unchanged lines hidden (view full) ---

1264}
1265
1266static inline bool iwl_mvm_has_new_rx_stats_api(struct iwl_mvm *mvm)
1267{
1268 return fw_has_api(&mvm->fw->ucode_capa,
1269 IWL_UCODE_TLV_API_NEW_RX_STATS);
1270}
1271
1275static inline bool iwl_mvm_has_new_ats_coex_api(struct iwl_mvm *mvm)
1276{
1277 return fw_has_api(&mvm->fw->ucode_capa,
1278 IWL_UCODE_TLV_API_COEX_ATS_EXTERNAL);
1279}
1280
1281static inline bool iwl_mvm_has_quota_low_latency(struct iwl_mvm *mvm)
1282{
1283 return fw_has_api(&mvm->fw->ucode_capa,
1284 IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY);
1285}
1286
1287static inline struct agg_tx_status *
1288iwl_mvm_get_agg_status(struct iwl_mvm *mvm, void *tx_resp)

--- 308 unchanged lines hidden (view full) ---

1597}
1598#endif /* CONFIG_IWLWIFI_DEBUGFS */
1599
1600/* rate scaling */
1601int iwl_mvm_send_lq_cmd(struct iwl_mvm *mvm, struct iwl_lq_cmd *lq, bool init);
1602void iwl_mvm_update_frame_stats(struct iwl_mvm *mvm, u32 rate, bool agg);
1603int rs_pretty_print_rate(char *buf, const u32 rate);
1604void rs_update_last_rssi(struct iwl_mvm *mvm,
1272static inline bool iwl_mvm_has_quota_low_latency(struct iwl_mvm *mvm)
1273{
1274 return fw_has_api(&mvm->fw->ucode_capa,
1275 IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY);
1276}
1277
1278static inline struct agg_tx_status *
1279iwl_mvm_get_agg_status(struct iwl_mvm *mvm, void *tx_resp)

--- 308 unchanged lines hidden (view full) ---

1588}
1589#endif /* CONFIG_IWLWIFI_DEBUGFS */
1590
1591/* rate scaling */
1592int iwl_mvm_send_lq_cmd(struct iwl_mvm *mvm, struct iwl_lq_cmd *lq, bool init);
1593void iwl_mvm_update_frame_stats(struct iwl_mvm *mvm, u32 rate, bool agg);
1594int rs_pretty_print_rate(char *buf, const u32 rate);
1595void rs_update_last_rssi(struct iwl_mvm *mvm,
1605 struct iwl_lq_sta *lq_sta,
1596 struct iwl_mvm_sta *mvmsta,
1606 struct ieee80211_rx_status *rx_status);
1607
1608/* power management */
1609int iwl_mvm_power_update_device(struct iwl_mvm *mvm);
1610int iwl_mvm_power_update_mac(struct iwl_mvm *mvm);
1611int iwl_mvm_power_update_ps(struct iwl_mvm *mvm);
1612int iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1613 char *buf, int bufsz);

--- 273 unchanged lines hidden ---
1597 struct ieee80211_rx_status *rx_status);
1598
1599/* power management */
1600int iwl_mvm_power_update_device(struct iwl_mvm *mvm);
1601int iwl_mvm_power_update_mac(struct iwl_mvm *mvm);
1602int iwl_mvm_power_update_ps(struct iwl_mvm *mvm);
1603int iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1604 char *buf, int bufsz);

--- 273 unchanged lines hidden ---