Commit 897e1cf2 authored by Reinette Chatre's avatar Reinette Chatre Committed by John W. Linville
Browse files

iwlwifi: move rate registration to module load



Having rate registration during module load enables the use of
error checking as well as reliable registration/unregistration
pairing. Previously this was not possible as rate registration
was done during _probe where _probe could be run for more than
one device on the system.

Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0359facc
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -976,12 +976,12 @@ void iwl3945_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id)
		       iwl3945_rates[rs_sta->start_rate].plcp);
}

void iwl3945_rate_control_register(struct ieee80211_hw *hw)
int iwl3945_rate_control_register(void)
{
	ieee80211_rate_control_register(&rs_ops);
	return ieee80211_rate_control_register(&rs_ops);
}

void iwl3945_rate_control_unregister(struct ieee80211_hw *hw)
void iwl3945_rate_control_unregister(void)
{
	ieee80211_rate_control_unregister(&rs_ops);
}
+2 −2
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ extern void iwl3945_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id);
 * ieee80211_register_hw
 *
 */
extern void iwl3945_rate_control_register(struct ieee80211_hw *hw);
extern int iwl3945_rate_control_register(void);

/**
 * iwl3945_rate_control_unregister - Unregister the rate control callbacks
@@ -210,6 +210,6 @@ extern void iwl3945_rate_control_register(struct ieee80211_hw *hw);
 * This should be called after calling ieee80211_unregister_hw, but before
 * the driver is unloaded.
 */
extern void iwl3945_rate_control_unregister(struct ieee80211_hw *hw);
extern void iwl3945_rate_control_unregister(void);

#endif
+3 −3
Original line number Diff line number Diff line
@@ -2822,12 +2822,12 @@ void iwl4965_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id)
	priv->lq_mngr.lq_ready = 1;
}

void iwl4965_rate_control_register(struct ieee80211_hw *hw)
int iwl4965_rate_control_register(void)
{
	ieee80211_rate_control_register(&rs_ops);
	return ieee80211_rate_control_register(&rs_ops);
}

void iwl4965_rate_control_unregister(struct ieee80211_hw *hw)
void iwl4965_rate_control_unregister(void)
{
	ieee80211_rate_control_unregister(&rs_ops);
}
+2 −2
Original line number Diff line number Diff line
@@ -288,7 +288,7 @@ extern void iwl4965_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id);
 * ieee80211_register_hw
 *
 */
extern void iwl4965_rate_control_register(struct ieee80211_hw *hw);
extern int iwl4965_rate_control_register(void);

/**
 * iwl4965_rate_control_unregister - Unregister the rate control callbacks
@@ -296,6 +296,6 @@ extern void iwl4965_rate_control_register(struct ieee80211_hw *hw);
 * This should be called after calling ieee80211_unregister_hw, but before
 * the driver is unloaded.
 */
extern void iwl4965_rate_control_unregister(struct ieee80211_hw *hw);
extern void iwl4965_rate_control_unregister(void);

#endif
+0 −1
Original line number Diff line number Diff line
@@ -177,7 +177,6 @@ static int iwl4965_init_drv(struct iwl_priv *priv)
		goto err_free_channel_map;
	}

	iwl4965_rate_control_register(priv->hw);
	ret = ieee80211_register_hw(priv->hw);
	if (ret) {
		IWL_ERROR("Failed to register network device (error %d)\n",
Loading