forked from Minki/linux
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>
This commit is contained in:
parent
98c8a60a04
commit
abd2fdb4c6
@ -435,11 +435,12 @@ static ssize_t rt2x00debug_read_##__name(struct file *file, \
|
||||
if (index >= debug->__name.word_count) \
|
||||
return -EINVAL; \
|
||||
\
|
||||
index += (debug->__name.word_base / \
|
||||
debug->__name.word_size); \
|
||||
\
|
||||
if (debug->__name.flags & RT2X00DEBUGFS_OFFSET) \
|
||||
index *= debug->__name.word_size; \
|
||||
\
|
||||
index += debug->__name.word_base; \
|
||||
\
|
||||
debug->__name.read(intf->rt2x00dev, index, &value); \
|
||||
\
|
||||
size = sprintf(line, __format, value); \
|
||||
@ -476,11 +477,12 @@ static ssize_t rt2x00debug_write_##__name(struct file *file, \
|
||||
size = strlen(line); \
|
||||
value = simple_strtoul(line, NULL, 0); \
|
||||
\
|
||||
index += (debug->__name.word_base / \
|
||||
debug->__name.word_size); \
|
||||
\
|
||||
if (debug->__name.flags & RT2X00DEBUGFS_OFFSET) \
|
||||
index *= debug->__name.word_size; \
|
||||
\
|
||||
index += debug->__name.word_base; \
|
||||
\
|
||||
debug->__name.write(intf->rt2x00dev, index, value); \
|
||||
\
|
||||
*offset += size; \
|
||||
|
Loading…
Reference in New Issue
Block a user