Commit 60690a6a authored by Abhijeet Kolekar's avatar Abhijeet Kolekar Committed by John W. Linville

iwlwifi: add config_ap lib op

add config_ap lib op to iwlwifi and iwl3945 in preparation
of future 3945 porting actions.
Signed-off-by: default avatarAbhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 4808368d
...@@ -2952,6 +2952,7 @@ static struct iwl_lib_ops iwl3945_lib = { ...@@ -2952,6 +2952,7 @@ static struct iwl_lib_ops iwl3945_lib = {
.send_tx_power = iwl3945_send_tx_power, .send_tx_power = iwl3945_send_tx_power,
.is_valid_rtc_data_addr = iwl3945_hw_valid_rtc_data_addr, .is_valid_rtc_data_addr = iwl3945_hw_valid_rtc_data_addr,
.post_associate = iwl3945_post_associate, .post_associate = iwl3945_post_associate,
.config_ap = iwl3945_config_ap,
}; };
static struct iwl_station_mgmt_ops iwl3945_station_mgmt = { static struct iwl_station_mgmt_ops iwl3945_station_mgmt = {
......
...@@ -278,6 +278,8 @@ extern void iwl3945_hw_rx_statistics(struct iwl_priv *priv, ...@@ -278,6 +278,8 @@ extern void iwl3945_hw_rx_statistics(struct iwl_priv *priv,
extern void iwl3945_disable_events(struct iwl_priv *priv); extern void iwl3945_disable_events(struct iwl_priv *priv);
extern int iwl4965_get_temperature(const struct iwl_priv *priv); extern int iwl4965_get_temperature(const struct iwl_priv *priv);
extern void iwl3945_post_associate(struct iwl_priv *priv); extern void iwl3945_post_associate(struct iwl_priv *priv);
extern void iwl3945_config_ap(struct iwl_priv *priv);
/** /**
* iwl3945_hw_find_station - Find station id for a given BSSID * iwl3945_hw_find_station - Find station id for a given BSSID
* @bssid: MAC address of station ID to find * @bssid: MAC address of station ID to find
......
...@@ -2333,6 +2333,7 @@ static struct iwl_lib_ops iwl4965_lib = { ...@@ -2333,6 +2333,7 @@ static struct iwl_lib_ops iwl4965_lib = {
.update_chain_flags = iwl_update_chain_flags, .update_chain_flags = iwl_update_chain_flags,
.temperature = iwl4965_temperature_calib, .temperature = iwl4965_temperature_calib,
.post_associate = iwl_post_associate, .post_associate = iwl_post_associate,
.config_ap = iwl_config_ap,
}; };
static struct iwl_ops iwl4965_ops = { static struct iwl_ops iwl4965_ops = {
......
...@@ -1537,6 +1537,7 @@ struct iwl_lib_ops iwl5000_lib = { ...@@ -1537,6 +1537,7 @@ struct iwl_lib_ops iwl5000_lib = {
.query_addr = iwl5000_eeprom_query_addr, .query_addr = iwl5000_eeprom_query_addr,
}, },
.post_associate = iwl_post_associate, .post_associate = iwl_post_associate,
.config_ap = iwl_config_ap,
}; };
struct iwl_ops iwl5000_ops = { struct iwl_ops iwl5000_ops = {
......
...@@ -2036,7 +2036,7 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -2036,7 +2036,7 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
static void iwl_config_ap(struct iwl_priv *priv) void iwl_config_ap(struct iwl_priv *priv)
{ {
int ret = 0; int ret = 0;
unsigned long flags; unsigned long flags;
...@@ -2178,7 +2178,7 @@ static int iwl_mac_config_interface(struct ieee80211_hw *hw, ...@@ -2178,7 +2178,7 @@ static int iwl_mac_config_interface(struct ieee80211_hw *hw,
memcpy(priv->bssid, conf->bssid, ETH_ALEN); memcpy(priv->bssid, conf->bssid, ETH_ALEN);
if (priv->iw_mode == NL80211_IFTYPE_AP) if (priv->iw_mode == NL80211_IFTYPE_AP)
iwl_config_ap(priv); iwlcore_config_ap(priv);
else { else {
rc = iwlcore_commit_rxon(priv); rc = iwlcore_commit_rxon(priv);
if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc) if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc)
......
...@@ -162,6 +162,7 @@ struct iwl_lib_ops { ...@@ -162,6 +162,7 @@ struct iwl_lib_ops {
void (*update_chain_flags)(struct iwl_priv *priv); void (*update_chain_flags)(struct iwl_priv *priv);
void (*temperature) (struct iwl_priv *priv); void (*temperature) (struct iwl_priv *priv);
void (*post_associate) (struct iwl_priv *priv); void (*post_associate) (struct iwl_priv *priv);
void (*config_ap) (struct iwl_priv *priv);
/* eeprom operations (as defined in iwl-eeprom.h) */ /* eeprom operations (as defined in iwl-eeprom.h) */
struct iwl_eeprom_ops eeprom_ops; struct iwl_eeprom_ops eeprom_ops;
...@@ -279,6 +280,7 @@ int iwl_mac_add_interface(struct ieee80211_hw *hw, ...@@ -279,6 +280,7 @@ int iwl_mac_add_interface(struct ieee80211_hw *hw,
void iwl_mac_remove_interface(struct ieee80211_hw *hw, void iwl_mac_remove_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf); struct ieee80211_if_init_conf *conf);
int iwl_mac_config(struct ieee80211_hw *hw, u32 changed); int iwl_mac_config(struct ieee80211_hw *hw, u32 changed);
void iwl_config_ap(struct iwl_priv *priv);
/***************************************************** /*****************************************************
* RX handlers. * RX handlers.
...@@ -565,7 +567,10 @@ static inline int iwlcore_commit_rxon(struct iwl_priv *priv) ...@@ -565,7 +567,10 @@ static inline int iwlcore_commit_rxon(struct iwl_priv *priv)
{ {
return priv->cfg->ops->hcmd->commit_rxon(priv); return priv->cfg->ops->hcmd->commit_rxon(priv);
} }
static inline void iwlcore_config_ap(struct iwl_priv *priv)
{
priv->cfg->ops->lib->config_ap(priv);
}
static inline const struct ieee80211_supported_band *iwl_get_hw_mode( static inline const struct ieee80211_supported_band *iwl_get_hw_mode(
struct iwl_priv *priv, enum ieee80211_band band) struct iwl_priv *priv, enum ieee80211_band band)
{ {
......
...@@ -3378,7 +3378,7 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -3378,7 +3378,7 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
static void iwl3945_config_ap(struct iwl_priv *priv) void iwl3945_config_ap(struct iwl_priv *priv)
{ {
int rc = 0; int rc = 0;
...@@ -3515,7 +3515,7 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw, ...@@ -3515,7 +3515,7 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw,
memcpy(priv->bssid, conf->bssid, ETH_ALEN); memcpy(priv->bssid, conf->bssid, ETH_ALEN);
if (priv->iw_mode == NL80211_IFTYPE_AP) if (priv->iw_mode == NL80211_IFTYPE_AP)
iwl3945_config_ap(priv); iwlcore_config_ap(priv);
else { else {
rc = iwlcore_commit_rxon(priv); rc = iwlcore_commit_rxon(priv);
if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc) if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment