|
@@ -465,6 +465,57 @@ static inline void hal_get_radiotap_he_gi_ltf(uint16_t *he_gi, uint16_t *he_ltf)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/* channel number to freq conversion */
|
|
|
|
+#define CHANNEL_NUM_14 14
|
|
|
|
+#define CHANNEL_NUM_15 15
|
|
|
|
+#define CHANNEL_NUM_27 27
|
|
|
|
+#define CHANNEL_NUM_35 35
|
|
|
|
+#define CHANNEL_NUM_182 182
|
|
|
|
+#define CHANNEL_NUM_197 197
|
|
|
|
+#define CHANNEL_FREQ_2484 2484
|
|
|
|
+#define CHANNEL_FREQ_2407 2407
|
|
|
|
+#define CHANNEL_FREQ_2512 2512
|
|
|
|
+#define CHANNEL_FREQ_5000 5000
|
|
|
|
+#define CHANNEL_FREQ_5940 5940
|
|
|
|
+#define CHANNEL_FREQ_4000 4000
|
|
|
|
+#define CHANNEL_FREQ_5150 5150
|
|
|
|
+#define FREQ_MULTIPLIER_CONST_5MHZ 5
|
|
|
|
+#define FREQ_MULTIPLIER_CONST_20MHZ 20
|
|
|
|
+/**
|
|
|
|
+ * hal_rx_radiotap_num_to_freq() - Get frequency from chan number
|
|
|
|
+ * @chan_num - Input channel number
|
|
|
|
+ * @center_freq - Input Channel Center frequency
|
|
|
|
+ *
|
|
|
|
+ * Return - Channel frequency in Mhz
|
|
|
|
+ */
|
|
|
|
+static uint16_t
|
|
|
|
+hal_rx_radiotap_num_to_freq(uint16_t chan_num, qdf_freq_t center_freq)
|
|
|
|
+{
|
|
|
|
+ if (center_freq < CHANNEL_FREQ_5940) {
|
|
|
|
+ if (chan_num == CHANNEL_NUM_14)
|
|
|
|
+ return CHANNEL_FREQ_2484;
|
|
|
|
+ if (chan_num < CHANNEL_NUM_14)
|
|
|
|
+ return CHANNEL_FREQ_2407 +
|
|
|
|
+ (chan_num * FREQ_MULTIPLIER_CONST_5MHZ);
|
|
|
|
+
|
|
|
|
+ if (chan_num < CHANNEL_NUM_27)
|
|
|
|
+ return CHANNEL_FREQ_2512 +
|
|
|
|
+ ((chan_num - CHANNEL_NUM_15) *
|
|
|
|
+ FREQ_MULTIPLIER_CONST_20MHZ);
|
|
|
|
+
|
|
|
|
+ if (chan_num > CHANNEL_NUM_182 &&
|
|
|
|
+ chan_num < CHANNEL_NUM_197)
|
|
|
|
+ return ((chan_num * FREQ_MULTIPLIER_CONST_5MHZ) +
|
|
|
|
+ CHANNEL_FREQ_4000);
|
|
|
|
+
|
|
|
|
+ return CHANNEL_FREQ_5000 +
|
|
|
|
+ (chan_num * FREQ_MULTIPLIER_CONST_5MHZ);
|
|
|
|
+ } else {
|
|
|
|
+ return CHANNEL_FREQ_5940 +
|
|
|
|
+ (chan_num * FREQ_MULTIPLIER_CONST_5MHZ);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* hal_rx_status_get_tlv_info() - process receive info TLV
|
|
* hal_rx_status_get_tlv_info() - process receive info TLV
|
|
* @rx_tlv_hdr: pointer to TLV header
|
|
* @rx_tlv_hdr: pointer to TLV header
|
|
@@ -515,6 +566,13 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
|
|
ppdu_info->rx_status.chan_freq =
|
|
ppdu_info->rx_status.chan_freq =
|
|
(HAL_RX_GET(rx_tlv, RX_PPDU_START_1,
|
|
(HAL_RX_GET(rx_tlv, RX_PPDU_START_1,
|
|
SW_PHY_META_DATA) & 0xFFFF0000)>>16;
|
|
SW_PHY_META_DATA) & 0xFFFF0000)>>16;
|
|
|
|
+ if (ppdu_info->rx_status.chan_num &&
|
|
|
|
+ ppdu_info->rx_status.chan_freq) {
|
|
|
|
+ ppdu_info->rx_status.chan_freq =
|
|
|
|
+ hal_rx_radiotap_num_to_freq(
|
|
|
|
+ ppdu_info->rx_status.chan_num,
|
|
|
|
+ ppdu_info->rx_status.chan_freq);
|
|
|
|
+ }
|
|
ppdu_info->com_info.ppdu_timestamp =
|
|
ppdu_info->com_info.ppdu_timestamp =
|
|
HAL_RX_GET(rx_tlv, RX_PPDU_START_2,
|
|
HAL_RX_GET(rx_tlv, RX_PPDU_START_2,
|
|
PPDU_START_TIMESTAMP);
|
|
PPDU_START_TIMESTAMP);
|