aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rc80211_simple.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-01-02 09:17:03 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:01:02 -0500
commit4b475898ec9dc6e62cebcb8fc0b3495c986a4590 (patch)
tree8409a6865f3d83965228fd8f6fae3b05e1e106ed /net/mac80211/rc80211_simple.c
parent688b88a4886834d7e3457711cd4feef6611d3232 (diff)
mac80211: better rate control algorithm selection
This patch changes mac80211's Kconfig/Makefile to: * select between the PID and the SIMPLE rate control algorithm as default * always allow tri-state for the rate control algorithms, building those that are selected 'y' into the mac80211 module (if that is a module, otherwise all into the kernel) * force the default rate control algorithm to be built into mac80211 It also makes both rate control algorithms proper modules again with MODULE_LICENSE etc. Only if EMBEDDED is the user allowed to select "NONE" as default which will cause no algorithm to be selected, this will work only when the driver brings one itself (e.g. iwlwifi drivers). Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211/rc80211_simple.c')
-rw-r--r--net/mac80211/rc80211_simple.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/net/mac80211/rc80211_simple.c b/net/mac80211/rc80211_simple.c
index c1c8b76a56af..33de6f967e55 100644
--- a/net/mac80211/rc80211_simple.c
+++ b/net/mac80211/rc80211_simple.c
@@ -13,6 +13,7 @@
13#include <linux/slab.h> 13#include <linux/slab.h>
14#include <linux/skbuff.h> 14#include <linux/skbuff.h>
15#include <linux/compiler.h> 15#include <linux/compiler.h>
16#include <linux/module.h>
16 17
17#include <net/mac80211.h> 18#include <net/mac80211.h>
18#include "ieee80211_i.h" 19#include "ieee80211_i.h"
@@ -349,7 +350,7 @@ static void rate_control_simple_remove_sta_debugfs(void *priv, void *priv_sta)
349} 350}
350#endif 351#endif
351 352
352struct rate_control_ops mac80211_rcsimple = { 353static struct rate_control_ops mac80211_rcsimple = {
353 .name = "simple", 354 .name = "simple",
354 .tx_status = rate_control_simple_tx_status, 355 .tx_status = rate_control_simple_tx_status,
355 .get_rate = rate_control_simple_get_rate, 356 .get_rate = rate_control_simple_get_rate,
@@ -364,3 +365,21 @@ struct rate_control_ops mac80211_rcsimple = {
364 .remove_sta_debugfs = rate_control_simple_remove_sta_debugfs, 365 .remove_sta_debugfs = rate_control_simple_remove_sta_debugfs,
365#endif 366#endif
366}; 367};
368
369MODULE_LICENSE("GPL");
370MODULE_DESCRIPTION("Simple rate control algorithm");
371
372int __init rc80211_simple_init(void)
373{
374 return ieee80211_rate_control_register(&mac80211_rcsimple);
375}
376
377void __exit rc80211_simple_exit(void)
378{
379 ieee80211_rate_control_unregister(&mac80211_rcsimple);
380}
381
382#ifdef CONFIG_MAC80211_RC_SIMPLE_MODULE
383module_init(rc80211_simple_init);
384module_exit(rc80211_simple_exit);
385#endif