aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2009-02-17 08:04:29 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-27 14:52:40 -0500
commitabd2fdb4c606f0e5cfec3647d57ebd20f03caafd (patch)
tree537531860a734e136099c13664dcdff8ac35fb55
parent98c8a60a04316e94ccea8221cf16768ce91bd214 (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>
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00debug.c10
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; \