iwlwifi: mvm: check for d0i3 fw capability
Check for both cfg->d0i3 and fw d0i3 support in order to enable d0i3 support. Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
660925371b
commit
7bb426ea36
3 changed files with 17 additions and 3 deletions
|
@ -125,6 +125,14 @@ enum iwl_ucode_tlv_flag {
|
||||||
IWL_UCODE_TLV_FLAGS_GO_UAPSD = BIT(30),
|
IWL_UCODE_TLV_FLAGS_GO_UAPSD = BIT(30),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum iwl_ucode_tlv_capa - ucode capabilities
|
||||||
|
* @IWL_UCODE_TLV_CAPA_D0I3_SUPPORT: supports D0i3
|
||||||
|
*/
|
||||||
|
enum iwl_ucode_tlv_capa {
|
||||||
|
IWL_UCODE_TLV_CAPA_D0I3_SUPPORT = BIT(0),
|
||||||
|
};
|
||||||
|
|
||||||
/* The default calibrate table size if not specified by firmware file */
|
/* The default calibrate table size if not specified by firmware file */
|
||||||
#define IWL_DEFAULT_STANDARD_PHY_CALIBRATE_TBL_SIZE 18
|
#define IWL_DEFAULT_STANDARD_PHY_CALIBRATE_TBL_SIZE 18
|
||||||
#define IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE 19
|
#define IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE 19
|
||||||
|
|
|
@ -205,7 +205,7 @@ static const struct iwl_fw_bcast_filter iwl_mvm_default_bcast_filters[] = {
|
||||||
|
|
||||||
void iwl_mvm_ref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type)
|
void iwl_mvm_ref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type)
|
||||||
{
|
{
|
||||||
if (!mvm->trans->cfg->d0i3)
|
if (!iwl_mvm_is_d0i3_supported(mvm))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
IWL_DEBUG_RPM(mvm, "Take mvm reference - type %d\n", ref_type);
|
IWL_DEBUG_RPM(mvm, "Take mvm reference - type %d\n", ref_type);
|
||||||
|
@ -215,7 +215,7 @@ void iwl_mvm_ref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type)
|
||||||
|
|
||||||
void iwl_mvm_unref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type)
|
void iwl_mvm_unref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type)
|
||||||
{
|
{
|
||||||
if (!mvm->trans->cfg->d0i3)
|
if (!iwl_mvm_is_d0i3_supported(mvm))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
IWL_DEBUG_RPM(mvm, "Leave mvm reference - type %d\n", ref_type);
|
IWL_DEBUG_RPM(mvm, "Leave mvm reference - type %d\n", ref_type);
|
||||||
|
@ -228,7 +228,7 @@ iwl_mvm_unref_all_except(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!mvm->trans->cfg->d0i3)
|
if (!iwl_mvm_is_d0i3_supported(mvm))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for_each_set_bit(i, mvm->ref_bitmap, IWL_MVM_REF_COUNT) {
|
for_each_set_bit(i, mvm->ref_bitmap, IWL_MVM_REF_COUNT) {
|
||||||
|
|
|
@ -656,6 +656,12 @@ iwl_mvm_sta_from_staid_protected(struct iwl_mvm *mvm, u8 sta_id)
|
||||||
return iwl_mvm_sta_from_mac80211(sta);
|
return iwl_mvm_sta_from_mac80211(sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool iwl_mvm_is_d0i3_supported(struct iwl_mvm *mvm)
|
||||||
|
{
|
||||||
|
return mvm->trans->cfg->d0i3 &&
|
||||||
|
(mvm->fw->ucode_capa.capa[0] & IWL_UCODE_TLV_CAPA_D0I3_SUPPORT);
|
||||||
|
}
|
||||||
|
|
||||||
extern const u8 iwl_mvm_ac_to_tx_fifo[];
|
extern const u8 iwl_mvm_ac_to_tx_fifo[];
|
||||||
|
|
||||||
struct iwl_rate_info {
|
struct iwl_rate_info {
|
||||||
|
|
Loading…
Add table
Reference in a new issue