aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/wimax
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /include/linux/wimax
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'include/linux/wimax')
-rw-r--r--include/linux/wimax/debug.h73
-rw-r--r--include/linux/wimax/i2400m.h13
2 files changed, 75 insertions, 11 deletions
diff --git a/include/linux/wimax/debug.h b/include/linux/wimax/debug.h
index c703e0340423..57031b4d12f2 100644
--- a/include/linux/wimax/debug.h
+++ b/include/linux/wimax/debug.h
@@ -155,6 +155,7 @@
155 155
156#include <linux/types.h> 156#include <linux/types.h>
157#include <linux/device.h> 157#include <linux/device.h>
158#include <linux/slab.h>
158 159
159 160
160/* Backend stuff */ 161/* Backend stuff */
@@ -450,4 +451,76 @@ do { \
450}) 451})
451 452
452 453
454static inline
455void d_submodule_set(struct d_level *d_level, size_t d_level_size,
456 const char *submodule, u8 level, const char *tag)
457{
458 struct d_level *itr, *top;
459 int index = -1;
460
461 for (itr = d_level, top = itr + d_level_size; itr < top; itr++) {
462 index++;
463 if (itr->name == NULL) {
464 printk(KERN_ERR "%s: itr->name NULL?? (%p, #%d)\n",
465 tag, itr, index);
466 continue;
467 }
468 if (!strcmp(itr->name, submodule)) {
469 itr->level = level;
470 return;
471 }
472 }
473 printk(KERN_ERR "%s: unknown submodule %s\n", tag, submodule);
474}
475
476
477/**
478 * d_parse_params - Parse a string with debug parameters from the
479 * command line
480 *
481 * @d_level: level structure (D_LEVEL)
482 * @d_level_size: number of items in the level structure
483 * (D_LEVEL_SIZE).
484 * @_params: string with the parameters; this is a space (not tab!)
485 * separated list of NAME:VALUE, where value is the debug level
486 * and NAME is the name of the submodule.
487 * @tag: string for error messages (example: MODULE.ARGNAME).
488 */
489static inline
490void d_parse_params(struct d_level *d_level, size_t d_level_size,
491 const char *_params, const char *tag)
492{
493 char submodule[130], *params, *params_orig, *token, *colon;
494 unsigned level, tokens;
495
496 if (_params == NULL)
497 return;
498 params_orig = kstrdup(_params, GFP_KERNEL);
499 params = params_orig;
500 while (1) {
501 token = strsep(&params, " ");
502 if (token == NULL)
503 break;
504 if (*token == '\0') /* eat joint spaces */
505 continue;
506 /* kernel's sscanf %s eats until whitespace, so we
507 * replace : by \n so it doesn't get eaten later by
508 * strsep */
509 colon = strchr(token, ':');
510 if (colon != NULL)
511 *colon = '\n';
512 tokens = sscanf(token, "%s\n%u", submodule, &level);
513 if (colon != NULL)
514 *colon = ':'; /* set back, for error messages */
515 if (tokens == 2)
516 d_submodule_set(d_level, d_level_size,
517 submodule, level, tag);
518 else
519 printk(KERN_ERR "%s: can't parse '%s' as a "
520 "SUBMODULE:LEVEL (%d tokens)\n",
521 tag, token, tokens);
522 }
523 kfree(params_orig);
524}
525
453#endif /* #ifndef __debug__h__ */ 526#endif /* #ifndef __debug__h__ */
diff --git a/include/linux/wimax/i2400m.h b/include/linux/wimax/i2400m.h
index 433693ef2bb0..62d356153565 100644
--- a/include/linux/wimax/i2400m.h
+++ b/include/linux/wimax/i2400m.h
@@ -138,7 +138,7 @@ struct i2400m_bcf_hdr {
138 __le32 module_id; 138 __le32 module_id;
139 __le32 module_vendor; 139 __le32 module_vendor;
140 __le32 date; /* BCD YYYMMDD */ 140 __le32 date; /* BCD YYYMMDD */
141 __le32 size; 141 __le32 size; /* in dwords */
142 __le32 key_size; /* in dwords */ 142 __le32 key_size; /* in dwords */
143 __le32 modulus_size; /* in dwords */ 143 __le32 modulus_size; /* in dwords */
144 __le32 exponent_size; /* in dwords */ 144 __le32 exponent_size; /* in dwords */
@@ -168,16 +168,6 @@ enum i2400m_brh {
168}; 168};
169 169
170 170
171/* Constants for bcf->module_id */
172enum i2400m_bcf_mod_id {
173 /* Firmware file carries its own pokes -- pokes are a set of
174 * magical values that have to be written in certain memory
175 * addresses to get the device up and ready for firmware
176 * download when it is in non-signed boot mode. */
177 I2400M_BCF_MOD_ID_POKES = 0x000000001,
178};
179
180
181/** 171/**
182 * i2400m_bootrom_header - Header for a boot-mode command 172 * i2400m_bootrom_header - Header for a boot-mode command
183 * 173 *
@@ -276,6 +266,7 @@ enum {
276 I2400M_WARM_RESET_BARKER = 0x50f750f7, 266 I2400M_WARM_RESET_BARKER = 0x50f750f7,
277 I2400M_NBOOT_BARKER = 0xdeadbeef, 267 I2400M_NBOOT_BARKER = 0xdeadbeef,
278 I2400M_SBOOT_BARKER = 0x0ff1c1a1, 268 I2400M_SBOOT_BARKER = 0x0ff1c1a1,
269 I2400M_SBOOT_BARKER_6050 = 0x80000001,
279 I2400M_ACK_BARKER = 0xfeedbabe, 270 I2400M_ACK_BARKER = 0xfeedbabe,
280 I2400M_D2H_MSG_BARKER = 0xbeefbabe, 271 I2400M_D2H_MSG_BARKER = 0xbeefbabe,
281}; 272};