Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 171204
b: refs/heads/master
c: 4c2b1a1
h: refs/heads/master
v: v3
  • Loading branch information
Inaky Perez-Gonzalez committed Oct 19, 2009
1 parent 01da4ca commit 09bf97d
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4dc1bf074e4db5aa281a7b82ceebb24df98922d2
refs/heads/master: 4c2b1a11646bf74e2926ce8b13a21884adc1e05c
10 changes: 10 additions & 0 deletions trunk/drivers/net/wimax/i2400m/driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,14 @@ MODULE_PARM_DESC(power_save_disabled,
"False by default (so the device is told to do power "
"saving).");

static char i2400m_debug_params[128];
module_param_string(debug, i2400m_debug_params, sizeof(i2400m_debug_params),
0644);
MODULE_PARM_DESC(debug,
"String of space-separated NAME:VALUE pairs, where NAMEs "
"are the different debug submodules and VALUE are the "
"initial debug value to set.");

/**
* i2400m_queue_work - schedule work on a i2400m's queue
*
Expand Down Expand Up @@ -794,6 +802,8 @@ size_t D_LEVEL_SIZE = ARRAY_SIZE(D_LEVEL);
static
int __init i2400m_driver_init(void)
{
d_parse_params(D_LEVEL, D_LEVEL_SIZE, i2400m_debug_params,
"i2400m.debug");
return 0;
}
module_init(i2400m_driver_init);
Expand Down
10 changes: 10 additions & 0 deletions trunk/drivers/net/wimax/i2400m/sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@
static int ioe_timeout = 2;
module_param(ioe_timeout, int, 0);

static char i2400ms_debug_params[128];
module_param_string(debug, i2400ms_debug_params, sizeof(i2400ms_debug_params),
0644);
MODULE_PARM_DESC(debug,
"String of space-separated NAME:VALUE pairs, where NAMEs "
"are the different debug submodules and VALUE are the "
"initial debug value to set.");

/* Our firmware file name list */
static const char *i2400ms_bus_fw_names[] = {
#define I2400MS_FW_FILE_NAME "i2400m-fw-sdio-1.3.sbcf"
Expand Down Expand Up @@ -559,6 +567,8 @@ struct sdio_driver i2400m_sdio_driver = {
static
int __init i2400ms_driver_init(void)
{
d_parse_params(D_LEVEL, D_LEVEL_SIZE, i2400ms_debug_params,
"i2400m_sdio.debug");
return sdio_register_driver(&i2400m_sdio_driver);
}
module_init(i2400ms_driver_init);
Expand Down
9 changes: 9 additions & 0 deletions trunk/drivers/net/wimax/i2400m/usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,13 @@
#define D_SUBMODULE usb
#include "usb-debug-levels.h"

static char i2400mu_debug_params[128];
module_param_string(debug, i2400mu_debug_params, sizeof(i2400mu_debug_params),
0644);
MODULE_PARM_DESC(debug,
"String of space-separated NAME:VALUE pairs, where NAMEs "
"are the different debug submodules and VALUE are the "
"initial debug value to set.");

/* Our firmware file name */
static const char *i2400mu_bus_fw_names[] = {
Expand Down Expand Up @@ -633,6 +640,8 @@ struct usb_driver i2400mu_driver = {
static
int __init i2400mu_driver_init(void)
{
d_parse_params(D_LEVEL, D_LEVEL_SIZE, i2400mu_debug_params,
"i2400m_usb.debug");
return usb_register(&i2400mu_driver);
}
module_init(i2400mu_driver_init);
Expand Down
72 changes: 72 additions & 0 deletions trunk/include/linux/wimax/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -450,4 +450,76 @@ do { \
})


static inline
void d_submodule_set(struct d_level *d_level, size_t d_level_size,
const char *submodule, u8 level, const char *tag)
{
struct d_level *itr, *top;
int index = -1;

for (itr = d_level, top = itr + d_level_size; itr < top; itr++) {
index++;
if (itr->name == NULL) {
printk(KERN_ERR "%s: itr->name NULL?? (%p, #%d)\n",
tag, itr, index);
continue;
}
if (!strcmp(itr->name, submodule)) {
itr->level = level;
return;
}
}
printk(KERN_ERR "%s: unknown submodule %s\n", tag, submodule);
}


/**
* d_parse_params - Parse a string with debug parameters from the
* command line
*
* @d_level: level structure (D_LEVEL)
* @d_level_size: number of items in the level structure
* (D_LEVEL_SIZE).
* @_params: string with the parameters; this is a space (not tab!)
* separated list of NAME:VALUE, where value is the debug level
* and NAME is the name of the submodule.
* @tag: string for error messages (example: MODULE.ARGNAME).
*/
static inline
void d_parse_params(struct d_level *d_level, size_t d_level_size,
const char *_params, const char *tag)
{
char submodule[130], *params, *params_orig, *token, *colon;
unsigned level, tokens;

if (_params == NULL)
return;
params_orig = kstrdup(_params, GFP_KERNEL);
params = params_orig;
while (1) {
token = strsep(&params, " ");
if (token == NULL)
break;
if (*token == '\0') /* eat joint spaces */
continue;
/* kernel's sscanf %s eats until whitespace, so we
* replace : by \n so it doesn't get eaten later by
* strsep */
colon = strchr(token, ':');
if (colon != NULL)
*colon = '\n';
tokens = sscanf(token, "%s\n%u", submodule, &level);
if (colon != NULL)
*colon = ':'; /* set back, for error messages */
if (tokens == 2)
d_submodule_set(d_level, d_level_size,
submodule, level, tag);
else
printk(KERN_ERR "%s: can't parse '%s' as a "
"SUBMODULE:LEVEL (%d tokens)\n",
tag, token, tokens);
}
kfree(params_orig);
}

#endif /* #ifndef __debug__h__ */
11 changes: 11 additions & 0 deletions trunk/net/wimax/stack.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,14 @@
#define D_SUBMODULE stack
#include "debug-levels.h"

static char wimax_debug_params[128];
module_param_string(debug, wimax_debug_params, sizeof(wimax_debug_params),
0644);
MODULE_PARM_DESC(debug,
"String of space-separated NAME:VALUE pairs, where NAMEs "
"are the different debug submodules and VALUE are the "
"initial debug value to set.");

/*
* Authoritative source for the RE_STATE_CHANGE attribute policy
*
Expand Down Expand Up @@ -562,6 +570,9 @@ int __init wimax_subsys_init(void)
int result, cnt;

d_fnstart(4, NULL, "()\n");
d_parse_params(D_LEVEL, D_LEVEL_SIZE, wimax_debug_params,
"wimax.debug");

snprintf(wimax_gnl_family.name, sizeof(wimax_gnl_family.name),
"WiMAX");
result = genl_register_family(&wimax_gnl_family);
Expand Down

0 comments on commit 09bf97d

Please sign in to comment.