mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-07 07:08:07 +00:00
iwlwifi: support api ver2 of NVM_GET_INFO resp
NVM_GET_INFO API has changed to support indication of 11ax support. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
2c2b4bbc5d
commit
4ae80f6c8d
3 changed files with 38 additions and 19 deletions
|
@ -189,23 +189,37 @@ struct iwl_nvm_get_info_general {
|
||||||
u8 reserved;
|
u8 reserved;
|
||||||
} __packed; /* GRP_REGULATORY_NVM_GET_INFO_GENERAL_S_VER_1 */
|
} __packed; /* GRP_REGULATORY_NVM_GET_INFO_GENERAL_S_VER_1 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum iwl_nvm_mac_sku_flags - flags in &iwl_nvm_get_info_sku
|
||||||
|
* @NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED: true if 2.4 band enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED: true if 5.2 band enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_802_11N_ENABLED: true if 11n enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_802_11AC_ENABLED: true if 11ac enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_802_11AX_ENABLED: true if 11ax enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_MIMO_DISABLED: true if MIMO disabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_WAPI_ENABLED: true if WAPI enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_REG_CHECK_ENABLED: true if regulatory checker enabled
|
||||||
|
* @NVM_MAC_SKU_FLAGS_API_LOCK_ENABLED: true if API lock enabled
|
||||||
|
*/
|
||||||
|
enum iwl_nvm_mac_sku_flags {
|
||||||
|
NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED = BIT(0),
|
||||||
|
NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED = BIT(1),
|
||||||
|
NVM_MAC_SKU_FLAGS_802_11N_ENABLED = BIT(2),
|
||||||
|
NVM_MAC_SKU_FLAGS_802_11AC_ENABLED = BIT(3),
|
||||||
|
NVM_MAC_SKU_FLAGS_802_11AX_ENABLED = BIT(4),
|
||||||
|
NVM_MAC_SKU_FLAGS_MIMO_DISABLED = BIT(5),
|
||||||
|
NVM_MAC_SKU_FLAGS_WAPI_ENABLED = BIT(8),
|
||||||
|
NVM_MAC_SKU_FLAGS_REG_CHECK_ENABLED = BIT(14),
|
||||||
|
NVM_MAC_SKU_FLAGS_API_LOCK_ENABLED = BIT(15),
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct iwl_nvm_get_info_sku - mac information
|
* struct iwl_nvm_get_info_sku - mac information
|
||||||
* @enable_24g: band 2.4G enabled
|
* @mac_sku_flags: flags for SKU, see &enum iwl_nvm_mac_sku_flags
|
||||||
* @enable_5g: band 5G enabled
|
|
||||||
* @enable_11n: 11n enabled
|
|
||||||
* @enable_11ac: 11ac enabled
|
|
||||||
* @mimo_disable: MIMO enabled
|
|
||||||
* @ext_crypto: Extended crypto enabled
|
|
||||||
*/
|
*/
|
||||||
struct iwl_nvm_get_info_sku {
|
struct iwl_nvm_get_info_sku {
|
||||||
__le32 enable_24g;
|
__le32 mac_sku_flags;
|
||||||
__le32 enable_5g;
|
} __packed; /* REGULATORY_NVM_GET_INFO_MAC_SKU_SECTION_S_VER_2 */
|
||||||
__le32 enable_11n;
|
|
||||||
__le32 enable_11ac;
|
|
||||||
__le32 mimo_disable;
|
|
||||||
__le32 ext_crypto;
|
|
||||||
} __packed; /* GRP_REGULATORY_NVM_GET_INFO_MAC_SKU_SECTION_S_VER_1 */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct iwl_nvm_get_info_phy - phy information
|
* struct iwl_nvm_get_info_phy - phy information
|
||||||
|
@ -243,7 +257,7 @@ struct iwl_nvm_get_info_rsp {
|
||||||
struct iwl_nvm_get_info_sku mac_sku;
|
struct iwl_nvm_get_info_sku mac_sku;
|
||||||
struct iwl_nvm_get_info_phy phy_sku;
|
struct iwl_nvm_get_info_phy phy_sku;
|
||||||
struct iwl_nvm_get_info_regulatory regulatory;
|
struct iwl_nvm_get_info_regulatory regulatory;
|
||||||
} __packed; /* GRP_REGULATORY_NVM_GET_INFO_CMD_RSP_S_VER_1 */
|
} __packed; /* GRP_REGULATORY_NVM_GET_INFO_CMD_RSP_S_VER_2 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct iwl_nvm_access_complete_cmd - NVM_ACCESS commands are completed
|
* struct iwl_nvm_access_complete_cmd - NVM_ACCESS commands are completed
|
||||||
|
|
|
@ -86,6 +86,7 @@ struct iwl_nvm_data *iwl_fw_get_nvm(struct iwl_fw_runtime *fwrt)
|
||||||
bool lar_fw_supported = !iwlwifi_mod_params.lar_disable &&
|
bool lar_fw_supported = !iwlwifi_mod_params.lar_disable &&
|
||||||
fw_has_capa(&fwrt->fw->ucode_capa,
|
fw_has_capa(&fwrt->fw->ucode_capa,
|
||||||
IWL_UCODE_TLV_CAPA_LAR_SUPPORT);
|
IWL_UCODE_TLV_CAPA_LAR_SUPPORT);
|
||||||
|
u32 mac_flags;
|
||||||
|
|
||||||
ret = iwl_trans_send_cmd(trans, &hcmd);
|
ret = iwl_trans_send_cmd(trans, &hcmd);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -125,16 +126,19 @@ struct iwl_nvm_data *iwl_fw_get_nvm(struct iwl_fw_runtime *fwrt)
|
||||||
nvm->nvm_version = le16_to_cpu(rsp->general.nvm_version);
|
nvm->nvm_version = le16_to_cpu(rsp->general.nvm_version);
|
||||||
|
|
||||||
/* Initialize MAC sku data */
|
/* Initialize MAC sku data */
|
||||||
|
mac_flags = le32_to_cpu(rsp->mac_sku.mac_sku_flags);
|
||||||
nvm->sku_cap_11ac_enable =
|
nvm->sku_cap_11ac_enable =
|
||||||
le32_to_cpu(rsp->mac_sku.enable_11ac);
|
!!(mac_flags & NVM_MAC_SKU_FLAGS_802_11AC_ENABLED);
|
||||||
nvm->sku_cap_11n_enable =
|
nvm->sku_cap_11n_enable =
|
||||||
le32_to_cpu(rsp->mac_sku.enable_11n);
|
!!(mac_flags & NVM_MAC_SKU_FLAGS_802_11N_ENABLED);
|
||||||
|
nvm->sku_cap_11ax_enable =
|
||||||
|
!!(mac_flags & NVM_MAC_SKU_FLAGS_802_11AX_ENABLED);
|
||||||
nvm->sku_cap_band_24GHz_enable =
|
nvm->sku_cap_band_24GHz_enable =
|
||||||
le32_to_cpu(rsp->mac_sku.enable_24g);
|
!!(mac_flags & NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED);
|
||||||
nvm->sku_cap_band_52GHz_enable =
|
nvm->sku_cap_band_52GHz_enable =
|
||||||
le32_to_cpu(rsp->mac_sku.enable_5g);
|
!!(mac_flags & NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED);
|
||||||
nvm->sku_cap_mimo_disabled =
|
nvm->sku_cap_mimo_disabled =
|
||||||
le32_to_cpu(rsp->mac_sku.mimo_disable);
|
!!(mac_flags & NVM_MAC_SKU_FLAGS_MIMO_DISABLED);
|
||||||
|
|
||||||
/* Initialize PHY sku data */
|
/* Initialize PHY sku data */
|
||||||
nvm->valid_tx_ant = (u8)le32_to_cpu(rsp->phy_sku.tx_chains);
|
nvm->valid_tx_ant = (u8)le32_to_cpu(rsp->phy_sku.tx_chains);
|
||||||
|
|
|
@ -85,6 +85,7 @@ struct iwl_nvm_data {
|
||||||
bool sku_cap_band_52GHz_enable;
|
bool sku_cap_band_52GHz_enable;
|
||||||
bool sku_cap_11n_enable;
|
bool sku_cap_11n_enable;
|
||||||
bool sku_cap_11ac_enable;
|
bool sku_cap_11ac_enable;
|
||||||
|
bool sku_cap_11ax_enable;
|
||||||
bool sku_cap_amt_enable;
|
bool sku_cap_amt_enable;
|
||||||
bool sku_cap_ipan_enable;
|
bool sku_cap_ipan_enable;
|
||||||
bool sku_cap_mimo_disabled;
|
bool sku_cap_mimo_disabled;
|
||||||
|
|
Loading…
Add table
Reference in a new issue