diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2009-02-17 08:04:29 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-27 14:52:40 -0500 |
commit | abd2fdb4c606f0e5cfec3647d57ebd20f03caafd (patch) | |
tree | 537531860a734e136099c13664dcdff8ac35fb55 /drivers/net/wireless/rt2x00/rt2x00debug.c | |
parent | 98c8a60a04316e94ccea8221cf16768ce91bd214 (diff) |
rt2x00: Fix RF offset
The word_base is in bytes instead of word index number,
this means that when using it, it should be transformed into
a word index first.
Otherwise RF register reading will fail through debugfs since
we would start reading 4 words starting with word 4 (which is the last
valid word for RF).
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00debug.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00debug.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c b/drivers/net/wireless/rt2x00/rt2x00debug.c index dcdce7f746b5..8d47389d8874 100644 --- a/drivers/net/wireless/rt2x00/rt2x00debug.c +++ b/drivers/net/wireless/rt2x00/rt2x00debug.c | |||
@@ -435,11 +435,12 @@ static ssize_t rt2x00debug_read_##__name(struct file *file, \ | |||
435 | if (index >= debug->__name.word_count) \ | 435 | if (index >= debug->__name.word_count) \ |
436 | return -EINVAL; \ | 436 | return -EINVAL; \ |
437 | \ | 437 | \ |
438 | index += (debug->__name.word_base / \ | ||
439 | debug->__name.word_size); \ | ||
440 | \ | ||
438 | if (debug->__name.flags & RT2X00DEBUGFS_OFFSET) \ | 441 | if (debug->__name.flags & RT2X00DEBUGFS_OFFSET) \ |
439 | index *= debug->__name.word_size; \ | 442 | index *= debug->__name.word_size; \ |
440 | \ | 443 | \ |
441 | index += debug->__name.word_base; \ | ||
442 | \ | ||
443 | debug->__name.read(intf->rt2x00dev, index, &value); \ | 444 | debug->__name.read(intf->rt2x00dev, index, &value); \ |
444 | \ | 445 | \ |
445 | size = sprintf(line, __format, value); \ | 446 | size = sprintf(line, __format, value); \ |
@@ -476,11 +477,12 @@ static ssize_t rt2x00debug_write_##__name(struct file *file, \ | |||
476 | size = strlen(line); \ | 477 | size = strlen(line); \ |
477 | value = simple_strtoul(line, NULL, 0); \ | 478 | value = simple_strtoul(line, NULL, 0); \ |
478 | \ | 479 | \ |
480 | index += (debug->__name.word_base / \ | ||
481 | debug->__name.word_size); \ | ||
482 | \ | ||
479 | if (debug->__name.flags & RT2X00DEBUGFS_OFFSET) \ | 483 | if (debug->__name.flags & RT2X00DEBUGFS_OFFSET) \ |
480 | index *= debug->__name.word_size; \ | 484 | index *= debug->__name.word_size; \ |
481 | \ | 485 | \ |
482 | index += debug->__name.word_base; \ | ||
483 | \ | ||
484 | debug->__name.write(intf->rt2x00dev, index, value); \ | 486 | debug->__name.write(intf->rt2x00dev, index, value); \ |
485 | \ | 487 | \ |
486 | *offset += size; \ | 488 | *offset += size; \ |