diff options
Diffstat (limited to 'drivers/net/wimax/i2400m/control.c')
| -rw-r--r-- | drivers/net/wimax/i2400m/control.c | 62 |
1 files changed, 38 insertions, 24 deletions
diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c index 94494554039..4c417903e9b 100644 --- a/drivers/net/wimax/i2400m/control.c +++ b/drivers/net/wimax/i2400m/control.c @@ -50,7 +50,7 @@ * * ROADMAP * - * i2400m_dev_initalize() Called by i2400m_dev_start() + * i2400m_dev_initialize() Called by i2400m_dev_start() * i2400m_set_init_config() * i2400m_cmd_get_state() * i2400m_dev_shutdown() Called by i2400m_dev_stop() @@ -76,13 +76,31 @@ #include <stdarg.h> #include "i2400m.h" #include <linux/kernel.h> +#include <linux/slab.h> #include <linux/wimax/i2400m.h> +#include <linux/export.h> +#include <linux/moduleparam.h> #define D_SUBMODULE control #include "debug-levels.h" -int i2400m_passive_mode; /* 0 (passive mode disabled) by default */ +static int i2400m_idle_mode_disabled;/* 0 (idle mode enabled) by default */ +module_param_named(idle_mode_disabled, i2400m_idle_mode_disabled, int, 0644); +MODULE_PARM_DESC(idle_mode_disabled, + "If true, the device will not enable idle mode negotiation " + "with the base station (when connected) to save power."); + +/* 0 (power saving enabled) by default */ +static int i2400m_power_save_disabled; +module_param_named(power_save_disabled, i2400m_power_save_disabled, int, 0644); +MODULE_PARM_DESC(power_save_disabled, + "If true, the driver will not tell the device to enter " + "power saving mode when it reports it is ready for it. " + "False by default (so the device is told to do power " + "saving)."); + +static int i2400m_passive_mode; /* 0 (passive mode disabled) by default */ module_param_named(passive_mode, i2400m_passive_mode, int, 0644); MODULE_PARM_DESC(passive_mode, "If true, the driver will not do any device setup " @@ -112,7 +130,7 @@ ssize_t i2400m_tlv_match(const struct i2400m_tlv_hdr *tlv, && le16_to_cpu(tlv->length) + sizeof(*tlv) != tlv_size) { size_t size = le16_to_cpu(tlv->length) + sizeof(*tlv); printk(KERN_WARNING "W: tlv type 0x%x mismatched because of " - "size (got %zu vs %zu expected)\n", + "size (got %zu vs %zd expected)\n", tlv_type, size, tlv_size); return size; } @@ -217,7 +235,7 @@ const struct i2400m_tlv_hdr *i2400m_tlv_find( break; if (match > 0) dev_warn(dev, "TLV type 0x%04x found with size " - "mismatch (%zu vs %zu needed)\n", + "mismatch (%zu vs %zd needed)\n", tlv_type, match, tlv_size); } return tlv; @@ -345,7 +363,7 @@ void i2400m_report_tlv_system_state(struct i2400m *i2400m, i2400m_state); i2400m_reset(i2400m, I2400M_RT_WARM); break; - }; + } d_fnend(3, dev, "(i2400m %p ss %p [%u]) = void\n", i2400m, ss, i2400m_state); } @@ -362,7 +380,7 @@ void i2400m_report_tlv_system_state(struct i2400m *i2400m, * the device's state as sometimes we need to do a link-renew (the BS * wants us to renew a DHCP lease, for example). * - * In fact, doc says that everytime we get a link-up, we should do a + * In fact, doc says that every time we get a link-up, we should do a * DHCP negotiation... */ static @@ -394,7 +412,7 @@ void i2400m_report_tlv_media_status(struct i2400m *i2400m, default: dev_err(dev, "HW BUG? unknown media status %u\n", status); - }; + } d_fnend(3, dev, "(i2400m %p ms %p [%u]) = void\n", i2400m, ms, status); } @@ -523,7 +541,7 @@ void i2400m_report_hook(struct i2400m *i2400m, } } break; - }; + } d_fnend(3, dev, "(i2400m %p l3l4_hdr %p size %zu) = void\n", i2400m, l3l4_hdr, size); } @@ -542,8 +560,9 @@ void i2400m_report_hook(struct i2400m *i2400m, * processing should be done in the function that calls the * command. This is here for some cases where it can't happen... */ -void i2400m_msg_ack_hook(struct i2400m *i2400m, - const struct i2400m_l3l4_hdr *l3l4_hdr, size_t size) +static void i2400m_msg_ack_hook(struct i2400m *i2400m, + const struct i2400m_l3l4_hdr *l3l4_hdr, + size_t size) { int result; struct device *dev = i2400m_dev(i2400m); @@ -566,8 +585,7 @@ void i2400m_msg_ack_hook(struct i2400m *i2400m, size); } break; - }; - return; + } } @@ -659,7 +677,7 @@ void i2400m_msg_to_dev_cancel_wait(struct i2400m *i2400m, int code) * - the ack message wasn't formatted correctly * * The returned skb has been allocated with wimax_msg_to_user_alloc(), - * it contains the reponse in a netlink attribute and is ready to be + * it contains the response in a netlink attribute and is ready to be * passed up to user space with wimax_msg_to_user_send(). To access * the payload and its length, use wimax_msg_{data,len}() on the skb. * @@ -739,7 +757,7 @@ struct sk_buff *i2400m_msg_to_dev(struct i2400m *i2400m, break; default: ack_timeout = HZ; - }; + } if (unlikely(i2400m->trace_msg_from_user)) wimax_msg(&i2400m->wimax_dev, "echo", buf, buf_len, GFP_KERNEL); @@ -833,7 +851,7 @@ struct i2400m_cmd_enter_power_save { struct i2400m_l3l4_hdr hdr; struct i2400m_tlv_hdr tlv; __le32 val; -} __attribute__((packed)); +} __packed; /* @@ -1043,7 +1061,7 @@ int i2400m_firmware_check(struct i2400m *i2400m) goto error_bad_major; } result = 0; - if (minor < I2400M_HDIv_MINOR_2 && minor > I2400M_HDIv_MINOR) + if (minor > I2400M_HDIv_MINOR_2 || minor < I2400M_HDIv_MINOR) dev_warn(dev, "untested minor fw version %u.%u.%u\n", major, minor, branch); /* Yes, we ignore the branch -- we don't have to track it */ @@ -1120,7 +1138,7 @@ error_alloc: * i2400m_report_state_hook() to parse the answer. This will set the * carrier state, as well as the RF Kill switches state. */ -int i2400m_cmd_get_state(struct i2400m *i2400m) +static int i2400m_cmd_get_state(struct i2400m *i2400m) { int result; struct device *dev = i2400m_dev(i2400m); @@ -1162,8 +1180,6 @@ error_msg_to_dev: error_alloc: return result; } -EXPORT_SYMBOL_GPL(i2400m_cmd_get_state); - /** * Set basic configuration settings @@ -1175,8 +1191,9 @@ EXPORT_SYMBOL_GPL(i2400m_cmd_get_state); * right endianess (LE). * @arg_size: number of pointers in the @args array */ -int i2400m_set_init_config(struct i2400m *i2400m, - const struct i2400m_tlv_hdr **arg, size_t args) +static int i2400m_set_init_config(struct i2400m *i2400m, + const struct i2400m_tlv_hdr **arg, + size_t args) { int result; struct device *dev = i2400m_dev(i2400m); @@ -1243,8 +1260,6 @@ none: return result; } -EXPORT_SYMBOL_GPL(i2400m_set_init_config); - /** * i2400m_set_idle_timeout - Set the device's idle mode timeout @@ -1418,5 +1433,4 @@ void i2400m_dev_shutdown(struct i2400m *i2400m) d_fnstart(3, dev, "(i2400m %p)\n", i2400m); d_fnend(3, dev, "(i2400m %p) = void\n", i2400m); - return; } |
