wimax/i2400m: implement passive mode as a module option

Some versions of the user space Intel WiMAX daemon need to have full
control over the device initialization sequence. By setting the module
option i2400.passive_mode to 1, the driver defers all device
configuration and initialization to user space.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
This commit is contained in:
Inaky Perez-Gonzalez 2009-10-19 23:11:26 +09:00
parent a8ee303cae
commit 55a662d646

View File

@ -82,6 +82,13 @@
#define D_SUBMODULE control #define D_SUBMODULE control
#include "debug-levels.h" #include "debug-levels.h"
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 "
"and leave it up to user space, who must be properly "
"setup.");
/* /*
* Return if a TLV is of a give type and size * Return if a TLV is of a give type and size
@ -1335,6 +1342,8 @@ int i2400m_dev_initialize(struct i2400m *i2400m)
unsigned argc = 0; unsigned argc = 0;
d_fnstart(3, dev, "(i2400m %p)\n", i2400m); d_fnstart(3, dev, "(i2400m %p)\n", i2400m);
if (i2400m_passive_mode)
goto out_passive;
/* Disable idle mode? (enabled by default) */ /* Disable idle mode? (enabled by default) */
if (i2400m_idle_mode_disabled) { if (i2400m_idle_mode_disabled) {
if (i2400m_le_v1_3(i2400m)) { if (i2400m_le_v1_3(i2400m)) {
@ -1377,6 +1386,7 @@ int i2400m_dev_initialize(struct i2400m *i2400m)
result = i2400m_set_init_config(i2400m, args, argc); result = i2400m_set_init_config(i2400m, args, argc);
if (result < 0) if (result < 0)
goto error; goto error;
out_passive:
/* /*
* Update state: Here it just calls a get state; parsing the * Update state: Here it just calls a get state; parsing the
* result (System State TLV and RF Status TLV [done in the rx * result (System State TLV and RF Status TLV [done in the rx