iwlagn: fix non-5000+ build
When building 4965 without 5000+ there were a lot of build errors due to functions being used that weren't even compiled in. To fix this move some code around and only compile the HCMD code for 5000+ series as it's not used for 4965. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
2a21ff446c
commit
ae79d23d0b
|
@ -12,13 +12,13 @@ CFLAGS_iwl-devtrace.o := -I$(src)
|
||||||
# AGN
|
# AGN
|
||||||
obj-$(CONFIG_IWLAGN) += iwlagn.o
|
obj-$(CONFIG_IWLAGN) += iwlagn.o
|
||||||
iwlagn-objs := iwl-agn.o iwl-agn-rs.o iwl-agn-led.o iwl-agn-ict.o
|
iwlagn-objs := iwl-agn.o iwl-agn-rs.o iwl-agn-led.o iwl-agn-ict.o
|
||||||
iwlagn-objs += iwl-agn-ucode.o iwl-agn-hcmd.o iwl-agn-tx.o
|
iwlagn-objs += iwl-agn-ucode.o iwl-agn-tx.o
|
||||||
iwlagn-objs += iwl-agn-lib.o iwl-agn-rx.o iwl-agn-calib.o
|
iwlagn-objs += iwl-agn-lib.o iwl-agn-rx.o iwl-agn-calib.o
|
||||||
iwlagn-objs += iwl-agn-tt.o iwl-agn-sta.o iwl-agn-eeprom.o
|
iwlagn-objs += iwl-agn-tt.o iwl-agn-sta.o iwl-agn-eeprom.o
|
||||||
iwlagn-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-agn-debugfs.o
|
iwlagn-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-agn-debugfs.o
|
||||||
|
|
||||||
iwlagn-$(CONFIG_IWL4965) += iwl-4965.o
|
iwlagn-$(CONFIG_IWL4965) += iwl-4965.o
|
||||||
iwlagn-$(CONFIG_IWL5000) += iwl-agn-rxon.o
|
iwlagn-$(CONFIG_IWL5000) += iwl-agn-rxon.o iwl-agn-hcmd.o
|
||||||
iwlagn-$(CONFIG_IWL5000) += iwl-5000.o
|
iwlagn-$(CONFIG_IWL5000) += iwl-5000.o
|
||||||
iwlagn-$(CONFIG_IWL5000) += iwl-6000.o
|
iwlagn-$(CONFIG_IWL5000) += iwl-6000.o
|
||||||
iwlagn-$(CONFIG_IWL5000) += iwl-1000.o
|
iwlagn-$(CONFIG_IWL5000) += iwl-1000.o
|
||||||
|
|
|
@ -1587,22 +1587,6 @@ int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void iwlagn_post_scan(struct iwl_priv *priv)
|
|
||||||
{
|
|
||||||
struct iwl_rxon_context *ctx;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Since setting the RXON may have been deferred while
|
|
||||||
* performing the scan, fire one off if needed
|
|
||||||
*/
|
|
||||||
for_each_context(priv, ctx)
|
|
||||||
if (memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging)))
|
|
||||||
iwlagn_commit_rxon(priv, ctx);
|
|
||||||
|
|
||||||
if (priv->cfg->ops->hcmd->set_pan_params)
|
|
||||||
priv->cfg->ops->hcmd->set_pan_params(priv);
|
|
||||||
}
|
|
||||||
|
|
||||||
int iwlagn_manage_ibss_station(struct iwl_priv *priv,
|
int iwlagn_manage_ibss_station(struct iwl_priv *priv,
|
||||||
struct ieee80211_vif *vif, bool add)
|
struct ieee80211_vif *vif, bool add)
|
||||||
{
|
{
|
||||||
|
|
|
@ -585,3 +585,19 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
|
||||||
|
|
||||||
mutex_unlock(&priv->mutex);
|
mutex_unlock(&priv->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void iwlagn_post_scan(struct iwl_priv *priv)
|
||||||
|
{
|
||||||
|
struct iwl_rxon_context *ctx;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Since setting the RXON may have been deferred while
|
||||||
|
* performing the scan, fire one off if needed
|
||||||
|
*/
|
||||||
|
for_each_context(priv, ctx)
|
||||||
|
if (memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging)))
|
||||||
|
iwlagn_commit_rxon(priv, ctx);
|
||||||
|
|
||||||
|
if (priv->cfg->ops->hcmd->set_pan_params)
|
||||||
|
priv->cfg->ops->hcmd->set_pan_params(priv);
|
||||||
|
}
|
||||||
|
|
|
@ -684,7 +684,7 @@ int iwl_sta_rx_agg_stop(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
||||||
return iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
return iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||||
}
|
}
|
||||||
|
|
||||||
void iwl_sta_modify_ps_wake(struct iwl_priv *priv, int sta_id)
|
static void iwl_sta_modify_ps_wake(struct iwl_priv *priv, int sta_id)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -714,3 +714,33 @@ void iwl_sta_modify_sleep_tx_count(struct iwl_priv *priv, int sta_id, int cnt)
|
||||||
spin_unlock_irqrestore(&priv->sta_lock, flags);
|
spin_unlock_irqrestore(&priv->sta_lock, flags);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void iwlagn_mac_sta_notify(struct ieee80211_hw *hw,
|
||||||
|
struct ieee80211_vif *vif,
|
||||||
|
enum sta_notify_cmd cmd,
|
||||||
|
struct ieee80211_sta *sta)
|
||||||
|
{
|
||||||
|
struct iwl_priv *priv = hw->priv;
|
||||||
|
struct iwl_station_priv *sta_priv = (void *)sta->drv_priv;
|
||||||
|
int sta_id;
|
||||||
|
|
||||||
|
switch (cmd) {
|
||||||
|
case STA_NOTIFY_SLEEP:
|
||||||
|
WARN_ON(!sta_priv->client);
|
||||||
|
sta_priv->asleep = true;
|
||||||
|
if (atomic_read(&sta_priv->pending_frames) > 0)
|
||||||
|
ieee80211_sta_block_awake(hw, sta, true);
|
||||||
|
break;
|
||||||
|
case STA_NOTIFY_AWAKE:
|
||||||
|
WARN_ON(!sta_priv->client);
|
||||||
|
if (!sta_priv->asleep)
|
||||||
|
break;
|
||||||
|
sta_priv->asleep = false;
|
||||||
|
sta_id = iwl_sta_id(sta);
|
||||||
|
if (sta_id != IWL_INVALID_STATION)
|
||||||
|
iwl_sta_modify_ps_wake(priv, sta_id);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3474,36 +3474,6 @@ int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void iwlagn_mac_sta_notify(struct ieee80211_hw *hw,
|
|
||||||
struct ieee80211_vif *vif,
|
|
||||||
enum sta_notify_cmd cmd,
|
|
||||||
struct ieee80211_sta *sta)
|
|
||||||
{
|
|
||||||
struct iwl_priv *priv = hw->priv;
|
|
||||||
struct iwl_station_priv *sta_priv = (void *)sta->drv_priv;
|
|
||||||
int sta_id;
|
|
||||||
|
|
||||||
switch (cmd) {
|
|
||||||
case STA_NOTIFY_SLEEP:
|
|
||||||
WARN_ON(!sta_priv->client);
|
|
||||||
sta_priv->asleep = true;
|
|
||||||
if (atomic_read(&sta_priv->pending_frames) > 0)
|
|
||||||
ieee80211_sta_block_awake(hw, sta, true);
|
|
||||||
break;
|
|
||||||
case STA_NOTIFY_AWAKE:
|
|
||||||
WARN_ON(!sta_priv->client);
|
|
||||||
if (!sta_priv->asleep)
|
|
||||||
break;
|
|
||||||
sta_priv->asleep = false;
|
|
||||||
sta_id = iwl_sta_id(sta);
|
|
||||||
if (sta_id != IWL_INVALID_STATION)
|
|
||||||
iwl_sta_modify_ps_wake(priv, sta_id);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int iwlagn_mac_sta_add(struct ieee80211_hw *hw,
|
int iwlagn_mac_sta_add(struct ieee80211_hw *hw,
|
||||||
struct ieee80211_vif *vif,
|
struct ieee80211_vif *vif,
|
||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
|
@ -3903,6 +3873,7 @@ static void iwl_uninit_drv(struct iwl_priv *priv)
|
||||||
kfree(priv->scan_cmd);
|
kfree(priv->scan_cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_IWL5000
|
||||||
struct ieee80211_ops iwlagn_hw_ops = {
|
struct ieee80211_ops iwlagn_hw_ops = {
|
||||||
.tx = iwlagn_mac_tx,
|
.tx = iwlagn_mac_tx,
|
||||||
.start = iwlagn_mac_start,
|
.start = iwlagn_mac_start,
|
||||||
|
@ -3925,6 +3896,7 @@ struct ieee80211_ops iwlagn_hw_ops = {
|
||||||
.flush = iwlagn_mac_flush,
|
.flush = iwlagn_mac_flush,
|
||||||
.tx_last_beacon = iwl_mac_tx_last_beacon,
|
.tx_last_beacon = iwl_mac_tx_last_beacon,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static void iwl_hw_detect(struct iwl_priv *priv)
|
static void iwl_hw_detect(struct iwl_priv *priv)
|
||||||
{
|
{
|
||||||
|
@ -3992,7 +3964,9 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
if (cfg->mod_params->disable_hw_scan) {
|
if (cfg->mod_params->disable_hw_scan) {
|
||||||
dev_printk(KERN_DEBUG, &(pdev->dev),
|
dev_printk(KERN_DEBUG, &(pdev->dev),
|
||||||
"sw scan support is deprecated\n");
|
"sw scan support is deprecated\n");
|
||||||
|
#ifdef CONFIG_IWL5000
|
||||||
iwlagn_hw_ops.hw_scan = NULL;
|
iwlagn_hw_ops.hw_scan = NULL;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_IWL4965
|
#ifdef CONFIG_IWL4965
|
||||||
iwl4965_hw_ops.hw_scan = NULL;
|
iwl4965_hw_ops.hw_scan = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -301,9 +301,12 @@ int iwl_sta_rx_agg_start(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
||||||
int tid, u16 ssn);
|
int tid, u16 ssn);
|
||||||
int iwl_sta_rx_agg_stop(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
int iwl_sta_rx_agg_stop(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
||||||
int tid);
|
int tid);
|
||||||
void iwl_sta_modify_ps_wake(struct iwl_priv *priv, int sta_id);
|
|
||||||
void iwl_sta_modify_sleep_tx_count(struct iwl_priv *priv, int sta_id, int cnt);
|
void iwl_sta_modify_sleep_tx_count(struct iwl_priv *priv, int sta_id, int cnt);
|
||||||
int iwl_update_bcast_stations(struct iwl_priv *priv);
|
int iwl_update_bcast_stations(struct iwl_priv *priv);
|
||||||
|
void iwlagn_mac_sta_notify(struct ieee80211_hw *hw,
|
||||||
|
struct ieee80211_vif *vif,
|
||||||
|
enum sta_notify_cmd cmd,
|
||||||
|
struct ieee80211_sta *sta);
|
||||||
|
|
||||||
/* rate */
|
/* rate */
|
||||||
static inline u32 iwl_ant_idx_to_flags(u8 ant_idx)
|
static inline u32 iwl_ant_idx_to_flags(u8 ant_idx)
|
||||||
|
|
Loading…
Reference in New Issue