Commit 54708d8d authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

iwlwifi: remove SKU from config



There's no SKU override, we always just use
it from EEPROM. As such, we can remove it
from the config and use it in hw_param only.
Since iwl_eeprom_check_sku() really needs
to fill it in also rename that to
iwl_eeprom_init_hw_params().

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent a8bceb39
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ int iwlagn_txfifo_flush(struct iwl_priv *priv, u16 flush_control)
				IWL_PAN_SCD_BK_MSK | IWL_PAN_SCD_MGMT_MSK |
				IWL_PAN_SCD_MULTICAST_MSK;

	if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE)
	if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE)
		flush_cmd.fifo_control |= IWL_AGG_TX_QUEUE_MSK;

	IWL_DEBUG_INFO(priv, "fifo queue control: 0X%x\n",
+2 −3
Original line number Diff line number Diff line
@@ -1124,13 +1124,12 @@ static void iwl_set_hw_params(struct iwl_priv *priv)
			get_order(IWL_RX_BUF_SIZE_4K);

	if (iwlagn_mod_params.disable_11n & IWL_DISABLE_HT_ALL)
		cfg(priv)->sku &= ~EEPROM_SKU_CAP_11N_ENABLE;
		hw_params(priv).sku &= ~EEPROM_SKU_CAP_11N_ENABLE;

	hw_params(priv).num_ampdu_queues =
		cfg(priv)->base_params->num_of_ampdu_queues;
	hw_params(priv).shadow_reg_enable =
		cfg(priv)->base_params->shadow_reg_enable;
	hw_params(priv).sku = cfg(priv)->sku;
	hw_params(priv).wd_timeout = cfg(priv)->base_params->wd_timeout;

	/* Device-specific setup */
@@ -1257,7 +1256,7 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans)
	if (err)
		goto out_free_eeprom;

	err = iwl_eeprom_check_sku(priv);
	err = iwl_eeprom_init_hw_params(priv);
	if (err)
		goto out_free_eeprom;

+4 −4
Original line number Diff line number Diff line
@@ -137,7 +137,7 @@ int iwl_init_geos(struct iwl_priv *priv)
	sband->bitrates = &rates[IWL_FIRST_OFDM_RATE];
	sband->n_bitrates = IWL_RATE_COUNT_LEGACY - IWL_FIRST_OFDM_RATE;

	if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE)
	if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE)
		iwl_init_ht_hw_capab(priv, &sband->ht_cap,
					 IEEE80211_BAND_5GHZ);

@@ -147,7 +147,7 @@ int iwl_init_geos(struct iwl_priv *priv)
	sband->bitrates = rates;
	sband->n_bitrates = IWL_RATE_COUNT_LEGACY;

	if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE)
	if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE)
		iwl_init_ht_hw_capab(priv, &sband->ht_cap,
					 IEEE80211_BAND_2GHZ);

@@ -202,11 +202,11 @@ int iwl_init_geos(struct iwl_priv *priv)
	priv->tx_power_next = max_tx_power;

	if ((priv->bands[IEEE80211_BAND_5GHZ].n_channels == 0) &&
	     cfg(priv)->sku & EEPROM_SKU_CAP_BAND_52GHZ) {
	     hw_params(priv).sku & EEPROM_SKU_CAP_BAND_52GHZ) {
		IWL_INFO(priv, "Incorrectly detected BG card as ABG. "
			"Please send your %s to maintainer.\n",
			trans(priv)->hw_id_str);
		cfg(priv)->sku &= ~EEPROM_SKU_CAP_BAND_52GHZ;
		hw_params(priv).sku &= ~EEPROM_SKU_CAP_BAND_52GHZ;
	}

	IWL_INFO(priv, "Tunable channels: %d 802.11bg, %d 802.11a channels\n",
+9 −11
Original line number Diff line number Diff line
@@ -252,26 +252,24 @@ int iwl_eeprom_check_version(struct iwl_priv *priv)

}

int iwl_eeprom_check_sku(struct iwl_priv *priv)
int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
{
	struct iwl_shared *shrd = priv->shrd;
	u16 radio_cfg;

	if (!cfg(priv)->sku) {
		/* not using sku overwrite */
		cfg(priv)->sku = iwl_eeprom_query16(shrd, EEPROM_SKU_CAP);
		if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE &&
	hw_params(priv).sku = iwl_eeprom_query16(shrd, EEPROM_SKU_CAP);
	if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE &&
	    !cfg(priv)->ht_params) {
		IWL_ERR(priv, "Invalid 11n configuration\n");
		return -EINVAL;
	}
	}
	if (!cfg(priv)->sku) {

	if (!hw_params(priv).sku) {
		IWL_ERR(priv, "Invalid device sku\n");
		return -EINVAL;
	}

	IWL_INFO(priv, "Device SKU: 0x%X\n", cfg(priv)->sku);
	IWL_INFO(priv, "Device SKU: 0x%X\n", hw_params(priv).sku);

	if (!cfg(priv)->valid_tx_ant && !cfg(priv)->valid_rx_ant) {
		/* not using .cfg overwrite */
+1 −1
Original line number Diff line number Diff line
@@ -309,7 +309,7 @@ struct iwl_eeprom_ops {
int iwl_eeprom_init(struct iwl_trans *trans, u32 hw_rev);
void iwl_eeprom_free(struct iwl_shared *shrd);
int  iwl_eeprom_check_version(struct iwl_priv *priv);
int  iwl_eeprom_check_sku(struct iwl_priv *priv);
int iwl_eeprom_init_hw_params(struct iwl_priv *priv);
const u8 *iwl_eeprom_query_addr(const struct iwl_shared *shrd, size_t offset);
u16 iwl_eeprom_query16(const struct iwl_shared *shrd, size_t offset);
int iwl_init_channel_map(struct iwl_priv *priv);
Loading