154664c8547a87226ce7a68dd8542f10916419c0
[openwrt/staging/jow.git] /
1 From 3401d42c7ea2d064d15c66698ff8eb96553179ce Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
3 Date: Fri, 26 Oct 2018 12:50:39 +0200
4 Subject: [PATCH] brcmutil: really fix decoding channel info for 160 MHz
5 bandwidth
6 MIME-Version: 1.0
7 Content-Type: text/plain; charset=UTF-8
8 Content-Transfer-Encoding: 8bit
9
10 Previous commit /adding/ support for 160 MHz chanspecs was incomplete.
11 It didn't set bandwidth info and didn't extract control channel info. As
12 the result it was also using uninitialized "sb" var.
13
14 This change has been tested for two chanspecs found to be reported by
15 some devices/firmwares:
16 1) 60/160 (0xee32)
17 Before: chnum:50 control_ch_num:36
18 After: chnum:50 control_ch_num:60
19 2) 120/160 (0xed72)
20 Before: chnum:114 control_ch_num:100
21 After: chnum:114 control_ch_num:120
22
23 Fixes: 330994e8e8ec ("brcmfmac: fix for proper support of 160MHz bandwidth")
24 Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
25 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
26 ---
27 drivers/net/wireless/broadcom/brcm80211/brcmutil/d11.c | 3 +++
28 1 file changed, 3 insertions(+)
29
30 --- a/drivers/net/wireless/broadcom/brcm80211/brcmutil/d11.c
31 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmutil/d11.c
32 @@ -193,6 +193,9 @@ static void brcmu_d11ac_decchspec(struct
33 }
34 break;
35 case BRCMU_CHSPEC_D11AC_BW_160:
36 + ch->bw = BRCMU_CHAN_BW_160;
37 + ch->sb = brcmu_maskget16(ch->chspec, BRCMU_CHSPEC_D11AC_SB_MASK,
38 + BRCMU_CHSPEC_D11AC_SB_SHIFT);
39 switch (ch->sb) {
40 case BRCMU_CHAN_SB_LLL:
41 ch->control_ch_num -= CH_70MHZ_APART;