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: Abhijeet Kolekar <abhijeet.kolekar@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
4808368dad
commit
60690a6a38
@@ -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,
|
|||||||
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 = {
|
|||||||
.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 = {
|
|||||||
.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)
|
|||||||
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,
|
|||||||
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 {
|
|||||||
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,
|
|||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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,
|
|||||||
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)
|
||||||
|
Reference in New Issue
Block a user