|
@@ -451,28 +451,6 @@ static void iwlcore_init_ht_hw_capab(const struct iwl_priv *priv,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void iwlcore_init_hw_rates(struct iwl_priv *priv,
|
|
|
- struct ieee80211_rate *rates)
|
|
|
-{
|
|
|
- int i;
|
|
|
-
|
|
|
- for (i = 0; i < IWL_RATE_COUNT_LEGACY; i++) {
|
|
|
- rates[i].bitrate = iwl_rates[i].ieee * 5;
|
|
|
- rates[i].hw_value = i; /* Rate scaling will work on indexes */
|
|
|
- rates[i].hw_value_short = i;
|
|
|
- rates[i].flags = 0;
|
|
|
- if ((i >= IWL_FIRST_CCK_RATE) && (i <= IWL_LAST_CCK_RATE)) {
|
|
|
- /*
|
|
|
- * If CCK != 1M then set short preamble rate flag.
|
|
|
- */
|
|
|
- rates[i].flags |=
|
|
|
- (iwl_rates[i].plcp == IWL_RATE_1M_PLCP) ?
|
|
|
- 0 : IEEE80211_RATE_SHORT_PREAMBLE;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* iwlcore_init_geos - Initialize mac80211's geo/channel info based from eeprom
|
|
|
*/
|
|
@@ -1571,68 +1549,6 @@ int iwl_set_hw_params(struct iwl_priv *priv)
|
|
|
}
|
|
|
EXPORT_SYMBOL(iwl_set_hw_params);
|
|
|
|
|
|
-int iwl_init_drv(struct iwl_priv *priv)
|
|
|
-{
|
|
|
- int ret;
|
|
|
-
|
|
|
- priv->ibss_beacon = NULL;
|
|
|
-
|
|
|
- spin_lock_init(&priv->lock);
|
|
|
- spin_lock_init(&priv->sta_lock);
|
|
|
- spin_lock_init(&priv->hcmd_lock);
|
|
|
-
|
|
|
- INIT_LIST_HEAD(&priv->free_frames);
|
|
|
-
|
|
|
- mutex_init(&priv->mutex);
|
|
|
-
|
|
|
- /* Clear the driver's (not device's) station table */
|
|
|
- iwl_clear_stations_table(priv);
|
|
|
-
|
|
|
- priv->ieee_channels = NULL;
|
|
|
- priv->ieee_rates = NULL;
|
|
|
- priv->band = IEEE80211_BAND_2GHZ;
|
|
|
-
|
|
|
- priv->iw_mode = NL80211_IFTYPE_STATION;
|
|
|
-
|
|
|
- /* Choose which receivers/antennas to use */
|
|
|
- if (priv->cfg->ops->hcmd->set_rxon_chain)
|
|
|
- priv->cfg->ops->hcmd->set_rxon_chain(priv);
|
|
|
-
|
|
|
- iwl_init_scan_params(priv);
|
|
|
-
|
|
|
- iwl_reset_qos(priv);
|
|
|
-
|
|
|
- priv->qos_data.qos_active = 0;
|
|
|
- priv->qos_data.qos_cap.val = 0;
|
|
|
-
|
|
|
- priv->rates_mask = IWL_RATES_MASK;
|
|
|
- /* Set the tx_power_user_lmt to the lowest power level
|
|
|
- * this value will get overwritten by channel max power avg
|
|
|
- * from eeprom */
|
|
|
- priv->tx_power_user_lmt = IWL_TX_POWER_TARGET_POWER_MIN;
|
|
|
-
|
|
|
- ret = iwl_init_channel_map(priv);
|
|
|
- if (ret) {
|
|
|
- IWL_ERR(priv, "initializing regulatory failed: %d\n", ret);
|
|
|
- goto err;
|
|
|
- }
|
|
|
-
|
|
|
- ret = iwlcore_init_geos(priv);
|
|
|
- if (ret) {
|
|
|
- IWL_ERR(priv, "initializing geos failed: %d\n", ret);
|
|
|
- goto err_free_channel_map;
|
|
|
- }
|
|
|
- iwlcore_init_hw_rates(priv, priv->ieee_rates);
|
|
|
-
|
|
|
- return 0;
|
|
|
-
|
|
|
-err_free_channel_map:
|
|
|
- iwl_free_channel_map(priv);
|
|
|
-err:
|
|
|
- return ret;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(iwl_init_drv);
|
|
|
-
|
|
|
int iwl_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
|
|
|
{
|
|
|
int ret = 0;
|
|
@@ -1680,15 +1596,6 @@ int iwl_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
|
|
|
}
|
|
|
EXPORT_SYMBOL(iwl_set_tx_power);
|
|
|
|
|
|
-void iwl_uninit_drv(struct iwl_priv *priv)
|
|
|
-{
|
|
|
- iwl_calib_free_results(priv);
|
|
|
- iwlcore_free_geos(priv);
|
|
|
- iwl_free_channel_map(priv);
|
|
|
- kfree(priv->scan);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(iwl_uninit_drv);
|
|
|
-
|
|
|
#define ICT_COUNT (PAGE_SIZE/sizeof(u32))
|
|
|
|
|
|
/* Free dram table */
|