mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-16 19:46:09 +07:00
ath11k: Use freq instead of channel number in rx path
As 6GHz cahnnel numbers overlap with those of 5GHz and 2GHz bands, it is necessary to use frequency when determining the band info in rx path. Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20200603001724.12161-4-pradeepc@codeaurora.org
This commit is contained in:
parent
22eeadcdea
commit
5dcf42f8b7
@ -2162,6 +2162,7 @@ static void ath11k_dp_rx_h_ppdu(struct ath11k *ar, struct hal_rx_desc *rx_desc,
|
||||
struct ieee80211_rx_status *rx_status)
|
||||
{
|
||||
u8 channel_num;
|
||||
u32 center_freq;
|
||||
|
||||
rx_status->freq = 0;
|
||||
rx_status->rate_idx = 0;
|
||||
@ -2172,8 +2173,11 @@ static void ath11k_dp_rx_h_ppdu(struct ath11k *ar, struct hal_rx_desc *rx_desc,
|
||||
rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
|
||||
|
||||
channel_num = ath11k_dp_rx_h_msdu_start_freq(rx_desc);
|
||||
center_freq = ath11k_dp_rx_h_msdu_start_freq(rx_desc) >> 16;
|
||||
|
||||
if (channel_num >= 1 && channel_num <= 14) {
|
||||
if (center_freq >= 5935 && center_freq <= 7105) {
|
||||
rx_status->band = NL80211_BAND_6GHZ;
|
||||
} else if (channel_num >= 1 && channel_num <= 14) {
|
||||
rx_status->band = NL80211_BAND_2GHZ;
|
||||
} else if (channel_num >= 36 && channel_num <= 173) {
|
||||
rx_status->band = NL80211_BAND_5GHZ;
|
||||
|
@ -3833,6 +3833,7 @@ static int ath11k_pull_mgmt_rx_params_tlv(struct ath11k_base *ab,
|
||||
}
|
||||
|
||||
hdr->pdev_id = ev->pdev_id;
|
||||
hdr->chan_freq = ev->chan_freq;
|
||||
hdr->channel = ev->channel;
|
||||
hdr->snr = ev->snr;
|
||||
hdr->rate = ev->rate;
|
||||
@ -5204,7 +5205,9 @@ static void ath11k_mgmt_rx_event(struct ath11k_base *ab, struct sk_buff *skb)
|
||||
if (rx_ev.status & WMI_RX_STATUS_ERR_MIC)
|
||||
status->flag |= RX_FLAG_MMIC_ERROR;
|
||||
|
||||
if (rx_ev.channel >= 1 && rx_ev.channel <= 14) {
|
||||
if (rx_ev.chan_freq >= ATH11K_MIN_6G_FREQ) {
|
||||
status->band = NL80211_BAND_6GHZ;
|
||||
} else if (rx_ev.channel >= 1 && rx_ev.channel <= 14) {
|
||||
status->band = NL80211_BAND_2GHZ;
|
||||
} else if (rx_ev.channel >= 36 && rx_ev.channel <= ATH11K_MAX_5G_CHAN) {
|
||||
status->band = NL80211_BAND_5GHZ;
|
||||
|
@ -4228,6 +4228,7 @@ struct wmi_pdev_temperature_event {
|
||||
#define WLAN_MGMT_TXRX_HOST_MAX_ANTENNA 4
|
||||
|
||||
struct mgmt_rx_event_params {
|
||||
u32 chan_freq;
|
||||
u32 channel;
|
||||
u32 snr;
|
||||
u8 rssi_ctl[WLAN_MGMT_TXRX_HOST_MAX_ANTENNA];
|
||||
@ -4257,6 +4258,7 @@ struct wmi_mgmt_rx_hdr {
|
||||
u32 rx_tsf_l32;
|
||||
u32 rx_tsf_u32;
|
||||
u32 pdev_id;
|
||||
u32 chan_freq;
|
||||
} __packed;
|
||||
|
||||
#define MAX_ANTENNA_EIGHT 8
|
||||
|
Loading…
Reference in New Issue
Block a user