aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Matyukevich <sergey.matyukevich.os@quantenna.com>2017-12-19 06:28:52 -0500
committerKalle Valo <kvalo@codeaurora.org>2018-01-09 07:11:21 -0500
commitfbad963a28e487bbd84ec2a82898bd91e08c97c8 (patch)
tree48faf8dca9dceb5f9ac16f8b634029ef1c6250fe
parente6e594aff26ae164aaf935309a6fb8ce3cad9d4d (diff)
qtnfmac: fix rssi data passed to wireless core
Fix RSSI values passed to wireless core by qtnfmac driver: - fix RSSI values in scan results: driver registers wiphy with CFG80211_SIGNAL_TYPE_MBM signal type, so mBm should be passed using DBM_TO_MBM macro - accompany firmware changes fixing RSSI values in received mgmt frames update qlink message format and pass correct signed values to core Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/event.c7
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/qlink.h11
2 files changed, 9 insertions, 9 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c
index 9843ca36b74b..b3489b5b5d9e 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -237,9 +237,8 @@ qtnf_event_handle_mgmt_received(struct qtnf_vif *vif,
237 pr_debug("%s LEN:%u FC:%.4X SA:%pM\n", vif->netdev->name, frame_len, 237 pr_debug("%s LEN:%u FC:%.4X SA:%pM\n", vif->netdev->name, frame_len,
238 le16_to_cpu(frame->frame_control), frame->addr2); 238 le16_to_cpu(frame->frame_control), frame->addr2);
239 239
240 cfg80211_rx_mgmt(&vif->wdev, le32_to_cpu(rxmgmt->freq), 240 cfg80211_rx_mgmt(&vif->wdev, le32_to_cpu(rxmgmt->freq), rxmgmt->sig_dbm,
241 le32_to_cpu(rxmgmt->sig_dbm), rxmgmt->frame_data, 241 rxmgmt->frame_data, frame_len, flags);
242 frame_len, flags);
243 242
244 return 0; 243 return 0;
245} 244}
@@ -324,7 +323,7 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif,
324 sr->bssid, get_unaligned_le64(&sr->tsf), 323 sr->bssid, get_unaligned_le64(&sr->tsf),
325 le16_to_cpu(sr->capab), 324 le16_to_cpu(sr->capab),
326 le16_to_cpu(sr->bintval), ies, ies_len, 325 le16_to_cpu(sr->bintval), ies, ies_len,
327 sr->signal, GFP_KERNEL); 326 DBM_TO_MBM(sr->sig_dbm), GFP_KERNEL);
328 if (!bss) 327 if (!bss)
329 return -ENOMEM; 328 return -ENOMEM;
330 329
diff --git a/drivers/net/wireless/quantenna/qtnfmac/qlink.h b/drivers/net/wireless/quantenna/qtnfmac/qlink.h
index 3e3de4629a53..1f150be98820 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/qlink.h
+++ b/drivers/net/wireless/quantenna/qtnfmac/qlink.h
@@ -19,7 +19,7 @@
19 19
20#include <linux/ieee80211.h> 20#include <linux/ieee80211.h>
21 21
22#define QLINK_PROTO_VER 7 22#define QLINK_PROTO_VER 8
23 23
24#define QLINK_MACID_RSVD 0xFF 24#define QLINK_MACID_RSVD 0xFF
25#define QLINK_VIFID_RSVD 0xFF 25#define QLINK_VIFID_RSVD 0xFF
@@ -916,15 +916,16 @@ enum qlink_rxmgmt_flags {
916 * struct qlink_event_rxmgmt - data for QLINK_EVENT_MGMT_RECEIVED event 916 * struct qlink_event_rxmgmt - data for QLINK_EVENT_MGMT_RECEIVED event
917 * 917 *
918 * @freq: Frequency on which the frame was received in MHz. 918 * @freq: Frequency on which the frame was received in MHz.
919 * @sig_dbm: signal strength in dBm.
920 * @flags: bitmap of &enum qlink_rxmgmt_flags. 919 * @flags: bitmap of &enum qlink_rxmgmt_flags.
920 * @sig_dbm: signal strength in dBm.
921 * @frame_data: data of Rx'd frame itself. 921 * @frame_data: data of Rx'd frame itself.
922 */ 922 */
923struct qlink_event_rxmgmt { 923struct qlink_event_rxmgmt {
924 struct qlink_event ehdr; 924 struct qlink_event ehdr;
925 __le32 freq; 925 __le32 freq;
926 __le32 sig_dbm;
927 __le32 flags; 926 __le32 flags;
927 s8 sig_dbm;
928 u8 rsvd[3];
928 u8 frame_data[0]; 929 u8 frame_data[0];
929} __packed; 930} __packed;
930 931
@@ -936,7 +937,7 @@ struct qlink_event_rxmgmt {
936 * event was generated was discovered. 937 * event was generated was discovered.
937 * @capab: capabilities field. 938 * @capab: capabilities field.
938 * @bintval: beacon interval announced by discovered BSS. 939 * @bintval: beacon interval announced by discovered BSS.
939 * @signal: signal strength. 940 * @sig_dbm: signal strength in dBm.
940 * @bssid: BSSID announced by discovered BSS. 941 * @bssid: BSSID announced by discovered BSS.
941 * @ssid_len: length of SSID announced by BSS. 942 * @ssid_len: length of SSID announced by BSS.
942 * @ssid: SSID announced by discovered BSS. 943 * @ssid: SSID announced by discovered BSS.
@@ -948,7 +949,7 @@ struct qlink_event_scan_result {
948 __le16 freq; 949 __le16 freq;
949 __le16 capab; 950 __le16 capab;
950 __le16 bintval; 951 __le16 bintval;
951 s8 signal; 952 s8 sig_dbm;
952 u8 ssid_len; 953 u8 ssid_len;
953 u8 ssid[IEEE80211_MAX_SSID_LEN]; 954 u8 ssid[IEEE80211_MAX_SSID_LEN];
954 u8 bssid[ETH_ALEN]; 955 u8 bssid[ETH_ALEN];