diff options
author | Olivier Sobrie <olivier@sobrie.be> | 2011-07-09 06:57:05 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-11 15:02:16 -0400 |
commit | edcc3604805b37344d0569b61a34dbe22943ba9f (patch) | |
tree | 277df7b98fe9ac63c4f21ed1e03c0de2d6854036 | |
parent | 6a2a0e738225fc9ec063f84b79f0adf5c0ed176c (diff) |
libertas: fix errors in functions accessing module registers
Problems located in the two functions lbs_set_reg() and lbs_get_reg():
- The offset field of struct cmd_ds_reg_access was not filled in
- The test on the return code of lbs_cmd_with_response() in function
lbs_get_reg() was inverted
Signed-off-by: Olivier Sobrie <olivier@sobrie.be>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 71c8f3fccfa1..3e8123cbb948 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -873,6 +873,7 @@ int lbs_get_reg(struct lbs_private *priv, u16 reg, u16 offset, u32 *value) | |||
873 | memset(&cmd, 0, sizeof(cmd)); | 873 | memset(&cmd, 0, sizeof(cmd)); |
874 | cmd.hdr.size = cpu_to_le16(sizeof(cmd)); | 874 | cmd.hdr.size = cpu_to_le16(sizeof(cmd)); |
875 | cmd.action = cpu_to_le16(CMD_ACT_GET); | 875 | cmd.action = cpu_to_le16(CMD_ACT_GET); |
876 | cmd.offset = cpu_to_le16(offset); | ||
876 | 877 | ||
877 | if (reg != CMD_MAC_REG_ACCESS && | 878 | if (reg != CMD_MAC_REG_ACCESS && |
878 | reg != CMD_BBP_REG_ACCESS && | 879 | reg != CMD_BBP_REG_ACCESS && |
@@ -882,7 +883,7 @@ int lbs_get_reg(struct lbs_private *priv, u16 reg, u16 offset, u32 *value) | |||
882 | } | 883 | } |
883 | 884 | ||
884 | ret = lbs_cmd_with_response(priv, reg, &cmd); | 885 | ret = lbs_cmd_with_response(priv, reg, &cmd); |
885 | if (ret) { | 886 | if (!ret) { |
886 | if (reg == CMD_BBP_REG_ACCESS || reg == CMD_RF_REG_ACCESS) | 887 | if (reg == CMD_BBP_REG_ACCESS || reg == CMD_RF_REG_ACCESS) |
887 | *value = cmd.value.bbp_rf; | 888 | *value = cmd.value.bbp_rf; |
888 | else if (reg == CMD_MAC_REG_ACCESS) | 889 | else if (reg == CMD_MAC_REG_ACCESS) |
@@ -915,6 +916,7 @@ int lbs_set_reg(struct lbs_private *priv, u16 reg, u16 offset, u32 value) | |||
915 | memset(&cmd, 0, sizeof(cmd)); | 916 | memset(&cmd, 0, sizeof(cmd)); |
916 | cmd.hdr.size = cpu_to_le16(sizeof(cmd)); | 917 | cmd.hdr.size = cpu_to_le16(sizeof(cmd)); |
917 | cmd.action = cpu_to_le16(CMD_ACT_SET); | 918 | cmd.action = cpu_to_le16(CMD_ACT_SET); |
919 | cmd.offset = cpu_to_le16(offset); | ||
918 | 920 | ||
919 | if (reg == CMD_BBP_REG_ACCESS || reg == CMD_RF_REG_ACCESS) | 921 | if (reg == CMD_BBP_REG_ACCESS || reg == CMD_RF_REG_ACCESS) |
920 | cmd.value.bbp_rf = (u8) (value & 0xFF); | 922 | cmd.value.bbp_rf = (u8) (value & 0xFF); |